Hyperparameters
subnet_emission_enabled
Root-controlled switch for the subnet's pool-side TAO emission share.
subnet_emission_enabled controls whether the subnet receives its share of
network TAO emission into the pool. While it is false the chain injects no
tao_in or alpha_in into the subnet's reserves and makes no excess_tao
chain buys — the pool side of emission is zeroed. Everything else keeps
running: alpha_out still pays miners and validators each epoch, the owner
cut and root proportion are untouched, and pending emissions are preserved.
The flag decides whether the subnet's market demand translates into actual
TAO flowing into its pool.
How it works
Storage is
SubnetEmissionEnabled in
pallets/subtensor/src/lib.rs. New
subnets register with it true
(set_new_network_state
in pallets/subtensor/src/subnets/subnet.rs), so a freshly created subnet is
already eligible for a TAO emission share once the owner calls
start-call. Root can still flip the flag off (or
back on) later. Each coinbase run
skips the pool-side terms for disabled subnets
and clears any stale per-block TAO-side
emission storage. Existing subnets that root already disabled are not
changed by the registration default — only new registrations start enabled.
This is not the same flag as subnet_is_active.
That one is the owner's one-shot start-call: it opens
staking, alpha trading, and epochs. This one is root's emission valve. The two
are independent — a subnet can be fully active, with trading and epochs
running, while its TAO emission share stays off if root disables this flag.
Bringing a new subnet online takes the owner's start_call (after the
activation delay); a root emission-enable call is no longer required for
fresh registrations.
Reading and setting
Anyone can check the flag:
btcli query subnet-emission-enabled --netuid 89 --jsonRoot only — there is no btcli sudo set name for it and the subnet owner
cannot flip it. The chain sudo key uses
set-subnet-emission-enabled, which
takes multiple netuids and batches them atomically, wrapping the call in
Sudo.sudo:
btcli tx set-subnet-emission-enabled --netuids 89,127 --enabled -w sudo_key
btcli tx set-subnet-emission-enabled --netuids 89 --no-enabled -w sudo_keyThe raw-call escape hatch still works for a single netuid:
btcli call AdminUtils.sudo_set_subnet_emission_enabled --args '{"netuid": 89, "enabled": true}' --sudoRelated
subnet_is_active ·
registration_allowed ·
set-subnet-emission-enabled ·
subnet_emission_enabled ·
Emissions