Skip to content
IceRootDocs

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.

FlagWhile it is openWho changes it
Inbound lists acceptedThe validator quorum can commit new inbound migration lists for the assetThe asset’s migration authority
Migrate-out openHolders can leave with MIGRATE_OUT for a destination on the asset’s allow-listThe 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.

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.

LabelApplies toShown whenDerived from
RootedAny assetNo units remain on IceRoot, and some left through exits: hosted is 0 and migrated_out is above 0hosted, migrated_out
RetiredAny assetNo 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 listshosted, migrated_out, origin, inbound flag
RootingAny assetMigrate-out is open and units remain on IceRootMigrate-out flag, hosted
Migrating inMigrated assetsNew inbound lists are acceptedOrigin, inbound flag
SeededNative assetsThe creator’s account still holds every unit on IceRoot, so nothing has been distributed yetCreation record, the creator’s balance, hosted
ActiveAny assetNone of the rows above applies: units are held on IceRoot and no exit is openAll 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.
  • 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.

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

LabelWhere it appearsWhat it records
Trust labelA migrated asset and its routeThe route’s trust model, recorded at registration; community or manual bridges are always shown apart from verified routes
DistributionA snapshot migrationThe source chain was still live at the snapshot, so the migration is not a succession
CustodialA line of a migration listAn aggregate line credited to a custodian, which redistributes to its customers
Custodial gatewayAn accountA custody gateway listed in the destination registry, with its operator’s name
Fixed supplyEvery native assetNo operation can create further units
Verified badgeAn assetThe AssetID is on a verified-asset list that the wallet or explorer uses

Native assets → · Migrations and continuity →