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

Challenger stake

What the leading challenger has actually put at risk: the realizable TAO value of the alpha they have locked. Bigger means a more committed challenger.

Formulathe king's locked α, valued through the pool after fee and slippage (tao_slippage), not at flat spot

Shown at realizable value on purpose, because face value overstates the commitment on a thin pool. Only meaningful when the leader is an outsider (`king_is_owner` false).

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

Response fieldresults[].conviction.owner_locked_value.tao_slippage

Conviction

How much of the subnet the current leader of the ownership race has locked up, as a share of supply. Locking alpha is how a key stakes its claim to owning the subnet.

Formula(king_conviction / 1e9) / total_supply × 100

Despite the field name this is the LEADER's position, and the leader ("king") is not always the owner, so check `king_is_owner`, and never infer it by comparing `king` (a hotkey) to `owner` (a coldkey). The companion fields are king_conviction (raw score, never display it), owner_conviction_pct (share of the conviction battle, 100% = unchallenged) and total_conviction. Conviction decays over time and the chain serves it already decayed, so the value you read is current; perpetually locked alpha never loses mass and its conviction converges upward to that mass instead. Two half-lives drive it, today about 90 days for the unlock schedule and about 30 for maturation, but both are governance parameters and one has already been moved off its default, so read unlock_half_life_days / maturity_half_life_days rather than trusting those numbers.

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

Response fieldresults[].conviction.owner_conviction_pct_supply

HHI (concentration)

How concentrated the holders are, on a 0–100% scale. 0% means the stake is spread perfectly evenly, 100% means one holder owns everything. Lower is healthier.

Formula(HHI − 1/N) / (1 − 1/N), clamped 0..1, ×100 for display. HHI = Σ(share²) over positive holders

N counts the positive holders left after the owner's own position is removed. The exclusion is per position, not per wallet: a position drops out only when the holder, the validator it is staked to and the subnet owner are the same coldkey, so the owner's delegations to outside validators are still counted. Most explorers publish the raw HHI rather than this min-normalised form, so the numbers are not comparable. Returns 0 below 2 holders.

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

Response fieldresults[].hhi_normalized

Locked (conviction)

The alpha locked across every participant in the ownership race, shown both at face value and at what it would actually fetch if sold.

Formulatotal_locked = perpetual + decaying (α). Face value = α × price; realizable = the same α sold through the pool, after fee and slippage.

Perpetual locks never release their alpha; decaying locks give it back gradually. Realizable values are single AMM exits, so per-holder figures do NOT add up to the subnet total, so use the subnet-level value for "everything sold at once".

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

Response fieldresults[].conviction.total_locked, .total_locked_value

Nakamoto coefficient

The smallest number of top holders who together own more than half of the stake. Lower means more concentrated.

Formulasmallest k whose cumulative share of the stake exceeds 0.5 (integer)

Same owner exclusion as HHI. Returns 0 (not 1) for an empty or single-holder subnet.

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

Response fieldresults[].nakamoto_coefficient

Stake (α)

All the alpha staked on the subnet, i.e. everything held outside the pool.

Formulathe chain alpha-out reserve (α)

This is the raw reserve: it INCLUDES the owner's locked and self-staked alpha, and it still includes burned alpha (a burn does not shrink the reserve). The owner-excluded distribution behind HHI / Nakamoto / Top 10% is a separate calculation.

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

Response fieldresults[].alpha_stake

Takeover gate (Threshold met)

Two conditions must both hold before the chain will hand a subnet to the conviction leader: the subnet must be over a year old, and the TOTAL conviction locked on it (every holder combined, owner included) must reach 10% of its staked alpha. Threshold met is how full that second condition is.

FormulaEligible when age ≥ 2,629,800 blocks (7200 × 365 + 1800 ≈ 365.25 d) AND total_conviction ≥ SubnetAlphaOut / 10. Threshold met = total_conviction / threshold × 100.

Both gates must hold in the same block. The age gate is a plain countdown and is usually already cleared. The bar can read above 100% for a while when a decaying lock is near its peak, without the gate being durably reachable; see the ceiling described under Time to takeover. Whether the chain actually executes the flip is a runtime question, so read `takeover_enforced`, which tracks the live runtime version rather than a hardcoded flag: while it is false the gates are computed but nothing happens, which makes this an armed race rather than an executed takeover. Mainnet passed the enabling runtime version, so it reads true today.

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

Response fieldresults[].conviction.threshold_used_pct

Takeover status

A one-word verdict on the ownership race: whether the gate can ever be reached with the locks as they stand, whether both gates are already satisfied, and whether the chain would act on it.

FormulaEligible = takeover_age_ok AND takeover_threshold_ok. Stalled = gate_reachable false (the current locks plateau below the gate). Enforcement = takeover_enforced.

Stalled is not the same as "far away": it means the perpetual mass alone cannot reach the threshold, so no amount of waiting helps, only a new lock does. Even when eligible, nothing happens while enforcement is off.

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

Response fieldresults[].conviction.gate_reachable, .takeover_eligible, .takeover_enforced

Time to takeover (ETA)

How long the current locks would need to fill the 10% conviction gate, projected day by day. Deliberately NOT proportional to the Threshold-met bar: a subnet that looks fuller today can still show a longer ETA.

FormulaSmallest Δ, scanned in 1-day steps out to 3 years, where the projected total conviction ≥ threshold, reported as max(conviction ETA, age ETA). The projection replays the chain maturation/decay math: existing conviction fades by exp(−Δ/MaturityRate), perpetual mass matures into conviction by (1 − exp(−Δ/MaturityRate)), decaying mass follows the chain's γ term, and owner masses are pinned to their locked mass.

Conviction converges towards the perpetually locked mass, because the decaying part matures and then melts away. That gives the gauge a ceiling (gate_ceiling_pct = perpetual locked / threshold × 100): below 100% the gate is never durably reachable and the status reads Stalled, even if a transient bump crosses it. The approach is concave, so the closer the ceiling sits to the threshold the slower the final stretch, and a subnet with high conviction today but a ceiling barely above the gate reads slower than a less-filled one with room to grow. The 3-year horizon is about 36 maturity half-lives, far enough out that the projection has settled, so "no crossing" really does mean "never, with the locks as they stand". Assumes locks stay frozen and the threshold does not move; every sync recomputes it and the value drifts.

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

Response fieldresults[].conviction.gate_eta_days

Top 10 %

How much of the stake the ten largest holders own between them.

FormulaΣ(shares of the 10 largest) / Σ(all kept holders), 0..1, ×100 for display

It is a fraction in 0..1, not a percentage. The denominator excludes the owner self-stake, so it measures the tradable distribution; the owner can still show up through its external delegations.

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

Response fieldresults[].top10_share