Hyperparameters

transfers_enabled

Per-subnet toggle allowing stake to be transferred between coldkeys.

View as Markdown

Controls whether staked alpha on this subnet can be moved from one coldkey to another. It matters to stakers who shift positions between their own wallets or hand alpha to someone else without unstaking, and to subnet owners who would rather see alpha change hands only through the pool.

How it works

The flag lives in TransferToggle storage and defaults to true. It is checked only on the coldkey-changing path: transfer-stake validates it and fails with TransferDisallowed when the toggle is off. Moving stake between hotkeys or subnets under the same coldkey (move-stake, swap-stake) never consults the flag, and neither does ordinary staking or unstaking — disabling transfers does not trap anyone's stake, it only pins it to its current coldkey.

For a cross-subnet transfer, both the origin and destination subnets must have transfers enabled. If the transferred stake carries a conviction lock, the lock follows the stake: locked mass and conviction move to the destination coldkey in proportion to the amount transferred.

Flip the toggle below and try moving stake between the two coldkeys:

Stake flow under transfers_enabled

transfer_stake moves alpha to a different coldkey and is the only path that checks TransferToggle: with the toggle off it fails with TransferDisallowed. Moving stake between hotkeys under the same coldkey (move_stake, swap_stake) never consults the flag, and neither does staking or unstaking — the stake is pinned to its coldkey, not trapped.

coldkey A

100 α

transfer_stakeallowed

coldkey B

40 α

Try a transfer with the toggle on and off.

transfers_enabled

transfer_stake (A → B)

allowed

Both subnets must allow it for cross-subnet moves

move_stake / swap_stake / unstake

always allowed

Same coldkey — the flag is never checked

Reading and setting

btcli sudo get --netuid 12 --name transfers_enabled
btcli sudo set --netuid 12 --name transfers_enabled --value false

Settable by the subnet owner or root; booleans take true or false.