Price-based subnet emission shares (with miner-burn scaling)
The live share formula
Section titled “The live share formula”Each block, Subtensor computes the slice of TAO emission going to each emit-enabled subnet. The share is no longer a TAO-flow function. It is now:
share_i ∝ root_proportion_i × price_i × (1 − miner_burned_i)renormalized across emit-enabled subnets. Three signals compose:
price_i— the subnet’s exponential moving average price,SubnetMovingPrice, normalized across emit-enabled subnets. Market valuation of the subnet’s alpha drives its TAO slice.root_proportion_i— defined in Root Emissions astao_on_root / (tao_on_root + alpha_issued). Shrinks as a subnet’s alpha issuance grows over time, so this term reallocates emission away from older subnets toward newer ones, easing entry for newly-registered subnets.(1 − miner_burned_i)—MinerBurnedis the proportion of the subnet’s last-tempo miner (incentive) emission that was withheld from miners by being directed to owner-owned or owner-immune hotkeys. Subnets that burn more of their miner emission receive proportionally less chain emission; the deficit reallocates to non-burning subnets.
Fallback
Section titled “Fallback”If the combined weighted sum is zero (e.g. all subnets at full burn, or no
root stake on any subnet), the chain falls back to root_proportion × price
shares — i.e. the formula drops the (1 − miner_burned) term but keeps
root_proportion. There is no path that resolves to raw unweighted price.
What changed, in two commits
Section titled “What changed, in two commits”The live behavior is the composition of two PRs, both on chain:
PR #2779 — Price-based shares (gztensor)
Section titled “PR #2779 — Price-based shares (gztensor)”get_sharesreplaces the TAO-flow basis withSubnetMovingPrice. Emission is proportional to normalized price over emit-enabled subnets.- Alpha-injection cap becomes
root_proportion × alpha_emission. The gap betweenalpha_emissionand this cap is no longer minted as pool liquidity; it is routed into chain buys of alpha instead. - Affected emission tests updated; obsolete TAO-flow share tests removed.
The mechanical consequence: older, low-root_proportion subnets transition
from receiving alpha as liquidity injection to receiving it via on-chain
buys. This is a structural shift in how alpha enters circulation and is
the change that makes the previous TAO-flow framing obsolete.
PR #2781 — Miner-burn scaling (unconst)
Section titled “PR #2781 — Miner-burn scaling (unconst)”- New per-subnet storage
MinerBurned: NetUid → U96F32holding the proportion (0..1) of each tempo’s miner emission withheld via owner or owner-immune hotkeys. Set every tempo from the incentive-distribution path, where validator-set incentive weights determine which hotkeys receive emission. get_sharesreweighted by(1 − miner_burned)and renormalized.- Recycle bypass closed. Miner emission directed to an owner/immune
hotkey counts toward the burn whether it is
BurnorRecycleunder the subnet’sRecycleOrBurnconfig. There is no toggle that escapes the penalty. - All-full-burn fallback added: if every emit-enabled subnet’s
(1 − miner_burned)is zero (or the weighted sum is otherwise zero), the share formula falls back toroot_proportion × priceso emission still flows. - Dissolve cleanup.
MinerBurnedis cleared when a subnet is removed, so deregistered subnets leave no stale proportion in storage. - Test coverage added for no-burn, partial burn, full burn, all-full-burn
fallback, and
root_proportion-favoring-newer-subnets cases.
Why this matters
Section titled “Why this matters”For subnet owners
Section titled “For subnet owners”- Owner-self-emission is now penalized at the chain level, not just
socially. Subnets routing miner incentive to owner/immune hotkeys via
validator-weight choices get proportionally less chain emission the next
tempo. The penalty applies whether the withheld incentive is burned or
recycled — no
RecycleOrBurntoggle escapes it. root_proportionworks in your favor when you’re new. A newly registered subnet has a relatively highroot_proportion(low alpha issuance), giving it a structurally larger share for a given price than an older subnet at the same price. Entry is materially eased.- Alpha supply for low-
root_proportionsubnets shifts to chain buys. Pool depth dynamics change: less fresh alpha minted as liquidity, more TAO going into on-chain buy-side pressure on alpha. Expect different slippage and order-flow profiles on older subnets.
For validators and stakers
Section titled “For validators and stakers”- Emission allocation is market-driven via the EMA, not validator-flow.
A subnet’s TAO slice is now set by
SubnetMovingPrice× the two scaling terms, not by aggregate validator TAO weight. Validator weights still determine within-subnet incentive distribution (and now feed back intoMinerBurned), but no longer determine between-subnet TAO allocation directly. MinerBurnedis set by validator weights every tempo. If validators weight an owner/immune hotkey, that incentive is “withheld” from the miner pool and counts toward the subnet’s burn proportion next tempo.- TAO-flow framing is dead. Any explainer, dashboard label, or analysis
that treats subnet emission as a function of validator TAO flow is now
describing pre-2779 behavior. Mental model: emission share is a function
of price, age (via
root_proportion), and owner-extraction behavior (viaMinerBurned).
Source provenance
Section titled “Source provenance”- PR #2779 —
get_sharesprice-EMA basis +root_proportion × alpha_emissioncap. Author: gztensor. - PR #2781 —
MinerBurnedstorage,(1 − miner_burned)reweighting, recycle/burn equivalence, dissolve cleanup, all-full-burn fallback. Author: unconst. - Code anchors (subtensor
main):pallets/subtensor/src/coinbase/run_coinbase.rs—get_subnet_terms(root_proportion-capped alpha injection),MinerBurned::insert(netuid, withheld_proportion)at the end of the incentive distribution loop.root_proportiondefinition consumed viaSelf::root_proportion(netuid).SubnetMovingPriceand the EMA update logic live alongside the swap interface; consultpallets/subtensor/srcfor the exact half-life parameter.
Cross-references that need follow-on edits
Section titled “Cross-references that need follow-on edits”These pages still frame emission in pre-2779 terms and should be updated to point here:
/concepts/alpha-emission— restate the alpha-injection cap asroot_proportion × alpha_emissionand document the chain-buy path for the remainder./concepts/halving— confirm halving math composes cleanly with price-based shares./concepts/subnet-emission— replace TAO-flow framing./concepts/tao-emission— replace TAO-flow framing./concepts/recycling— document that miner emission directed to owner/immune hotkeys counts towardMinerBurnedwhether recycled or burned (no Recycle bypass)./concepts/stakeholder-emissions-root— link forward to this page from theroot_proportiondefinition./concepts/tao-flow— flag the page as describing legacy (pre-#2779) emission basis; either deprecate or rewrite as a historical reference.
Status
Section titled “Status”- 2026-06-22. PR #2779 detected (testnet merge), stub explainer drafted.
- 2026-06-23. PR #2781 merged, system composed live on chain. This
page rewritten as a current-state explainer. Doug fact-checked the
parameter definitions. Rufus deep-dive on
SubnetMovingPriceEMA params outstanding.