Lifecycle labels
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
Section titled “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 explains how the flags are used when an asset moves out.
Labels
Section titled “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 withASSET_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
Section titled “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
Section titled “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 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 |