CatalystDesk / Developers
Build your first context workflow.
A project key, explicit budgets and traceable receipts. Start with reads, then connect a bounded context request to your own Agent.
The SDK is currently a reviewed private distribution. Use the gateway URL and package supplied for your environment; these examples do not activate public access.
Credits console not enabled here
Console configuration is not API availability. The gateway capability endpoints and your project permissions determine which services can be called.
- 01
Create a project
Sign in to the Credits console and choose a daily budget. Each project has its own scope.
- 02
Issue a scoped key
Choose quant and model permissions. Save the key when it is shown once; keep it on your server.
- 03
Request context
Read capabilities, retain a request ID, get a quote and apply your maximum cost.
- 04
Reconcile usage
Read the receipt by the same ID. If the result is uncertain, query it before another financial request.
Python SDK
Start with a read-only check
Install the supplied private wheel
python -m pip install /path/to/catalystdesk_sdk-0.1.0-py3-none-any.whlimport asyncio
import os
from catalystdesk_sdk import CatalystDeskClient
async def main():
async with CatalystDeskClient(
os.environ["CATALYSTDESK_API_KEY"],
base_url=os.environ["CATALYSTDESK_API_URL"],
) as client:
print(await client.markets())
print(await client.models())
print(await client.credits())
asyncio.run(main())A quoted quantitative request
Quote and context use the same retained request ID. The example cap is a customer limit, not a published service price. Inference and quant usage are itemized separately.
import asyncio
import os
from catalystdesk_sdk import CatalystDeskClient, CatalystDeskError
async def main():
request_id = os.environ["CATALYSTDESK_REQUEST_ID"]
async with CatalystDeskClient(
os.environ["CATALYSTDESK_API_KEY"],
base_url=os.environ["CATALYSTDESK_API_URL"],
) as client:
try:
catalog = await client.markets()
version = catalog.get("result_version", 1)
if type(version) is not int or version not in (1, 2):
raise ValueError("Unsupported quantitative service version")
if catalog.get("service_id") != f"market-context.hyperliquid.v{version}":
raise ValueError("Quantitative service is unavailable")
quote = await client.quote_context(
coin="BTC", request_id=request_id, result_version=version)
context = await client.context(
coin="BTC", quote_id=quote["quote_id"],
request_id=request_id, max_cost_nano=100_000_000)
print(context)
except CatalystDeskError as error:
if error.receipt_pending:
print(await client.request(request_id))
else:
raise
asyncio.run(main())From market observations to usable context.
Preserve source time and quality through every stage. Your application decides what to do next.
- 01Market dataObserve · normalize
- 02Versioned modelsCompute · version
- 03Structured contextSchema · evidence
- 04Your Agent or appIntegrate · reconcile