Queries
subnet-convictions
Every hotkey with locked stake on a subnet, rolled forward to now.
Per hotkey: locked mass, conviction, and the estimated blocks until its
own conviction strictly exceeds 18% of the subnet's eligible alpha.
Eligible alpha is SubnetAlphaOut - SubnetProtocolAlpha - AlphaBurned
(saturating at zero). change_subnet_owner_if_needed reassigns
ownership when the subnet is at least ~1 year old (2,629,800 blocks) and
the highest-conviction hotkey holds more than 18% of eligible alpha on
its own, at which point that hotkey's coldkey becomes the subnet owner.
The gate measures a single hotkey — exactly 18% is not enough — so
leader_hotkey and leader_blocks_to_threshold describe the current
conviction leader's standing against the gate, while the subnet-wide
total_conviction_alpha is reported for context only and never gates
the takeover. Projections assume the lock rates and alpha accounting
stay constant.
Category: Locks & conviction
Parameters
| Parameter | Type | Description |
|---|---|---|
netuid | integer | Subnet to query. |
CLI
btcli query subnet-convictions --netuid <integer> --jsonPython
Namespace method (autocomplete, signature help):
import bittensor as bt
sub = bt.Subtensor()
result = sub.locks.subnet_convictions(netuid=1)Or dispatch by name, as an agent would:
result = sub.read("subnet_convictions", netuid=1)Async is the same surface awaited: async with bt.Subtensor() as client:.
On-chain implementation
- Storage
SubtensorModule.HotkeyLock - Storage
SubtensorModule.DecayingHotkeyLock - Storage
SubtensorModule.OwnerLock - Storage
SubtensorModule.DecayingOwnerLock - Storage
SubtensorModule.SubnetOwnerHotkey - Storage
SubtensorModule.SubnetAlphaOut - Storage
SubtensorModule.SubnetProtocolAlpha - Storage
AlphaAssets.AlphaBurned - Storage
SubtensorModule.UnlockRate - Storage
SubtensorModule.MaturityRate - Storage
SubtensorModule.NetworkRegisteredAt
Every file is browsable under /code exactly as built into the runtime.