Skip to main content

Linea, the land of many bridges

Any L2 is going to have a lot of connections to other networks. Some of these bridges will be made by Consensys and Linea, some by projects collaborating with us; eventually, some may be made without our knowledge—that’s what 'permissionless' means.

What's going on here?

Linea, like any other rollup network, is designed to offer its own experience, while 'reporting back' to another network (usually Ethereum Mainnet) on all the activity that happens on it (at least, at the level of transactions); this means that the 'Layer 1' network is tracking all the activity on the 'Layer 2'. In this way, L2s are said to 'inherit the security of the L1'.

One of the main reasons you would want a rollup network is for it to be totally interoperable with the L1, and one of the main things you need to make networks interoperable is enable people to move things back and forth between them. The class of tools used to do this, broadly, are called bridges.

Ok, now you're up to speed 🚀

The Linea bridge ecosystem

The Canonical Message Bridge

The main "bridge", on a technical level, in Linea is the Canonical Message Bridge. This is the underlying set of smart contracts which keep track of receiving requests to move tokens to the other layer, and of sending the message that those tokens should be transferred.

The Postfrens

This message is then picked up by programs serving as "postmen", and moved to the other network, where the receiving smart contract executes according to the message received.

The Canonical Token Bridge

If you want to move tokens between L1 and L2, we recommend you use the bridge built on top of the Canonical Message Bridge specifically for this purpose: the Canonical Token Bridge, currently located at https://bridge.linea.build.

Official, Third-Party, Permissionless Bridges, and beyond

As the network grows, we'll be updating this space with a user's guide to the bridges of Linea. To see what bridges are available, head to our ecosystem portal and filter for bridges.

Manual vs Automatic Claiming

Manual claiming requires two transactions to be approved. One on the source layer to initiate the bridging process and the other on the target layer by the recipient to receive the funds, which we call "claiming". This means that in order to receive the funds, the recipient has to pay a fee on the target layer.

Automatic claiming only requires one transaction to be approved on the source layer. The recipient will automatically receive their funds because a "postman" will handle the claiming process for them.

What are the execution fees?

There are two types of execution fees that can be applied when you are bridging your tokens, the postman fee and the anti-DDOS fee.

The postman fee is only applied during the automatic claiming process and is calculated by the following formula:

Postman Fee = target layer gas price * (gas estimated + gas limit surplus) * margin where target layer gas price is eth_gasPrice on the target layer, gas estimated = 100,000, gas limit surplus = 6000, and margin = 2.

The anti-DDOS fee is only applied when bridging from L2 to L1 and is set to 0.001 Eth

What is token bridge decimal mismatch?

When a user bridges an ERC20 token from one chain to the other (e.g. Mainnet to Linea) and the token has not been deployed on the destination chain, the Token Bridge Smart Contract will attempt to determine the “decimals” of the ERC20 token. If the "decimals" cannot be determined by reading the origin ERC20 token contract (e.g. a token contract does not adhere to the ERC20 standard https://ethereum.org/en/developers/docs/standards/tokens/erc-20/ ), it will default to 18 decimals.

It's important to note that encountering this situation is uncommon, as most tokens with specified decimals usually adhere to the ERC20 standards.

Here's a simple example to help you understand what this means: if a token has 16 decimals on L1 but doesn't specify the decimals in token contract, then it defaults to 18 decimals on Linea due to missing information. Bridging 1 token from L1 will show up as 0.01 on L2. When you bridge back the 0.01 to L1, it'll become 1 token again.