Runtime 447 (release v447)
The Bittensor mainnet runtime upgraded to spec version 447. Unlike the bundled runtime 445 release, v447 is a single-feature change: it retunes the conviction-based subnet-ownership takeover rule (the subnet king mechanism), replacing a subnet-wide 10% quorum with an 18% bar on a single hotkey.
Live on mainnet (spec 447)Confirmed on-chain: runtime version 447 activated at block 8,844,992 (2026-08-14 19:44 UTC on Finney), read from the Taostats runtime version index.
The short version
- Ownership now transfers on one hotkey's own conviction, not the subnet-wide total. Before v447, a subnet's ownership moved to the highest-conviction hotkey once the total rolled conviction across the whole subnet (every hotkey and coldkey, including the incumbent owner) reached 10% of eligible alpha. From v447, ownership transfers only when a single hotkey's own rolled aggregate conviction exceeds 18% of eligible alpha, by itself.
- The subnet-wide sum no longer counts. Other keys' locks — including the owner's — no longer add to a challenger's threshold. Only conviction locked toward the winning hotkey counts toward its bar.
- Everything else is unchanged. Eligible alpha is still
SubnetAlphaOut − SubnetProtocolAlpha − AlphaBurned(saturating at zero), the subnet must still be at leastONE_YEAR(2,629,800 blocks) old, and a zero eligible balance still cannot trigger a transfer.
Why the rule changed
Summing conviction across every locker meant unrelated stakers — and even the incumbent owner's own locked alpha — could inadvertently supply a challenger's quorum. A subnet could cross the 10% subnet-wide bar without any single party actually committing enough conviction to warrant taking ownership.
v447 closes that path by measuring only the winning hotkey's own conviction. Coalitions still work exactly as before: backers who want to support a challenger lock directly to that challenger's hotkey, so their conviction lands in that hotkey's own aggregate and counts toward the 18% bar. What no longer counts is conviction locked elsewhere on the subnet.
What actually changed in the gate
Both the winner selection and the admission check now run through one shared computation (subnet_king_with_conviction), so the gate can never disagree with the hotkey it examined:
- Before (spec 446):
get_total_conviction(netuid) × 10 ≥ eligible_alpha— a subnet-wide sum against a 10% bar (≥). - From spec 447:
king_conviction × 100 > eligible_alpha × 18— the single winning hotkey's conviction against an 18% bar, strict (>). The comparison is cross-multiplied in 256-bit integers over the rawU64F64bits so a high-range takeover can't saturate and get wrongly rejected.
The full mechanism — how conviction is rolled forward per hotkey, how the aggregate buckets swap on transfer, and the worked numbers — is documented in the Conviction concept page.
What this means
- Any estimate of when a subnet becomes takeover-eligible must now project a single hotkey reaching 18% of eligible alpha on its own, not the subnet-wide total reaching 10%. In practice this raises the effective bar for a takeover on most subnets, because the incumbent owner's and unrelated stakers' locks no longer contribute.
- Tools and dashboards that surfaced "subnet-wide conviction vs. 10%" as a takeover-readiness signal are now measuring the wrong quantity; the readiness signal is the leading hotkey's own conviction vs. 18%.
Source provenance
- Release:
RaoFoundation/subtensorv447, single PR #3083 ("Conviction normalization: single-hotkey 18% takeover gate"). - On-chain confirmation: runtime version 447 at block 8,844,992 (2026-08-14 19:44 UTC), Finney, via the Taostats runtime-version index.
- Gate (verified at
v447):pallets/subtensor/src/staking/lock.rs—change_subnet_owner_if_needed(L1180) gates onking_conviction × 100 > eligible_alpha × 18, whereking_convictioncomes fromsubnet_king_with_conviction(L1093, the winning hotkey's rolled aggregate). Compared againstv446, which gated onget_total_conviction(netuid) × 10 ≥ eligible_alpha(subnet-wide sum, 10%).eligible_alphaand theONE_YEARage gate are byte-for-byte unchanged between the two tags.
The v447 release train lives on theRaoFoundation/subtensorrepository (the formeropentensor/subtensor, now redirected). PR numbers reference that repository.
See also: Conviction ·
Runtime 445 ·
Protocol changes overview
Updated about 14 hours ago
