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

# プールと流動性

> DEX プールと流動性データのクエリ例

このページでは、DEX プールと流動性分析向けの Cube を扱います。

* **DEXPoolEvents**（DWD）— 流動性の追加/削除イベントと、イベントごとのリザーブ・価格
* **DEXPools**（DWS）— プールの**スナップショット**（現在の流動性と価格、定期的に更新）
* **TokenSupplyUpdates**（DWD）— トークン供給量、時価総額、FDV の更新

<Note>
  例では **Solana** と **EVM** の [Chain Groups](/jp/graphql/schema/chain-groups) を使用します: Solana は `Solana { ... }`、EVM チェーン（Polygon を含む）は `EVM(network: eth | bsc | polygon) { ... }` です。
</Note>

***

## トークンの流動性プールを取得するには？

スナップショットでトークンが **token A** として掲載されている DEX プールを検索します。資産が token B にしか現れないプールは、`tokenB`（または `where` 句）での 2 回目のクエリが必要です。**イベント単位**でペア文脈が揃った行が欲しい場合は **DEXPoolEvents** を使います。

```graphql theme={null}
query {
  Solana {
    DEXPools(
      limit: {count: 10}
      tokenA: {is: "TOKEN_ADDRESS"}
    ) {
      Pool {
        Address
        ProgramAddress
        TokenAAddress
        TokenBAddress
        LiquidityUSD
        PriceAtoB
        PriceBtoA
        LastUpdated
      }
    }
  }
}
```

<Tip>
  [GraphQL IDE で開く](https://ide.chainstream.io) — 上記クエリを貼り付けて、オートコンプリートとスキーマ探索付きで対話的に実行できます。
</Tip>

<Tip>
  `TOKEN_ADDRESS` をトークンの mint（Solana）またはコントラクトアドレス（EVM）に置き換えてください。トークンがクォート側にあるプールも含めるには、`tokenB: {is: "TOKEN_ADDRESS"}` で繰り返しクエリします。
</Tip>

<AccordionGroup>
  <Accordion title="主要フィールド">
    | フィールド                 | 説明                      |
    | :-------------------- | :---------------------- |
    | `Pool.Address`        | 流動性プール / マーケットのアドレス     |
    | `Pool.ProgramAddress` | DEX プログラムまたはファクトリのアドレス  |
    | `Pool.TokenAAddress`  | ベース側トークンのアドレス           |
    | `Pool.TokenBAddress`  | クォート側トークンのアドレス          |
    | `Pool.LiquidityUSD`   | プール全体の流動性（USD、スナップショット） |
    | `Pool.LastUpdated`    | このスナップショット行が最後に更新された時刻  |
  </Accordion>

  <Accordion title="カスタマイズのヒント">
    * **流動性でフィルター**: `where: {Pool: {LiquidityUSD: {gt: 10000}}}` で USD 深さの閾値以上のプールのみ
    * **特定 DEX**: `where: {Pool: {ProgramAddress: {is: "DEX_PROGRAM_OR_FACTORY_ADDRESS"}}}`
    * **より多くのプール**: `count` を増やしてトークンに対する追加プールを探索
    * **イベントごとのリザーブ**: **DEXPoolEvents** で `tokenAddress` / `poolAddress` と `orderBy: {descending: Block_Time}` を使い、追加/削除履歴を取得
  </Accordion>
</AccordionGroup>

***

## 特定プールの詳細を取得するには？

アドレスで **最新スナップショット**を 1 件読み取ります。**DEXPools** は行ごとのブロックタイムラインは提供しません — 履歴のリザーブ系列は **DEXPoolEvents** を使います。

```graphql theme={null}
query {
  Solana {
    DEXPools(
      limit: {count: 1}
      poolAddress: {is: "POOL_ADDRESS"}
    ) {
      Pool {
        Address
        TokenAAddress
        TokenBAddress
        ProgramAddress
        LiquidityUSD
        PriceAtoB
        PriceBtoA
        LastUpdated
      }
    }
  }
}
```

<AccordionGroup>
  <Accordion title="主要フィールド">
    | フィールド                                       | 説明                        |
    | :------------------------------------------ | :------------------------ |
    | `Pool.TokenAAddress` / `Pool.TokenBAddress` | ペアのトークンアドレス               |
    | `Pool.LiquidityUSD`                         | 合計流動性（USD、スナップショット）       |
    | `Pool.LastUpdated`                          | このプールのスナップショットが最後に更新された時刻 |
  </Accordion>

  <Accordion title="カスタマイズのヒント">
    * **リザーブ履歴**: **DEXPoolEvents** で `poolAddress: {is: "POOL_ADDRESS"}` と `orderBy: {descending: Block_Time}`
    * **イベントの期間**: **DEXPoolEvents** で `where: {Block: {Time: {since: "2025-03-01T00:00:00Z"}}}` を追加して追加/削除を期間限定
  </Accordion>
</AccordionGroup>

<Info>
  `poolAddress` セレクターは `Pool.Address` でフィルターします。**DEXPools**（スナップショット）と **DEXPoolEvents**（イベント）の両方で利用できます。
</Info>

***

## プールをランキングしたりスナップショット流動性を読むには？

**DEXPools**（DWS）は **現在状態**の行を保持します（通常数分ごとに更新）。`LiquidityUSD` でプールをランキングし、生イベントを走査せずに DEX プログラムを比較するのに使います。

```graphql theme={null}
query {
  Solana {
    DEXPools(
      limit: {count: 20}
      tokenA: {is: "TOKEN_ADDRESS"}
    ) {
      Pool {
        Address
        ProgramAddress
        TokenAAddress
        TokenBAddress
        LiquidityUSD
        LastUpdated
      }
    }
  }
}
```

<AccordionGroup>
  <Accordion title="主要フィールド">
    | フィールド                                       | 説明                 |
    | :------------------------------------------ | :----------------- |
    | `Pool.Address`                              | プールアドレス            |
    | `Pool.ProgramAddress`                       | DEX プログラム / ファクトリ  |
    | `Pool.TokenAAddress` / `Pool.TokenBAddress` | ペアのトークン            |
    | `Pool.LiquidityUSD`                         | スナップショット時の流動性（USD） |
    | `Pool.LastUpdated`                          | スナップショットの鮮度        |
  </Accordion>

  <Accordion title="カスタマイズのヒント">
    * **流動性でランキング**: クライアント側で `LiquidityUSD` でソートするか、スキーマでプールスナップショットの `orderBy` があれば利用
    * **アクティブなプール**: `LastUpdated` が新しいプールを優先
    * **DEX の比較**: `Pool.ProgramAddress` でグループ化またはフィルター
  </Accordion>
</AccordionGroup>

<Tip>
  リザーブと各流動性イベントの**時系列**には **DEXPoolEvents**（DWD）が適した Cube です。**最新**のプール状態と発見には **DEXPools**（DWS）が最適化されています。
</Tip>

***

## トークン供給量と時価総額を取得するには？

供給イベントに紐づく供給量、時価総額、価格、FDV には **TokenSupplyUpdates** を使います。

```graphql theme={null}
query {
  Solana {
    TokenSupplyUpdates(
      limit: {count: 1}
      tokenAddress: {is: "TOKEN_ADDRESS"}
      orderBy: {descending: Block_Time}
    ) {
      TokenSupplyUpdate {
        Currency { MintAddress, Decimals }
        PostBalance
        MarketCapInUSD
        PriceInUSD
        FDVInUSD
        TotalSupply
      }
      Block { Time }
    }
  }
}
```

<AccordionGroup>
  <Accordion title="主要フィールド">
    | フィールド                                    | 説明                 |
    | :--------------------------------------- | :----------------- |
    | `TokenSupplyUpdate.Currency.MintAddress` | トークンアドレス           |
    | `TokenSupplyUpdate.Currency.Decimals`    | トークンの小数桁           |
    | `TokenSupplyUpdate.PostBalance`          | イベント後の現在供給量        |
    | `TokenSupplyUpdate.MarketCapInUSD`       | USD 建ての時価総額        |
    | `TokenSupplyUpdate.PriceInUSD`           | 供給イベント時点のトークン価格    |
    | `TokenSupplyUpdate.FDVInUSD`             | フルダイリューション評価額（FDV） |
    | `TokenSupplyUpdate.TotalSupply`          | トークン総供給量           |
  </Accordion>

  <Accordion title="カスタマイズのヒント">
    * **供給の履歴**: `count` を増やして供給が時間とともにどう変わったか（mint/burn）を確認
    * **時価総額の履歴**: 複数の供給更新をクエリして時価総額を時系列で可視化
    * **価格との突合**: 時価総額計算の検証に `PriceInUSD` と `TotalSupply` を併用
  </Accordion>
</AccordionGroup>

<Info>
  このページの **TokenSupplyUpdates** は、供給に連動した時価総額・価格・FDV 用です。追加のトークンメトリクスとサマリーは [OHLC と統計](/jp/graphql/examples/ohlc-stats) を参照してください。
</Info>

***

## マルチチェーンの例

<Tabs>
  <Tab title="Solana">
    ```graphql theme={null}
    query {
      Solana {
        DEXPools(
          limit: {count: 5}
          tokenA: {is: "TOKEN_ADDRESS"}
        ) {
          Pool { Address, LiquidityUSD, LastUpdated }
        }
      }
    }
    ```
  </Tab>

  <Tab title="Ethereum">
    ```graphql theme={null}
    query {
      EVM(network: eth) {
        DEXPools(
          limit: {count: 5}
          tokenA: {is: "TOKEN_ADDRESS"}
        ) {
          Pool { Address, LiquidityUSD, LastUpdated }
        }
      }
    }
    ```
  </Tab>

  <Tab title="BSC">
    ```graphql theme={null}
    query {
      EVM(network: bsc) {
        DEXPools(
          limit: {count: 5}
          tokenA: {is: "TOKEN_ADDRESS"}
        ) {
          Pool { Address, LiquidityUSD, LastUpdated }
        }
      }
    }
    ```
  </Tab>

  <Tab title="Polygon">
    ```graphql theme={null}
    query {
      EVM(network: polygon) {
        DEXPools(
          limit: {count: 5}
          tokenA: {is: "TOKEN_ADDRESS"}
        ) {
          Pool { Address, LiquidityUSD, LastUpdated }
        }
      }
    }
    ```
  </Tab>
</Tabs>

***

## 次のステップ

<CardGroup cols={2}>
  <Card title="DEX 取引" icon="arrow-right-arrow-left" href="/jp/graphql/examples/dex-trades">
    DEX のトレーディングデータ — トークン取引、ウォレット活動、トップトレーダーをクエリします。
  </Card>

  <Card title="送金（Transfers）" icon="paper-plane" href="/jp/graphql/examples/transfers">
    ウォレット間のオンチェーン送金を追跡します。
  </Card>

  <Card title="残高とホルダー" icon="wallet" href="/jp/graphql/examples/balance-holders">
    ウォレット残高、残高履歴、トップホルダーを調べます。
  </Card>

  <Card title="OHLC と統計" icon="chart-candlestick" href="/jp/graphql/examples/ohlc-stats">
    ローソク足、取引統計、時価総額、トークンメタデータを取得します。
  </Card>
</CardGroup>
