Documentation Index
Fetch the complete documentation index at: https://docs.chainstream.io/llms.txt
Use this file to discover all available pages before exploring further.
Official SDKs
ChainStream provides official SDKs in multiple languages, wrapping common API operations for a better development experience.
TypeScript
For Node.js and browser applications
Python
For data analysis and backend services
Go
For high-performance backend services
Rust
For systems programming and performance-critical applications
SDK Features
All SDKs provide:
- REST API Client: Call all ChainStream data APIs
- WebSocket Client: Subscribe to real-time data streams
- Auto Authentication: Automatic token management
- Type Safety: Full type definitions (TypeScript, Go, Rust)
Installation
TypeScript
Python
Go
Rust
npm install @chainstream-io/sdk
pip install chainstream-sdk
go get github.com/chainstream-io/chainstream-go-sdk
# Add to Cargo.toml
[dependencies]
chainstream-sdk = "0.1"
Quick Comparison
TypeScript
Python
Go
Rust
import { ChainStreamClient } from '@chainstream-io/sdk';
const client = new ChainStreamClient('YOUR_ACCESS_TOKEN');
// REST API call
const token = await client.token.getToken('sol', 'TOKEN_ADDRESS');
// WebSocket subscription
client.stream.subscribeTokenCandles({
chain: 'sol',
tokenAddress: 'TOKEN_ADDRESS',
resolution: Resolution['1s'],
callback: (data) => console.log(data)
});
from chainstream import ChainStreamClient
from chainstream.stream import Resolution
client = ChainStreamClient(access_token='YOUR_ACCESS_TOKEN')
# REST API call
token = await client.token.get_metadata('sol', 'TOKEN_ADDRESS')
# WebSocket subscription
await client.stream.subscribe_token_candles(
chain='sol',
token_address='TOKEN_ADDRESS',
resolution=Resolution.S1,
callback=lambda data: print(data)
)
import chainstream "github.com/chainstream-io/chainstream-go-sdk"
client, _ := chainstream.NewChainStreamClient(accessToken, &chainstream.ChainStreamClientOptions{})
// REST API call
resp, _ := client.Token.GetToken(ctx, "sol", "TOKEN_ADDRESS")
// WebSocket subscription
client.Stream.SubscribeTokenCandles("sol", "TOKEN_ADDRESS", token.N1s, func(data stream.TokenCandle) {
fmt.Println(data)
}, "")
use chainstream_sdk::{ChainStreamClient, stream::{Resolution, TokenCandle}};
let client = ChainStreamClient::new("YOUR_ACCESS_TOKEN", None);
// WebSocket subscription
client.stream.subscribe_token_candles(
"sol",
"TOKEN_ADDRESS",
Resolution::X1s,
|candle: TokenCandle| {
println!("{:?}", candle);
},
None,
).await?;
SDK vs Direct API
| Feature | SDK | Direct API |
|---|
| Type Safety | Yes (TS/Go/Rust) | No |
| Auth Management | Automatic | Manual |
| Error Handling | Wrapped | Raw HTTP errors |
| WebSocket | Built-in | Manual implementation |
| Code Volume | Less | More |
| Flexibility | Medium | Full |
Next Steps
TypeScript SDK
View TypeScript documentation
Python SDK
View Python documentation
Go SDK
View Go documentation
Rust SDK
View Rust documentation