> ## 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.

# チェイングループ

> Cubes が EVM、Solana、Trading Chain Groups にどのように整理されているか

## 概要

ChainStream GraphQL は 25 個の Cube を 3 つの **Chain Group（チェーングループ）** に分類しています。各グループはブロックチェーンのエコシステムを表し、利用可能な Cube、`network` パラメータの挙動、チェーン固有フィールドの有無を決めます。

```graphql theme={null}
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         |

<Warning>
  **Polygon のデータ提供状況:** 現時点で Polygon でデータが利用できるのは **予測市場（Prediction Markets）** 系の Cube（`PredictionTrades`、`PredictionManagements`、`PredictionSettlements`）のみです。その他の Cube（DEXTrades、Blocks、Transfers など）は展開中であり、クエリするとエラーになる場合があります。
</Warning>

### 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)*

### クエリ例

```graphql theme={null}
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 のオーダーブックイベント（指値注文、キャンセル、約定）

### クエリ例

```graphql theme={null}
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`          | どちらも全チェーンで利用可 |

<Tip>
  つまり **単一のクエリテンプレート** を、フィールド名を変えずに全チェーンで使えます。例: Solana と EVM の両方で `Currency { MintAddress }` が動作します。
</Tip>

***

## Trading

**Trading** グループは **クロスチェーンで事前集計済み** の取引分析を提供します。対応チェーンのデータを統合したマテリアライズドビューにまとめ、フィルタ用の `chain` 次元を持ちます。

### Cubes

* `Pairs` — OHLC ローソク足（始値／高値／安値／終値、出来高、取引件数）
* `Tokens` — トークン別の取引統計（出来高、買い／売り内訳、ユニークトレーダー数）

### EVM／Solana グループとの主な違い

1. **`network` 引数なし** — Trading はチェーン横断でデータをまとめます。ネットワークで絞り込むにはデータ側の `chain` 次元を使います。
2. **クロスチェーン** — 1 回のクエリで `sol`、`eth`、`bsc` などを同時に返せます。
3. **事前集計** — DWM レイヤーから 1 分粒度でマテリアライズされています。

### 例: クロスチェーン OHLC

```graphql theme={null}
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 }
    }
  }
}
```

### 例: チェーン別トークン取引統計

```graphql theme={null}
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` 対応** | あり                                                             | あり                                                       | あり           |

***

## 関連ドキュメント

<CardGroup cols={2}>
  <Card title="データ Cube" icon="cubes" href="/jp/graphql/schema/cubes">
    25 個すべての Cube のフィールド構造とユースケースの詳細。
  </Card>

  <Card title="データセットと事前集計" icon="database" href="/jp/graphql/schema/dataset-aggregates">
    データソースの範囲と事前集計の挙動の制御。
  </Card>
</CardGroup>
