Documentation / Concepts Bittensor / Subnets
Subnet parameters
Dernière vérification le 2026-09-15
In addition to miners and validator code, each subnet has a set of hyperparameters that define how it will interact with the bittensor network.
Full hyperparameter reference
The canonical, current list of subnet hyperparameters (as of the latest chain release). Owner-settable shows whether the subnet owner can change the value themselves (✅ yes) or whether it is sudo only (governance / sudo-controlled). Read the live values for a subnet with btcli sudo get --netuid <N>; owners change the owner-settable ones with btcli sudo set.
| Hyperparameter | Unit | Owner-settable | What it controls |
|---|---|---|---|
rho | integer | ✅ yes | legacy; stored but not used by the current epoch |
kappa | fraction (u16, 65535 = 1.0) | sudo only | consensus majority-stake threshold |
immunity_period | blocks (12s) | ✅ yes | prune-immunity window for new neurons |
min_allowed_weights | integer | ✅ yes | minimum weights per submission |
max_weights_limit | fraction (u16, 65535 = 1.0) | fixed | fixed at 65535 (no cap); not settable |
tempo | blocks (12s) | ✅ yes | blocks per consensus epoch |
min_difficulty | PoW difficulty (u64) | sudo only | PoW registration difficulty floor |
max_difficulty | PoW difficulty (u64) | ✅ yes | PoW registration difficulty ceiling |
difficulty | PoW difficulty (u64) | sudo only | current PoW registration difficulty |
weights_version | integer | ✅ yes | minimum version key for set_weights |
weights_rate_limit | blocks (12s) | sudo only | wait between weight submissions |
adjustment_interval | blocks (12s) | sudo only | legacy; no longer used for subnet registration pricing |
activity_cutoff | blocks (12s) | ✅ yes | legacy absolute value; superseded by activity_cutoff_factor |
activity_cutoff_factor | integer | ✅ yes | activity cutoff, per-mille of tempo |
registration_allowed | flag | sudo only | new neuron registrations allowed |
network_pow_registration_allowed | flag | disabled | PoW registration is removed; setting it always fails |
target_regs_per_interval | integer | sudo only | legacy on subnets; only the root network still enforces it |
min_burn | TAO amount in rao | ✅ yes | burned-registration cost floor |
max_burn | TAO amount in rao | ✅ yes | burned-registration cost ceiling |
bonds_moving_avg | fraction (1,000,000 = 1.0) | ✅ yes | bonds EMA smoothing factor |
max_regs_per_block | integer | sudo only | per-block registration cap |
serving_rate_limit | blocks (12s) | ✅ yes | cooldown between axon serve calls |
max_validators | integer | sudo only | top-stake validator permit cap |
adjustment_alpha | fraction (u64, u64::MAX = 1.0) | ✅ yes | legacy; no longer used for subnet registration pricing |
commit_reveal_period | epochs (tempos) | ✅ yes | weight commit-to-reveal delay |
commit_reveal_weights_enabled | flag | ✅ yes | commit-reveal weights toggle |
alpha_high | fraction (u16, 65535 = 1.0) | ✅ yes | liquid-alpha smoothing upper bound |
alpha_low | fraction (u16, 65535 = 1.0) | ✅ yes | liquid-alpha smoothing lower bound |
liquid_alpha_enabled | flag | ✅ yes | per-weight bonds EMA (liquid alpha) |
bonds_penalty | fraction (u16, 65535 = 1.0) | ✅ yes | penalty on out-of-consensus bonds |
alpha_sigmoid_steepness | integer | ✅ yes | liquid-alpha sigmoid steepness |
min_childkey_take | fraction (u16, 65535 = 1.0) | ✅ yes | floor for childkey take |
owner_immune_neuron_limit | integer | ✅ yes | owner-designated prune-immune UIDs |
max_allowed_uids | integer | ✅ yes | neuron slot capacity before pruning |
burn_increase_mult | multiplier (U64F64 bits / 2^64) | ✅ yes | burn cost bump per registration |
burn_half_life | blocks (12s) | ✅ yes | burn cost decay half-life |
collateral_lock_share | fraction (u16, 65535 = 1.0) | ✅ yes | registration price share locked |
collateral_drain_ratio | multiplier (U64F64 bits / 2^64) | ✅ yes | collateral released per α earned |
yuma3_enabled | flag | ✅ yes | yuma3 consensus variant toggle |
yuma_version | integer | read-only | reported value: 3 if yuma3_enabled, else 2 |
subnet_is_active | flag | sudo only | subnet started (staking + emissions) |
subnet_emission_enabled | flag | sudo only | root switch for TAO emission share |
user_liquidity_enabled | flag | sudo only | legacy user-LP flag (always false) |
bonds_reset_enabled | flag | ✅ yes | bonds reset on metadata commit |
transfers_enabled | flag | ✅ yes | stake transfers between coldkeys |
owner_cut_enabled | flag | ✅ yes | owner emission cut toggle |
owner_cut_auto_lock_enabled | flag | ✅ yes | auto-lock the owner's emission cut |
Taostats
Each subnet tab lists pertinent hyperparameters:
The full list can be found at: https://taostats.io/settings?subnet=19 (update the subnet number for the specific subnet parameters)
Using CLI
To see the parameters of a subnet, use the btcli su getor btcli s hyperparameters
Here are example parameters from Subnet 15 at the time of writing:
text
btcli s hyperparameters
Netuid: 19
Subnet Hyperparameters
NETUID: 19 - Network: finney
HYPERPARAMETER VALUE NORMALIZED
─────────────────────────────────────────────────────────────────────────
rho 10 10
kappa 32767 0.4999923705
immunity_period 7000 7000
min_allowed_weights 1 1
max_weight_limit 65535 1
tempo 360 360
min_difficulty 18446744073709551615 1
max_difficulty 18446744073709551615 1
weights_version 60000 60000
weights_rate_limit 100 100
adjustment_interval 360 360
activity_cutoff 20000 20000
registration_allowed True True
target_regs_per_interval 1 1
min_burn 100 τ0.000000100
max_burn 100000000000 τ100.000000000
bonds_moving_avg 900000 4.878909776e-14
max_regs_per_block 1 1
serving_rate_limit 50 50
max_validators 64 64
adjustment_alpha 14757395258967642112 0.8
difficulty 18446744073709551615 1
commit_reveal_weights_interval 1 1
commit_reveal_weights_enabled False False
alpha_high 58982 0.9000076295
alpha_low 45875 0.7000076295
liquid_alpha_enabled False False
─────────────────────────────────────────────────────────────────────────
Hyperparameter descriptions
- rho: Defaults to 10. Rho is still stored and reported per subnet, but the current Yuma epoch doesn't read it. It has no effect on emissions or consensus.
- kappa: Defaults to 32767 (0.5). Kappa is the stake majority used for consensus. For each miner, Yuma takes the stake-weighted median of validator weights at the κ point: the highest weight that validators holding at least κ of the active stake agree on. Validator weights above that consensus value are clipped. Only root can change it.
- Immunity Period: This parameter defines the duration during which new neurons are protected from certain network penalties or restrictions. (At 12 s/block, 1000 blocks is ~ 3.3 hours.)
- Min Allowed Weights: The minimum number of UIDs a subnet validator must set weights on, before the subnet validator is allowed to set weights on the blockchain.
- Max Weight Limit: Fixed at 65535 (1.0) on every subnet, so a validator can put its whole weight on one miner. It can't be changed.
- Tempo: Blocks between epochs. New subnets start at 360 (about 72 minutes). The subnet owner can set any value from 360 to 50,400 blocks, at most once per 360 blocks; root can set any value. Changing tempo restarts the epoch cycle.
- min_difficulty / max_difficulty / difficulty: Left over from proof-of-work registration, which has been removed. All neuron registration is burned registration, so these values have no effect.
- weights version: Sets the minimum version of validator code that a validator can use (and still set weights).
- weights rate limit: time (in blocks) that a validator may update weights.
- Registration price (
burn,burn_increase_mult,burn_half_life): The cost to register a neuron goes up byburn_increase_multafter every registration and decays every block with a half-life ofburn_half_lifeblocks. It always stays betweenmin_burnandmax_burn.adjustment_intervalandadjustment_alphaare legacy settings that no longer affect subnet registration price. - activity_cutoff_factor: Sets the activity cutoff in thousandths of a tempo: cutoff blocks = factor × tempo / 1000. The default of 13,889 gives 5,000 blocks at tempo 360. A validator that hasn't set weights within the cutoff is treated as inactive, and its weights are ignored by consensus. The subnet owner can set it from 1,000 to 50,000 (1 to 50 tempos). The older absolute
activity_cutoffvalue is superseded by the factor. - registration_allowed: Only root can change this. When registration is off, no one can register a neuron on the subnet, and the subnet receives no tao emission. Its share goes to the other subnets.
- target_regs_per_interval: Legacy on normal subnets: the registration price controls demand, and the only hard limit is
max_regs_per_block. The root network still uses it, capping root registrations per root tempo at 3× this value. - min_burn/max_burn: The floor and ceiling of the neuron registration price (in rao, 1e-9 tao). The right column shows the value in tao.
- serving_rate_limit: Determines how often you can change your node's IP address on the blockchain. Expressed in number of blocks. Applies to both subnet validator and subnet miner nodes. Used when you move your node to a new machine.
- Bonds Moving Avg :
- The weight given to old bonds in the bond EMA, scaled so 1,000,000 = 1.0 (default 900,000 = 0.9). Each epoch, new bond = (1 − m) × this epoch's bond + m × old bond.
A high value keeps bonds slow-moving: bonds take many epochs to build, and they also take many epochs to fade after a validator stops setting weights.
A low value makes bonds follow current weights quickly, in both directions. With liquid alpha enabled, the smoothing factor is set per bond betweenalpha_lowandalpha_highinstead.
- The weight given to old bonds in the bond EMA, scaled so 1,000,000 = 1.0 (default 900,000 = 0.9). Each epoch, new bond = (1 − m) × this epoch's bond + m × old bond.
- Max Validators: The number of validator permits on the subnet, given to the highest-stake hotkeys. New subnets start with 64. Only root can change it.
- Adjustment alpha: Legacy. It no longer affects the subnet registration price; see
burn_increase_multandburn_half_life. - Commit Reveal Period: Weights are encrypted for this many epochs (tempos) before auto-reveal, to prevent Weight Copying. (Formerly
commit_reveal_weights_interval, measured in blocks.) - Commit Reveal Weights Enabled: Boolean if commit reveal is on or off.
- alpha_high/alpha_low: used in Liquid alpha math. Not related to the alpha token
- Liquid Alpha Enabled: Liquid alpha allows for a Consensus based weights.