How to reconcile a token's supply and market cap
Two sources, two market caps, one token. The second factor is a judgement about which tokens count, and every vendor publishes a different one.
Neither figure is wrong; they are different definitions. Market cap is a price multiplied by a supply judgement, and every vendor publishes its own rule for which tokens count as circulating. Read the methodology page before comparing anything, hold one vendor for the whole table, and never put a circulating market cap from one source beside a fully diluted valuation from another. The formulas are public at all five.
The short way
Ask each vendor which supply it multiplied. All five publish the formula, and the formula is always the same shape — a price times a supply — so the disagreement is never in the arithmetic.
market cap = price x supply
CoinGecko price x circulating supply
CoinMarketCap price x circulating supply
Messari MCAP = circulating supply x VWAP
FDV = total supply x VWAP (max supply if total is missing)
Coin Metrics CapMrktCurUSD = SplyCur x PriceUSD
CapMrktEstUSD = circulating supply x PriceUSD
CapMrktFFUSD = SplyFF x PriceUSD
DefiLlama FDV = expected maximum supply x price
Two of those lines are the same sentence and the rest are not, which is the whole answer: before comparing two market caps, find out which row each one came from. If they came from the same row, the remaining gap is the price. If they did not, there is nothing to reconcile — you are holding two different measurements and one of them has to go.
What the options are
The two consumer defaults. The CoinGecko API and the CoinMarketCap API are where most quoted market caps originate, and both publish their rule. CoinGecko's methodology states the formula as price times circulating supply, and states where the supply comes from: token teams, verified by CoinGecko, with proof-of-work coins queried from a block explorer API instead and smart-contract tokens computed by deducting locked tokens from total supply. CoinMarketCap's FAQ gives the same formula and defines circulating supply as "the best approximation of the number of coins that are circulating in the market and in the general public's hands". Neither figure is a measurement of the chain.
A vendor that names the price as well as the supply. Messari documents both halves: market cap as circulating supply times a Messari VWAP price, and FDV as total supply times the same price, with max supply used when total supply is missing. That matters because two vendors can agree exactly on supply and still print different market caps — one aggregate price is not another. Messari's x402 route bills per request in USDC with no account, and the asset and metric listings are priced at zero, so a single asset can be checked without a subscription.
Three market caps, named separately. Coin Metrics is the one that
refuses to pick for you. CapMrktCurUSD is current supply times price, where current supply is
documented as all coins ever created. CapMrktEstUSD is the circulating supply figure times
price. CapMrktFFUSD is free float supply times price, and free float is defined as the units
ever created and visible on the ledger excluding those held closely by company insiders,
controlling investors and long-term strategic holders. The community tier needs no key and no
account and carries daily asset metrics including supply and market cap — under a non-commercial
licence, which is the catch on the card.
The supply schedule underneath. DefiLlama is the one to reach for when the question is not what the supply is but what it is about to be. Its documented unlocks dataset is built from vesting contracts and published allocations, and it is explicit that FDV there is the expected maximum supply times the price. Its stablecoin market cap is circulating supply excluding burned and non-issued tokens, multiplied by price and tracked per chain.
Where this breaks
Circulating supply is a judgement, not a reading. Nothing on any chain emits a circulating supply. What exists on-chain is balances; turning those into "the supply that counts" means deciding that a treasury multisig does not count, that a vesting contract does not count, that a market-maker loan does, and that a founder's wallet does not. CoinGecko says so plainly — locked tokens are deducted, and locked means foundation, investor and team allocations obtained from the teams. CoinMarketCap says coins that are "locked, reserved, or not able to be sold on the public market" cannot affect price and so should not affect market cap. Both are reasonable rules. They are not the same rule, and neither is the chain. Where an on-chain number comes from is the long version of why a metric is a definition before it is a measurement.
The issuer is a source, and sometimes the only one. CoinGecko's supply figures are obtained from the token teams and then verified, and the methodology states what happens when verification is not possible: a dash is shown in place of the figure. That is the honest failure mode, and it is worth knowing which vendors have one. The pressure runs one way here — an issuer has an interest in a supply figure that ranks well and no interest in one that does not — so a number that arrived from the issuer and was never checked against a contract is the weakest input in the whole calculation, and it is the input almost every consumer market cap rests on.
Total, max and FDV are three claims, and the third is not one number. Total supply is what exists now; max supply is what can ever exist and many tokens have none. FDV is priced off one of those two, and the choice is not settled: Messari documents FDV as total supply times price, with max supply as a fallback, while DefiLlama documents it as expected maximum supply times price. For a token with a large unminted allocation those are different figures printed under the same three-letter label. And the claim inside either version is strange on its face — it prices tokens that do not exist yet at the price of tokens that do, which assumes an unlock schedule that has not run and a market that absorbs it without moving. It is an arithmetic identity, not a projection, and it is not comparable across two tokens whose emission schedules differ.
Burned supply is only gone if the vendor agrees it is gone. CoinMarketCap's total supply is
the coins in existence "minus any coins that have been verifiably burned" — and verifiably is
the load-bearing word, because a burn is a transfer to an address that is believed to be
unspendable, not a chain-level deletion. Messari's total supply likewise excludes burned tokens.
Coin Metrics does not net them at all in current supply: SplyCur is all coins ever created, and
burnt supply is carried as its own metric family beside it. So three vendors reading the same
chain state produce two different supplies before anyone has argued about vesting, and a token
with a large burn history is where the gap opens widest.
The same token on six chains is six rows and one asset. A token minted on one chain and bridged to five exists as wrapped or canonical representations on each of them, and a per-chain figure counts what is on that chain. DefiLlama is explicit that its chain-level stablecoin market cap is the sum over all stablecoins issued or bridged onto that chain, and that bridged value is tracked split by origin — native, canonical bridge, third-party bridge — precisely because those are different claims. Add the per-chain rows together and you have counted the bridged copies alongside the locked originals. The same care shows up one layer along in its TVL rules, where receipt and LP tokens redeposited elsewhere are flagged as double-counted rather than silently summed.
The price half has all the same problems. Market cap is a product, and the first factor is an aggregate that somebody built: Messari names its as a VWAP across the markets an asset trades in, and CoinGecko's card notes the price is composited across the exchanges it tracks rather than taken from a venue you could reconcile against. Where the Bitcoin price comes from is that half in full. A few percent of disagreement between two market caps is usually here. Several times is almost never here.
If you outgrow this
If the problem is a comparison — a table, a screen, a ranking — hold one vendor for the whole of it and say which one in the caption. Mixing vendors inside one table imports one supply judgement into a row and a different one into the row below, and the resulting ordering is an artefact of the mixing rather than of anything about the tokens.
If the problem is that the figure has to be defensible, move to a vendor whose definition has
a name you can print. Coin Metrics is the clearest case in
market data APIs: writing CapMrktFFUSD in a footnote says
exactly what was multiplied, in a way "market cap, source: a website" never can. Check the licence
before it ships, though — the free community tier's data is offered under a non-commercial
licence, which is a different question from whether the number is right.
If the problem is that the supply is moving, the number to watch is not the market cap at all but the unlock schedule behind it, and that is a different dataset with a different failure mode: it is built from vesting contracts and published allocations, so it is only as complete as the allocations that were published. DefiLlama and the rest of on-chain analytics is where it lives.
And if the problem is that you need the number inside a product, the reconciliation stops being editorial and becomes a licensing question: attribution requirements, redistribution terms and what each tier permits differ more between these vendors than the market caps do. Read the terms on the card before the methodology page, because the cheapest correct number you are not allowed to publish is worth nothing.
The tools named above
In the order this page puts them in, which is an editorial judgement and not a ranking anyone paid for.
CoinGecko API
Publishes the rule: circulating supply comes from the token team and is verified, locked tokens are deducted from total, a dash where it cannot be.
Prices, market data and onchain DEX data for 18,000+ coins, via REST, websocket or MCP.
$35/moFree tier
CoinMarketCap API
The other default figure, on the same formula and its own judgement — locked, reserved or unsellable coins are not allowed to affect market cap.
Prices, rankings, DEX and derivatives data billed by data points returned, not by call.
$35/moFree tier
Messari
Names the price as well as the supply: market cap uses its own VWAP, and FDV uses total supply with max supply as the documented fallback.
Asset profiles, 500-source news and analyst-verified event monitoring, with an API.
$4500/yrFree tier
Coin Metrics
Three market caps under three metric names — current, estimated circulating and free float — so the definition is chosen explicitly rather than inherited.
Institutional reference rates, exchange market data and network metrics behind one API.
Free tier onlyFree tier
DefiLlama
The supply schedule underneath — unlocks built from vesting contracts, stablecoin supply per chain, and an FDV defined off maximum supply rather than total.
DeFi's default metric set, with the TVL definition written down in public.
$49/moFree tier
FAQ
Why do two sites show a different market cap for the same token?
Because market cap is a price multiplied by a supply, and both factors are decisions. The supply is a judgement about which tokens are locked, vested, burned or held by insiders, and each vendor publishes its own rule for that; the price is an aggregate across venues that each vendor builds differently. A gap of a few percent is usually the price, and a gap of several times is almost always the supply.
Which market cap is the correct one?
None of them is correct in the way a block height is correct. Each is correct against its own published definition, which is why the usable question is "which definition do I want" rather than "which vendor is right". Coin Metrics makes this explicit by shipping three under three names — current supply, circulating supply and free float supply — instead of picking one for you.
Is FDV just market cap with the total supply?
That is one vendor's definition and not the other's. Messari documents FDV as price times total supply, falling back to max supply when total is missing; DefiLlama documents it as price times the expected maximum supply. For a token whose total and max supplies differ, the two figures are different numbers with the same name, and for a token with no max supply at all only one of the two is defined.
Can I add up a token's supply across the chains it trades on?
Not without knowing what each figure counts. DefiLlama's chain-level stablecoin market cap is documented as the sum over all stablecoins issued or bridged onto that chain, so a token minted on one chain and bridged to five appears on six. Per-chain figures answer "how much of this is here", and summing them answers nothing unless the bridged copies have been netted first.
Sources
- Methodology — circulating supply and market capitalization — CoinGecko, read
- FAQ — market cap, circulating supply, total supply and max supply — CoinMarketCap, read
- Messari Market Data Service — market cap, FDV and supply metrics — Messari, read
- Market Capitalization — CapMrktCurUSD, CapMrktEstUSD, CapMrktFFUSD — Coin Metrics, read
- Free Float Supply — Coin Metrics, read
- Supply — the network-data supply metric family — Coin Metrics, read
- Data Definitions — stablecoin market cap, bridged TVL, double counting, FDV — DefiLlama, read
The catalogue next door
This page names a handful of products. The rest of them are in Crypto Market Data APIs, each filled in against the same schema, with the fields to narrow it yourself.
Last updated . Corrected in place — an endpoint that moves is a bug on this page, not a new post.