Skip to main content
SUBMIT A PRSUBMIT AN ISSUElast edit: Mar 03, 2025

Subnet Hyperparameters

Things I want to note

Permissions

who can set these? who can view (everybody/everything is public I think?)

root vs subnet creators...

Audience

who needs to know what about which params?

  • Stakers
  • Miners
  • Validators
  • Subnet creators

Manage hyperparams with btcli

View the hyperparameters

btcli subnet hyperparameters
Current hyperparameters list

Not all the hyperparameters in the output of btcli subnet hyperparameters are editable. See this line of code for the editable hyperparameters.

Set hyperparameters

Use the below command to set these hyperparameters:

btcli sudo set

Table of Hyperparameters (attempt to consolidate)

NameTypeDefault / ExampleSetter ExtrinsicRequired PermissionAudience
ActivityCutoffu165000sudo_set_activity_cutoffsn_ownerValidators (Valis)
AdjustmentAlpha ???intUnknownsudo_set_adjustment_alphasn_ownerMiners
AdjustmentIntervalu16100sudo_set_adjustment_intervalrootSubnet Owner, Miners
AlphaHigh ???intN/Asudo_set_alpha_valuessn_ownerN/A
AlphaLow ???intN/Asudo_set_alpha_valuessn_ownerN/A
BondsMovingAverageu64900000sudo_set_bonds_moving_averagesn_ownerValidators (Valis)
BondsPenaltyu160sudo_set_bonds_penaltysn_ownerValidators (Valis)
Burnu64100000000000 (100 TAO)NoneN/AN/A
ColdkeySwapScheduleDurationintN/Asudo_set_coldkey_swap_schedule_durationrootN/A
CommitRevealPeriodintN/Asudo_set_commit_reveal_weights_intervalsn_ownerSubnet Owner, Validators
CommitRevealWeightsEnabledboolfalse (example)sudo_set_commit_reveal_weights_enabledsn_ownerSubnet Owner, Validators
Difficultyu64671088640000000sudo_set_difficultyrootSubnet Owner, Miners
DissolveNetworkScheduleDurationintN/Asudo_set_dissolve_network_schedule_durationrootN/A
EmissionValueu64857777000NoneN/AN/A
EvmChainIdintN/Asudo_set_evm_chain_idrootEVM users
HotkeyEmissionTempointN/Asudo_set_hotkey_emission_temporootN/A
ImmunityPeriodu164096sudo_set_immunity_periodsn_ownerMiners
Issuanceu640NoneN/AN/A
Kappau1632767sudo_set_kappasn_ownerValidators, Miners
LiquidAlphaEnabledboolfalse (example)sudo_set_liquid_alpha_enabledsn_ownerN/A
LockReductionIntervalintN/Asudo_set_lock_reduction_intervalrootN/A
MaxAllowedUidsu164096sudo_set_max_allowed_uidsrootSubnet Owner
MaxAllowedValidatorsu16128sudo_set_max_allowed_validatorsrootSubnet Owner, Potential Validators
MaxBurnu6421000000000000000 (21M TAO)sudo_set_max_burnsn_ownerMiners
MaxDifficultyu64u64::MAX / 4sudo_set_max_difficultysn_ownerMiners
MaxRegistrationsPerBlocku161sudo_set_max_registrations_per_blockrootN/A
MaxWeightLimitu16655sudo_set_max_weight_limitsn_ownerValidators
MinAllowedWeightsu1650sudo_set_min_allowed_weightssn_ownerValidators
MinBurnu641000000000 (1 TAO)sudo_set_min_burnrootSubnet Owner, Miners
MinDifficultyu6410000000sudo_set_min_difficultyrootSubnet Owner, Miners
NetworkMaxStakeintN/Asudo_set_network_max_stakerootN/A
NetworkMinLockCostintN/Asudo_set_network_min_lock_costrootPotential Subnet Owners
NetworkPowRegistrationAllowedbooltrue (example)sudo_set_network_pow_registration_allowedsn_ownerMiners
NetworkRateLimitintN/Asudo_set_network_rate_limitrootPotential Subnet Owners
NetworkRegistrationAllowedbooltrue (example)sudo_set_network_registration_allowedsn_ownerMiners
NominatorMinRequiredStakeintN/Asudo_set_nominator_min_required_stakerootValidators, Stakers
PruningScoreu1665535 (u16::MAX)NoneN/AN/A
Rhou1610sudo_set_rhosn_ownerValidators, Miners
ScalingLawPoweru1650NoneN/AN/A
ScheduleGrandpaChangeN/AN/Aschedule_grandpa_changerootRoot
ServingRateLimitu64250sudo_set_serving_rate_limitroot/sn_ownerMiners
StakeThresholdintN/Asudo_set_stake_thresholdrootValidators
SubnetLimitintN/Asudo_set_subnet_limitrootPotential Subnet Owners
SubnetMovingAlphaintN/Asudo_set_subnet_moving_alpharootN/A
SubnetOwnerCutintN/Asudo_set_subnet_owner_cutrootSubnet Owners
SynergyScalingLawPoweru1650NoneN/AN/A
TargetRegistrationsPerIntervalu162sudo_set_target_registrations_per_intervalrootSubnet Owner, Miners
TargetStakesPerIntervalintN/Asudo_set_target_stakes_per_intervalrootStakers
Tempou1699sudo_set_temporootSubnet Owners
ToggleTransferbooltrue (example)sudo_set_toggle_transfersn_ownerSubnet Owner, Stakers
TxDelegateTakeRateLimitintN/Asudo_set_tx_delegate_take_rate_limitrootValidators, Stakers
TxRateLimitintN/Asudo_set_tx_rate_limitrootDepends on usage category
ValidatorBatchSizeu1632NoneN/AN/A
ValidatorEpochLenu16250NoneN/AN/A
ValidatorEpochsPerResetu1660NoneN/AN/A
ValidatorExcludeQuantileu163277 (~5% of u16::MAX)NoneN/AN/A
ValidatorLogitsDivergenceu161310 (~2% of u16::MAX)NoneN/AN/A
ValidatorPruneLenu641NoneN/AN/A
ValidatorSequenceLenu16256NoneN/AN/A
WeightsRateLimitu64250sudo_set_weights_set_rate_limitsn_ownerValidators
WeightsVersionu64400sudo_set_weights_version_keysn_ownerValidators

Hyperparameters list (based on Python side)

max_weight_limit

Type: float

Description: Maximum weight limit.

tempo

Type: int

Description: The tempo or rate of operation.

min_difficulty

Type: int

Description: Minimum difficulty for some operations.

max_difficulty

Type: int

Description: Maximum difficulty for some operations.

weights_version

Type: int

Description: The version number of the weights used.

weights_rate_limit

Type: int

Description: Rate limit for processing weights.

adjustment_interval

Type: int

Description: Interval at which adjustments are made.

activity_cutoff

Type: int

Description: Activity cutoff threshold.

registration_allowed

Type: bool

Description: Indicates if registration is allowed.

target_regs_per_interval

Type: int

Description: Target number of registrations per interval.

min_burn

Type: int

Description: Minimum burn value.

max_burn

Type: int

Description: Maximum burn value.

bonds_moving_avg

Type: int

Description: Moving average of bonds.

max_regs_per_block

Type: int

Description: Maximum number of registrations per block.

serving_rate_limit

Type: int

Description: Limit on the rate of service.

max_validators

Type: int

Description: Maximum number of validators.

adjustment_alpha

Type: int

Description: Alpha value for adjustments.

difficulty

Type: int

Description: Difficulty level.

commit_reveal_period

Type: int

Description: Interval for commit-reveal weights.

commit_reveal_weights_enabled

Type: bool

Description: Flag indicating if commit-reveal weights are enabled.

alpha_high

Type: int

Description: High value of alpha.

alpha_low

Type: int

Description: Low value of alpha.

liquid_alpha_enabled

Type: bool

Description: Flag indicating if liquid alpha is enabled.

Below is a more concise table of all known Bittensor Subnet hyperparameters, without the “Description” column. After the table, you will find individual sections (in the same order) with H3 headings that include the parameter descriptions. Each hyperparameter name in the table links down to its corresponding description section.

Hyperparameter List (based on Subtensor)

ActivityCutoff

  • Description:

AdjustmentAlpha

  • Description:

AdjustmentInterval

  • Description:

AlphaHigh

  • Description:

AlphaLow

  • Description:

BondsMovingAverage

  • Description:

BondsPenalty

  • Description:

Burn

  • Description:

ColdkeySwapScheduleDuration

  • Description:

CommitRevealPeriod

  • Description:

CommitRevealWeightsEnabled

  • Description:

Difficulty

  • Description:

DissolveNetworkScheduleDuration

  • Description:

EmissionValue

  • Description:

EvmChainId

  • Description:

HotkeyEmissionTempo

  • Description:

ImmunityPeriod

  • Description:

Issuance

  • Description:

Kappa

  • Description:

LiquidAlphaEnabled

  • Description:

LockReductionInterval

  • Description:

MaxAllowedUids

  • Description:

MaxAllowedValidators

  • Description:

MaxBurn

  • Description:

MaxDifficulty

  • Description:

MaxRegistrationsPerBlock

  • Description:

MaxWeightLimit

  • Description:

MinAllowedWeights

  • Description:

MinBurn

  • Description:

MinDifficulty

  • Description:

NetworkMaxStake

  • Description:

NetworkMinLockCost

  • Description:

NetworkPowRegistrationAllowed

  • Description:

NetworkRateLimit

  • Description:

NetworkRegistrationAllowed

  • Description:

NominatorMinRequiredStake

  • Description:

PruningScore

  • Description:

Rho

  • Description:

ScalingLawPower

  • Description:

ScheduleGrandpaChange

  • Description:

ServingRateLimit

  • Description:

StakeThreshold

  • Description:

SubnetLimit

  • Description:

SubnetMovingAlpha

  • Description:

SubnetOwnerCut

  • Description:

SynergyScalingLawPower

  • Description:

TargetRegistrationsPerInterval

  • Description:

TargetStakesPerInterval

  • Description:

Tempo

  • Description:

ToggleTransfer

  • Description:

TxDelegateTakeRateLimit

  • Description:

TxRateLimit

  • Description:

ValidatorBatchSize

  • Description:

ValidatorEpochLen

  • Description:

ValidatorEpochsPerReset

  • Description:

ValidatorExcludeQuantile

  • Description:

ValidatorLogitsDivergence

  • Description:

ValidatorPruneLen

  • Description:

ValidatorSequenceLen

  • Description:

WeightsRateLimit

  • Description:

WeightsVersion

  • Description:

Setter Extrinsics

/// =============// required permissions; audience swap_authorities // root; root sudo_set_default_take // root; root sudo_set_tx_rate_limit // root; depends on rate limit category

sudo_set_serving_rate_limit // root/sn_owner; miners sudo_set_min_difficulty // root; sn_owner, miners sudo_set_max_difficulty // sn_owner; miners sudo_set_weights_version_key // sn_owner; valis sudo_set_weights_set_rate_limit // sn_owner; valis sudo_set_adjustment_interval // root; sn_owner, miners sudo_set_adjustment_alpha // sn_owner; miners sudo_set_max_weight_limit // sn_owner; valis sudo_set_immunity_period // sn_owner; miners sudo_set_min_allowed_weights // sn_owner; valis sudo_set_max_allowed_uids // root; sn_owner sudo_set_kappa // sn_owner; valis, miners sudo_set_rho // sn_owner; valis, miners sudo_set_activity_cutoff // sn_owner; valis sudo_set_network_registration_allowed // sn_owner; miners sudo_set_network_pow_registration_allowed // sn_owner; miners sudo_set_target_registrations_per_interval // root; sn_owner, miners sudo_set_min_burn // root; sn_owner, miners sudo_set_max_burn // sn_owner; miners sudo_set_difficulty // root; sn_owner, miners sudo_set_max_allowed_validators // root; sn_owner, potential valis sudo_set_bonds_moving_average // sn_owner; valis sudo_set_bonds_penalty // sn_owner; valis sudo_set_max_registrations_per_block // root sudo_set_subnet_owner_cut // root; sn_owners sudo_set_network_rate_limit // root; potential sn_owners sudo_set_tempo // root; sn_owners sudo_set_network_min_lock_cost // root; potential sn_owners sudo_set_subnet_limit // root; potential sn_owners sudo_set_lock_reduction_interval // root; potential sn_owners sudo_set_stake_threshold // root; valis sudo_set_nominator_min_required_stake // root; valis, stakers sudo_set_tx_delegate_take_rate_limit // root; valis, stakers sudo_set_min_delegate_take // root; valis, stakers sudo_set_target_stakes_per_interval // root; stakers sudo_set_commit_reveal_weights_enabled // sn_owner; sn_owner, valis sudo_set_liquid_alpha_enabled // sn_owner sudo_set_alpha_values // sn_owner sudo_set_hotkey_emission_tempo // root sudo_set_network_max_stake // root sudo_set_coldkey_swap_schedule_duration // root sudo_set_dissolve_network_schedule_duration // root sudo_set_commit_reveal_weights_interval // sn_owner; sn_owner, valis sudo_set_evm_chain_id // root; EVM users (won't change) schedule_grandpa_change // root; root sudo_set_toggle_transfer // sn_owner; sn_owner, stakers sudo_set_subnet_moving_alpha // root

Hyperparameters with values

Rho: u16 = 10; Kappa: u16 = 32_767; // 0.5 = 65535/2 MaxAllowedUids: u16 = 4096; Issuance: u64 = 0; MinAllowedWeights: u16 = 50; EmissionValue: u64 = 857_777_000; MaxWeightsLimit: u16 = 655; // 655/2^16 = 0.01 [655 @ 7,160] ValidatorBatchSize: u16 = 32; // 32 ValidatorSequenceLen: u16 = 256; // 256 ValidatorEpochLen: u16 = 250; // [250 @ 7,161] ValidatorEpochsPerReset: u16 = 60; ValidatorExcludeQuantile: u16 = 3277; // 5% of u16 [3277 @ 65,065] ValidatorPruneLen: u64 = 1; ValidatorLogitsDivergence: u16 = 1310; // 2% of u16 ScalingLawPower: u16 = 50; // 0.5 SynergyScalingLawPower: u16 = 50; // 0.5 MaxAllowedValidators: u16 = 128; Tempo: u16 = 99; Difficulty: u64 = 671_088_640_000_000; // Same as nakamoto at block = 3606775 [671T @ 26,310] AdjustmentInterval: u16 = 100; TargetRegistrationsPerInterval: u16 = 2; ImmunityPeriod: u16 = 4096; ActivityCutoff: u16 = 5000; // [5000 @ 7,163] MaxRegistrationsPerBlock: u16 = 1; PruningScore : u16 = u16::MAX; BondsMovingAverage: u64 = 900_000; BondsPenalty: u16 = 0; WeightsVersionKey: u64 = 400; MinDifficulty: u64 = 10_000_000; MaxDifficulty: u64 = u64::MAX / 4; ServingRateLimit: u64 = 250; // [250 @ 7,166] Burn: u64 = 100_000_000_000; // 100 tao [100 tao @ 26,310] MinBurn: u64 = 1_000_000_000; // 1 tao [1 tao @ 26,310] MaxBurn: u64 = 21_000_000_000_000_000; // 21M tao [21M tao @ 26,310] WeightsSetRateLimit: u64 = 250; // [250 @ 7,168]