Stake Threshold

How the global stake threshold root parameter sets the minimum stake weight a neuron needs before it can be considered for a validator permit during the epoch.

Stake threshold is a global root parameter, listed in the documentation as StakeThreshold, that sets the minimum stake weight a neuron must hold before it is eligible to receive a validator permit on any subnet. The reference describes it as the minimum stake required for validating, with a current value of 1000, changed through the sudo_set_stake_threshold extrinsic at root permission (Subnet Hyperparameters).

What It Controls

The threshold is applied during each subnet’s epoch as a filter on validator-permit candidates. The epoch reads the global stake threshold and zeroes out any hotkey whose stake weight falls below it, so neurons under the threshold are excluded from permit selection before ranking (Yuma Consensus Epoch: Validator Permit Management, Validating in Bittensor).

Meeting the threshold is necessary but not sufficient. After below-threshold stakes are filtered out, the top neurons by stake weight up to MaxAllowedValidators receive the permits; a neuron can clear the threshold and still miss a permit if it does not rank highly enough (Validating in Bittensor, Yuma Consensus Epoch: Validator Permit Management).

The value is measured in stake weight, which the validator documentation defines as a hotkey’s alpha stake plus its TAO stake scaled by the tao_weight parameter. The threshold compares against that combined figure rather than raw TAO alone (Validating in Bittensor, Glossary: Stake Weight).

Why It Matters

Because permits are recalculated every epoch from the current stake distribution on each subnet, the threshold acts as a per-epoch floor that filters out low-commitment participants before the top-K ranking runs. It keeps neurons with negligible stake weight out of the validator set even when permit slots are available (Yuma Consensus Epoch, Understanding Neurons).

Only neurons that hold a permit can set non-self weights and take part in consensus, so the threshold sits at the boundary between merely being registered and being able to validate (Understanding Neurons).

Documented Type, Default, and Setter

The Subnet Hyperparameters reference lists StakeThreshold under global root state variables with a default of 1000. The setter extrinsic accepts a u64 minimum stake argument at root permission. The reference lists no btcli setter for this parameter. A change emits the StakeThresholdSet on-chain event (Subnet Hyperparameters).

The epoch implementation reads this value through get_stake_threshold() and uses it as the minimum stake comparison when filtering permit candidates on every subnet (Yuma Consensus Epoch: Stake Processing and Validation).

Reading the Live Value for netuid 1

Stake threshold is network-wide root state, but permit selection runs per subnet. For the documented example netuid 1 on Finney mainnet, readers can verify the live threshold with btcli subnet hyperparameters --netuid 1 --network finney, which prints the global value alongside that subnet’s other hyperparameter rows, and can inspect which UIDs hold permits through the metagraph validator_permit field (Subnet Hyperparameters: View hyperparameters, Validating in Bittensor, Subnet Metagraph). The infobox uses netuid 1 only as an example read path; the threshold itself applies across subnets while each netuid applies it to its own stake distribution (Bittensor Networks).

Distinction from Kappa

Kappa is a per-subnet consensus majority ratio used when clipping validator weights during Yuma settlement. Stake threshold is the separate global minimum stake weight that filters permit candidates before top-K ranking runs (Subnet Hyperparameters: Kappa, Yuma Consensus Epoch).

  • Stake threshold — global minimum stake weight to enter the permit candidate pool.
  • Kappa — per-subnet stake fraction that sets the consensus clipping ceiling during Yuma.

Distinction from Max Validators

Max validators caps how many validators a subnet allows through MaxAllowedValidators. Stake threshold sets the minimum stake weight a neuron needs to enter the permit candidate pool in the first place, so the two act at different stages of permit selection (Subnet Hyperparameters, Validating in Bittensor).

  • Stake threshold — minimum stake weight to be considered for a permit.
  • Max validators — ceiling on how many permits the subnet issues.

Distinction from Validator Permit

Stake threshold is the global minimum stake-weight floor for entering the validator-permit candidate pool. Validator permit is the per-subnet state showing that a UID actually holds permission to set non-self weights after threshold filtering and top-K selection complete (Validating in Bittensor, Glossary: Validator Permit, Yuma Consensus Epoch: Validator Permit Management).

Clearing the threshold alone does not grant a permit. A neuron can meet the global minimum stake requirement and still lack a permit on a subnet if higher-stake neurons occupy the available permit slots there (Validating in Bittensor, Yuma Consensus Epoch: Validator Permit Management).

  • Stake threshold — global eligibility floor for permit consideration.
  • Validator permit — per-subnet permission state that a UID may validate.

Further Reading

Topics SubnetsValidation