Hyperparameters

target_regs_per_interval

Registrations per interval the registration controller steers toward; today a hard admission cap.

View as Markdown

Originally the setpoint of the registration-rate controller: the number of registrations per adjustment_interval the chain tried to hit by moving burn and difficulty. On the current chain it survives as a hard cap: an interval may admit at most three times this many registrations. Root-subnet validators hit it most directly.

How it works

The value lives in TargetRegistrationsPerInterval storage (u16, default 2, so the cap is 6). Two places enforce the 3× cap:

  • do_root_register (pallets/subtensor/src/coinbase/root.rs) rejects a root registration with TooManyRegistrationsThisInterval once RegistrationsThisInterval ≥ 3 × target_regs_per_interval. The counter resets on the root subnet's epoch boundary — one "interval" is effectively one root tempo, and adjustment_interval itself is not consulted.
  • checked_allowed_register (pallets/subtensor/src/lib.rs) applies the same 3× comparison when reporting whether a non-root subnet accepts registrations; on those subnets pricing is done by the continuous burn controller (burn_increase_mult and burn_half_life) rather than by steering toward this target.

The legacy EMA adjustment that used this value as a setpoint (together with adjustment_alpha) no longer exists in the runtime.

The chart below shows the cap in action: attempts pile up over an interval, and admission stops once the count reaches 3× the target.

The 3× hard cap

Registrations accumulating over one interval (the root subnet's epoch). Attempts (dotted) arrive evenly; the chain admits them (solid) only until the count reaches 3 × target_regs_per_interval (dashed) — everything after that is rejected with TooManyRegistrationsThisInterval until the counter resets at the epoch boundary.

Cap per interval

6

3 × target (2)

Cap hit

~block 216

later attempts are rejected

Rejected

4

2 (cap 6)
10

Reading and setting

btcli sudo get --netuid 12 --name target_regs_per_interval

Root/governance only — sudo_set_target_registrations_per_interval in pallets/admin-utils/src/lib.rs requires the root origin (plus the admin freeze window being open), so subnet owners cannot change it. The value is a plain integer.