# Lifecycle labels

> The two lifecycle flags that consensus keeps for each asset, and the descriptive labels the explorer derives from counters and records.

Source: https://docs.iceroot.com/network/lifecycle/

The label names and conditions on this page are a draft and may change before the explorer shows them. The two lifecycle flags follow the [draft protocol](https://docs.iceroot.com/core/protocol-design/index.md); no release implements either yet.

In the draft protocol, consensus keeps only two lifecycle flags for each asset. The explorer adds a descriptive lifecycle label, which it derives from the asset’s counters and records. A label describes where an asset stands. It is not consensus state, and no flag or label ever freezes transfers.

## The two consensus flags

| Flag                   | While it is open                                                                 | Who changes it                  |
| ---------------------- | -------------------------------------------------------------------------------- | ------------------------------- |
| Inbound lists accepted | The validator quorum can commit new inbound migration lists for the asset        | The asset’s migration authority |
| Migrate-out open       | Holders can leave with `MIGRATE_OUT` for a destination on the asset’s allow-list | The asset’s migration authority |

The migration authority changes each flag explicitly, with a transaction, under guards. For example, migrate-out opens only for an asset that has an allowed out-destination. Only migrated assets receive inbound lists; a native asset’s supply is created once, when the asset is created.

The flags have firm limits:

- **They never touch balances.** Holders can transfer, swap, lock, and burn their units whatever the flags say, and any address can receive the asset.
- **Closing inbound acceptance stops new lists only.** It cannot stop or delay the crediting of a list that is already certified.
- **Renouncing is permanent.** If the migration authority is renounced, both flags stay where they are for good. An asset renounced with migrate-out closed can never open it.

The [migration guide](https://docs.iceroot.com/projects/migration/index.md#migrate-out) explains how the flags are used when an asset moves out.

## Labels

The explorer shows one label per asset. It works from data that anyone can read from the node API:

- **Origin:** native, created with `ASSET_CREATE`, or migrated, registered with `ASSET_REGISTER_EXT`.
- **Flags:** the two lifecycle flags above.
- **Supply counters:** issued, migrated\_in, burned, migrated\_out, and hosted, the units currently held on IceRoot, including units in open locks and time-locked entries.
- **Records:** the creation record, certified lists and their credits, exit records, and balances.

The explorer checks the rows below in order and shows the first that applies.

| Label        | Applies to      | Shown when                                                                                                                                                                    | Derived from                                   |
| ------------ | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------- |
| Rooted       | Any asset       | No units remain on IceRoot, and some left through exits: hosted is 0 and migrated\_out is above 0                                                                             | hosted, migrated\_out                          |
| Retired      | Any asset       | No units remain on IceRoot, none left through exits, and no new units can arrive: hosted is 0, migrated\_out is 0, and the asset is native or no longer accepts inbound lists | hosted, migrated\_out, origin, inbound flag    |
| Rooting      | Any asset       | Migrate-out is open and units remain on IceRoot                                                                                                                               | Migrate-out flag, hosted                       |
| Migrating in | Migrated assets | New inbound lists are accepted                                                                                                                                                | Origin, inbound flag                           |
| Seeded       | Native assets   | The creator’s account still holds every unit on IceRoot, so nothing has been distributed yet                                                                                  | Creation record, the creator’s balance, hosted |
| Active       | Any asset       | None of the rows above applies: units are held on IceRoot and no exit is open                                                                                                 | All of the above                               |

Some consequences of these conditions:

- **An asset can move back.** Labels are recomputed whenever the underlying data changes. When the migration authority closes migrate-out, a Rooting asset becomes Active again, or Migrating in if it still accepts inbound lists. When a certified line is credited to a Retired asset, it leaves Retired.
- **Most moves out stay Rooting.** Holders who do not exit keep transferable units on IceRoot, so an asset usually remains Rooting while migrate-out is open, and becomes Rooted only once no units remain.
- **Burn-event routes stay Migrating in.** A migrated asset whose holders keep arriving from a live source chain shows Migrating in for as long as it accepts inbound lists.
- **ROOT is never Seeded.** ROOT is issued at genesis and by block rewards, not by `ASSET_CREATE`.

## What a label does not mean

- **It is not a rule.** No node enforces a label, and no transaction reads one. The two flags are the only lifecycle facts in consensus.
- **It never freezes anything.** A label cannot stop a transfer, a swap, a burn, an exit, or the crediting of a certified list.
- **It does not report the destination chain.** Rooted means that units left IceRoot through recorded exits and were counted as migrated out. IceRoot cannot see whether a destination credited them.
- **It is not an endorsement.** A label is not a verification badge, a trust label, or a statement about a project.

## Other labels you may see

The explorer and wallets show several other labels. Each has its own source, separate from the lifecycle label.

| Label             | Where it appears               | What it records                                                                                                                                 |
| ----------------- | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| Trust label       | A migrated asset and its route | The route’s trust model, recorded at registration; community or manual bridges are always shown apart from verified routes                      |
| Distribution      | A snapshot migration           | The source chain was still live at the snapshot, so the migration is not a succession                                                           |
| Custodial         | A line of a migration list     | An aggregate line credited to a custodian, which redistributes to its customers                                                                 |
| Custodial gateway | An account                     | A [custody gateway](https://docs.iceroot.com/developers/custody-gateways/index.md) listed in the destination registry, with its operator’s name |
| Fixed supply      | Every native asset             | No operation can create further units                                                                                                           |
| Verified badge    | An asset                       | The AssetID is on a verified-asset list that the wallet or explorer uses                                                                        |

[Native assets →](https://docs.iceroot.com/network/assets/index.md) · [Migrations and continuity →](https://docs.iceroot.com/network/migrations/index.md)
