メインコンテンツへスキップ
DEXTrades Cubeはトレード単位のDEXスワップイベントを含みます — 利用可能な最も細粒度のトレーディングデータです。個別のトレードのクエリ、ウォレットアクティビティの分析、トークン価格の追跡、トップトレーダーの検索に使用できます。
以下のすべての例はnetwork: sol(Solana)を使用しています。他の対応チェーンの場合はethbscpolygonに置き換えてください。

最新のDEXトレードを取得するには?

Solana上の最新10件のDEXトレードを、ブロック情報、トランザクションハッシュ、売買の詳細、DEXプロトコルを含めて取得します。
query {
  DEXTrades(
    network: sol
    limit: {count: 10}
    orderBy: Block_Time_DESC
  ) {
    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オンチェーントランザクションハッシュ — エクスプローラーでの検索に使用
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 {
  DEXTrades(
    network: sol
    limit: {count: 10}
    tokenAddress: {is: "TOKEN_ADDRESS"}
    orderBy: Block_Time_DESC
  ) {
    Block { Time }
    Trade {
      Buy { Amount, PriceInUSD, Account { Owner } }
      Sell { Currency { MintAddress }, Amount }
      Dex { ProtocolName }
    }
    Pool { Address }
  }
}
TOKEN_ADDRESSを実際のトークンミントアドレス(例:SolanaのUSDCの場合EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v)に置き換えてください。名前によるアドレス検索はトークンメタデータを参照してください。
フィールド説明
Trade.Buy.Amount購入されたトークンの数量
Trade.Buy.PriceInUSDトレード時のトークン単価
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フィルタがデフォルトで適用されます — ボット/MEVトレードは既に除外済み

ウォレットのすべてのトレードを取得するには?

特定のウォレットアドレスのすべてのトレードを取得します。
query {
  DEXTrades(
    network: sol
    limit: {count: 20}
    walletAddress: {is: "WALLET_ADDRESS"}
    orderBy: Block_Time_DESC
  ) {
    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 {
  DEXTrades(
    network: sol
    limit: {count: 1}
    tokenAddress: {is: "TOKEN_ADDRESS"}
    where: {IsSuspect: {eq: false}}
    orderBy: Block_Time_DESC
  ) {
    Trade {
      Buy { PriceInUSD, PriceInNative }
    }
    Block { Time }
  }
}
フィールド説明
Trade.Buy.PriceInUSD最新トレードからのUSD価格
Trade.Buy.PriceInNativeチェーンのネイティブトークン(SOL、ETH、BNB)建ての価格
Block.Timeトレードのタイムスタンプ — 価格がどれだけ最新かを示す
  • 複数価格: countを増やして平均化のための最近の価格系列を取得
  • クロスチェーン: network: ethを使用してEthereumでの同じトークンの価格を取得(そのチェーンに存在する場合)
経時的な信頼性の高いトークン価格データには、代わりにPairs Cubeの使用を検討してください — 分単位の始値/高値/安値/終値の事前計算されたローソク足データを提供します。

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

集計を使用してトークンのトップトレーダーを見つけます。このクエリはトレードを買い手ウォレットごとにグループ化し、合計購入数とボリュームを返します。
query {
  DEXTrades(
    network: sol
    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"}}}を追加して特定期間に限定
  • 小口トレードを除外: where句にTrade: {Buy: {Amount: {gt: 100}}}を追加
メトリクスフィールド(countsum)をディメンションフィールドと一緒に含めると、APIは自動的に選択されたディメンションで結果をグループ化します。詳細はメトリクスと集計をご覧ください。

マルチチェーンの例

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

次のステップ

トランスファー

オンチェーントークントランスファーデータのクエリ。

残高とホルダー

ウォレット残高、残高履歴、トップホルダーの検索。

プールと流動性

DEXプールと流動性データの探索。

OHLCと統計

ローソク足データ、トレード統計、時価総額、トークンメタデータの取得。