The same asset can exist on multiple chains in different forms. Understanding which form is which matters when sending, swapping, or selling.
Three categories
Native — The asset's home chain. ETH on Ethereum L1. ATOM on Cosmos Hub. SOL on Solana. BTC on Bitcoin. DOT on Polkadot. The native form has no bridge dependency; it just exists.
Wrapped — A bridge-issued representation of the native asset on a different chain. WETH on Solana. WBTC on Ethereum. The wrapped token's value depends on the bridge's continued operation. If the bridge fails, the wrapped token is worthless.
Synthetic — A token whose value tracks the underlying asset but isn't backed 1:1. sETH on Synthetix. wstETH (Lido's staked ETH wrapper). Synthetics carry counterparty risk on whoever's issuing them.
Same name, different things
USDC on Ethereum, USDC on Solana, USDC on Polygon — these might all be issued by Circle (canonical), or they might be wrapped representations from different bridges. Some examples:
| Token | Issuer | Status |
|---|---|---|
| USDC on Ethereum L1 | Circle | Native (Circle-issued) |
| USDC on Polygon | Circle (CCTP-bridged) | Canonical wrapped |
| USDC.e on Arbitrum | Wormhole-bridged | Non-canonical wrapped — older |
| Native USDC on Arbitrum | Circle (CCTP) | Canonical wrapped — newer |
| ATOM on Hub | Cosmos community | Native |
| ATOM on Osmosis (via IBC) | IBC-bridged | Canonical IBC wrapped |
| ATOM on Ethereum (via Axelar) | Axelar-bridged | Federated wrapped |
The wallet labels these in the balance display: native = no badge; canonical wrapped = small chain-icon badge; non-canonical / synthetic = a warning glyph.
Why this matters when you swap
You can't atomically swap ATOM-on-Osmosis (IBC) for ATOM-on-Hub (native). They're the "same asset" semantically but different tokens technically. You'd have to bridge back to the Hub first, paying IBC fees.
You can't sell USDC.e (non-canonical Arbitrum USDC) on the same AMM pool as native USDC. There are two different pools.
The wallet's swap UI shows the actual token identity. If you have USDC.e and want to spend canonical USDC, you'll need to convert first.
The "I have funds" problem
Most multi-chain wallets have a unified balance display: "You have $5,200 across chains." That's nice for the summary view but misleading for action:
- $4000 of that is ETH on Polygon. You can spend it on Polygon, but not on Ethereum L1.
- $800 is USDC on Solana. Not directly spendable on Ethereum.
- $400 is wrapped DOT on Ethereum. Worth $400 if and only if Snowbridge keeps working.
The wallet's dashboard shows the unified total but clicking into it surfaces the per-chain breakdown. Always understand which chain you're spending from.
What "canonical" means
A canonical wrapped asset is the one the issuer endorses (CCTP for USDC) or the ecosystem standardises on (IBC channel-141 for Hub↔Osmosis ATOM). Non-canonical wrapped assets are real tokens but second-class — limited DEX liquidity, no support from the issuer, often the result of an older bridge that the ecosystem has moved on from.
When the wallet shows you balances, the canonical form has no warning. Non-canonical forms get a yellow "non-canonical" badge. Don't ignore the badge.
Three rules
- Treat wrapped assets as conditional on the bridge. WBTC is worth what it's worth because BitGo's custody works. CCTP USDC is worth what it's worth because Circle works.
- Prefer canonical forms. When you bridge USDC, use CCTP. When you bridge intra-Cosmos, use IBC. The canonical form has the deepest liquidity and lowest friction.
- Know what chain you're on. "I have $5,200" is meaningless without knowing where. Spend from the right chain or bridge first.
Next: validator-set trust — who's actually signing your bridge messages.