Hyperparameters
adjustment_alpha
Smoothing factor of the legacy difficulty/burn adjustment, stored as u64 (u64::MAX = 1.0).
The smoothing factor of Bittensor's original registration-price controller.
When the chain adjusted burn and PoW difficulty once per
adjustment_interval, this value
blended the old price into the new one — an exponential moving average where
higher alpha meant slower movement. Owners still see it in the hyperparameter
listing; on the current chain it is inert.
How it works
The value lives in AdjustmentAlpha storage as a u64 fraction where
u64::MAX encodes 1.0. The mainnet default is 0
(SubtensorInitialAdjustmentAlpha in runtime/src/lib.rs) — in the legacy
formula next = alpha × current + (1 − alpha) × proposed, zero meant no
weight on the previous value, i.e. no smoothing at all.
In the current runtime the legacy interval controller is gone, and nothing
reads this value outside of the RPC/metagraph views: registration pricing is
handled per block in pallets/subtensor/src/subnets/registration.rs, where
each registration bumps the burn by
burn_increase_mult and decay with
half-life burn_half_life pulls it
back toward min_burn. The setter
(sudo_set_adjustment_alpha in pallets/admin-utils/src/lib.rs) remains
callable by the subnet owner, subject only to the owner rate limit and admin
freeze window — but setting it changes nothing about how registrations are
priced.
The chart below replays the same registration burst under the old interval-EMA controller (where alpha mattered) and the current continuous one (where it does not).
The same demand burst (~2h of registrations, then quiet) priced two ways. Then (dotted steps): once per interval the price jumped to an EMA-blended value — adjustment_alpha is the weight on the old price, so higher alpha means slower steps. Now (solid): every registration bumps the price and it decays every block; alpha changes nothing on this curve.
Then (dotted)
steps per interval
next = α·old + (1−α)·old·(regs+2)/4
Now (solid)
moves every block
×1.26 per registration, half-life 360 blocks
These sliders affect
only the dotted line
On the current chain both values are stored but unused.
Reading and setting
btcli sudo get --netuid 12 --name adjustment_alpha
btcli sudo set --netuid 12 --name adjustment_alpha --value 0.5Settable by the subnet owner or root. A value with a decimal point is a 0..1
fraction (0.5 = half weight on the previous value); a plain integer is the
raw u64 (u64::MAX = 1.0).
Related
adjustment_interval— the legacy controller's cadencetarget_regs_per_interval— the target it steered towardburn_half_life/burn_increase_mult— the controller that replaced it