Hyperparameters
collateral_lock_share
Share of the registration price locked as miner collateral instead of burned; 0 disables collateral.
collateral_lock_share (call it p) splits the subnet's floating
registration price: the (1 − p) share is burned as in a classic burned
registration, and the p share is staked to the registering hotkey and
locked as miner collateral. Miners care
because it decides how much of the entry price they can earn back by mining;
owners tune it to price post-registration accountability — sybils, UID
squatters, and miners that validators blacklist never release the lock.
How it works
At registration
(do_register
in pallets/subtensor/src/subnets/registration.rs), with floating price T:
burned = (1 − p) × T
top-up = max(0, p × T − value of standing collateral)The burned share is recycled exactly like a pre-collateral registration; the
top-up is staked to the hotkey via the normal staking path and locked
(pay_registration).
Standing collateral from a previous registration of the same hotkey is valued
at the subnet's moving-average price and credited, so a pruned miner re-registers for
roughly the burned share alone. Locked collateral is excluded from what the
coldkey can unstake and is released only against earned miner incentive, at
collateral_drain_ratio
alpha per alpha earned.
The value is stored in
CollateralLockShare as a
u16 normalized so u16::MAX (65535) = 100%. The chain default is 0 —
collateral disabled, whole price burned, identical to pre-collateral
behavior. The owner-set extrinsic
(sudo_set_collateral_lock_share
in pallets/admin-utils/src/lib.rs) caps the value at
MaxCollateralLockShare
(62258, ≈95%): the burned share must stay strictly positive so
re-registration always pays a nonzero, floating burn. Values above the cap
fail with
CollateralLockShareTooHigh.
Changes are prospective only: each miner's lock is created at
registration time, so raising p affects future registrants (and returning
miners' top-ups), never standing collateral.
Reading and setting
btcli sudo get --netuid N --name collateral_lock_shareStored u16-normalized (65535 = 100%); btcli accepts either the 0..1
fraction or the raw integer. Owner or root, rate-limited, outside the
weights window:
btcli sudo set --netuid N --name collateral_lock_share --value 0.75 # or the raw integer 49151Common settings: 0 (pure burn, default), 0.75 (standard bond), 0.83–0.9
(subnets defending against short-horizon score gaming — pair with a low
drain ratio). btcli accepts the 0..1 fraction or the raw u16 integer.
Related
collateral_drain_ratio,
min_burn,
burn_increase_mult,
Registration collateral guide