Glossary

What each metric means, its exact formula, the API request behind it, and why it can differ from other explorers.

Guides, help and developer docs: docs.taoswap.org

For AI agents: llms-full.txt

1H / 24H / 7D / 30D / 90D %

How much the price has moved over the trailing window: current spot against the closing price at the start of the window.

Formula((spot − baseline) / baseline) × 100. Baseline for 1H and 24H = the last minute close inside the one-hour slot that ends an hour (respectively a day) ago; for 7D / 30D / 90D = the last close of the UTC day N days ago

Anchored by clock time, not by block, and the two families anchor differently, so 7D is not a rolling 7 × 24 h. The baseline is never searched for outside its own slot: if no candle exists in that hour, or on that day, or the window starts before the current subnet of a recycled netuid registered, the figure is empty rather than measured against another price or shown as 0%; an empty change reads as a dash and sorts last. It compares a noisy live spot against a candle close, which is why it can differ from explorers doing spot-to-spot. Root is served as 0 and hidden in the table.

API request
GET https://api.taoswap.org/v2/subnets/

Response fieldresults[].price_evolution_{h_1,h_24,d_7,d_30,d_90}

7D Trend (sparkline)

The inline 7-day price line drawn in the table.

Formulathe last hourly close of each 4-hour UTC bucket over the trailing 7 days (~42 points, oldest → newest, 6 significant digits)

null when the subnet has fewer than two points in the window, which is the exact "too little history to draw a line" condition. Buckets are aligned on the clock (00:00, 04:00, 08:00 UTC), not on "exactly 7 days ago", so the first and last are partial and you usually get 43 points rather than 42.

API request
GET https://api.taoswap.org/v2/subnets/

Response fieldresults[].sparkline_7d

FDV

Fully Diluted Valuation: what the subnet would be worth if every alpha token that can ever exist had already been emitted.

Formula21,000,000 α × the EMA moving price, spot when the EMA is 0

Every subnet has the same 21M alpha hard cap as TAO itself, so FDV is always ≥ market cap. The cap is compiled into the runtime rather than stored as a parameter, so unlike most chain numbers it cannot be changed by governance, and the chain really does stop emitting a subnet's alpha when its issuance reaches it. Same EMA-vs-spot gap as market cap; root falls back to spot, and FDV 21,000,000 τ is the right reading for it since root's "alpha" is TAO. Burned alpha still counts against the cap, since a burn does not reduce what the chain considers issued.

API request
GET https://api.taoswap.org/v2/subnets/

Response fieldresults[].fdv (fdv_usd for the USD value)

Market Cap

Value of the alpha actually in circulation: what sits in the pool plus what is staked, minus what has been burned and minus what the protocol itself holds, priced at the smoothed (EMA) price.

Formula(α in the pool + max(α held outside the pool − α this subnet burned − α the protocol itself holds, 0)) × the EMA moving price, spot when the EMA is 0

It differs from other explorers in three ways: the price is the EMA moving price (spot only as a fallback, which is what happens on root, whose EMA is 0); the base is circulating alpha, not the 21M cap (that is FDV); and two stocks nobody can sell are subtracted, burned alpha and the alpha the protocol itself holds. Both stay inside the staked figure on-chain: a burn destroys the tokens without removing them from it, and the protocol's alpha, bought with a subnet's excess TAO emission, sits on no wallet and is never sold. Recycled alpha is not subtracted again, because the chain already removed it. Supply, below, keeps both stocks, so on burn-heavy subnets supply × price sits above market cap. Only what this subnet burned itself is subtracted: the chain keys its burn counter to the subnet number and never clears it when that number passes to a new subnet, so the part inherited from an earlier holder of the number is removed. The daily series on /tools/compare applies this same definition day by day, priced at the day's last block, so its last point can trail the live figure; days from before the chain kept a record of its own alpha subtract the burn only.

API request
GET https://api.taoswap.org/v2/subnets/

Response fieldresults[].market_cap

Moving Price

A slow-moving average of the price, used as the basis for market cap and FDV so a single trade cannot move a valuation.

Formulachain EMA, once per block: new = a × min(spot, 1 τ) + (1 − a) × previous, where a = the smoothing factor × blocks since the subnet's first emission / (those blocks + the subnet's ramp length)

Computed on-chain, not by Taoswap. The chain feeds the EMA min(spot, 1 τ), so the moving price can never exceed 1 τ even if spot does. Both knobs are chain parameters a governance call can move, so treat the usual figures (a smoothing factor of 0.000003 per block, roughly 30 days to close half the gap to spot) as today's values and not as constants; the ramp in particular is set per subnet. Until a young subnet finishes ramping, its effective smoothing is a fraction of that factor, so its EMA moves slower than the headline number suggests. It freezes entirely while a subnet is outside the emission set: never started, subtoken disabled, or registration closed. Careful with root: the field is served as 0 for it, which is why market cap and FDV fall back to spot there, while the chain itself treats root as 1 τ. It should match any explorer reading the same chain value; small gaps come from the ~2-min snapshot block.

API request
GET https://api.taoswap.org/v2/subnets/

Response fieldresults[].moving_price

Price ($)

The same spot price, converted to dollars.

Formulaprice × the TAO/USD rate the app polls from CoinGecko every minute

Two different dollar rates exist on this site and they are not interchangeable: figures converted in-app (this one) use the rate the app polls every minute (the API's stored rate after 15 minutes without an answer), while figures the API already returns in dollars (FDV, 24h volume, depth) were converted server-side against a rate refreshed every 15 minutes. On a fast move the two disagree for a few minutes, and the gap is the rate, not the metric.

Data source
GET https://api.taoswap.org/v2/subnets/

Response fieldresults[].price

USD = price × the live TAO/USD rate.

Price (τ)

What one alpha token is worth in TAO right now, quoted by the subnet's own liquidity pool.

Formulathe chain's own spot price for the pool: (α weight / τ weight) × TAO reserve / α reserve. Root (SN0) is pegged to 1 τ instead

Served straight from the chain rather than divided in-app, and the weights matter: the pool is a weighted (Balancer) automated market maker, an AMM: the contract that holds both sides and takes the other end of every trade, with no order book and no counterparty to find. So the plain ratio of the two reserves is only exact while the weights are equal. In practice they are, to within a tiny drift, but the chain only guarantees each side stays above 1%, and it rewrites the weights whenever an emission injection would push the pool out of balance. Root is the exception: it has no AMM, so the chain quotes it at 1 τ and the two In Pool figures are empty for it. This is the spot price, not the EMA moving price behind market cap and FDV, so explorers that display the EMA read differently.

API request
GET https://api.taoswap.org/v2/subnets/

Response fieldresults[].price

TAO all-time high

The highest daily TAO dollar price on record, with its date, and how far below it the price stands now.

Formulaall-time high = the highest daily price of the series, a daily price being the last CoinGecko reading of that UTC day and today's the live price; the % under it = (live price − all-time high) / all-time high × 100

A daily close, not the highest trade: a peak inside a day that faded before the day's last reading is not in it, so sources quoting the highest traded price read higher. The record starts in June 2022, before TAO's peak, so this is the all-time high and not just the top of a window. No low is shown beside it, because the series' first day is the edge of the record, not a market bottom.

Data source
GET https://api.taoswap.org/price-history/

Response fieldresults[].price

The highest price of the series, with its date; today counts at the live price.

TAO price change (1D / 7D / 30D / 1Y)

How much the TAO dollar price has moved, as the /price page shows it under its Price figure: over the last day, and against the daily price 7, 30 and 365 days back.

Formula1D = CoinGecko's own change over the trailing 24 hours. 7D / 30D / 1Y = (live price − baseline) / baseline × 100, baseline = the series' last daily price on or before the UTC day 7, 30 or 365 days before today, a daily price being the last CoinGecko reading of that day

Two kinds of window side by side: 1D rolls over 24 hours, while 7D, 30D and 1Y are anchored on UTC days, so 7D spans six full days plus today so far rather than a rolling 7 × 24 h. A missing day falls back to the closest earlier one instead of leaving the figure empty, unlike the subnet price changes (see 1H / 24H / 7D / 30D / 90D %). Explorers measuring from the previous close, or from exchange candles like the chart below, will differ slightly.

Data source
GET https://api.taoswap.org/price-history/

Response fieldresults[].price

The live price and the 1D change come from CoinGecko's simple price endpoint, which the browser polls every minute; once CoinGecko has been unreachable for 15 minutes, the latest row of this series stands in and the 1D change is hidden.

TAO volume 24H ($)

The dollar value of all the TAO traded over the last 24 hours on the markets CoinGecko tracks: the 24h volume figure of the /price page.

FormulaCoinGecko's trailing 24-hour trading volume for TAO, in USD, as of the last fetch, every 15 minutes; each past UTC day keeps the reading of its last fetch. The 1D change under it = (this volume − the previous day's) / the previous day's × 100

A market-wide figure, not Taoswap's own: it is neither the subnet Volume 24H, the TAO going through one subnet pool, nor the chart's volume bars, which are exchange candles counted in TAO. The 1D change compares two trailing 24-hour readings taken at different times, the latest and the previous day's last, which overlap almost entirely early in the UTC day, when it reflects only the last few hours of trading. The figure trails CoinGecko by up to about 25 minutes (a fetch every 15 minutes, then a 10-minute response cache). A dash means the latest row has no volume: the first minutes of each UTC day, before its first fetch, or a CoinGecko answer without one; the 1D change is then hidden too.

API request
GET https://api.taoswap.org/price-history/?limit=1&order=desc

Response fieldresults[0].volume

The /price page reads the whole series and takes its last row; ?currency=eur serves euros.

Volume 24H

TAO traded through the subnet's pool over the last 24 hours.

FormulaΣ of the TAO leg of every pool-touching stake and unstake on the subnet over the trailing 24 h (τ); the USD figure is server-converted

Counted on one side only, in TAO, so it reads far below what an exchange would print for the same activity, since exchanges count both legs of a trade. Protocol chain buys are excluded: the coinbase moves the reserves directly without ever emitting a trade. Swaps and cross-subnet moves contribute each of their legs to the pool it touches, while same-subnet hotkey or validator rebalances are excluded, because they never touch the pool, and so are the refunds paid out when a subnet is dissolved. Burns and recycles never count. The window rolls from now, but it is recomputed at most once an hour, so it steps rather than glides. null for root (no pool); a 0 is a real zero. Note the chain has its own volume counter, but it only sees direct calls to the swap pallet, a small fraction of real activity, so this is built from the stake events instead.

API request
GET https://api.taoswap.org/v2/subnets/

Response fieldresults[].volume_24h (volume_24h_usd for the USD value)