Hyperparameters

collateral_drain_ratio

Alpha of locked miner collateral released per alpha of miner incentive earned.

View as Markdown

collateral_drain_ratio (call it k) sets how fast a miner earns back the collateral locked at registration when the subnet uses a nonzero collateral_lock_share. Miners care because lock / k is the total incentive they must earn before their collateral is fully withdrawable; owners tune it to control how long miners stay collateralized — the security parameter for subnets whose scoring can be gamed on short horizons.

How it works

Each tempo, when miner incentive is credited (distribute_dividends_and_incentives in pallets/subtensor/src/coinbase/run_coinbase.rs), settle_miner_collateral releases

released = min(locked − min_locked, k × incentive)

from the hotkey's lock back to withdrawable stake, where min_locked is the miner's optional self-maintained floor (zero unless set via set_min_collateral; while the lock is under the floor, incentive is captured into the lock instead). The release is keyed to the registered hotkey even when the emission itself is redirected by auto-stake. At k = 1 (the default) collateral releases one-for-one with earned incentive; at k = 0.5 a miner must earn two alpha per alpha released; at k = 2 half the lock's worth of work releases all of it.

The subnet value is stored in CollateralDrainRatio as a U64F64 fixed-point number, but each miner's effective ratio is snapshot into their collateral entry at registration (MinerCollateralState): owner changes apply to future registrations only and can never slow (or speed) the drain of standing collateral. The owner-set extrinsic (sudo_set_collateral_drain_ratio in pallets/admin-utils/src/lib.rs) requires 0 < k ≤ 10 (MaxCollateralDrainRatio); out-of-range values fail with CollateralDrainRatioOutOfBounds. Zero is excluded by design: with no exit path for collateral, k = 0 would make the lock permanently unrecoverable — a burn with extra steps.

The deterrence math, briefly: an adversary who plans to farm emissions and abandon the hotkey must collect roughly T / (1 + k) (T = registration price) before validators stop scoring them, just to break even. Lower k raises that bar; see the worked example.

Reading and setting

btcli sudo get --netuid N --name collateral_drain_ratio

Fixed-point decimal; owner or root, rate-limited, outside the weights window:

btcli sudo set --netuid N --name collateral_drain_ratio --value 0.5

Common settings: 1.0 (default, earn-back at par), 0.2–0.5 (slow release for long-horizon or gameable-score subnets), 2.0 (fast release where the entry gate matters more than ongoing lockup).

collateral_lock_share, burn_half_life, Registration collateral guide