Skip to main content
The ChainStream SDKs give you a single, ergonomic way to call every data product from your language of choice. The same data products and access methods — just typed, batteries-included.

Languages

TypeScript

@chainstream-io/sdk — first-class support for browser and Node.

Python

chainstream — async-first client, friendly for notebooks and bots.

Go

github.com/chainstream-io/chainstream-go — idiomatic Go.

Rust

chainstream crate — for latency-critical consumers.

Install

npm install @chainstream-io/sdk          # TypeScript
pip install chainstream                  # Python
go get github.com/chainstream-io/chainstream-go
cargo add chainstream                    # Rust

First call — TypeScript

import { ChainStream } from "@chainstream-io/sdk";

const cs = new ChainStream({ apiKey: process.env.CHAINSTREAM_API_KEY! });

const results = await cs.token.search({
  chain: "solana",
  keyword: "USDC",
  limit: 5,
});

for (const t of results) {
  console.log(t.symbol, t.priceUsd);
}

Common patterns

  • RESTcs.token.*, cs.wallet.*, cs.trade.*, cs.ranking.*, cs.dex.*
  • WebSocketcs.stream.subscribeTokenTrade({ chain, tokenAddress, callback }) (and parallel methods for candles, stats, holders, wallets, rankings, pools)
  • GraphQLcs.gql(query, variables) returns a fully typed result via codegen
  • CLI bridgecs.cli("market", "trending", { chain: "sol", duration: "24h" }) runs the same logic as chainstream market trending --chain sol --duration 24h

When to use

  • Integrating into an application — almost always the right default
  • When you want types, retries, error mapping and pagination handled for you
  • When you want to swap REST ↔ WebSocket for the same resource without rewriting
When not to: quick one-offs where curl + REST is faster (or CLI).

Next

SDK catalog

Per-language guides and release notes.

Reference

Underlying REST / GraphQL / WebSocket surfaces.