Supply fields reference
The Supply object appears on the Tokens, Currency, and Pairs cubes with the same field names. Values describe the underlying asset (currency), not a specific pool or DEX pair.
- On Tokens and Pairs, price and volume on the row are chain- or pair-specific;
Supplyis still currency-level (aggregated for the asset across the platform’s reference data). - On Currency, price and volume are already aggregated across chains and representations;
Supplyuses the same currency-level semantics.
For how prices and volumes are computed from trades, see the Price Index Algorithm.
Field definitions
Amounts below are human-readable token units (not raw integer amounts with decimals applied on-chain), unless your client or tooling documents otherwise.
CirculatingSupply
An estimate of the number of tokens available to the market (public float), from CryptoRank.
- Often unavailable for assets CryptoRank does not cover well (e.g. many meme tokens).
- May be null when a reliable circulating figure is not available.
Circulating supply and max supply coverage is available for assets that trade on CEXs; many meme tokens and thinly covered assets may not have these supply figures, so those fields are often missing for those names.
TotalSupply
The total issued supply of the asset as represented in reference data taken from on-chain total supply. May differ from circulating when a large portion is not treated as circulating.
MaxSupply
The maximum supply cap for the asset. For assets without a fixed cap, or when CryptoRank has no figure, this field is typically 0. Often unavailable for the same asset classes as circulating supply (e.g. many meme tokens).
MarketCap
Market capitalization in USD, usually price × circulating supply when circulating supply is known (using the currency-level figure and the Price Index USD price for that row). When circulating supply is unknown, MarketCap equals FullyDilutedValuationUsd (see below).
FullyDilutedValuationUsd
Fully diluted valuation in USD, computed as TotalSupply x the currency-level USD price
(Price.Average.Estimate). When circulating supply is unknown, we set
FullyDilutedValuationUsd to the same value as MarketCap (so both fields carry the same
fallback valuation).
MaxSupply is not used in either valuationMaxSupply is reference data only — it is not the multiplier for FDV, and it is 0 for the
large majority of currencies, which is why it cannot be. Both valuations are driven by
TotalSupply / CirculatingSupply and Price.Average.Estimate.
Supply is a currency-level figure, repeated on every row
This is the most important thing to know about the whole block. Supply is one
currency-level reference figure. It is byte-identical on every token representation of that
currency, on every pool of that token, and on the Currencies row — it is not computed per row.
Consequences:
- On a
Pairsrow,MarketCapandFullyDilutedValuationUsdare that currency-level valuation copied down verbatim. They are not derived from the row's ownPrice.Ohlc.Close, so a pool trading away from the blended price still reports the same market cap as every other pool of that token. - On
Currencies, the figure is neither summed across chains nor taken from a top-ranked chain. It is the same single number.
Because the same valuation is repeated on every token representation and every pool, a
sum(of: Supply_MarketCap) across a currency's rows multiplies it by the row count. Take
maximum: or read one row instead.
- The reference figure refreshes in steps, so rows a few seconds apart can carry slightly different values. Do not treat small differences as a data error.
Trading.Tokenscan return a duplicate row for the same token and bar in whichToken.Symbolis empty and everySupplyfield is0— a metadata-arrival split on freshly launched tokens. Filter those out before valuing anything. See tokens.md.
Bitcoin (bid:bitcoin) and on-chain supply
For Bitcoin, the Supply block on Tokens rows describes on-chain supply of wrapped and bridged BTC (for example WBTC on Ethereum), not native Bitcoin UTXO supply on the Bitcoin network. Native BTC does not exist as a single token contract on EVM (and similar) chains the way ERC-20s do, so any TotalSupply-style figure in this API is tied to those on-chain representations.
That is why you do not see ~21 million in TotalSupply for a Bitcoin currency query: 21M is the network-level cap for Bitcoin itself, while Supply here reflects how much wrapped BTC is tracked on the chain(s) backing that token row.
{Trading {
Tokens(
where: {
Currency: { Id: { is: "bid:bitcoin" } }
Interval: { Time: { Duration: { eq: 1 } } }
}
limit: { count: 1 }
orderBy: { descending: Block_Time }
) {
Token {
Address
Id
IsNative
Name
Network
Symbol
TokenId
}
Block {
Date
Time
Timestamp
}
Interval {
Time {
Start
Duration
End
}
}
Volume {
Base
Quote
Usd
}
Price {
IsQuotedInUsd
Ohlc {
Close
High
Low
Open
}
Average {
ExponentialMoving
Mean
SimpleMoving
WeightedSimpleMoving
}
}
Supply {
TotalSupply
MarketCap
FullyDilutedValuationUsd
}
}
}
}
Ready to run this in production?
Get an API key and run these queries in minutes, or talk to us about plans and enterprise delivery.