Hyperparameters

collateral_lock_share

Share of the registration price locked as miner collateral instead of burned; 0 disables collateral.

View as Markdown

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 emission (miner incentive and validator dividends), 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_share

Stored 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 49151

Common 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.

collateral_drain_ratio, min_burn, burn_increase_mult, Registration collateral guide