Skip to main content
ChainStream exposes the same catalog of data products through several different interfaces. Each one has a sweet spot — you will usually combine two or three in a single integration.

Quick comparison

Best forPatternLatencyAuthWhere to start
REST APIOn-demand lookups, dashboards, user queriesRequest/response50–200 msAPI key / OAuthREST API
GraphQLAnalytical queries, aggregations, flexible joinsRequest/response100–500 msAPI key / OAuthGraphQL
WebSocketLive UIs, browser + mobile appsPush (subscribe)<2 ms tickAPI keyWebSocket
Kafka StreamsTrading engines, indexers, alert pipelinesStream (consume)<100 ms p99SASL / OAuthKafka
SDKsTyped access from TS / Python / Go / RustClient libraryMatches transportInherits underlyingSDKs
CLIScripting, CI/CD, AI agents, pay-per-callCommand lineMatches transportAPI key / OAuth / x402CLI
MCP ServerAI agents (Claude, Cursor, ChatGPT, custom)Tool protocolMatches transportAPI key / x402MCP

Decision guide

Start with REST for lookups and charts, layer WebSocket for live updates. Use GraphQL if your screens need aggregated or pivoted data.
Use Kafka Streams for primary ingestion (exactly-once, horizontally scaled). Fall back to REST for cold lookups and GraphQL for analytical backfills.
GraphQL gives you dimensional queries over the entire data cube without per-chain boilerplate. Export to notebooks via the Python SDK.
WebSocket for live streams (prices, trades, balances). REST for anything that is fine with polling or happens on user action.
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.
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.