SubtensorModule
#7The main Bittensor pallet containing all subnet, staking, and consensus logic
Part of Bittensor Core: The heart of Bittensor - subnets, staking, validation, and emissions
MAP ( coldkey ) --> flags | Account-level flags. Defaults to zero.
The destination coldkey rejects incoming locked alpha.
Accumulated dividends pending distribution for subnet leases.
Whether neurons are active on a subnet.
There is already an active lock for the given coldkey.
Blocks of inactivity before pruning.
MAP ( netuid ) --> activity-cutoff factor in per-mille epochs (1/1000 granularity).
The supplied activity-cutoff factor is outside the allowed range.
Activity-cutoff factor (per-mille) set on a subnet by its owner.
Emitted when activity cutoff threshold is changed.
The activity cutoff value being set is too low.
Locks additional miner collateral (in alpha) on the signer's own
Transfers TAO from coldkey's free balance to stake on a hotkey.
The extrinsic is a combination of add_stake(add_stake_limit) and burn_alpha. We buy
Adds stake with a price limit for slippage protection.
"Add stake and burn" event: alpha token was purchased and burned.
"Add stake and burn" exceeded the operation rate limit
Alpha for difficulty adjustment algorithm.
Emitted when difficulty adjustment alpha parameter is changed.
Blocks between difficulty adjustments.
Emitted when difficulty adjustment interval is changed.
Admin operation is prohibited during the protected weights window.
Window length at tempo end during which admin operations are frozen.
Emitted when admin freeze window is changed.
Emitted when all stake is unstaked and transferred during coldkey swap.
All subnets are in their immunity period, so none can be pruned.
Legacy alpha stake per (hotkey, coldkey, netuid), stored as FixedU128 { bits }. Superseded by AlphaV2 at v401.
Emitted when alpha tokens are permanently burned.
Nominator share of alpha dividends per hotkey per subnet at the last epoch, net of the validator take.
Upper bound for alpha parameter.
The alpha high parameter is below the minimum (must be > 0.8).
Lower bound for alpha parameter.
The alpha low parameter is out of valid range (must be 0 < alpha_low < 0.8).
Last key used for Alpha storage map iteration.
Emitted when alpha tokens are recycled back to the subnet.
The pool epoch a share row was last written in.
Generation counter of a hotkey alpha share pool on a subnet.
Steepness parameter for the alpha sigmoid function per subnet.
Emitted when alpha sigmoid steepness parameter is changed.
V2 alpha stake per (hotkey, coldkey, netuid), stored as SafeFloat { mantissa, exponent }. Supersedes Alpha at v401.
Contains last AlphaV2 storage map key to iterate (check first)
Alpha low and high bounds per subnet.
The stake amount provided is too low.
Announces a coldkey swap using BlakeTwo256 hash of the new coldkey.
The coldkey you passed to swap_coldkey_announced does not hash to the value you announced.
Emitted when a coldkey swap arbitration period is extended due to dispute.
Associates an EVM key with a Substrate account.
EVM address associated with a neuron position.
DMAP (netuid, H160) --> associated UIDs and last block where ownership was proven.
The next automatic epoch is already imminent; a manual trigger would have no effect.
--- MAP ( hotkey ) --> parent_delegation_enabled
A root validator toggled the "auto parent delegation" flag.
Emitted at the epoch when miner incentive is staked to an AutoStakeDestination hotkey instead of the mining hotkey.
Hotkey that receives a coldkey's miner incentive on a subnet, instead of the mining hotkey.
Coldkeys using auto-stake on a subnet.
Emitted when a coldkey sets its auto-stake destination hotkey.
Axon server info for neurons.
Emitted when a neuron updates their axon server information.
An error occurred while withdrawing balance.
Emitted when basket alpha on a terminally shallow pool is burned instead of sold, because no executable sale exists.
Emitted when a root claim left some fund rows unsold because they were dust.
Emitted per validator when a staker redeems their pro-rata slice of that validator's basket.
Double map (validator_hotkey, staker_coldkey) to the claimed watermark used to net off entitlement.
Hard bound, in rao, on what any one skipped slice may be worth.
Relative part of the row-dust floor, in basis points of the fund anchored NAV.
Absolute cap, in rao, on the row-dust floor of a root claim.
Rao value below which a root claim leaves its own slice of a row unsold.
Largest u16-normalized share of fund NAV one holding may reach through a swap_basket buy.
After the buy, the destination holding would exceed BasketConcentrationCap of fund NAV.
Capacity of each fund swap_basket turnover bucket as a u16-normalized share of NAV.
Emitted when a validator's root dividend is deployed into its basket, minting fund shares at the pre-deposit NAV.
Map (validator_hotkey) to lifetime TAO deposited into the basket.
Declared for a queued root-dividend deposit that could not be settled. No dispatch path raises it in the current runtime.
Retired. This variant is kept only so later error variants keep their SCALE indices.
Emitted when a basket holding on a dissolving subnet is converted into the fund's root TAO slot.
Largest u16-normalized share of a subnet alpha reserve a fund may hold there after a swap_basket buy.
After the buy, the fund would hold more of the destination subnet than BasketLiquidityCap allows as a share of that pool alpha reserve.
Alpha a fund bought into a subnet within the current refill window, decaying to zero.
The buy leg credited less than the min_amount_out you passed. The whole trade rolled back.
Map (validator_hotkey) to the cumulative fund-shares-per-root-stake accumulator.
Map (validator_hotkey) to lifetime TAO redeemed out of the basket.
origin_netuid and destination_netuid are the same subnet.
Map (validator_hotkey) to total fund shares outstanding for that basket.
Emitted when a staker deposits TAO from free balance directly into a validator's basket.
A swap_basket_many call contained no legs. Nothing was checked or traded, and no dividends were flushed.
Emitted when swap_basket, or one leg of swap_basket_many (v470), rebalances a validator beta basket.
Per-fund swap_basket turnover bucket: TAO available and the block it was last refilled.
swap_basket is switched off network-wide: BasketTradingEnabled is false.
Master switch for validator basket trading (swap_basket).
Validator hotkeys whose basket trading governance has frozen.
Governance froze basket trading for this validator hotkey.
The TAO through the middle of the trade is more than the fund turnover bucket currently holds.
Map (validator_hotkey) to the fund staker total-return accumulator, the canonical root-staker return series.
Commits weights on multiple subnets in a single transaction.
Reveals committed weights on multiple subnets in a single transaction.
Sets weights on multiple subnets in a single transaction.
Emitted when a batch operation completes but some items failed.
Emitted when an individual weight set within a batch fails.
Emitted when a batch of weights is successfully set across multiple subnets.
The beneficiary does not own the specified hotkey.
Map (validator_hotkey) to the frozen display baseline splicing the fund onto the basket index.
Emitted when a fund frozen display baseline is stamped at its first share mint.
The beta basket seed migration has not finished, so basket-touching operations are paused.
Map (validator_hotkey) to the fund last completed index-sweep sample: NAV, display price, and stake price.
The latest published beta-index levels: display, stake, and the completing block.
In-progress state of the paged beta-index sweep; present only mid-pass.
Block number when a neuron registered.
Holds the base emission constant of 1 TAO per block. The rate actually minted each block is derived from total issuance by calculate_block_emission, not read from here.
Blocks since the last successful epoch run, capped at tempo + 1.
Bond values between neurons.
Moving average period for bonds.
Emitted when bonds moving average parameter is changed.
Penalty factor applied to bonds per subnet.
Emitted when bonds penalty parameter is changed.
Whether bonds reset is enabled for a subnet.
Emitted when bonds reset behavior is toggled.
Emitted when balances are bulk-set (admin operation).
Emitted when multiple neurons are registered in a single operation.
Burn amount for registration.
Permanently burns alpha tokens.
PalletId used to derive the on-chain burn account (b"burntnsr").
Registers a neuron by paying TAO instead of solving POW.
MAP ( netuid ) --> BurnHalfLife (blocks)
Burn half-life set for neuron registration.
MAP ( netuid ) --> BurnIncreaseMult
Emitted when the burn-increase multiplier is updated on a subnet, controlling burn registration cost growth.
Burn registrations in current interval.
Emitted when burn registration cost is changed.
This call is currently disabled.
Insufficient balance to pay the subnet lock cost.
Burn and recycle operations aren't allowed on the root subnet.
Cannot set weights for the root network with this method.
A system account cannot be used in this operation
Emitted when on-chain identity is set for a hotkey.
Child hotkeys and proportions for a parent hotkey on a subnet.
Child-hotkey commission fraction on a subnet, encoded as u16. To get the fraction: value / u16::MAX (i.e. value / 65535). NOT basis points (10000) or percent (100).
Emitted when a child hotkey's take rate is set.
Queue of parent hotkeys whose stake just changed and need a childkey threshold re-check.
Parent hotkeys whose total stake is below StakeThreshold, with their child relations inert.
Violating the rules of childkey-parentkey consistency.
Fraction of a parent dividend share recycled when parent and child hotkeys have different coldkeys, as u64 / u64::MAX.
Redeems accrued basket entitlement across every validator the coldkey root-stakes to. The subnets argument is ignored.
Redeems the coldkey's accrued basket entitlement on one validator hotkey.
Clears a coldkey swap announcement after the reannouncement delay if
The coldkey has already been swapped.
DMAP ( netuid, coldkey ) --> BoundedVec of hotkeys
Coldkey swap could not fully migrate miner collateral: the old coldkey's [`ColdkeyMinerCollateral`] aggregate remained non-zero after migrating every indexed collateral hotkey. Failing closed avoids under-locking the destination unstake guard.
This coldkey already has the maximum number of distinct hotkeys with miner collateral on the subnet ([`crate::MAX_COLDKEY_COLLATERAL_HOTKEYS`]).
MAP ( netuid, coldkey ) --> total locked miner collateral
Global map from any coldkey to the first coldkey in its swap lineage.
Global map from an old coldkey to the coldkey that replaced it.
This coldkey already has a dispute recorded, so it cannot be disputed again.
Emitted when a coldkey commits to a future swap by publishing the hash of its replacement. This freezes the account.
Your call was rejected because this coldkey has an open swap announcement. An announced coldkey can only run the swap lifecycle calls.
Blocks a coldkey swap announcement must wait before it can be executed.
Emitted when governance changes how long a coldkey swap announcement must wait.
There is no pending swap announcement for this coldkey to act on.
Pending coldkey swap announcements, keyed by the coldkey being replaced.
Emitted when a coldkey abandons its own pending swap announcement.
You tried to abandon a pending announcement before it became eligible to be cleared.
Emitted when a coldkey disputes its own pending swap, escalating it for manual resolution and blocking every call.
Your call was rejected because this coldkey has a disputed swap. A dispute blocks every call, including the swap calls themselves.
Coldkeys whose pending swap has been disputed, with the block the dispute was raised.
Emitted when a coldkey swap completes, transferring all assets to the new coldkey.
You tried to replace a pending announcement before it became eligible for reannouncement.
Blocks after an announcement becomes executable before it may be reannounced or cleared.
Emitted when governance changes how long a coldkey must wait before reannouncing or clearing a swap.
Emitted when root clears a coldkey swap announcement and any dispute, returning the account to normal.
The announcement exists and the hash matches, but its waiting period has not elapsed.
The coldkey stakes through more hotkeys, or holds more stake positions, than one swap_coldkey call is priced to move.
MAP ( netuid ) --> CollateralDrainRatio (k)
Miner collateral was staked and locked (at registration or via
MAP ( netuid ) --> CollateralLockShare (p)
Commits weights using CRV3 (commit-reveal v3) mechanism.
Commits weights using the standard mechanism.
Commits mechanism weights with timelock.
Commits weights with a specific reveal round.
Commits a hash of weights for later reveal.
Commit-reveal is disabled but you tried to use it.
Emitted when commit-reveal mode is toggled for a subnet.
This subnet requires commit-reveal for weights, but you called set_weights directly.
Emitted when the commit-reveal period length is changed.
Emitted when the required commit-reveal version is updated.
Whether commit-reveal weights is enabled per subnet.
Current version of the commit-reveal weights protocol.
You're committing weights more frequently than allowed.
Consensus scores for neurons on a subnet.
The previous epoch's consensus vector, held per subnet mechanism.
Commit-reveal v3 weight commits storage (deprecated, empty at v411).
Commit-reveal v3.2 weight commits storage (deprecated, empty at v411).
Emitted when weights are committed using commit-reveal v3 protocol.
Emitted when CRV3 committed weights are revealed.
Cursor for the in-progress subnet dissolution cleanup walk.
Total decaying (non-perpetual) lock per hotkey per subnet. DMAP (netuid, hotkey) → LockState.
Marks an individual (coldkey, subnet) lock as decaying. DMAP (coldkey, netuid) → bool. Absence of an entry means the lock decays by default; presence with false means perpetual.
Total decaying lock to the owner hotkey for a subnet. MAP (netuid) → LockState.
Decreases the delegate's commission rate.
Emitted when the default delegate take rate is changed.
Emitted when a hotkey becomes a delegate (validator accepting external stake).
Delegation take for a hotkey, as PerU16 (parts per 65535).
The delegate take rate exceeds the maximum allowed.
The delegate take rate is below the minimum allowed.
You're modifying delegate settings too frequently.
Deprecated call.
POW difficulty for registration.
Emitted when POW registration difficulty is changed.
Schedules disabling of voting power tracking for a subnet.
Disabled temporarily.
Dispute a coldkey swap.
Removes a subnet from the network.
Netuids that have been removed but whose storage cleanup has not finished.
Declared in the runtime but not emitted at v453. The call that produced it, schedule_dissolve_network, was removed at v306.
Block-count setting that no runtime path reads since v315. Reads 36000 at v454.
Emitted when dissolve network schedule duration is changed.
Dividend scores for neurons on a subnet.
The same child hotkey appears multiple times in the list.
The caller is attempting to set weights with duplicate UIDs.
`trigger_epoch` is blocked because commit-reveal is enabled for this subnet: an out-of-band epoch would desync the CRv3 reveal window from the wall-clock Drand schedule and silently drop committed weights.
Blocks for EMA price to halve per subnet.
Emission amounts for neurons on a subnet.
q, the demand-mass fraction used to place the emission gate bar when EmissionBarRank is zero. ITEM, U64F64.
Emission bar rank N. When non-zero, the gate bar θ is set to the Nth-largest positive demand share at each recompute.
θ, the demand-share threshold the Hill emission gate is centred on. ITEM, U64F64. Zero means not yet computed and disables the gate.
h, the steepness of the Hill emission gate. ITEM, U64F64. Governance-set.
Enables voting power tracking for a subnet.
An epoch slot was deferred to the next block due to the per-block epoch cap.
Epoch execution skipped by `is_epoch_input_state_consistent` returned false or other errors.
An epoch trigger is already pending for this subnet; wait for it to fire before triggering again.
Owner manually triggered an epoch for their subnet.
Emitted when an EVM key is associated with a Substrate account.
Exceeded the rate limit for associating an EVM key.
The EVM address already has the maximum number of associated UIDs on this subnet.
Expected beneficiary origin for this operation.
The weight commitment has expired before reveal.
Emitted when testnet faucet dispenses tokens.
The faucet is disabled on this network.
Block number of first emission for a subnet.
FirstEmissionBlockNumber is already set.
Emitted when the first emission block is set for a subnet.
EMA weight for the TAO-flow accumulators, as u64 / i64::MAX. Unread on the emission path since v421.
Power exponent p of the TAO-flow allocator. Present since v334; unread on the emission path since v421.
Tracks which migrations have been executed.
The hotkey account does not exist.
This hotkey is already registered as a delegate.
This hotkey is already registered on the specified subnet.
Total non-owner lock per hotkey per subnet. DMAP (subnet, hotkey) → LockState.
The hotkey is not registered in any subnet.
The hotkey you're trying to interact with is not registered on the specified subnet.
DMap ( netuid, hotkey ) --> root_hotkey | first hotkey in this subnet's
A transactor exceeded the rate limit for setting or swapping hotkey.
DMap ( netuid, old_hotkey ) --> new_hotkey | hotkey swap successor on a subnet.
Blocks between allowed hotkey swaps on subnet.
Not enough time has passed since the last hotkey swap on this subnet.
Emitted when a hotkey is swapped to a new address.
Emitted for each subnet when a hotkey swap occurs.
Identity metadata for coldkey accounts (v2).
Maximum UIDs a subnet owner can make immune from pruning.
Immunity period for new neurons (blocks).
Emitted when neuron immunity period is changed.
Incentive scores for neurons on a subnet.
Emitted at end of epoch showing alpha distributed to miners by UID.
Incorrect commit-reveal version.
A validator is attempting to set weights with incorrect weight version.
Increases the delegate's commission rate.
Initial blocks of inactivity before neuron is pruned.
Initial alpha parameter for difficulty adjustment.
Initial blocks between difficulty adjustments.
Initial steepness of alpha sigmoid curve.
Initial moving average period for bond calculations.
Initial penalty factor for bond calculations.
Initial setting for bonds reset behavior.
Initial TAO burn cost for registration.
Genesis default for the coldkey swap announcement delay, in blocks.
Genesis default for the coldkey swap reannouncement delay, in blocks.
Initial default take for child hotkeys.
Initial default commission rate for new delegates.
Initial proof-of-work difficulty for registration.
Initial duration before network dissolution executes.
Initial EMA price halving period in blocks.
Initial emission ratio for new subnets.
Initial immunity period for new neurons.
Initial TAO supply at genesis.
Initial kappa parameter for consensus.
Initial maximum neurons per subnet.
Initial maximum validators per subnet.
Initial maximum burn cost for registration.
Initial maximum child key take rate.
Initial maximum POW difficulty.
Initial per-block cap on subnet epochs executed in a single block_step.
Initial max registrations allowed per block.
Initial minimum UIDs required on subnet.
Initial minimum number of weights a validator must set.
Initial minimum burn cost for registration.
Initial minimum child key take rate.
Initial minimum delegate commission rate.
Initial minimum POW difficulty.
Initial minimum stake, in rao.
Initial minimum stake transfer amount.
Initial immunity period for new subnets (in blocks).
Initial blocks between lock cost reductions.
Initial minimum TAO required to lock for subnet creation.
Initial blocks between allowed subnet creations.
Initial pruning score assigned to new neurons.
Default value seeding the per-subnet RAORecycledForRegistration storage map.
Initial rho parameter for emission formula.
Initial power factor for scaling law calculations.
Initial blocks between serving info updates.
Initial delay before subnets can start emissions.
Initial percentage of emissions going to subnet owner.
Initial weight of TAO in pool calculations.
Target number of registrations per adjustment interval.
Initial tempo (blocks between emissions) for new subnets.
Initial rate limit for child key take changes.
Initial rate limit for delegate take changes.
Initial blocks between allowed transactions for rate limiting.
Initial number of validators considered for pruning.
Initial version key required for setting weights.
Attempted to batch reveal weights with mismatched vector input lengths.
The caller does not have enough Alpha stake for the operation.
Not enough liquidity in the pool for this operation.
Insufficient stake on subnet to cover the lock amount.
The caller does not have enough TAO balance for the operation.
A per-subnet weight batch is empty or carries more items than there are networks.
The child hotkey specified is not valid for this relationship.
The child key take rate is outside the allowed range.
The supplied PoW hash block does not meet the network difficulty.
Invalid identity information provided.
An invalid IP address was passed to the serve function.
The user is trying to serve an axon which is not of type 4 (IPv4) or 6 (IPv6).
Invalid lease beneficiary to register the leased network.
An invalid port was passed to the serve function.
Recovered public key is invalid.
The revealed weights don't match the committed hash.
Reveal round is older than the most recently stored DRAND round.
Invalid value of root claim threshold.
The supplied PoW hash seal does not match the supplied work.
Generic error for out-of-range parameter value.
Invalid voting power EMA alpha value (must be <= 10^18).
The supplied PoW hash block is in the future or negative.
Whether a hotkey is registered on a subnet.
Kappa parameter for consensus.
Emitted when kappa parameter is changed.
`keep_stake` hotkey swap refused because the old hotkey still has standing miner collateral. Stake would stay on the old key while the UID moves, stranding the bond. Swap with `keep_stake=false` so collateral migrates with the UID (lineage maps track the rename).
Hotkey at a specific UID on a subnet.
Cost to swap a hotkey.
Cost to swap a hotkey on a specific subnet.
Per-subnet u64 written only at genesis and removed on dissolution. Reads 0 on subnets 1, 3, 64 and 100 at v454.
Block of last difficulty/burn adjustment per subnet.
Block when stake was last added/removed for a coldkey-hotkey pair.
Block at which the subnet last consumed an epoch slot, run or skipped.
Block of last emission received by a hotkey on a subnet.
Block of last hotkey swap on a subnet.
Last block when emission mechanism stepped.
Block of last rate-limited operation by key type.
Block of last transaction for an account.
Block of last childkey take change for an account.
Block of last delegate take change for an account.
Block number of last weight update for a neuron.
Lease cannot end in the past.
Blocks between lease dividend distributions.
The lease does not exist.
The lease has no end block defined.
The lease has not ended yet.
Couldn't find the lease netuid.
Which consensus vector liquid alpha uses when it prices bonds on a subnet.
Emitted when a subnet's liquid-alpha consensus mode was updated.
Liquid Alpha feature is disabled on this subnet.
Whether Liquid Alpha is enabled per subnet.
Flag indicating if Liquid Alpha is enabled.
Preloaded emission data for a subnet.
Per-coldkey per-subnet per-hotkey lock state. DMAP (coldkey, subnet, hotkey) → LockState.
Locks alpha stake on a hotkey/subnet to build conviction. Locks decay over time unless set perpetual.
Lock hotkey mismatch: existing lock is for a different hotkey.
The coldkey has already registered too many subnets
NMAP ( netuid, hotkey, coldkey ) --> () | Reverse index for non-zero locks targeting this hotkey on this subnet.
Emitted when a coldkey moves an existing lock from one hotkey to another on the same subnet.
Decay timescale in blocks for lock conviction. ITEM, default ~90 days.
Upper bound for the owner-set activity-cutoff factor, in per-mille.
Maximum neurons allowed on subnet.
Emitted when maximum neurons allowed on subnet is changed.
Maximum validators on a subnet.
Emitted when maximum validators allowed is changed.
Maximum burn for registration.
Lower bound for maximum burn value.
Emitted when maximum burn for registration is changed.
Maximum allowed child key take rate.
Emitted when maximum child key take rate is changed.
Maximum allowed delegate take rate.
Emitted when the maximum allowed delegate take is changed.
Maximum POW difficulty.
Emitted when maximum POW difficulty is changed.
Cap on how many subnet epochs may run in a single block.
setting the per-block epoch cap (dynamic tempo throttle).
Maximum percentage of UIDs that can be immune.
ITEM( max_mechanism_count )
Maximum registrations allowed per block.
Emitted when maximum registrations per block is changed.
Upper bound for owner-set tempo, in blocks.
Weight value exceeds the maximum limit (currently u16::MAX).
Emitted when maximum weight limit is changed.
Per-subnet u16 that no runtime path reads or writes since v334. Reads 65535 on subnet 1 at v454.
Current number of mechanisms active on a subnet.
Subnet mechanism does not exist.
Emission distribution ratios between mechanisms per subnet.
Minimum activity required for neurons to remain registered.
Lower bound for the owner-set activity-cutoff factor, in per-mille.
Minimum UIDs a subnet must maintain.
Emitted when minimum allowed UIDs is changed.
Minimum weights a validator must set.
Emitted when minimum required weights per validator is changed.
Minimum burn for registration.
Emitted when minimum burn for registration is changed.
Upper bound for minimum burn value.
Minimum allowed child key take rate.
Per-subnet minimum child-key take floor. MAP (netuid) → u16.
Emitted when a subnet's minimum child-key take floor is updated.
Emitted when minimum child key take rate is changed.
A miner set the self-maintaining collateral floor for a hotkey.
Minimum allowed delegate take rate.
Emitted when the minimum allowed delegate take is changed.
Minimum POW difficulty.
Emitted when minimum POW difficulty is changed.
Fraction of the last epoch miner incentive withheld from miners because it was assigned to owner hotkeys.
Registration collateral state for a (netuid, hotkey, coldkey) stake position.
Minimum non-immune UIDs required per subnet.
Emitted when minimum non-immune UIDs is changed.
Lower bound for owner-set tempo, in blocks.
Moves an existing lock to a new destination hotkey on the same subnet, preserving locked mass but resetting conviction.
Moves stake from one hotkey/subnet to another.
Moves stake from one hotkey to another and, when the subnets differ, protects the move with a relative price limit.
Need to wait for more blocks to accept the start call extrinsic.
Global toggle for net TAO flow accounting. ITEM, bool. Read only by dead code since v421.
Emitted when a new subnet is created on Bittensor.
Dissolution was requested for a netuid that is already sitting in the cleanup queue from an earlier removal.
Emitted when the phased cleanup walk for a dissolved subnet finishes and the subnet's storage is fully cleared.
Immunity period for new subnets.
Emitted when network immunity period is changed.
Last subnet creation lock cost.
Emitted when lock cost reduction interval is changed.
Blocks between lock cost reductions.
Minimum TAO lock to create subnet.
Emitted when minimum subnet lock cost is changed.
Whether PoW registration is allowed per subnet.
Blocks between allowed subnet creations.
Emitted when network rate limit is changed.
Block when subnet was registered.
Whether registration is allowed per subnet.
Emitted when the queued subnet registration at the head of NetworkRegistrationQueue fails to settle, is refunded and is removed, without creating a subnet.
The escrow behind each subnet registration queued from v472: lock_id to (registrant coldkey, amount).
MAP ( coldkey ) --> lock_id
Subnet registrations that have been paid for but not yet assigned a netuid.
Emitted when a subnet registration is accepted and deferred because no netuid slot is free yet.
Block when network registration opens.
Emitted when a subnet is removed from the network. From v432 this marks the start of cleanup, not its completion.
Whether a subnet with given netuid exists.
Network creation is rate limited and you're creating too fast.
TLS/SSL certificates for neurons.
The caller is attempting to set non-self weights without being a permitted validator.
Emitted when a new neuron (miner or validator) joins a subnet.
The destination coldkey address is already used as a hotkey.
The new hotkey address is the same as the old hotkey.
The new hotkey has outstanding root claimable or non-zero root stake, so the root rate-book cannot be merged without misallocating dividends.
Unused counter left from the aggregated-unstake job queue. Reads 0.
Next ID for subnet lease creation.
No existing lock found for the given coldkey and subnet.
Minimum stake required for nominators.
The coldkey you're using is not associated with this hotkey for staking operations.
No neuron ID (UID) is available for registration.
There's not enough alpha in circulation to recycle.
Insufficient balance to pay the coldkey swap fee.
Insufficient balance to pay the hotkey swap fee.
Your coldkey doesn't have enough free TAO to complete the staking operation.
The caller does not have enough stake to perform this action.
The parent hotkey needs more stake to set child keys.
Your hotkey doesn't have enough stake to set weights on this subnet.
You're trying to unstake more TAO than you have staked to this hotkey.
Netuid does not match for setting root network weights.
You're not the owner of this subnet.
You're trying to reveal weights, but no commit was found.
Total count of unique coldkeys with stake.
An arithmetic overflow occurred.
List of hotkeys owned by a coldkey.
Coldkey owner of a hotkey.
Per-subnet flag controlling whether owner cut auto-locks into OwnerLock. MAP (netuid) → bool, default true.
Per-subnet flag controlling whether the owner cut is paid. MAP (netuid) → bool.
Rate limit for owner hyperparameter changes in epochs.
Emitted when subnet owner hyperparameter rate limit is changed.
Total perpetual lock attributed to the owner hotkey for a subnet. MAP (netuid) → LockState.
Parent hotkeys for a child hotkey on a subnet.
Double map holding queued sub-threshold dividend credits awaiting deposit into a basket.
Round-robin cursor of the per-block pending-basket-deposit flush over PendingBasketDeposits.
Cooldown period for pending childkey operations.
Scheduled child key changes awaiting execution.
Block at which a manually triggered or deferred epoch should fire; 0 means none pending.
Owner cut of alpha emission per subnet, accumulated per block and paid at the epoch.
Root share of alpha emission per subnet, accumulated per block and drained at the epoch.
Pending miner (server) emissions per subnet — accumulates, reset at tempo.
Pending validator emissions per subnet — accumulates, reset at tempo.
Emitted when a coldkey's perpetual-lock flag flips on or off for a specific subnet.
Emitted when proof-of-work registration is toggled for a subnet.
POW registrations in current interval.
Prometheus endpoint info for neurons.
Emitted when a neuron updates their Prometheus metrics endpoint.
Proportion overflow when setting children.
RAO recycled from registration burns per subnet.
Emitted when the RAO recycled amount for registration is changed.
Recycles alpha tokens back to subnet pool.
Per-subnet choice of whether miner incentive withheld from owner hotkeys is recycled or burned.
Registers a neuron using proof-of-work solution.
Creates a new subnet under lease terms.
User register a new subnetwork via burning token, but only if the
Creates a new subnet on the Bittensor network.
Creates a new subnet with identity metadata.
MAP ( netuid ) --> registered_subnet_counter
Emitted when registration is enabled or disabled for a subnet.
Operation is not permitted on the root subnet.
Emitted when target registrations per interval is changed.
Registration Price Limit Exceeded
Registrations in current block.
Registrations in current adjustment interval.
A coldkey's reject locked alpha account flag was updated.
Withdraws staked TAO from a hotkey back to the coldkey.
Removes all stake from a subnet with optional price limit.
Removes stake with a price limit for slippage protection.
Reset a coldkey swap by clearing the announcement and dispute status.
Reveals weights committed via mechanism commit.
Reveals previously committed weights.
Epochs allowed for weight reveal after commit.
The reveal period is too large.
The reveal period is too small.
You're trying to reveal weights before the reveal period starts.
Rho parameter for emissions.
Emitted when rho parameter is changed.
Dissolves a network using root authority.
Registers a validator on the root network (subnet 0).
Root-weighted alpha dividend per hotkey per subnet at the last epoch, net of the validator take.
LEGACY per-subnet root claimable rates per hotkey, BTreeMap<NetUid, I96F32>. Superseded by BasketRate at v441; no longer written by the coinbase.
Minimum TAO value for a root dividend deposit or claim to proceed. MAP (netuid) → I64F64, but only the netuid 0 entry is consulted.
Emitted when a coldkey redeems its accrued root basket entitlement; carries the total TAO realized and staked back to root.
LEGACY per-subnet claimed watermark per (netuid, hotkey, coldkey). Superseded by BasketClaimed at v441; no longer written by claims.
A coldkey-wide claim_root would process more work than the pre-dispatch weight envelope allows. Claim one validator at a time with claim_root_with_hotkey instead.
The root network (netuid 0) doesn't exist or isn't accessible.
Per-subnet root proportion as computed in the last block: TaoWeight-scaled root TAO over that plus the subnet alpha issuance.
Root stake is still inside its hold window and cannot leave root yet.
Minimum number of blocks root (netuid 0) stake must be held before it can leave root.
Through v459: one destination in your set_root_weights vector took a larger share of the summed weight than the concentration cap allowed. From v464 the variant stays declared but nothing raises it: set_root_weights and RootWeightsCap were removed, and the concentration floor is enforced on swap_basket buys as BasketConcentrationCapExceeded instead.
Through v459: set_root_weights was switched off network-wide, so no validator could set a basket distribution vector. From v464 the variant stays declared but nothing raises it: set_root_weights, RootWeightSettingEnabled and the toggle call were removed, and basket composition changes only through swap_basket.
Emitted when a root validator stores its basket distribution vector; carries the validator's root-subnet uid.
Same auto stake hotkey is already set.
Invalid netuid duplication.
Scaling law exponent per subnet.
Emitted when scaling law power parameter is changed.
Schedules a coldkey swap for future execution.
Registers axon server endpoint for a neuron.
Registers TLS-enabled axon server endpoint.
Registers Prometheus metrics endpoint.
Blocks between allowed serving updates.
An axon or prometheus serving exceeded the rate limit for a registered neuron.
Emitted when serving rate limit is changed.
Deprecated compatibility entry point retained for call-index stability.
--- Allows a root validator to toggle auto parent delegation
Sets the take rate for a child hotkey.
Sets child hotkeys for stake distribution.
Sets the auto-stake destination for a coldkey.
Sets on-chain identity for a hotkey.
Directly sets mechanism weights without commit-reveal.
Sets the self-maintaining collateral floor for the signer's hotkey
Sets the cooldown period for pending child key changes.
Toggles whether the caller's individual lock on a subnet is perpetual (never decays) or returns to normal decay.
Sets or clears whether the caller rejects incoming locked alpha.
Sets identity metadata for a subnet.
Deprecated compatibility entry point retained for call-index stability.
Sets validator weights for neurons on a subnet.
Emitted when child hotkeys are set for a parent hotkey.
Emitted when a child hotkey change is scheduled for future execution.
You're setting weights more frequently than the rate limit allows.
Emitted when a share pool's denominator was rewritten to the sum of its live share rows.
The price impact of your trade exceeds the allowed slippage.
Deposits TAO from free balance directly into a validator's basket for fund shares. Gated from runtime v443 through v448, where every submission failed with CallDisabled. Open again from v450.
Emitted after stake is successfully transferred from coldkey to hotkey.
Stake has been transferred from one coldkey to another, landing on a
Emitted when a coldkey locks alpha stake on a hotkey/subnet.
Emitted when stake is moved between hotkeys or subnets without unstaking to TAO.
Emitted after stake is successfully withdrawn from hotkey to coldkey.
Emitted when stake is swapped between subnets for the same coldkey-hotkey pair.
Minimum stake required to set weights.
Emitted when the minimum stake threshold for validators is updated.
Retired. Root admission is burn-based and no longer stake-gated, so the runtime does not raise this error.
Emitted when stake is transferred from one coldkey to another.
Trying to unstake or re-lock the locked amount.
Emitted when locked alpha decays out or is released, becoming liquid again.
Stake-based weights per UID per subnet.
Reverse index mapping coldkey to its position.
Index mapping for iterating staking coldkeys.
List of hotkeys a coldkey has staked to.
A transactor exceeded the rate limit for staking.
Starts subnet operations/emissions.
Delay before subnet can call start.
Emitted when start call delay is changed.
Need to wait more blocks to do the start call.
Alpha tokens in the subnet liquidity pool.
Alpha added to the pool reserve as price-active liquidity in the last block. MAP (netuid), overwritten every block.
Alpha tokens distributed to stakers.
Alpha minted for participants in the last block, before the owner cut. MAP (netuid), overwritten every block.
Subnet buyback exceeded the operation rate limit
EMA of protocol TAO flow per subnet, as (last block, I64F64). Frozen since v421.
EMA of user TAO flow per subnet, as (last block, I64F64). Frozen since v421.
Per-subnet switch for TAO-side emission. MAP (netuid) → bool, default true. False sets the subnet TAO share to zero and renormalises the rest.
Monotonic count of epoch slots consumed by a subnet.
TAO from this block's subnet emission that could not be injected as liquidity and was used to buy alpha on the pool instead. MAP (netuid) → TaoBalance, overwritten every block.
Fast EMA of a subnet spot price, the trading anchor for swap_basket.
Identity metadata for subnets (v3).
Emitted when a subnet's identity metadata is removed.
Emitted when a subnet's identity metadata is set or updated.
Emitted when a new subnet lease is created.
Emitted when lease dividends are distributed to stakeholders.
Emitted when a lease contributor's dividend slice could not be transferred this interval.
Active subnet leases.
Share ownership in subnet leases.
Emitted when a subnet lease is terminated.
Lease dividend alpha owed to a contributor that could not be transferred yet.
Maximum number of subnets allowed on the network.
The maximum number of subnets has been reached.
Emitted when the maximum number of subnets is changed.
TAO locked for a subnet.
Consensus mechanism type per subnet.
Moving alpha smoothing factor for all subnets.
Moving average price for subnet alpha.
The specified subnet (netuid) doesn't exist.
Owner account for a subnet.
Emitted when subnet ownership transfers to a new coldkey because conviction shifted the lead.
Owner cut fraction from emissions, encoded as u16. To get the fraction: value / u16::MAX (i.e. value / 65535). NOT basis points (10000) or percent (100).
Emitted when subnet owner emission cut is changed.
Hotkey associated with subnet owner.
Emitted when a subnet's owner hotkey is changed.
Cumulative alpha the protocol bought with excess emission TAO on a subnet. MAP (netuid) → AlphaBalance.
Signed running sum of protocol TAO into and out of a subnet pool (emission injections and chain buys in, root sells out). MAP (netuid) → i64. Never reset since v421.
Registration is disabled on this subnet.
TAO taken out of a subnet pool by root dividend sells during the current block. MAP (netuid) → TaoBalance, cleared at the start of every run_coinbase.
TAO in the subnet liquidity pool.
Signed running sum of user TAO swapped into and out of a subnet pool. Written by swaps, never reset since v421.
Price-active TAO added to a subnet pool reserve in the LAST block. Overwritten every block.
Map subnet UIDs to lease IDs.
TAO swapped through a subnet pool since its current registration.
Number of registered neurons on a subnet.
PalletId used to derive per-subnet sovereign account IDs (b"subtensr").
SubToken feature is currently disabled.
Whether subtoken trading is enabled per subnet.
Emitted when a sudo operation is executed.
Sets maximum child key take rate (admin).
Sets minimum child key take rate (admin).
Sets threshold for root claims (admin).
Sets rate limit for child key take changes (admin).
Sets the EMA alpha value for voting power calculation on a subnet.
Rebalances a root validator's beta basket: sells alpha of one holding for TAO and buys another holding with it, inside protocol price, turnover, liquidity and concentration bounds.
Rebalances several legs of one root validator beta basket in a single all-or-nothing call: each leg sells alpha of one holding and buys another, under the same bounds as swap_basket.
Swaps coldkey to a new address (immediate).
Performs a coldkey swap if an announcement has been made.
Swaps hotkey to a new address.
---- The extrinsic for user to change its hotkey in subnet or all subnets. This extrinsic is
Swaps stake between subnets for the same coldkey-hotkey pair.
Swaps stake between subnets with price limit protection.
The symbol is already in use.
The symbol does not exist.
Emitted when a subnet's token symbol is updated.
Emitted when a delegate decreases their commission rate.
Emitted when a delegate increases their commission rate.
Lower-limit floor for the TAO-flow allocator. Unread on the emission path since v421.
ITEM( TaoInRefundDeploymentBlock )
Global TAO weight in economics.
Target registrations per adjustment interval.
Emission interval for a subnet (blocks).
The supplied tempo is outside the allowed range.
Emitted when a subnet's tempo (emission interval) is changed.
Terminates a subnet lease early.
Timelocked weight commits for commit-reveal — canonical at v411.
Emitted when weights are committed with a specific reveal round.
Emitted when timelocked weights are revealed after their round.
Token symbol for subnet alpha tokens.
You've exceeded the maximum number of child hotkeys (5).
The registration rate limit for this block has been exceeded.
The number of registration attempts exceeded the allowed number in the interval.
Adding this hotkey would push the coldkey's StakingHotkeys list past its cap.
The maximum allowed UIDs times mechanism count should not exceed 256.
You have too many pending weight commits awaiting reveal.
Total alpha staked across every hotkey on a subnet.
Total alpha stake delegated to a hotkey.
TotalHotkeyAlpha snapshot taken when AlphaDividendsPerSubnet was written, per hotkey per subnet.
Legacy total shares per (hotkey, netuid), stored as FixedU128 { bits }. Superseded by TotalHotkeySharesV2 at v401.
V2 total shares per (hotkey, netuid), stored as SafeFloat { mantissa, exponent }. Supersedes TotalHotkeyShares at v401.
Total TAO in circulation.
Total number of subnets on the network.
Total TAO staked across all hotkeys.
Sum of every validator voting-power entry on a subnet.
Emitted alongside TransactionFeePaid when a call's fee was paid by selling the payer's alpha instead of debiting free TAO.
Last block for rate-limited transaction by key.
The hotkey is required to be the origin (signer).
Transfers stake from one coldkey to another on the same hotkey.
Transfers a specified amount of stake from one coldkey to another, landing it
Subnet disallows transfer.
Emitted when transfer functionality is toggled.
Whether alpha transfers are enabled per subnet.
Owner-side `trigger_epoch`. Schedules an epoch to fire after `AdminFreezeWindow`
Trimming would exceed the max immune neurons percentage.
Attempts to associate a hotkey with a coldkey.
Rate limit for childkey take changes.
You're changing child key take too frequently.
Emitted when child key take rate limit is changed.
Rate limit for delegate take changes.
Emitted when delegate take rate limit is changed.
General transaction rate limit.
You're sending transactions too frequently.
Emitted when general transaction rate limit is changed.
The UID map for the subnet could not be cleared.
UID assigned to a hotkey on a subnet.
The caller is attempting to set weights with more UIDs than allowed.
The caller is attempting to set weight to at least one UID that does not exist.
Public key cannot be recovered from the signature.
Trying to unlock more than locked
Decay timescale in blocks for the locked mass itself. ITEM.
Removes all stake from a hotkey back to the coldkey.
Removes all alpha stake from a hotkey back to the coldkey.
Updates the token symbol for a subnet.
Every PoW work blob accepted by registration, mapped to the block it was submitted at. Write-only.
Whether a neuron has validator permit.
Per-subnet u64 that no runtime path reads since v216. Reads 1 on subnet 1 at v454.
Emitted when validator prune length is changed.
Validator-specific trust scores.
DMAP ( netuid, hotkey ) --> voting_power | EMA of stake for voting
MAP ( netuid ) --> block_number | Block at which voting power tracking will be disabled.
MAP ( netuid ) --> u64 | EMA alpha value for voting power calculation.
Voting power EMA alpha has been set for a subnet.
Voting power tracking has been fully disabled and entries cleared.
Voting power tracking has been scheduled for disabling.
Voting power tracking has been enabled for a subnet.
MAP ( netuid ) --> bool | Whether voting power tracking is enabled for this subnet.
Voting power tracking is not enabled for this subnet.
A reserved error for a subnet registration that cannot proceed until a dissolving subnet releases its netuid slot. It is declared in the runtime and is not returned by any dispatch as of v453.
Committed weight hashes awaiting reveal.
Weight matrix set by validators on a subnet.
Emitted when multiple weight commits are revealed in a batch.
Emitted when a validator commits a hash of their weights for later reveal.
Emitted when a validator reveals previously committed weights.
Emitted when a validator submits their evaluation weights for miners.
Rate limit for weight setting per subnet.
Emitted when the rate limit for setting weights is changed.
Required version key for setting weights.
Rate limit for weights version key changes.
Emitted when the required weights version key is updated.
The dispatch is attempting to set weights on chain with fewer elements than allowed.
The caller is attempting to set weight keys and values but these vectors have different size.
Whether Yuma3 consensus is enabled per subnet.
Flag indicating if Yuma3 consensus is enabled.
Unsuccessfully withdraw, balance could be zero after withdrawal.