Root Reborn
What shipped
Spec version 441 is a release about a single flow: what happens to the emission the subnets owe the root network. Until this upgrade the chain enforced a bias on that flow — the dividend was sold into TAO the moment it arrived. As of 441 it is held instead. Each validator on root runs an escrowed holding of subnet alpha — a root basket — and the people who back that validator redeem their entitlement to it when they choose. The source for this page is one document: the project's own release note, titled "Root Reborn" and dated July 2026. It is an interested party's account of its own work — so what follows reports what that note says rather than repeating it as established fact. [source] [source] [source]
The release opens on the size of what it is changing, and the figures there are its own. Its headline number for the root network is 5,437,066 τ, which it presents as "$1.03B staked on root — 48.7% of every TAO ever minted"; the opening paragraph puts the same holding as nearly half of all TAO in existence and 73% of all staked TAO. Those are the note's numbers, quoted as it prints them, and nothing on this page checks them against chain state. [source] [source] [source]
The machinery the release describes is one fund per root validator, with no action required from the people staked behind it. Each epoch the dividend lands in that validator's basket. The holdings sit in chain-owned escrow — real stake entries under a pallet sub-account with no private key, which the release says means they cannot be moved or signed away, and because they are real stake they keep earning every epoch. When a dividend lands, each backer is credited a fraction of the whole fund priced at what selling the holdings would actually fetch at current pool depth rather than at a spot mark, so the release says existing holders are neither diluted nor gifted. [source] [source] [source] [source]
Two things about the launch state need saying plainly, because the headline promise and the shipped behaviour are not the same thing. Curation is switched off network-wide: every fund runs what the release calls the null strategy, in which the dividend is not sold at all but accrues in place as the alpha of the subnet that paid it, trade-free, and the call a validator would use to publish an allocation vector fails outright until governance enables it in a later upgrade. And joining root is now burn-based: registration charges the coldkey a demand-priced root burn instead of requiring stake up front. [source] [source] [source] [source]
What it changes for the ecosystem
For anyone staked on root — the position lesson 10 described as the one whose returns add up across every subnet a validator serves — the release's own instruction is that there is nothing to configure. TAO subscribed on root accrues yield automatically, btcli root list shows staked and accrued τ per validator, and btcli root claim is the exit path: omit the amount to realize accrued yield back into root stake, or pass one to withdraw to free balance. A claim is per validator and redeems your owed fraction of that one basket pro-rata. The release states that nothing is realized — and nothing is taxable — until you call it, and that per-validator payouts below the claim threshold (default 500,000 rao) are skipped and keep accruing, with no deadline and nothing that expires. [source] [source] [source] [source]
Anything already accrued moves across on its own. The per-subnet claimable state is migrated into baskets at the upgrade — previously accrued claimable alpha becomes basket holdings and entitlement on the same validator — and the release says nothing is lost and no user action is needed for past accruals. What does not survive the migration is the choice of payout form: the calls that set a claim type and a per-block claim count are removed, the Swap / Keep / KeepSubnets setting and the automatic per-block claim sweep are gone, and payouts are always TAO staked back to root. Anyone who was using that setting to end up holding subnet alpha must now get there by staking on the subnet directly. [source] [source] [source]
For the subnets the change is to a flow they were paying out every day. The release describes root's share of subnet inflation as structural sell pressure — 983 τ of subnet alpha marked and sold out of the pools daily, which it puts at 74% of the roughly 1,321 τ of fresh emission entering all subnet pools each day — and argues that this upgrade removes that drain outright, taking root's net flow at the pools from −983 τ/day to approximately zero. Its own framing of the result is a redistribution among subnets rather than a tax out of them: the subnets still pay root its proportion, and root now holds it inside them. Root proportion itself is not what changed here — what changed is what becomes of the alpha it entitles root to. [source] [source]
Lesson 09 described the slice of validator-destined pay that never reaches validators at all, because it is reserved for whoever staked TAO into the root network and accrues to them as claimable dividends. That reservation is intact; 441 changes only what happens to the reserved alpha on arrival, and therefore what a claim against it pays out. For root validators themselves the release frames the change as one in what competition on root is about: registration takes no prior stake, and the scoreboard it names is who made their backers the most TAO. Its argument is that a new entrant with a sharper read on the subnets can out-allocate an incumbent, post a better realized yield, and pull delegation away from it — an argument about what the rules now permit, not a reported outcome. Root still prunes its lowest-staked member when it is full, so the note tells a new validator to subscribe stake to its own hotkey to hold the seat. [source] [source] [source]
One consequence is easy to miss operationally, and it is about keys rather than money. Hotkey and coldkey swaps carry basket state — holdings, entitlements and claim watermarks — across to the new key, which means a hotkey with a live basket is not "clean" for reuse. If a subnet is dissolved, that subnet's basket holdings are converted into the TAO slot of each affected fund rather than disappearing. And the error that used to reject a root registration for insufficient stake is retired, so tooling that pre-funded root hotkeys before registering can drop that step and needs free balance for the burn instead. [source] [source]
Indexers and integrators get the longest list. The release asks them to regenerate metadata for the new per-validator claim call and for set_root_weights — which reuses the name of a retired emission-vote call index with new arguments and new semantics — to keep decoding the legacy claim_root, whose subnets argument still decodes but is now ignored, to drop the two retired claim-configuration calls, and to add the new basket events and the betaBasket_* RPC namespace. It also flags that set_root_weights is gated at launch and fails with a dedicated error until governance flips the flag. Operators are told to wait for the on-chain spec_version to move to 441 before upgrading nodes and clients, and SDK users to pull the matching release once the train publishes it. [source] [source] [source]
What to watch
The part of this release a reader would most want to judge is the part that is not switched on. The note's case rests on allocation — root validators sitting on the largest aggregated positions in the network and, for the first time, being paid to curate it — but the call that publishes a vector ships gated off so that the null-strategy baseline is established first, and curation opens in a follow-up upgrade. The yield claim is stated as an expectation in the same register: the release quotes a 6.6%/yr base yield at today's run-rate, says that under the old machinery it was a ceiling as much as a floor, and writes that it expects the effective yield distributed to TAO holders to rise with allocation skill. The note is equally plain that its own picture of the allocation layer is not drawn from live data: in the diagram of that layer the validator vectors are labelled illustrative, and only the destinations are real. [source] [source] [source] [source]
Unverified What that leaves measurable at launch is the flow change, not the allocation thesis. With every fund on the null strategy, the visible effect of 441 is that the daily sell of root's alpha stops and the alpha accumulates in escrow instead — which is a change in who holds subnet tokens and when they are sold, and says nothing yet about whether curated allocation beats the baseline. The note publishes no criterion for judging that comparison later.
Unverified The second thing to watch is where the new power lands. Lesson 10 made the case that concentration, not headcount, decides outcomes on this network; handing every root validator a published allocation vector over subnet alpha gives the same concentrated set a second lever, over which subnets receive a recycled dividend rather than only over which miners are scored well. The release's answer is that burn-based registration lets a better allocator displace an incumbent. Whether delegation actually moves on realized yield is an empirical question this document cannot settle.
How it actually works
The fund, in five parts
The release sets out the machinery as one fund per root validator with five moving parts: [source]
- Validators publish a vector, once curation opens.
set_root_weights(call index 146) takes relative weights over netuid 0 and existing subnets — at least 8 positive destinations, softened when fewer networks exist — and is rate-limited like other weight calls. It launches gated off network-wide and fails withRootWeightSettingDisabled. [source] [source] - Each epoch the dividend lands in the basket. With no vector — every fund at launch — the subnet alpha is credited straight into the fund's holding on the subnet that paid it, with no sell, no swap fees and no slippage. Once a validator curates, the dividend is instead sold to TAO once, split per the vector, and each slice buys that destination's alpha; weight on netuid 0 keeps its slice as pure TAO. [source]
- Holdings sit in chain-owned escrow: real stake entries under a pallet sub-account with no private key, unmovable and unsignable, still earning every epoch. [source]
- Stakers accrue entitlement at NAV — a fraction of the whole fund priced at its realizable TAO quote, what selling the holdings would fetch at current pool depth, never a spot mark. [source]
- Claims are per validator, whenever the holder chooses.
claim_root_with_hotkeytakes the validator hotkey, redeems the owed fraction from that basket only, and pays it as TAO staked back to root on the same validator. [source]
Past accruals migrate automatically at the upgrade: the old per-subnet claimable state becomes basket holdings and entitlement on the same validator. [source]
What a root validator runs
Joining root is burn-based. root_register charges the coldkey the demand-priced root burn — the release quotes τ1 at rest, bumped roughly ×1.26 per registration and decaying back to the floor — instead of requiring stake up front, and a full network still prunes its lowest-staked member on entry, so a new member subscribes stake to its own hotkey to hold the seat: [source] [source]
btcli subnets burn-cost 0 # current root registration price
btcli subnets register --netuid 0 -w my_coldkey -H my_hotkey # register; no prior stake needed
No curation is needed to earn: a validator with no vector accrues automatically, each subnet's dividend accumulating in place in that subnet's alpha, trade-free. Weight setting is gated off at launch network-wide, so every fund starts on the same null strategy and the upgrade's effect is uniform and visible. Once curation is enabled, the vector is set with the validator's hotkey — weighting netuid 0 keeps part of a curated basket in TAO: [source] [source]
btcli root set-weights --weights "0:0.2,4:0.3,8:0.5" -w my_wallet
btcli root get-weights --hotkey 5F...
btcli root show --hotkey 5F... # your fund: weights, holdings, NAV
Weights are relative and normalized before submission, every destination must be netuid 0 or an existing subnet, the root weights rate limit applies, and the SDK surfaces the same path as bt.SetRootWeights. [source]
What a root staker runs
There is nothing to configure — TAO subscribed on root accrues yield automatically, and btcli reports root positions in TAO, with staked τ as principal and accrued τ as fund yield: [source] [source]
btcli root list # staked + accrued τ, per validator
btcli root subscribe --amount 100 --hotkey 5F... # assets in
btcli root claim # pick wallet → validator → claim / withdraw
btcli root claim --hotkey 5F... --amount all # withdraw full position
btcli root claim --hotkey 5F... # claim accrued into stake only
btcli root claim is the exit path: omitting --amount realizes accrued yield into root stake, and passing --amount or all withdraws to free balance, with accrued yield claimed first when needed. The legacy claim_root(subnets) call still works for old clients, with the subnet set ignored. Per-validator payouts below the claim threshold — default 500,000 rao, readable with root-claim-threshold — are skipped and keep accruing; there is no deadline and nothing expires. The retired btcli stake set-claim and process-claim commands are replaced by the btcli root suite. [source] [source]
The same claim from the SDK — preview what is owed, then redeem one validator's accrued yield: [source] [source] [source] [source] [source] [source]
import bittensor as bt
from bittensor.wallet import Wallet
wallet = Wallet(name="my_coldkey")
sub = bt.Subtensor()
owed = sub.read(
"root_basket_owed_breakdown",
coldkey_ss58=wallet.coldkeypub.ss58_address,
)
result = sub.execute(bt.ClaimRootWithHotkey(hotkey_ss58="5F..."), wallet)
result = sub.execute(bt.ClaimRoot(subnets=[0]), wallet)
For anyone signing directly or building against metadata, the raw calls are SubtensorModule.claim_root_with_hotkey at call index 148, origin signed by the coldkey, taking the validator hotkey as an AccountId32; and SubtensorModule.claim_root at call index 121, also coldkey-signed, whose subnets: BTreeSet<u16> argument is ignored because claims are fund-level. A claim sells the redeemed alpha to TAO at current pool depth and stakes the proceeds back to root on the same validator; fees are charged by work actually done, with the declared weight a cap refunded post-dispatch. The release recommends preferring the per-hotkey call, because a coldkey staked to many validators pays for the full walk under bare claim_root. [source] [source] [source] [source]
Breaking changes
claim_root(121) keeps itssubnets: BTreeSet<NetUid>argument so old clients still decode, but the set is ignored — claims are fund-level across every validator the coldkey stakes to. The newclaim_root_with_hotkey(148) claims one validator. [source]set_root_claim_type(122) andsudo_set_num_root_claims(123) are removed. Payouts are always TAO staked back to root; the Swap / Keep / KeepSubnets setting and the automatic per-block claim sweep are gone. To hold subnet alpha, stake on the subnet directly. [source]- The
RootClaimable/RootClaimedper-subnet state is migrated into baskets at upgrade; previously accrued claimable alpha becomes basket holdings and entitlement on the same validator, with nothing lost and no user action needed. [source] - Hotkey and coldkey swaps carry basket state — holdings, entitlements, claim watermarks — to the new key, so a hotkey with a live basket is not "clean" for reuse. Subnet dissolution converts that subnet's basket holdings into the TAO slot of each affected fund. [source]
root_register(62) now charges the root burn price and no longer requires the hotkey to out-stake the lowest root member; theStakeTooLowForRooterror is retired, and coldkeys need free balance for the burn instead. [source]
Indexers additionally regenerate metadata for claim_root_with_hotkey (148) and set_root_weights (146 — the same name as the retired call-index-8 emission vote, with new args and semantics), drop the retired 122/123 calls, and add the RootWeightsSet, BasketDeposited, BasketClaimed, RootClaimed and BasketHoldingConverted events. set_root_weights fails with RootWeightSettingDisabled until governance flips the flag via AdminUtils.sudo_set_root_weight_setting_enabled (103, emitting RootWeightSettingToggled), and the claim threshold is root-settable via sudo_set_root_claim_threshold (124). [source]
New runtime APIs
A BetaBasketRuntimeApi ships with the release, mirrored as betaBasket_* RPC methods and as named SDK reads available under btcli query and client.read: staker owed and per-validator owed breakdown, a validator's basket and its NAV, the total NAV across funds, and a validator's published root weights. [source] [source]
Signers use btcli upgrade sign --url <v441 release URL> -w <wallet> after the release train proposes. [source]
The numbers the release prints
The note closes with a panel it labels "the network, in raw numbers". These are its figures, taken at the block it names, not measurements made here: [source] [source]
- TAO price: $188.70. [source] [source]
- TAO issued to date: 11,158,337 τ · $2.11B. [source] [source]
- Staked on the root network: 5,437,066 τ · $1.03B · 48.7% of issuance. [source] [source]
- Subnets live and earning: 77 of 128. [source] [source]
- Chain-held TAO in subnet pools from TAO→α buys, which sits until deregister: 2,007,394 τ · $379M. [source] [source]
- Subnet alpha market cap: 3,549,136 τ · $670M. [source] [source]
- Root dividend stream, as 7-day average protocol revenue: 983 τ / day · $185k / day · 26% of emission. [source] [source]
- Cumulative protocol revenue since dTAO: 825,409 τ · $156M. [source] [source]
- Base root yield at that run-rate: 6.6% / yr in TAO. [source] [source]
- Paid to miners for useful work: 2,192 τ / day · $414k / day. [source] [source]
- Root dividend gate, as the sum of subnet EMA prices: 1.30 · open. [source] [source]