前提条件
始める前に、次を用意してください。
- ChainStream の登録アカウント(こちらから登録)
- API Key(
cs_live_... で始まる)
GraphQL API は REST Data API と同じ API Key を使います。REST API で既にキーをお持ちの場合、ここでもそのまま利用できます。
ステップ 1: API Key を取得する
- ChainStream Dashboard にログイン
- Applications を開く
- Create New App をクリック(または既存のアプリを選択)
- API Key をコピー
ステップ 2: GraphQL IDE を開く
ChainStream GraphQL IDE にアクセスします。
IDE ではオートコンプリート、シンタックスハイライト、インラインドキュメント、クエリ履歴が利用でき、スキーマの探索とクエリ構築が最も速く行えます。
ステップ 3: 認証を設定する
IDE で Headers パネル(左下)を開き、API Key を追加します。
{
"X-API-KEY": "your_api_key"
}
ステップ 4: サンプルクエリを実行する
次のクエリをエディタに貼り付けます。Solana 上の最新 10 件の DEX 取引を取得し、ブロック時刻、トランザクションハッシュ、買い/売りトークン情報、数量、USD 価格、DEX プロトコル名を含みます。
query {
Solana {
DEXTrades(
limit: {count: 10}
orderBy: {descending: Block_Time}
) {
Block {
Time
Slot
}
Transaction {
Hash
}
Trade {
Buy {
Currency { MintAddress }
Amount
PriceInUSD
}
Sell {
Currency { MintAddress }
Amount
}
Dex { ProtocolName }
}
}
}
}
Play ボタンをクリックするか、Ctrl+Enter / Cmd+Enter で実行します。
cURL での同等の呼び出し
ターミナルから同じクエリを実行できます。
curl -X POST "https://graphql.chainstream.io/graphql" \
-H "Content-Type: application/json" \
-H "X-API-KEY: your_api_key" \
-d '{
"query": "{ Solana { DEXTrades(limit: {count: 10}, orderBy: {descending: Block_Time}) { Block { Time Slot } Transaction { Hash } Trade { Buy { Currency { MintAddress } Amount PriceInUSD } Sell { Currency { MintAddress } Amount } Dex { ProtocolName } } } } }"
}'
レスポンス例
成功時のレスポンスの例です。
{
"data": {
"Solana": {
"DEXTrades": [
{
"Block": {
"Time": "2025-03-27T10:32:18Z",
"Slot": 325847291
},
"Transaction": {
"Hash": "4vKzR8g...x9bQ"
},
"Trade": {
"Buy": {
"Currency": { "MintAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" },
"Amount": 1523.45,
"PriceInUSD": 1.0001
},
"Sell": {
"Currency": { "MintAddress": "So11111111111111111111111111111111111111112" },
"Amount": 10.237
},
"Dex": { "ProtocolName": "Raydium" }
}
},
{
"Block": {
"Time": "2025-03-27T10:32:17Z",
"Slot": 325847289
},
"Transaction": {
"Hash": "3mPqW7n...kR2J"
},
"Trade": {
"Buy": {
"Currency": { "MintAddress": "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263" },
"Amount": 48291037.12,
"PriceInUSD": 0.00003152
},
"Sell": {
"Currency": { "MintAddress": "So11111111111111111111111111111111111111112" },
"Amount": 10.5
},
"Dex": { "ProtocolName": "Orca" }
}
}
]
}
},
"extensions": {
"credits": {
"total": 50,
"cubes": [
{ "cube": "DEXTrades", "credits": 50, "row_count": 10 }
]
}
}
}
レスポンスの読み方
レスポンスはクエリの構造と対応します。
| パス | 説明 |
|---|
Block.Time | ISO 8601 形式のブロックタイムスタンプ |
Block.Slot | Solana のスロット番号(Solana 固有) |
Transaction.Hash | オンチェーンのトランザクションハッシュ |
Trade.Buy.Currency.MintAddress | 買い側トークンのアドレス |
Trade.Buy.Amount | 買い側トークンの数量 |
Trade.Buy.PriceInUSD | 取引時点での買い側トークンの USD 価格 |
Trade.Sell.Currency.MintAddress | 売り側トークンのアドレス |
Trade.Sell.Amount | 売り側トークンの数量 |
Trade.Dex.ProtocolName | 取引を実行した DEX プロトコル(例: Raydium、Orca、PancakeSwap) |
extensions.credits オブジェクトは、このクエリで消費した課金クレジット数と残高を示します。詳しくは Billing & Credits を参照してください。
クエリを変えてみる
動作するクエリが得られたら、次の変更を試してください。
Solana の代わりに EVM(network: eth) { ... } を使い、Ethereum の DEX 取引(Uniswap、SushiSwap など)を問い合わせます。
次のステップ
スキーマとデータモデル
25 の Cube、フィールド型、フィルタ演算子、集約関数を確認。
クエリ例
DEX 取引、転送、OHLC、ホルダーなどの実践的なクエリ例を参照。
GraphQL IDE ガイド
IDE の使い方 — クエリテンプレート、保存クエリ、Variables パネル、コードエクスポート。
課金とクレジット
クエリクレジットの計算方法とコスト最適化。