# adjustment_alpha (/docs/hyperparameters/adjustment-alpha)

The smoothing factor of Bittensor's original registration-price controller.
When the chain adjusted burn and PoW difficulty once per
[`adjustment_interval`](/docs/hyperparameters/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 [#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`](/docs/hyperparameters/burn-increase-mult) and decay with
half-life [`burn_half_life`](/docs/hyperparameters/burn-half-life) pulls it
back toward [`min_burn`](/docs/hyperparameters/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).

<HyperparamLegacyAdjustment focus="adjustment_alpha" />

## Reading and setting [#reading-and-setting]

```bash
btcli sudo get --netuid 12 --name adjustment_alpha
btcli sudo set --netuid 12 --name adjustment_alpha --value 0.5
```

Settable 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 [#related]

* [`adjustment_interval`](/docs/hyperparameters/adjustment-interval) — the
  legacy controller's cadence
* [`target_regs_per_interval`](/docs/hyperparameters/target-regs-per-interval)
  — the target it steered toward
* [`burn_half_life`](/docs/hyperparameters/burn-half-life) /
  [`burn_increase_mult`](/docs/hyperparameters/burn-increase-mult) — the
  controller that replaced it
