Quick comparison
| Best for | Pattern | Latency | Auth | Where to start | |
|---|---|---|---|---|---|
| REST API | On-demand lookups, dashboards, user queries | Request/response | 50–200 ms | API key / OAuth | REST API |
| GraphQL | Analytical queries, aggregations, flexible joins | Request/response | 100–500 ms | API key / OAuth | GraphQL |
| WebSocket | Live UIs, browser + mobile apps | Push (subscribe) | <2 ms tick | API key | WebSocket |
| Kafka Streams | Trading engines, indexers, alert pipelines | Stream (consume) | <100 ms p99 | SASL / OAuth | Kafka |
| SDKs | Typed access from TS / Python / Go / Rust | Client library | Matches transport | Inherits underlying | SDKs |
| CLI | Scripting, CI/CD, AI agents, pay-per-call | Command line | Matches transport | API key / OAuth / x402 | CLI |
| MCP Server | AI agents (Claude, Cursor, ChatGPT, custom) | Tool protocol | Matches transport | API key / x402 | MCP |
Decision guide
I'm building a user-facing dashboard
I'm building a user-facing dashboard
Start with REST for lookups and charts, layer WebSocket for live
updates. Use GraphQL if your screens need aggregated or pivoted data.
I'm building a trading / indexing backend
I'm building a trading / indexing backend
Use Kafka Streams for primary ingestion (exactly-once, horizontally
scaled). Fall back to REST for cold lookups and GraphQL for
analytical backfills.
I'm doing research or ad-hoc analysis
I'm doing research or ad-hoc analysis
GraphQL gives you dimensional queries over the entire data cube without
per-chain boilerplate. Export to notebooks via the Python SDK.
I'm building a browser / mobile app
I'm building a browser / mobile app
WebSocket for live streams (prices, trades, balances). REST for
anything that is fine with polling or happens on user action.
I'm building an AI agent
I'm building an AI agent
MCP Server exposes the catalog as typed tools for LLM agents. If your
agent runs its own code, use SDKs directly; for pay-per-call semantics,
use the CLI with x402/MPP.
I'm running compliance / KYT workflows
I'm running compliance / KYT workflows
REST calls to the KYT endpoints fit most integration patterns. For high
volume screening pipelines, use the Kafka transfer topic plus REST
scoring side-by-side.
Authentication at a glance
Every access method accepts the same credentials. Pick the one that matches your environment — you do not need separate credentials per transport.API Keys
Quickest path. One header, works on REST / GraphQL / WebSocket / CLI / SDK.
OAuth 2.0
For server-to-server production use — client-credentials JWT flow.
Wallet Sign-In (SIWX)
Sign-In With X — let end-users authenticate with their wallet.
For AI agents and per-call micropayments see
x402 Payments and
MPP Payments.
Next
REST API
HTTP endpoints for tokens, wallets, trades, pools, compliance.
GraphQL
Flexible analytics across the normalized chain cube.
WebSocket
Live push for prices, trades, balances and pool events.
Kafka Streams
Production streaming with exactly-once semantics.

