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

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.

DEXTrades Cube には、取引ごとの DEX スワップイベントが格納されています。利用可能な中で最も粒度の細かいトレーディングデータです。個別の取引の取得、ウォレット活動の分析、トークン価格の追跡、トップトレーダーの特定などに使えます。
以下の例はすべて network: sol(Solana)を使用しています。他の対応チェーンでは ethbscpolygon に置き換えてください。

最新の DEX 取引を取得するには?

Solana 上の直近 10 件の DEX 取引を取得します。ブロック情報、トランザクションハッシュ、売買の詳細、DEX プロトコルを含みます。
query {
  Solana {
    DEXTrades(
      limit: {count: 10}
      orderBy: {descending: Block_Time}
    ) {
      Block { Time, Slot }
      Transaction { Hash }
      Trade {
        Buy {
          Currency { MintAddress }
          Amount
          PriceInUSD
          Account { Owner }
        }
        Sell {
          Currency { MintAddress }
          Amount
          Account { Owner }
        }
        Dex { ProgramAddress, ProtocolName }
      }
      Pool { Address }
    }
  }
}
GraphQL IDE で開く — 上記クエリを貼り付けて、オートコンプリートとスキーマ探索付きで対話的に実行できます。
フィールド説明
Block.Timeブロックのタイムスタンプ(ISO 8601)
Block.SlotSolana のスロット番号(Solana 固有)
Transaction.Hashオンチェーンのトランザクションハッシュ — エクスプローラーで tx を調べる際に使用
Trade.Buy.Currency.MintAddress買い側トークンのアドレス
Trade.Buy.PriceInUSD取引時点での買いトークンの USD 価格
Trade.Buy.Account.Owner買い手ウォレットのアドレス
Trade.Dex.ProtocolNameDEX 名(例: Raydium、Orca、Jupiter)
Pool.Address取引が実行された流動性プールのアドレス
  • チェーンの切り替え: network: solnetwork: ethnetwork: bscnetwork: polygon に置き換える
  • 件数の増加: count: 10 を最大 10000 まで変更する
  • 時間フィルター: where: {Block: {Time: {after: "2025-03-01T00:00:00Z"}}} を追加して期間を絞る
  • DEX で絞り込み: where: {Trade: {Dex: {ProtocolName: {is: "Raydium"}}}} を追加して特定プロトコルに限定する

特定トークンの取引を取得するには?

tokenAddress セレクターにトークンアドレスを渡して、そのトークンの取引を取得します。
query {
  Solana {
    DEXTrades(
      limit: {count: 10}
      tokenAddress: {is: "TOKEN_ADDRESS"}
      orderBy: {descending: Block_Time}
    ) {
      Block { Time }
      Trade {
        Buy { Amount, PriceInUSD, Account { Owner } }
        Sell { Currency { MintAddress }, Amount }
        Dex { ProtocolName }
      }
      Pool { Address }
    }
  }
}
TOKEN_ADDRESS を実際のトークン mint アドレスに置き換えてください(例: Solana 上の USDC は EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v)。名前からアドレスを調べる場合は トークンメタデータ を参照してください。
フィールド説明
Trade.Buy.Amount買い付けたトークン数量
Trade.Buy.PriceInUSD取引時点のトークン単価(USD)
Trade.Buy.Account.Owner買いを実行したウォレット
Trade.Sell.Currency.MintAddress売却側トークンのアドレス(ペアのもう一方)
Trade.Dex.ProtocolNameDEX プロトコル名
  • 最小数量でフィルター: where: {Trade: {Buy: {Amount: {gt: 1000}}}} を追加して大口取引のみ表示
  • 価格帯でフィルター: where: {Trade: {Buy: {PriceInUSD: {gte: 0.001, lte: 1.0}}}} で価格レンジを指定
  • 疑わしい取引の除外: デフォルトで IsSuspect = false フィルターが適用済み — bot/MEV 取引はすでに除外されています

ウォレットの全取引を取得するには?

特定ウォレットアドレスによるすべての取引を取得します。
query {
  Solana {
    DEXTrades(
      limit: {count: 20}
      walletAddress: {is: "WALLET_ADDRESS"}
      orderBy: {descending: Block_Time}
    ) {
      Block { Time }
      Trade {
        Buy { Currency { MintAddress }, Amount, PriceInUSD }
        Sell { Currency { MintAddress }, Amount }
        Dex { ProtocolName }
      }
      Transaction { Hash, FeeInNative }
    }
  }
}
walletAddress セレクターは、指定ウォレットが買い手または売り手のいずれかである取引にマッチします。
フィールド説明
Trade.Buy.Currency.MintAddress買ったトークン
Trade.Sell.Currency.MintAddress売ったトークン
Transaction.FeeInNativeネイティブトークン建てのガス手数料(Solana では SOL)
  • 単一トークンに絞る: tokenAddress: {is: "TOKEN_ADDRESS"} と組み合わせて、このウォレットの特定トークン取引のみ表示
  • 時間ウィンドウ: where: {Block: {Time: {after: "2025-03-01T00:00:00Z"}}} を追加して直近の取引に限定
  • 件数の増加: count: 100 に設定してより長い履歴を取得(最大 10,000)

トークンの現在価格を取得するには?

最新の非疑義取引から、トークンの最新価格を取得します。
query {
  Solana {
    DEXTrades(
      limit: {count: 1}
      tokenAddress: {is: "TOKEN_ADDRESS"}
      where: {IsSuspect: {eq: false}}
      orderBy: {descending: Block_Time}
    ) {
      Trade {
        Buy { PriceInUSD, PriceInNative }
      }
      Block { Time }
    }
  }
}
フィールド説明
Trade.Buy.PriceInUSD直近取引からの USD 価格
Trade.Buy.PriceInNativeチェーンのネイティブトークン(SOL、ETH、BNB)建ての価格
Block.Time取引のタイムスタンプ — 価格の新しさを示す
  • 複数価格: count を増やして直近価格の系列を取得し平均化に利用
  • マルチチェーン: network: eth を使うと Ethereum 上の同一トークン価格を取得(そのチェーンに存在する場合)
時系列で信頼できるトークン価格が必要な場合は、代わりに Pairs Cube の利用を検討してください — 1 分足の open/high/low/close を事前計算したローソク足データを提供します。

トークンのトップトレーダーを見つけるには?

集約を使ってトークンのトップトレーダーを取得します。このクエリは買い手ウォレットごとに取引をグループ化し、買い件数とボリュームの合計を返します。
query {
  Solana {
    DEXTrades(
      limit: {count: 100}
      tokenAddress: {is: "TOKEN_ADDRESS"}
      where: {IsSuspect: {eq: false}}
    ) {
      Trade {
        Buy {
          Account { Owner }
          Amount
          PriceInUSD
        }
      }
      count
      sum(of: Trade_Buy_Amount)
    }
  }
}
フィールド説明
Trade.Buy.Account.Ownerウォレットアドレス(グループ化キー)
countこのウォレットの取引件数
sum(of: Trade_Buy_Amount)このウォレットが買い付けたトークン合計
  • ボリュームでソート: 結果はディメンションフィールドでグループ化されます — ディメンションを減らすとより高レベルの集約になります
  • 期間付きランキング: where: {Block: {Time: {after: "2025-03-01T00:00:00Z"}}} を追加して特定期間に限定
  • 小口取引の除外: whereTrade: {Buy: {Amount: {gt: 100}}} を追加
メトリクスフィールド(countsum)をディメンションフィールドと一緒に指定すると、API は選択したディメンションで結果を自動的にグループ化します。詳細は Metrics & Aggregation を参照してください。

マルチチェーンの例

同じクエリは対応チェーンすべてで動作します — network パラメータを変更するだけです。
query {
  Solana {
    DEXTrades(
      limit: {count: 5}
      orderBy: {descending: Block_Time}
    ) {
      Block { Time, Slot }
      Trade {
        Buy { Currency { MintAddress }, PriceInUSD }
        Dex { ProtocolName }
      }
    }
  }
}

次のステップ

送金(Transfers)

オンチェーンのトークン送金データをクエリします。

残高とホルダー

ウォレット残高、残高履歴、トップホルダーを調べます。

プールと流動性

DEX プールと流動性データを探索します。

OHLC と統計

ローソク足、取引統計、時価総額、トークンメタデータを取得します。