メインコンテンツへスキップ

GraphQLエンドポイント

すべてのGraphQLクエリは単一のエンドポイントに送信されます:
https://graphql.chainstream.io/graphql
POSTGETの両方のメソッドがサポートされています。
メソッドContent-Typeユースケース
POSTapplication/jsonすべてのクエリに推奨 — 変数と複雑なクエリをサポート
GETクエリ文字列(?query=...シンプルなクエリ、ブラウザテスト、キャッシュフレンドリー
本番ワークロードにはPOSTを使用してください。GETリクエストはURLにクエリをエンコードするため、長さ制限があり複雑なクエリには不向きです。

認証

X-API-KEYヘッダーにAPIキーを渡して認証します。REST Data APIと同じAPIキーを使用します — 別途の認証情報は不要です。
X-API-KEY: your_api_key
ChainStream DashboardApplicationsCreate New App でAPIキーを取得できます。キーは cs_live_... で始まります。

必須ヘッダー

ヘッダー必須
Content-Typeapplication/jsonはい(POST)
X-API-KEYcs_live_...はい

リクエスト形式

GraphQLリクエストボディは2つのフィールドを持つJSONオブジェクトです:
フィールド説明
querystringGraphQLクエリまたはミューテーション文字列
variablesobject$variable構文でクエリ内で参照されるオプションの変数

POSTの例

curl -X POST "https://graphql.chainstream.io/graphql" \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: your_api_key" \
  -d '{
    "query": "query ($network: Network!) { DEXTrades(network: $network, limit: {count: 5}) { Block { Time } Trade { Buy { Currency { MintAddress } Amount } } } }",
    "variables": { "network": "sol" }
  }'

GETの例

curl -G "https://graphql.chainstream.io/graphql" \
  -H "X-API-KEY: your_api_key" \
  --data-urlencode 'query={ DEXTrades(network: sol, limit: {count: 5}) { Block { Time } } }'

対応ネットワーク

すべてのトップレベルCubeクエリでnetwork引数をenum値として渡します:
Network EnumブロックチェーンChain ID
solSolana
ethEthereum1
bscBNB Chain (BSC)56
# Solana
{ DEXTrades(network: sol, limit: {count: 5}) { ... } }

# Ethereum
{ DEXTrades(network: eth, limit: {count: 5}) { ... } }

# BSC
{ DEXTrades(network: bsc, limit: {count: 5}) { ... } }

レスポンス形式

すべてのレスポンスは以下の構造のJSONです:
{
  "data": {
    "DEXTrades": [
      { "Block": { "Time": "2025-03-27T10:15:30Z" }, "..." : "..." }
    ]
  },
  "extensions": {
    "credits": {
      "total": 50,
      "cubes": [
        { "cube": "DEXTrades", "credits": 50, "row_count": 5 }
      ]
    }
  }
}
フィールド説明
dataクエリ結果 — クエリの形状に一致
errorsバリデーションまたは実行エラーがある場合のみ存在
extensions.credits.totalこのクエリで消費された合計クレジットユニット
extensions.credits.cubesCubeごとの内訳:Cube名、請求クレジット、返却行数
extensions.creditsフィールドはクレジットが消費された場合に含まれます。クレジットの計算方法の詳細は課金とクレジットをご覧ください。

エラーレスポンス

クエリが不正な場合や失敗した場合、レスポンスにはerrors配列が含まれます:
{
  "data": null,
  "errors": [
    {
      "message": "Unknown field 'InvalidField' on type 'DEXTrades'",
      "locations": [{ "line": 3, "column": 5 }]
    }
  ]
}
アプリケーションに統合する前に、GraphQL IDEを使用してクエリをインタラクティブに検証してください。IDEは自動補完とインラインエラーハイライトを提供します。

次のステップ

最初のクエリを実行

IDEまたはcURLからステップバイステップのチュートリアルに従って実際のクエリを実行します。

スキーマを探索

25のCube、フィールドタイプ、フィルタリングオペレータ、集計関数を詳しく見ます。