Dominance
How dominance indices are calculated, our oracle methodology, and the data pipeline from exchange feeds to on-chain prices.
What is Dominance?
Dominance measures an asset's share of total cryptocurrency market capitalization. It's the single number that tells you how much of the market's value is concentrated in one asset.
Where market cap = price × circulating supply. Total market cap = the sum of the top 200 assets by market cap.
Bitcoin's price is $68,000 with 19.7M BTC in circulation. Market cap = $68,000 × 19,700,000 = $1,340B.
The total market cap of the top 200 assets sums to $2,550B.
BTCDOM = $1,340B / $2,550B = 52.55%
If Bitcoin's price rises 5% while the rest of the market stays flat, BTC market cap becomes $1,407B and total becomes $2,617B. BTCDOM = $1,407B / $2,617B = 53.76% — a 1.21 percentage point increase in dominance.
Methodology
We rank assets by market capitalization and take the top 200. Dominance is calculated against this set, not against every token in existence. Top-200 captures 99%+ of meaningful market activity while filtering out illiquid micro-caps that add noise without adding signal. Assets are re-ranked continuously as market caps shift, so the set always reflects the current state of the market.
Sources & Exclusions
Price and supply data comes from CoinGecko, cross-referenced against live exchange feeds.
The following assets are always excluded from the index:
- Wrapped tokens (WBTC, WETH) — these are derivative representations of assets already counted
- Staked tokens (stETH) — same logic; the underlying asset is already in the set
- Low-weight assets — any asset whose volume weight falls below the minimum threshold (see Volume Weighting below)
- Zero market cap assets — if there's no market cap, there's nothing to measure
Excluding derivatives prevents double-counting. A dollar of BTC locked in WBTC shouldn't count twice.
Volume Weighting
Not every coin in the top 200 has deep enough trading activity on our exchanges to produce a reliable price. Rather than a hard cutoff that includes or excludes coins entirely, each coin receives a continuous volume weight between 0 and 1 that scales its market cap contribution to the index. Coins with strong volume evidence contribute their full market cap; thinly-traded coins are smoothly suppressed.
The weight is derived from three sigmoid signals:
| Signal | What it measures |
|---|---|
| Primary | Our 24h volume relative to the coin's market cap — do we trade enough of this coin to trust our price? |
| Coverage | Our 24h volume relative to the coin's global 24h volume (via CoinGecko) — how much of its total trading do we observe? |
| CG Liquidity | The coin's global 24h volume relative to its market cap — is it liquid anywhere? |
Each signal passes through a sigmoid function that outputs a value between 0 (no confidence) and 1 (full confidence). The final weight is: primary alone can carry a coin if our exchanges trade it heavily, but coverage only rescues a coin if it also passes the CG liquidity check — ensuring we don't blindly trust coverage of a globally illiquid asset.
The five published pairs (BTC, ETH, USDT, BNB, SOL) are hardcoded to a weight of 1.0. Their full market cap always enters the index regardless of volume conditions.
A coin whose final weight falls below 0.001 is excluded from the index entirely.
Oracle Pipeline
Raw exchange data becomes on-chain dominance values through this pipeline:
Design decision: publish cadence
The oracle maintains a 1-second internal refresh rate. On-chain prices are published when the protocol requests them — triggered by trade actions (opens, closes, TP/SL updates). The oracle also publishes periodic updates to keep on-chain prices fresh for UI display and liquidation monitoring.
Exchange Weights
| Exchange | Weight |
|---|---|
| Binance | 3 |
| Coinbase | 2 |
| Bybit | 1 |
| Gate | 1 |
| MEXC | 1 |
Weights reflect each exchange's trading volume and data reliability. Binance gets the highest weight because it consistently has the deepest liquidity across the most pairs.
Anomaly Detection
The oracle compares its real-time market cap calculations against CoinGecko's reference values. Any asset where the two diverge by more than 50% is rejected from that ingestion cycle. This threshold catches catastrophic data errors — a single exchange reporting a wildly wrong price, a supply data glitch — without filtering out normal market volatility. Rejected assets re-enter automatically on the next cycle when the discrepancy resolves.
On-Chain Publishing
Dominance values are published on-chain when the protocol requests a price for trade execution, and periodically to keep displayed prices current. You can find the oracle contract address on the Contract Addresses page.