Skip to main content
SUBMIT A PRSUBMIT AN ISSUElast edit: Jul 23, 2025

Subnet Configuration (Hyperparameters)

Bittensor subnets are configured with a set of state variables (known as hyperparameters) that are recorded on the blockchain. Many of these can be accessed (viewed and set) using the Bittensor CLI btcli, but some of them must be checked or set using Subtensor extrinsics, as noted.

Note that the names of the variables may be slightly different in various representations, e.g. in btcli and in the chain codebase.

Manage hyperparams with btcli​

note

Not all hyperparameters can be viewed and set with btcli.

View the hyperparameters​

Anyone can view the parameters of any subnet.

Example

btcli subnet hyperparameters --netuid 19
Netuid: 19
Using the specified network test from config

Subnet Hyperparameters
NETUID: 19 (inference) - Network: test


HYPERPARAMETER VALUE NORMALIZED
────────────────────────────────────────────────────────────────────────
activity_cutoff 5000 5000
adjustment_alpha 17893341751498265066 0.97
adjustment_interval 360 360
alpha_high 58982 0.9000076295
alpha_low 45875 0.7000076295
alpha_sigmoid_steepness 0.0 0
bonds_moving_avg 900000 4.878909776e-14
bonds_reset_enabled False False
commit_reveal_period 1 1
commit_reveal_weights_enabled False False
difficulty 18446744073709551615 1
immunity_period 5000 5000
kappa 32767 0.4999923705
liquid_alpha_enabled False False
max_burn 100000000000 100.0000 τ
max_difficulty 18446744073709551615 1
max_regs_per_block 1 1
max_validators 64 64
max_weight_limit 65535 1
min_allowed_weights 1 1
min_burn 500000 0.0005 τ
min_difficulty 18446744073709551615 1
registration_allowed True True
rho 10 10
serving_rate_limit 50 50
subnet_is_active True True
target_regs_per_interval 1 1
tempo 360 360
transfers_enabled True True
user_liquidity_enabled True True
weights_rate_limit 100 100
weights_version 0 0
yuma_version 2 2
────────────────────────────────────────────────────────────────────────
tip

btcli does not include all of the chain state variables, some of which can only be accessed through the Bittensor Python SDK or directly through extrinsic calls.

Set hyperparameters​

Use the below command to set these hyperparameters.

tip

Only the coldkey that created the subnet can set the hyperparameters.

btcli sudo set

Subnet Hyperparameters​

The following variables are configurable by the subnet creator.

Permissions required to set: Subnet Creator

ActivityCutoff​

Type: u16

Default: 5000

btcli setter: btcli sudo set --param activity_cutoff

Setter extrinsic: sudo_set_activity_cutoff

Permissions required to set: Subnet Creator

Description:

The number of blocks for the stake to become inactive for the purpose of epoch in Yuma Consensus. If a validator doesn't submit weights within the first ActivityCutoff blocks of the epoch, it will not be able to participate until the start of the next epoch.

AdjustmentAlpha​

Type: u64

Default: 0

btcli setter: btcli sudo set --param adjustment_alpha

Setter extrinsic: sudo_set_adjustment_alpha

Permissions required to set: Subnet Creator

Description: AdjustmentAlpha is the rate at which difficulty and burn are adjusted up or down.

AdjustmentInterval​

Type: u16

Default: 360

btcli setter: btcli sudo set --param adjustment_interval

Setter extrinsic: sudo_set_adjustment_interval

Permissions required to set: Subnet Creator

Description:

AdjustmentInterval is number of blocks that pass between difficulty and burn adjustments.

AlphaSigmoidSteepness​

Type: u16

Default: 1000

btcli setter: btcli sudo set --param alpha_sigmoid_steepness

Setter extrinsic: sudo_set_alpha_sigmoid_steepness

Permissions required to set: Subnet Creator

Description: AlphaSigmoidSteepness determines how the consensus mechanism assigns an alpha value for a given miner-validator pair based on voting alignment. Lower steepness values result in moderate alpha values, while higher steepness values push alpha values closer to the defined alpha_low or alpha_high values.

BondsMovingAverage​

Type:

Default:

btcli setter: btcli sudo set --param bonds_moving_avg

btcli setter: sudo_set_bonds_moving_average

Permissions required to set: Subnet Creator

Description:

The moving average of bonds. The higher bonds yield to higher dividends for validators.

See Yuma Consensus: bonding mechanics.

BondsPenalty​

Type: u16

Default: 0

btcli setter: none

Setter extrinsic: sudo_set_bonds_penalty

Permissions required to set: root

Description: The magnitude of the penalty subtracted from weights for exceeding consensus, for a specific subnet.

See Yuma Consensus: Penalizing out-of-consensus bonds.

BondsResetEnabled​

Type: Bool

Default: False

btcli setter: btcli sudo set --param bonds_reset_enabled

Setter extrinsic: sudo_set_bonds_reset_enabled

Permissions required to set: Subnet creator

Description:

Determines whether or not bonds are reset-enabled.

CommitRevealPeriod​

Type: u16

Default: 1

btcli setter: btcli sudo set --param commit_reveal_period

Setter extrinsic: sudo_set_commit_reveal_weights_interval

Permissions required to set: Subnet Creator

Description:

How long, in blocks, the consensus weights for a subnet remain time-lock encrypted, preventing weight-copying.

See Commit Reveal

CommitRevealWeightsEnabled​

Type: Boolean

Default: false

btcli setter: btcli sudo set --param commit_reveal_weights_enabled

Setter extrinsic: sudo_set_commit_reveal_weights_enabled

Permissions required to set: Subnet Creator

Description:

Enables Commit Reveal

Difficulty​

Type: u64

Default: 10000000

btcli setter: btcli sudo set --param difficulty

Setter extrinsic: sudo_set_difficulty

Permissions required to set: Root

Description:

Current dynamically computed value for the proof-of-work (POW) requirement for POW hotkey registration. Decreases over time but increases after new registrations, between the min and the maximum set by the subnet creator. see [#max-difficulty].

ImmunityPeriod​

Type: u16

Default: 5000

btcli setter: btcli sudo set --param immunity_period

Setter extrinsic: sudo_set_immunity_period

Permissions required to set: Subnet creator

Description:

The number of blocks after registration when a miner is protected from deregistration

Kappa​

Type: u16

Default: 32767 ( or approximately 0.5 normalized )

btcli setter: btcli sudo set --param kappa

Setter extrinsic: sudo_set_kappa

Permissions required to set: Subnet creator

Description:

The consensus majority ratio: The weights set by validators who have lower normalized stake than Kappa are not used in calculating consensus, which affects ranks, which affect incentives.

the consensus threshold for bond-clipping during Yuma Consensus

LiquidAlphaEnabled​

Type: Bool

Default: False

btcli setter: btcli sudo set --param liquid_alpha_enabled

Setter extrinsic: sudo_set_liquid_alpha_enabled

Permissions required to set: SN creator

Description:

Enables the liquid alpha feature.

MaxAllowedValidators​

Type: u16

Default: 64

btcli setter: btcli sudo set --param max_validators

Setter extrinsic: sudo_set_max_allowed_validators

Permissions required to set: Root

Description:

Maximum validators on a subnet.

MaxBurn​

Type: u64

Default: 100000000000 normalized to 100.0000(τ)

btcli setter: btcli sudo set --param max_burn

Setter extrinsic: sudo_set_max_burn

Permissions required to set: Subnet creator

Description:

The maximum of the dynamic range for TAO cost of burn registration on the subnet.

MaxDifficulty​

Type: u64

Default: 18446744073709551615 normalized to 1

btcli setter: btcli sudo set --param max_difficulty

Setter extrinsic: sudo_set_max_difficulty

Permissions required to set: Subnet creator

Description:

The maximum of the dynamic range for difficulty of proof-of-work registration on the subnet.

MaxRegistrationsPerBlock​

Type: u16

Default: 1

btcli setter: btcli sudo set --param max_regs_per_block

Setter extrinsic: sudo_set_max_registrations_per_block

Permissions required to set: Subnet creator

Description:

Maximum neuron registrations per block. Note: Actual limit may be lower, as there is also per interval limit TargetRegistrationsPerInterval.

MaxWeightsLimit​

Type: u16

Default: 65535

btcli setter: btcli sudo set --param max_weights_limit

Setter extrinsic: sudo_set_max_weight_limit

Permissions required to set: Subnet creator

Description: The limit for the u16-normalized weights. If some weight is greater than this limit when all weights are normalized so that maximum weight is 65535, then it will not be used.

MinAllowedWeights​

Type: u16

Default: 1

btcli setter: btcli sudo set --param min_allowed_weights

Setter extrinsic: sudo_set_min_allowed_weights

Permissions required to set: Subnet creator

Description: Minimum number of weights for a validator to set when setting weights.

MinBurn​

Type: u64

Default: 500000 normalized to 0.0005(τ)

btcli setter: btcli sudo set --param min_burn

Setter extrinsic: sudo_set_min_burn

Permissions required to set: Subnet creator

Description:

The minimum of the range of the dynamic burn cost for registering on the subnet.

MinDifficulty​

Type: u64

Default: 10000000 normalized to 5.421010862e-13

btcli setter: btcli sudo set --param min_difficulty

Setter extrinsic: sudo_set_min_difficulty

Permissions required to set: Subnet creator

Description:

The minimum of the range of the proof-of-work for registering on the subnet

NetworkPowRegistrationAllowed​

Type: Boolean

Default: False

btcli setter: none

Setter extrinsic: sudo_set_network_pow_registration_allowed

Permissions required to set: Subnet creator

Description:

NetworkPowRegistrationAllowed is a flag that toggles PoW registrations on a subnet

NetworkRateLimit​

Type: u64

Default: 7200

btcli setter: none

Setter extrinsic:

Permissions required to set: root

Description:

Rate limit for network registrations expressed in blocks

NetworkRegistrationAllowed​

Type: Boolean

Default: True

btcli setter: btcli sudo set --param registration_allowed

Setter extrinsic: sudo_set_network_registration_allowed

Permissions required to set: Subnet creator

Description:

NetworkRegistrationAllowed determines if burned registrations are allowed. If both burned and pow registrations are disabled, the subnet will not get emissions.

Rho​

Type: u16

Default: 10

btcli setter: btcli sudo set --param rho

Setter extrinsic: sudo_set_rho

Permissions required to set: Subnet creator

Description:

Deprecated.

ServingRateLimit​

Type: u16

Default: 50

btcli setter: btcli sudo set --param serving_rate_limit

Setter extrinsic: sudo_set_serving_rate_limit

Permissions required to set: Subnet creator

Description:

Rate limit for calling serve_axon and serve_prometheus extrinsics used by miners.

SubnetIsActive​

Type: Bool

Default: False

btcli setter: btcli subnets start

Setter extrinsic: nil

Permissions required to set: Subnet creator

Description: Indicates whether or not the subnet's emissions have started.

TargetRegistrationsPerInterval​

Type: u16

Default: 1

btcli command: btcli sudo set --param target_regs_per_interval

Setter extrinsic: sudo_set_target_registrations_per_interval

Permissions required to set: root

Description:

Maximum number of neuron registrations allowed per interval. Interval is AdjustmentInterval

Tempo​

Type: u16

Default: 360

btcli setter: btcli sudo set --param tempo

Setter extrinsic: sudo_set_tempo

Permissions required to set: root

Description:

Length of subnet tempo in blocks. See Emission

ToggleTransfer​

Type: Boolean

Default: True

btcli setter: btcli sudo set --param transfers_enabled`

Setter extrinsic: sudo_set_toggle_transfer

Permissions required to set: Subnet creator

Description:

Allows/disallows transfer of stake between coldkeys.

UserLiquidityEnabled​

Type: Bool

Default: False

btcli setter: btcli sudo set --param user_liquidity_enabled

Setter extrinsic: toggle_user_liquidity

Permissions required to set: Subnet creator

Description:

Determines whether or not the user liquidity feature is enabled on the subnet.

WeightsVersion​

Type: u16

Default: 0

btcli setter: btcli sudo set --param weights_version

Setter extrinsic: sudo_set_weights_version_key

Permissions required to set: Subnet Creator

Description:

If the version key specified in set_weights extrinsic is lower than this system-wide setting (WeightsVersionKey), the transaction will fail. This is a fool-proofing protection for validators to update, not a security feature.

WeightsRateLimit / CommitmentRateLimit​

Type: u12

Default: 100

btcli setter: btcli sudo set --param weights_rate_limit

Setter extrinsic: sudo_set_weights_set_rate_limit

Permissions required to set: Root

Description:

How long, in blocks, a validator must wait between weight commits on a subnet.

YumaVersion​

Type: Bool

Default: False

btcli setter: btcli sudo set --param yuma_version

Setter extrinsic: sudo_set_yuma3_enabled

Permissions required to set: Subnet Creator

Description:

Toggles the consensus mechanism used by the subnet between Yuma Consensus v2 and v3.

Global/Root State Variables​

The following variables are global and/or can only be configured with root permissions, which are held by a triumvirate of Opentensor Foundation employees. They are listed here for reference.

ColdkeySwapScheduleDuration​

Type: u12

Default:

btcli setter: no

Setter extrinsic: sudo_set_coldkey_swap_schedule_duration

Permissions required to set: Root

Description:

The duration in blocks of the waiting period before a coldkey swap.

See Rotate/Swap your Coldkey

DissolveNetworkScheduleDuration​

Deprecated

EmissionValue​

Description:

Deprecated. replaced with SubnetAlphaInEmission, SubnetAlphaOutEmission, and SubnetTaoInEmission.

EvmChainId​

Permissions required to set: root

Description:

The Chain ID. 945 for Bittensor mainnet, a.k.a. Finney.

Issuance​

Type: u64

Description: Refers to total issuance, the amount of TAO in circulation.

LockReductionInterval​

Type: u64

Default: 14 * 7200

btcli setter:

Setter extrinsic:

Permissions required to set: root

Description:

The number of blocks that need to pass in order for the network lock cost to half.

sudo_set_lock_reduction_interval| root

NetworkMinLockCost​

btcli setter: none

Setter extrinsic: sudo_set_network_min_lock_cost

Permissions required to set: root

Description:

NetworkMinLockCost is the minimum TAO to pay for subnet registration

TxDelegateTakeRateLimit​

Type: u64

Default: 216000

btcli setter:

Setter extrinsic:

Permissions required to set: root

Description:

Rate limit of how frequently can a delegate take be increased

TxRateLimit​

Type: u64

Default: 1000

btcli setter: none

Setter extrinsic: sudo_set_tx_rate_limit

Permissions required to set: root

Description:

Rate limit for swap_hotkey extrinsic.

SubnetOwnerCut​

btcli setter: none

Setter extrinsic: sudo_set_subnet_owner_cut

Permissions required to set: root

Description:

The ratio of all subnet alpha emissions that is given to subnet owner as stake. (Global, fixed at 18%.)

StakeThreshold​

Type: u12

Default: 1000

btcli setter: none

Setter extrinsic: sudo_set_stake_threshold

Permissions required to set: root

Description:

The minimum stake required for validating. Currently 1000