On this page

Asset identity

Every Omniasset is tied to one original token by two values:

(originalEid, originalToken)

originalEid is the LayerZero endpoint ID of the original chain. originalToken is the original contract identifier as raw bytes. For an EVM original, it is the 20-byte token address.

This identity does not change when the asset moves between representation chains.

Discover an Omniasset's original

function oftToOriginal(address representation)
    external
    view
    returns (uint32 originalEid, bytes originalToken, bool exists);

If exists is true, the selected token is an Omniasset. If false, treat it as an original ERC-20 on the local chain.

Use the returned identity to locate the representation on another chain:

function representationFor(uint32 originalEid, bytes originalToken)
    external
    view
    returns (address);

The zero address means it has not been deployed on that destination.

Predict before deployment

Omniassets use deterministic minimal-proxy deployment. You can calculate the destination address before the first transfer:

function predictRepresentation(uint32 originalEid, bytes originalToken)
    external
    view
    returns (address);

Use representationFor to check deployed state and predictRepresentation when you need the future address. A predicted address is not proof that contract code exists.

Metadata is frozen at origin

For the next ERC-20 contract release, the Registry preserves the original token's name and symbol exactly as read on its first send:

name:   {original name}
symbol: {original symbol}

Decimals are preserved. If the original does not return decimals, the Registry falls back to 18. A first send requires nonempty name and symbol values.

The stored name, symbol, decimals, and contract-level URI are reused for later destinations. No symbol prefix or chain-name suffix is added. The original chain and token remain available through the asset identity getters.

This source change does not rename existing representations or frozen metadata in previously deployed contracts. Earlier releases added an om symbol prefix and an origin-chain suffix to the name. Metadata is a first-transfer snapshot; later changes to the original token's metadata are not automatically synchronized.

Identity versus display data

Never identify an asset by name, symbol, logo, or representation address alone. Use the original endpoint ID and original token bytes. This remains stable across destinations and avoids symbol collisions.

For an indexer, store both:

  • stable identity: originalEid and originalToken;
  • local instance: EVM chain ID and representation address.
Introducing Omnipad-Launch tokens between chains