メインコンテンツへスキップ
所要時間: 5分

前提条件

始める前に、以下を確認してください:
GraphQL APIはREST Data APIと同じAPIキーを共有します。REST APIのキーを既にお持ちの場合、ここでも再利用できます。

ステップ1:APIキーの取得

  1. ChainStream Dashboardにログイン
  2. Applicationsに移動
  3. Create New Appをクリック(または既存のアプリを選択)
  4. APIキーをコピー

ステップ2:GraphQL IDEを開く

ChainStream GraphQL IDEにアクセスします: IDEは自動補完、シンタックスハイライト、インラインドキュメント、クエリ履歴を提供します。スキーマの探索とクエリの構築に最も素早い方法です。

ステップ3:認証の設定

IDEでHeadersパネル(左下)を開き、APIキーを追加します:
{
  "X-API-KEY": "your_api_key"
}

ステップ4:サンプルクエリの実行

以下のクエリをエディタに貼り付けます。Solanaの最新10件のDEXトレードを取得し、ブロック時間、トランザクションハッシュ、売買トークン情報、金額、USD価格、DEXプロトコル名を含みます。
query {
  DEXTrades(
    network: sol
    limit: {count: 10}
    orderBy: Block_Time_DESC
  ) {
    Block {
      Time
      Slot
    }
    Transaction {
      Hash
    }
    Trade {
      Buy {
        Currency { MintAddress }
        Amount
        PriceInUSD
      }
      Sell {
        Currency { MintAddress }
        Amount
      }
      Dex { ProtocolName }
    }
  }
}
GraphQL IDEで開く — 上記のクエリを貼り付けて、自動補完とスキーマ探索を使ってインタラクティブに実行できます。
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": "{ DEXTrades(network: sol, limit: {count: 10}, orderBy: Block_Time_DESC) { Block { Time Slot } Transaction { Hash } Trade { Buy { Currency { MintAddress } Amount PriceInUSD } Sell { Currency { MintAddress } Amount } Dex { ProtocolName } } } }"
  }'

レスポンスの例

成功したレスポンスは以下のようになります:
{
  "data": {
    "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.TimeISO 8601形式のブロックタイムスタンプ
Block.SlotSolanaスロット番号(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オブジェクトは、このクエリが消費した課金クレジット数と残高を示します。詳細は課金とクレジットをご覧ください。

クエリの変更を試す

動作するクエリができたら、以下の変更を試してみましょう:
network: solnetwork: ethに変更して、EthereumのDEXトレード(Uniswap、SushiSwapなど)をクエリします。
where句を追加して、過去1時間のトレードをフィルタリングします:
DEXTrades(
  network: sol
  limit: {count: 10}
  orderBy: Block_Time_DESC
  where: {Block: {Time: {after: "2025-03-27T09:00:00Z"}}}
) { ... }
トークンミントアドレスでフィルタリングして、特定のトークンのトレードを表示します:
DEXTrades(
  network: sol
  limit: {count: 10}
  orderBy: Block_Time_DESC
  where: {Trade: {Buy: {Currency: {MintAddress: {is: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"}}}}}
) { ... }
DEXプロトコルごとの合計トレード数をカウントします:
DEXTrades(
  network: sol
  where: {Block: {Time: {after: "2025-03-27T00:00:00Z"}}}
) {
  count
  Trade { Dex { ProtocolName } }
}

次のステップ

スキーマとデータモデル

25のCube、フィールドタイプ、フィルタリングオペレータ、集計関数をすべて探索します。

クエリの例

DEXトレード、トランスファー、OHLC、ホルダーなどの実践的なクエリ例を閲覧します。

GraphQL IDEガイド

IDEを使いこなす — クエリテンプレート、保存済みクエリ、変数パネル、コードエクスポート。

課金とクレジット

クエリクレジットの計算方法とコスト最適化の方法を理解します。