ChainStream GraphQL は 25 個の Cube を 3 つの Chain Group(チェーングループ) に分類しています。各グループはブロックチェーンのエコシステムを表し、利用可能な Cube、network パラメータの挙動、チェーン固有フィールドの有無を決めます。
type ChainStream {
EVM(network: Network!, dataset: Dataset, aggregates: Aggregates) { ... }
Solana(network: SolanaNetwork, dataset: Dataset, aggregates: Aggregates) { ... }
Trading(dataset: Dataset, aggregates: Aggregates) { ... }
}
EVM
EVM グループには、EVM 互換チェーン向けの Cube が含まれます。どのチェーンを問い合わせるかを指定するために、network 引数が 必須 です。
利用可能なネットワーク
| ネットワーク ID | ブロックチェーン |
|---|
eth | Ethereum |
bsc | BNB Chain (BSC) |
polygon | Polygon |
Polygon のデータ提供状況: 現時点で Polygon でデータが利用できるのは 予測市場(Prediction Markets) 系の Cube(PredictionTrades、PredictionManagements、PredictionSettlements)のみです。その他の Cube(DEXTrades、Blocks、Transfers など)は展開中であり、クエリするとエラーになる場合があります。
Cubes
Solana と共通:
DEXTrades, DEXTradeByTokens, Transfers, BalanceUpdates, DEXPoolEvents, TokenSupplyUpdates, Blocks, Transactions, TransactionBalances, DEXPools, TokenHolders, WalletTokenPnL
EVM のみ:
Events — スマートコントラクトのイベントログ(デコード済みトピックとデータ)
Calls — 内部コールトレース(CALL、DELEGATECALL、CREATE など)
MinerRewards — ブロック報酬の内訳(静的・動的・アンクル・バーン手数料)
DEXPoolSlippages — プール価格のスリッページ分析
Uncles — アンクルブロックデータ(主に Ethereum PoW 時代の履歴)
PredictionTrades — 予測市場の取引 (主に Polygon)
PredictionManagements — 予測市場の管理イベント (主に Polygon)
PredictionSettlements — 予測市場の決済 (主に Polygon)
クエリ例
query {
EVM(network: eth, dataset: combined) {
DEXTrades(
limit: {count: 10}
orderBy: {descending: Block_Time}
) {
Block { Time Number }
Transaction { Hash }
Trade {
Buy { Currency { SmartContract Symbol } Amount PriceInUSD }
Sell { Currency { SmartContract Symbol } Amount }
Dex { ProtocolName }
}
}
}
}
Solana
Solana グループには Solana 向けの Cube が含まれます。network 引数が利用可能で、値は solana です。省略可能で、デフォルトは solana です。
Cubes
EVM と共通:
DEXTrades, DEXTradeByTokens, Transfers, BalanceUpdates, DEXPoolEvents, TokenSupplyUpdates, Blocks, Transactions, TransactionBalances, DEXPools, TokenHolders, WalletTokenPnL
Solana のみ:
Instructions — プログラム命令データ(プログラムアドレス、メソッド、アカウント、ログ)
InstructionBalanceUpdates — 命令レベルでの残高変化
Rewards — バリデータおよびステーキング報酬
DEXOrders — DEX のオーダーブックイベント(指値注文、キャンセル、約定)
クエリ例
query {
Solana(dataset: realtime) {
DEXTrades(
limit: {count: 10}
orderBy: {descending: Block_Time}
) {
Block { Time Slot }
Transaction { Hash }
Trade {
Buy { Currency { MintAddress Symbol } Amount PriceInUSD }
Sell { Currency { MintAddress Symbol } Amount }
Dex { ProgramAddress ProtocolName }
}
}
}
}
チェーン間のフィールド名
下表はチェーンごとの慣用的なフィールド名です。ただし Record 型には 全チェーンのフィールドが和集合として 含まれており、MintAddress と SmartContract はどの Cube の Record にも存在し、同じ実データを返します。どちらの名前も任意のチェーンで使えます。
| 概念 | 慣用(Solana) | 慣用(EVM) | クロスチェーン対応 |
|---|
| トークンアドレス | MintAddress | SmartContract | どちらも全チェーンで利用可 |
| トランザクション ID | Signature / Hash | Hash | どちらも全チェーンで利用可 |
| ブロック識別子 | Slot | Number | どちらも全チェーンで利用可 |
| プログラム/コントラクト | ProgramAddress | SmartContract | どちらも全チェーンで利用可 |
| 手数料支払者 | FeePayer | From | どちらも全チェーンで利用可 |
つまり 単一のクエリテンプレート を、フィールド名を変えずに全チェーンで使えます。例: Solana と EVM の両方で Currency { MintAddress } が動作します。
Trading
Trading グループは クロスチェーンで事前集計済み の取引分析を提供します。対応チェーンのデータを統合したマテリアライズドビューにまとめ、フィルタ用の chain 次元を持ちます。
Cubes
Pairs — OHLC ローソク足(始値/高値/安値/終値、出来高、取引件数)
Tokens — トークン別の取引統計(出来高、買い/売り内訳、ユニークトレーダー数)
EVM/Solana グループとの主な違い
network 引数なし — Trading はチェーン横断でデータをまとめます。ネットワークで絞り込むにはデータ側の chain 次元を使います。
- クロスチェーン — 1 回のクエリで
sol、eth、bsc などを同時に返せます。
- 事前集計 — DWM レイヤーから 1 分粒度でマテリアライズされています。
例: クロスチェーン OHLC
query {
Trading(aggregates: yes) {
Pairs(
where: { Token: { Address: { is: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" } } }
limit: {count: 60}
orderBy: {descending: Block_Time}
) {
Token { Address }
Market { Network }
Interval { Time }
Price { Ohlc { Open High Low Close } }
Volume { Usd Native }
Stats { TradeCount BuyCount SellCount }
}
}
}
例: チェーン別トークン取引統計
query {
Trading {
Tokens(
where: {
Token: { Address: { is: "0xdac17f958d2ee523a2206206994597c13d831ec7" } }
Market: { Network: { is: "eth" } }
}
limit: {count: 30}
orderBy: {descending: Block_Time}
) {
Interval { Time }
Volume { Usd BuyVolumeUSD SellVolumeUSD }
Stats { TradeCount UniqueBuyers UniqueSellers }
}
}
}
Chain Group の比較
| 項目 | EVM | Solana | Trading |
|---|
network 引数 | 必須(eth、bsc、polygon) | 任意(solana、デフォルト solana) | 不要(クロスチェーン) |
| 固有の Cube | Events、Calls、MinerRewards、Uncles、DEXPoolSlippages、Prediction* | Instructions、InstructionBalanceUpdates、Rewards、DEXOrders | Pairs、Tokens |
| データ粒度 | イベント単位(DWD)+集計(DWM/DWS) | イベント単位+命令レベル | 事前集計(DWM) |
dataset 対応 | あり(ほとんどの Cube) | あり(ほとんどの Cube) | あり |
aggregates 対応 | あり | あり | あり |
関連ドキュメント
データ Cube
25 個すべての Cube のフィールド構造とユースケースの詳細。
データセットと事前集計
データソースの範囲と事前集計の挙動の制御。