Bridging to the correct ERC-20 token on Linea

Have more questions? Submit a request

When bridging ERC-20 tokens to Linea from L1, you should make sure that the token you'll receive on Linea is the correct one

What is the 'correct' token?

By 'correct' we're referring to whether the token is the 'canonical' token on Linea. For example, anyone could theoretically deploy a token contract with the same symbol as USDC, and there could be multiple USDC contracts on Linea — but how do you know which one is the real thing? 

"Lock and mint" bridges

The official Linea token bridge—and many others on Linea—use a bridging mechanism known as "lock and mint". This means the assets you want to bridge are locked (indefinitely held) on the source chain and minted anew on the destination chain. 

How is this relevant? Well, imagine you're attempting to bridge USDC to Linea. The bridge you use could be set up to mint your bridged tokens using a USDC token contract that is not the canonical Linea USDC, and you end up with an unofficial variant of USDC.

Before you attempt to bridge, you should verify that the token you're signing up to receive on the destination chain is the one you want. This applies particularly to Linea: as a new network, the canonical token contracts aren't as established and widespread as they are on older chains like Ethereum.

Why is this a problem?

It doesn't break anything to have multiple variants of the same token in circulation. Each token contract can theoretically coexist and be used alongside the other. 

However, problems will start to occur as Linea's DeFi ecosystem matures. If competing variants of the same token have significant popularity, we'll end up with liquidity fragmentation

Liquidity refers to the total of all liquid assets of a certain type available on the network — with "liquid" describing tokens sitting in accounts ready to be used. (Cash in your physical wallet is also a liquid asset.) When there are multiple variants of the same token—let's continue with USDC—the total true liquidity of USDC is split between various tokens. 

Liquidity underpins most DeFi protocols. Without sufficient liquidity, key services such as decentralized exchanges (DEXs) or lending/borrowing protocols don't work efficiently. Fragmenting the total USDC liquidity on Linea, for example, across 10 competing, uncanonical USDC variants means liquidity is held artificially low. 

Low liquidity causes price volatility. The primary cause is price impact — a trading phenomenon that occurs when a trade can be large enough to significantly reduce liquidity.

What is price impact?

Imagine there are 100,000 tokens available, and a whale decides she wants 20,000 of them. Her order is successful, creating a sudden 20% drop in liquidity.

The magnitude of the whale's trade has significantly reduced supply, and, according to the laws of supply and demand, the token's price will rise accordingly. 

Since users stand to lose money on an unpredictable basis, liquidity fragmentation disincentivizes taking part in DeFi on Linea. Naturally, this is something we should avoid, and the DeFi partners deploying to Linea have been very supportive of this goal.

In addition to liquidity fragmentation, this situation also means you could end up holding a token you didn't intend to have. If you bridged a token to Linea for a specific purpose—such as depositing it in a pool, or staking it somewhere—you'll be left disappointed when it isn't accepted by the dapp. Just because a token has the name and symbol of USDC, for example, doesn't mean it actually is USDC. 

Where can I find canonical token contract addresses?

A list of ERC-20 token contracts on Linea is available in the docs here.

Since it's in everyone's interests to avoid liquidity fragmentation, we're working with third-party bridges to make sure that, like our own, their bridges use the correct token contracts when dealing with major, commonly used tokens. This means you can use bridges without a second thought, most of the time. 

However, we recommend you check, especially when handling uncommon or new tokens. 

Articles in this section

Was this article helpful?
1 out of 2 found this helpful