Skip to content

Subnet Deregistration

When a subnet is deregistered, its entire TAO reserve is drained and paid out pro-rata by alpha across everyone with a claim on the pool. TAO you receive lands in your coldkey free balance.

Since runtime 415 (subtensor v3.4.2-415), not all of that TAO reaches stakers. A portion is withheld from the pool and recycled (removed from circulation), and that portion is baked into the per-alpha payout you see as the subnet’s liquidation price on taostats.io/subnets.

For a subnet to be deregistered, it must be:

  1. Out of immunity (subnets have 4 months of immunity from registration).
  2. The lowest-priced subnet at the time a new registration would push the count over the cap.

If two subnets tie on the lowest price, the older one is deregistered.

Subnets closest to deregistration

Ranked by pruning rank (lowest moving price first). Only subnets past their 4-month immunity are shown.

LIVE
Rank Subnet Moving price (τ) Registered at block
Loading…

At deregistration, the total alpha the TAO pot is divided against is the sum of:

  • Every staker’s alpha (per hotkey, per coldkey).
  • SubnetProtocolAlpha — protocol-owned alpha accumulated from per-block chain buys. Always included.
  • SubnetAlphaIn — the AMM pool-reserve alpha paired against SubnetTAO. Included for new subnets only (see the gate below).

Three distinct pools of alpha share the denominator:

Staker alpha. Alpha you hold, tracked in per-(hotkey, coldkey) share pools. Always in the denominator; stakers get their pro-rata TAO share into their coldkey free balance.

Protocol alpha (SubnetProtocolAlpha). Alpha the protocol accumulates from per-block chain buys. Always in the denominator; its TAO share is not paid out — it is recycled.

Pool-reserve alpha (SubnetAlphaIn). The AMM reserve alpha paired against SubnetTAO. In the denominator for new subnets only; its TAO share is also recycled.

Each block, a subnet’s excess TAO is swapped TAO to alpha by the coinbase. Before runtime 415 that chain-bought alpha was recycled immediately. Since runtime 415, it is retained in SubnetProtocolAlpha and only settled at deregistration.

Whether SubnetAlphaIn is included in the denominator depends on when the subnet was registered:

  • If the subnet was registered after TaoInRefundDeploymentBlock, it is a new subnet: the denominator includes SubnetAlphaIn and SubnetProtocolAlpha.
  • Otherwise it is a legacy subnet: the denominator includes SubnetProtocolAlpha only.

TaoInRefundDeploymentBlock was stamped at the block runtime 415 activated. On finney it is block 8,334,450.

Both legacy and new subnets distribute SubnetProtocolAlpha. The gate only toggles pool-reserve alpha.

Not to be confused with NetworkRegistrationStartBlock (6,573,966), which governs the owner lock-cost refund path — a separate mechanism described below.

When the chain dissolves a subnet, it:

  1. Finalizes root dividends for the subnet.
  2. Computes the total alpha denominator using the rules above.
  3. Removes the full SubnetTAO pot from the subnet and from TotalStake.
  4. Splits the pot pro-rata using the largest-remainder method. Each staker’s share goes to their coldkey free balance. The SubnetProtocolAlpha share (and SubnetAlphaIn share on new subnets) is accumulated into an internal protocol TAO share and is not paid to any staker.
  5. Destroys all per-key alpha, hotkey share-pool totals, and the SubnetAlphaIn, SubnetAlphaOut, and SubnetProtocolAlpha counters.
  6. Applies the owner lock refund on legacy subnets registered before NetworkRegistrationStartBlock. The refund is max(0, lock_cost − owner_received_emission_in_tao) and cannot draw from the withheld protocol TAO share.
  7. Recycles any TAO left on the subnet account — including the withheld protocol TAO share — via recycle_tao. That TAO is burned back and recorded in RAORecycledForRegistration.
  8. Clears the remaining subnet storage (params, weights, emissions, locks, token symbol, mechanism) and emits NetworkRemoved.

Why per-alpha payout is lower than “pot divided by staker alpha”

Section titled “Why per-alpha payout is lower than “pot divided by staker alpha””

The protocol’s alpha stays in the denominator on purpose. It dilutes the per-alpha payout so the number you see reflects that some of the pot leaves the holder pool entirely.

Worked example. Suppose at deregistration a subnet has SubnetTAO = 100 τ and:

  • Stakers hold 70 alpha in total.
  • Protocol alpha (SubnetProtocolAlpha plus SubnetAlphaIn where applicable) is 30 alpha.
  • Total denominator is 100 alpha.

Then:

  • Per-alpha price is 100 τ / 100 alpha = 1 τ per alpha.
  • Stakers collectively receive 70 × 1 = 70 τ, split by individual alpha.
  • The protocol’s 30 τ slice is withheld and recycled — it does not reach stakers.

Dividing 100 τ by only the 70 staker alpha would give 1.43 τ per alpha and overstate every holder’s payout by about 43%. The live liquidation price shown on each subnet page already accounts for the full denominator.

Formula: per-alpha payout calculation

Formula: liquidation price with denominator dilution

The liquidation price is the effective per-alpha TAO you receive from draining the pool, after the denominator dilution above.

  • If the liquidation price is above the current market price, holders are paid a premium versus market.
  • If it is below, holders take a loss versus market.

Live liquidation prices are on each subnet page at taostats.io/subnets.

  • SubnetTAO — TAO reserve in the subnet. This is the pot distributed at deregistration.
  • SubnetProtocolAlpha — protocol-owned alpha accumulated from per-block chain buys (runtime 415 and later).
  • SubnetAlphaIn — AMM pool-reserve alpha paired against SubnetTAO.
  • SubnetAlphaOut — alpha issuance tracker (staked-out alpha).
  • TaoInRefundDeploymentBlock — cutover block for the new denominator rule. On finney: 8,334,450.
  • NetworkRegisteredAt — the block a subnet was registered. Determines legacy vs. new.
  • NetworkRegistrationStartBlock — 6,573,966. Determines eligibility for the owner lock-cost refund.

This behaviour is defined in pallets/subtensor/src/staking/remove_stake.rs::destroy_alpha_in_out_stakes and pallets/subtensor/src/coinbase/root.rs::do_dissolve_network in the opentensor/subtensor repository, spec_version 425. The relevant runtime is v3.4.2-415, published in commits d1de05615 and f40f4ae6f.