Skip to main content
This page covers aggregated trading and supply data. The cube names are Pairs and Tokens in the Trading chain group (cross-chain OHLC and trade stats). Market cap and price snapshots over time come from TokenSupplyUpdates under Solana or EVM.
  • Pairs (Trading, DWM) — per-minute candlestick / K-line data (OHLC, volume, trade count)
  • Tokens (Trading, DWM) — per-minute trade statistics with buy/sell breakdown and unique traders
  • TokenSupplyUpdates (Solana / EVM, DWD) — mint/burn events with supply, price, market cap, and FDV fields
  • Token metadata — there is no separate TokenSearch cube; use Token (and related) dimensions on Pairs / Tokens, or other cubes such as DEXPools, TokenHolders, and DEXTradeByTokens for discovery and screening
Trading has no network argument. Filter by chain with where: { Market: { Network: { is: "sol" } } } (or eth, bsc, polygon). Solana and EVM groups use their usual wrappers (Solana { ... }, EVM(network: eth) { ... }).

How do I get K-line (OHLC) candlestick data?

Fetch candlestick data for a token — open, high, low, close prices per minute, plus USD volume and trade count. Use the Pairs cube inside Trading.
query {
  Trading {
    Pairs(
      tokenAddress: { is: "TOKEN_ADDRESS" }
      where: { Market: { Network: { is: "sol" } } }
      limit: { count: 24 }
      orderBy: { descending: Block_Time }
    ) {
      Interval { Time { Start } }
      Token { Address }
      Market { Network }
      Price {
        Ohlc {
          Open
          High
          Low
          Close
        }
      }
      Volume { Usd }
      Stats { TradeCount }
    }
  }
}
Open in GraphQL IDE — paste the query above to run it interactively with auto-complete and schema exploration.
Replace TOKEN_ADDRESS with the token mint or contract address. Each row is one minute bucket — use limit: { count: 60 } for about one hour, count: 1440 for about 24 hours. Omit the Market filter to query across all chains in one result set.
FieldDescription
Interval.Time.StartMinute-bucket start (same as candle time)
Token.AddressToken address
Market.NetworkChain identifier (sol, eth, bsc, …)
Price.Ohlc.OpenOpening price for the interval
Price.Ohlc.HighHighest price during the interval
Price.Ohlc.LowLowest price during the interval
Price.Ohlc.CloseClosing price for the interval
Volume.UsdTotal USD volume in this interval
Stats.TradeCountNumber of trades in this interval
  • Longer timeframes: Request more rows with limit, or aggregate client-side; candles are stored at minute granularity
  • Volume filter: e.g. where: { Volume: { Usd: { gt: 100 } }, Market: { Network: { is: "sol" } } } to skip low-volume intervals
  • Time range: e.g. where: { Block: { Time: { since: "2026-03-27T00:00:00Z" } }, Market: { Network: { is: "sol" } } }
The Pairs cube is a DWM (aggregated) model — data is pre-computed per minute. It is much faster than scanning raw trades for chart data.

How do I get trade statistics for a token?

Get per-minute trade statistics with buy/sell counts, unique buyer/seller counts, and volume. Use the Tokens cube inside Trading.
query {
  Trading {
    Tokens(
      tokenAddress: { is: "TOKEN_ADDRESS" }
      where: { Market: { Network: { is: "sol" } } }
      limit: { count: 24 }
      orderBy: { descending: Block_Time }
    ) {
      Interval { Time { Start } }
      Token { Address }
      Market { Network }
      Stats {
        TradeCount
        BuyCount
        SellCount
        UniqueBuyers
        UniqueSellers
      }
      Volume { Usd }
    }
  }
}
FieldDescription
Interval.Time.StartMinute-bucket start (same as candle time)
Stats.TradeCountTotal trades in this interval
Stats.BuyCountBuy-side trades
Stats.SellCountSell-side trades
Volume.UsdTotal USD volume
Stats.UniqueBuyersDistinct buyer wallets
Stats.UniqueSellersDistinct seller wallets
  • Buy/sell pressure: Compare Stats.BuyCount vs Stats.SellCount
  • Unique traders: Stats.UniqueBuyers and Stats.UniqueSellers show whether volume is broad or concentrated
  • Activity heatmap: Query a full day (count: 1440) and chart by Interval.Time.Start (or Block.Time)
  • Buy/sell volume: The Tokens record also exposes Volume.BuyVolumeUSD and Volume.SellVolumeUSD when you need USD split
Combine Pairs and Tokens for the same token, chain, and time window to build dashboards — OHLC alongside flow and participant metrics.

How do I get market cap, price, and supply over time?

The legacy TokenMarketCap summary cube is not used in the current schema. Use TokenSupplyUpdates (Solana or EVM): each row reflects a supply-affecting event with TokenSupplyUpdate metrics including price, market cap, FDV, and total supply.

Solana

query {
  Solana {
    TokenSupplyUpdates(
      tokenAddress: { is: "TOKEN_ADDRESS" }
      limit: { count: 24 }
      orderBy: { descending: Block_Time }
    ) {
      Block { Time }
      TokenSupplyUpdate {
        Currency {
          MintAddress
          Decimals
          Symbol
          Name
        }
        PriceInUSD
        MarketCapInUSD
        TotalSupply
        FDVInUSD
        PostBalance
      }
      Transaction { Signature }
    }
  }
}

EVM (Ethereum example)

query {
  EVM(network: eth) {
    TokenSupplyUpdates(
      tokenAddress: { is: "TOKEN_ADDRESS" }
      limit: { count: 24 }
      orderBy: { descending: Block_Time }
    ) {
      Block { Time }
      TokenSupplyUpdate {
        Currency {
          MintAddress
          Decimals
          Symbol
          Name
        }
        PriceInUSD
        MarketCapInUSD
        TotalSupply
        FDVInUSD
        PostBalance
      }
      Transaction { Hash }
    }
  }
}
FieldDescription
Block.TimeEvent time
TokenSupplyUpdate.Currency.*Token identity (mint/contract, decimals, symbol, name)
TokenSupplyUpdate.PriceInUSDPrice in USD at this update
TokenSupplyUpdate.MarketCapInUSDMarket capitalization
TokenSupplyUpdate.TotalSupplyTotal supply
TokenSupplyUpdate.FDVInUSDFully diluted valuation
TokenSupplyUpdate.PostBalanceSupply-related balance after the event
  • Latest snapshot: limit: { count: 1 } with orderBy: { descending: Block_Time }
  • Compare chains: Run the same shape under Solana and EVM(network: bsc) (or other supported networks)
  • More context: See also Pools & Liquidity for supply and pool-related examples
TokenSupplyUpdates is DWD (event-level). It is the right place for historical valuation and supply changes tied to mint/burn activity, rather than a single static “market cap” summary row.

Where is token search / metadata?

The TokenSearch cube is not part of the current API. For token context:
  • Pairs and Tokens expose Token dimensions (e.g. Token.Address) alongside OHLC and stats — use them when you already know the address and want aggregated trading data.
  • For richer metadata, holder counts, pools, or discovery, use cubes such as DEXPools, TokenHolders, or DEXTradeByTokens under Solana or EVM, depending on your chain.

Multi-Chain Examples

query {
  Trading {
    Pairs(
      tokenAddress: { is: "TOKEN_ADDRESS" }
      where: { Market: { Network: { is: "sol" } } }
      limit: { count: 10 }
      orderBy: { descending: Block_Time }
    ) {
      Interval { Time { Start } }
      Price {
        Ohlc {
          Open
          Close
        }
      }
      Volume { Usd }
    }
  }
}

Next Steps

DEX Trades

Query DEX trading data — token trades, wallet activity, and top traders.

Transfers

Track on-chain token transfers between wallets.

Balances & Holders

Look up wallet balances, balance history, and top holders.

Pools & Liquidity

Explore DEX pool and liquidity data.