# subnet_is_active (/docs/hyperparameters/subnet-is-active)

`subnet_is_active` reports whether the subnet's owner has fired the one-shot
[`start-call`](/docs/tx/start-call) that brings a registered subnet to life.
Before it flips to true the subnet is a shell: no one can stake into it, its
alpha cannot be traded, and it receives no emissions. Stakers should check it
before trying to enter a freshly registered subnet; owners watch it as the
line between "registered" and "launched."

## How it works [#how-it-works]

The value is the `SubtokenEnabled` storage map in
`pallets/subtensor/src/lib.rs` — "is subtoken trading enabled" — which
defaults to **false** for a newly registered subnet. `do_start_call`
(`pallets/subtensor/src/subnets/subnet.rs`) sets it to true, records the
subnet's first emission block, and can only be called by the subnet owner
once `StartCallDelay` blocks have passed since registration (the
[`subnet_start_schedule`](/docs/query/subnet-start-schedule) read shows the
earliest block).

While the flag is false:

* **All staking paths are closed.** `ensure_subtoken_enabled` guards
  add/remove stake, limit orders, and alpha recycle/burn, and both the origin
  and destination subnets are checked on move/swap/transfer
  (`pallets/subtensor/src/staking/stake_utils.rs`). Every one of them fails
  with `SubtokenDisabled`.
* **No emissions.** `get_subnets_to_emit_to`
  (`pallets/subtensor/src/coinbase/subnet_emissions.rs`) only emits to
  subnets with the flag on, a first-emission block set, and
  [`registration_allowed`](/docs/hyperparameters/registration-allowed) true.
* **Childkeys apply immediately.** `set_children` skips the pending-cooldown
  schedule before start and applies at once
  (`pallets/subtensor/src/staking/set_children.rs`).

Dissolving a subnet removes the entry. Root can also force the flag either
way with `sudo_set_subtoken_enabled` (AdminUtils), but in normal operation it
is written exactly once, by `start-call`.

## Reading and setting [#reading-and-setting]

```
btcli sudo get --netuid N --name subnet_is_active
```

Not settable through `btcli sudo set` — the owner flips it by starting the
subnet:

```
btcli tx start-call --netuid N --dry-run
```

Check when the subnet becomes eligible with
`btcli query subnet-start-schedule --netuid N`.

## Related [#related]

[`registration_allowed`](/docs/hyperparameters/registration-allowed) ·
[`transfers_enabled`](/docs/hyperparameters/transfers-enabled) ·
[`start-call`](/docs/tx/start-call) ·
[`subnet_start_schedule`](/docs/query/subnet-start-schedule)
