# 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`](/code/pallets/subtensor/src/lib.rs#L2214) storage map in
`pallets/subtensor/src/lib.rs` — "is subtoken trading enabled" — which
defaults to **false** for a newly registered subnet.
[`do_start_call`](/code/pallets/subtensor/src/subnets/subnet.rs#L531-L556)
(`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`](/code/pallets/subtensor/src/lib.rs#L2826-L2832)
  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`](/code/pallets/subtensor/src/macros/errors.rs#L212).
* **No emissions.**
  [`get_subnets_to_emit_to`](/code/pallets/subtensor/src/coinbase/subnet_emissions.rs#L21-L32)
  (`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`](/code/pallets/subtensor/src/macros/dispatches.rs#L1093-L1101)
  skips the pending-cooldown schedule before start and applies at once
  ([`schedule_or_apply_ck`](/code/pallets/subtensor/src/staking/set_children.rs#L551-L585)
  in `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`](/code/pallets/admin-utils/src/lib.rs#L1779-L1792)
(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)
