Glossary
What each metric means, its exact formula, the API request behind it, and why it can differ from other explorers.
For AI agents: llms.txt
- APY / APR 7D (validator)
What staking TAO on root through this validator has returned over the last 7 days, annualised: APR without compounding, APY with. It is the root staker's yield, not a blend of the validator's alpha pools.
FormulaFor each subnet S the hotkey validates on: rate_S = Σ root dividends (valued in TAO at each day's close) / Σ root stake that earned them, over the last 7 complete UTC days. epochs per year(S) = 7200 × 365 / the subnet's tempo. APR = Σ_S rate_S × epochs per year(S) × 100; APY = (exp(Σ_S epochs per year(S) × ln(1 + rate_S)) − 1) × 100. Every term clamped to [0, 10000], and the total again.The series is what the chain actually paid, already net of the validator take and of childkey redistribution, measured against the exact stake the chain used as the denominator. The per-subnet rates add up because they all share one denominator, the hotkey's root TAO, which earns across every subnet the hotkey validates on. The only difference between the two figures is the compounding assumption: APR is the number most explorers publish, often labelled APY, while APY is the more honest one, since dividends restake. Annualisation uses each subnet's own tempo rather than a flat epoch count. Exactly 10000 means the real figure was clamped, not that it is precisely 10000%. A hotkey with no root row in the window reads null, NOT 0: no root-staker data is not zero yield, and stale values are never carried forward. What an ALPHA staker earned on one subnet is a different number, served per row (see Nominators / Validator / Childkey 7D and the per-subnet rows on the validator's own page).
API request
GET https://api.taoswap.org/validators/Response field
results[].apy_7d / results[].apr_7d- Beta basket (fund)
Since runtime 441 a validator's root dividends are no longer sold: they are staked into a per-validator fund, and root stakers hold redeemable shares of it. Staking on root therefore stopped being a pure TAO position: part of the yield now sits as a basket of alpha across many subnets that the staker does not pick. The fund's VALUE is what all of those alpha positions are worth in TAO, added together. The API calls that number nav_tao, for net asset value, which is the standard name for a fund's total; the interface says "fund value" instead, because an acronym explains nothing to somebody meeting it for the first time.
Formulafund value = Σ (what each alpha leg would sell for, in TAO). share price = fund value / shares. A holder owns owed_shares / shares of the fund, and redeeming returns their pro-rata slice of every leg, sold to TAO and staked back on root (extrinsic claim_root, or claim_root_with_hotkey for one validator).The number to read is nav_tao, not spot_nav_tao: spot marks every leg at its price and ignores depth, so it is the one figure a redemption cannot actually get. And growth belongs to the SHARE PRICE, never to the fund value. Dividends landing in the fund mint shares as they arrive, so the total can triple while a holder gains nothing (measured 169 → 548 τ in two days on the largest fund, share price +1%). That is why the chart on a validator page plots the share price and not the fund value.
API request
GET https://api.taoswap.org/v1/beta-baskets/{hotkey}/Response field
nav_tao- Delegator / Validator Earnings per Day
What the validator paid out over the last full day, in TAO: the first figure is what its delegators shared, the second what it kept as commission.
FormulaOver the most recent day with data: delegators = Σ (alpha + root dividends) × that day's closing price; validator = Σ of those dividends × take/(1 − take), the take being read from the chain at every epochA single day, not a rate, so it moves with the stake behind the hotkey and with what its subnets emitted that day: a large validator out-earns a small one at the same APY. It is the latest day that HAS data, which is not always yesterday: if ingestion is behind, the figure is that many days old. The childkey-take slice is counted inside these figures, not on top of them. A validator running a 0% take reads 0 on its own line while still paying its delegators in full. Until a hotkey has ledger data at all, an emission-model estimate stands in. Only the validator's own page carries them, so a list of validators compares yields instead.
API request
GET https://api.taoswap.org/validators/<hotkey>/Response field
delegator_daily_earning / validator_daily_earning- Delegators
How many delegators are staking to the validator.
Formulathe number of distinct wallets holding a non-zero position on any hotkey the validator owns, across every subnetWallets, not positions: the delegator table on the validator's page lists one line per wallet, hotkey and subnet, so it is always longer than this count. The validator's own wallet is counted too, since its self-stake is a position like any other. There is no dust floor. An explorer counting wallet-and-hotkey pairs, or applying a minimum stake, will differ.
API request
GET https://api.taoswap.org/validators/Response field
results[].count_delegators- Dominance
What proportion of all validator stake on the network this one validator controls.
Formulatotal_stake / the summed stake of the validators shown in the list (those at or above 1000 τ) × 100Same exit-value pricing as Total Stake. The denominator is the visible set, not the whole chain, which is exactly why the column adds up to 100%. A validator's own page can read slightly lower, because when it cannot reuse the list's cached total it falls back to the sum over every delegation on record, a larger number. Validators under 1000 τ are absent from the list but DO have a page of their own, and it serves them a dominance computed the same way.
API request
GET https://api.taoswap.org/validators/Response field
results[].dominance- Fees (take)
The commission the validator keeps out of its delegators' rewards.
Formulathe chain commission of the validator's largest hotkey, as a percentage (the raw value is a 16-bit fraction, divided by 65535 and ×100)A percentage, not a fraction: 18 reads as 18%. The chain applies it to the hotkey's dividend before the remainder reaches its delegators, so every yield on this page is already net of it. It is read per hotkey and a validator can run several with different commissions; the figure shown is the one of the hotkey holding the most stake. A 0% take is real and not unusual.
API request
GET https://api.taoswap.org/validators/Response field
results[].take- Nominators / Validator / Childkey 7D (τ)
The TAO a validator earned on one subnet over the last 7 days, split three ways: what went to its nominators, what it kept as commission, and the part that came from childkey take.
FormulaOver the last 7 complete UTC days, in TAO at each day's close. Nominators = the alpha dividends that subnet paid, net of the take. Validator = the take, on both the alpha AND the root dividends earned there. Childkey = the childkey-take slice of the pre-take dividend.Amounts, not rates: they scale with the stake behind the hotkey, which is why the APY sitting beside them can be high on a small line and modest on a large one. The two columns are not symmetric: the nominator side counts alpha dividends only, since what root stakers earned is reported on the root line, while the validator side counts the take on both. Root lines are not shown in this table at all. Blank until the subnet has synced, which is not the same as zero. The childkey figure is a slice of the other two, so adding all three double-counts it.
API request
GET https://api.taoswap.org/validators/<hotkey>/Response field
monitoring[].nominator_return_7d_tao / validator_return_7d_tao / childkey_return_7d_tao- Root curation vector
The weight vector a root validator publishes to say which subnets its fund buys. None of the 64 has one today, and that is the regime rather than missing data: publishing is switched off network-wide, so every fund accumulates on whichever subnet earned each dividend. Vectors did exist until recently. Root held 47 of them up to block 8765683, and the storage has been empty from 8765684 onward (2026-08-03 19:18:36 UTC).
Formulaentries[] = [netuid, weight_u16]. u16 is a RELATIVE scale, not a percentage: the largest entry is always 65535 and the share of the fund is weight_u16 / Σ weight_u16.Two chain locks hold it shut, and both must open before any of this fills in: RootWeightSettingEnabled is false, so the chain rejects every vector, and WeightsSetRateLimit on root is u64::MAX, which blocks all 64 uids without exception. set_root_weights still exists as a callable, which is why its presence proves nothing. Do NOT read last_update_block as the date of a publication: it comes from LastUpdate[0], which the clearing did not touch, so it both predates that event and keeps moving after it, one uid reading minutes old while no vector exists anywhere on chain.
API request
GET https://api.taoswap.org/v1/root-weights/Response field
results[].entries- Root stake / Alpha stake (validator)
The two halves of a validator's total stake: TAO staked on root, and alpha staked across subnets (valued in TAO).
Formularoot = Σ of the positions on root, TAO for alpha at 1:1 since root has no pool; alpha = Σ of every other position, each valued through its own subnet pool. The two add up to Total Stake by constructionThe alpha half carries the same slippage-aware valuation as Total Stake, so it moves with pool depth as well as with price.
API request
GET https://api.taoswap.org/validators/Response field
results[].total_stake_root / results[].total_stake_alpha- Root weight (validator)
The validator's root stake counted the way the chain counts it for emission, where TAO on root does not weigh 1:1 against alpha.
Formularoot stake × γ, γ being the chain tao weight (about 0.18), re-read from the chain at every subnet syncA scaled TAO amount, not a ratio and not a second stake bucket, so never add it to the stake columns yourself. Same γ as the subnet Root Proportion. The list does combine it with the alpha stake in its own Total Weight column, which is the figure to use when comparing against explorers that discount root the way the chain does. Do not confuse γ with the owner cut shown under Conviction, which also sits near 0.18 and is a different parameter entirely.
API request
GET https://api.taoswap.org/validators/Response field
results[].root_weight- Total Stake (validator)
Everything a validator has behind it, root stake plus alpha across every subnet, expressed in TAO.
FormulaΣ over every position the validator holds, position by position: root at 1:1, alpha valued by draining that position alone into its subnet pool (constant product on the live reserves, before the swap fee)Alpha is valued at roughly what it would fetch on exit, position by position, not at flat spot and not at the moving price. So it reads lower than a naive Σ(alpha × price) for large positions, and lower still than EMA-based explorers; it is still slightly optimistic, since the swap fee is not deducted. The Accounts table values alpha through the same function, so the two are directly comparable, though each pipeline reads the pools at its own sync. A position on a subnet with no pool is left out of the total rather than valued at zero. It is a snapshot from the last sync.
API request
GET https://api.taoswap.org/validators/Response field
results[].total_stake