Hyperparameters

max_validators

Maximum validator permits — only the top-stake neurons up to this count may validate.

View as Markdown

max_validators caps how many neurons on a subnet hold a validator permit at once. Anyone deciding whether their stake is enough to validate on a subnet needs this number: without a permit, a neuron's weights are ignored and it earns no dividends.

How it works

Every epoch recomputes permits from scratch (pallets/subtensor/src/epoch/run_epoch.rs): is_topk_nonzero(&stake, k) with k = MaxAllowedValidators grants permits to the top-k neurons by stake weight (alpha stake plus TAO stake scaled by tao_weight), skipping zero-stake neurons; the subnet owner's UID is always permitted. The mainnet default is 128, and the value must not exceed max_allowed_uids.

Losing a permit is immediate and total: non-permitted validators' stake is masked from the active-stake vector, their weight rows are discarded before consensus, and their accumulated bonds are cleared — so a validator that slips out of the top-k re-enters later with no bond history. Permits interact with activity_cutoff: holding a permit is necessary but not sufficient, since an inactive permitted validator is also excluded. See Yuma Consensus for where permits sit in the pipeline.

The chart below sorts neurons by stake and draws the permit line at the top-max_validators — slide the cap to move it.

max_validators permit line

Neurons sorted by stake weight; every epoch is_topk_nonzero (run_epoch.rs) grants permits to the top max_validators non-zero-stake neurons. Solid bars hold a permit; faded bars past the line have their weights discarded and stake masked from consensus. Slide the cap to move the line.

Permits granted

8 / 18

zero-stake neurons never qualify

Lowest permitted stake

2,100 α

the effective bar to validate

Mainnet default

128

≤ max_allowed_uids

8

Reading and setting

Inspect with:

btcli sudo get --netuid N --name max_validators

Not settable by the subnet owner — root/governance only (sudo_set_max_allowed_validators in AdminUtils requires the root origin and enforces the max_allowed_uids ceiling). The value is a plain integer.

rho · kappa · tempo · activity_cutoff · max_allowed_uids