
It seems easy to move assets between chains—just send them here and get them there—but bridging is where a lot of losses happen. Different bridges have different ways of trusting each other, charging fees, and making timing assumptions. This guide tells you how bridges work, what can go wrong, how much it costs, and how to bridge safely.
TL;DR
- Choose canonical or light-client/ZK bridges over opaque multisigs. The total cost is the bridge fee plus the gas on the source plus the gas on the destination plus the relayer fee. The time cost depends on the finality and challenge windows.
- For L1↔L1, a regulated CEX transfer can be safer and cheaper than on-chain bridges for big amounts of money.
- Always test with a small amount, check on both explorers, stay away from long multi-hop routes, and keep an eye on wrapped vs native assets.
1) How bridges really move value
Bridges don’t teleport coins; instead, they use one of these patterns to keep state between chains:
- Lock & Mint (custodial/multisig): Tokens are locked on Chain A, and a custodian or validator multisig creates a wrapped version on Chain B. Burn on B and unlock on A to redeem. Quick, but full of trust.
- Light-Client / Native Verification: Chain B checks Chain A’s headers (or proofs) right in a smart contract. More gas/time, but stronger security.
- Optimistic Bridges: Messages are thought to be true unless someone questions them during a dispute window. Less expensive, but withdrawals take longer.
- ZK Bridges: Validity proofs show that the message is correct; fast finality with strong guarantees, but it is hard to generate/verify proofs.
- AMM-Style «Bridges» / Liquidity Networks: You trade with a market maker or liquidity pool across chains without locking anything. Quick UX, but adds price/LP risk.
Key point: Your risk level is based on the trust model, which goes from trusted custodian (highest trust) to light client/zk (lowest additional trust).
2) Core risks (what really breaks)
- Smart-contract bugs: Weaknesses in contracts for custody or messaging. Because they have a lot of money, bridges are often hacked.
- Key/Multisig compromise: If a small group of signers controls unlocks, stolen keys mean stolen money.
- Oracle/Relayer failure: If the state relays are wrong, they can mint or release money incorrectly.
- Replay / Reorg issues: If the finality is weak or the chain reorganizes, the bridge can get out of sync. Good bridges wait for enough confirmations.
- Censorship / Pauses: Admins can pause or blacklist; read the admin powers.
- Wrapped-asset risk: Your «bridged USDC» might not be the same as «native USDC.» If the bridge breaks, wrapped tokens can trade at a «discount» (depeg).
- Liquidity risk (AMM bridges): When things get tough, exit liquidity gets thinner and slippage goes up.
3) Fees: how much you’ll really pay
The total cost of bridging usually includes:
- Source-chain gas: To approve and send to the bridge.
- Bridge fee: A fee for following the rules or a spread.
- Relayer/execution fee: This is the fee for sending your message to the right place.
- Destination-chain gas: To claim, mint, unlock, and maybe even swap into the asset you want.
Costs that are not obvious:
- Slippage if the bridge uses AMM liquidity.
- Time value: money that is tied up during challenge windows (for example, optimistic L2 → L1 withdrawals).
- Extra swap fees if you need to change a wrapped asset into a native one.
General rule: L2↔L2 routes are often the cheapest for small, frequent transfers. For big L1↔L1 moves, look at the CEX route (deposit → internal transfer → withdraw) and on-chain bridging.
4) Speed and finality: why some bridges seem «slow»
- Finality on source: The bridge waits for N confirmations (BTC needs more than a lot of EVM chains).
- Challenge windows: Optimistic systems make it take hours to days to withdraw to L1.
- Relayer cadence: Some bridges batch messages, so execution may be slow if relayers are busy.
- Proof generation: ZK proofs are quick on the destination but hard to make and check.
Planning tip: If you need money right away at the destination, use a liquidity bridge or a CEX hop instead of waiting for an exit window.

5) Best practices (do this every time)
- Choose bridges that are canonical or can be verified. If a chain or team has an «official bridge,» it is usually the one that is used by default. If you can’t find them, look for «light-client/zk» designs instead of multisigs.
- Check the type of asset at the destination. Instead of a hard-to-find wrapped version, look for native tokens, like «USDC (native).» If you have to use wrapped, know how to redeem it.
- Try it out with a small transfer, like $5 to $20. Before sending size, make sure it works on both explorers and the app UI.
- Don’t use multi-hop routes. Every hop adds to the risk of smart contracts and operations (L1→L2→alt-L1→L2).
- Be careful when matching addresses and chains. EVM addresses look the same on all chains (
0x…
). Choosing the wrong network is a common mistake. - Mind approvals. Only give permission for the bridge contract; revoke it after use, especially on hot wallets.
- Check status on explorers. Use the source and destination transaction hashes; explorers are honest when UIs are slow.
- Make a plan for when things go wrong. Save the bridge’s docs and Discord as bookmarks. Learn about the emergency pause policy and the support process for messages that get stuck.
- Keep an eye on the peg/liquidity. Before you bridge in size, look at the pool depth and discounts on DEXes for LSTs or wrapped stables.
- Think about the CEX route for size. CEX deposit → internal ledger transfer → withdrawal can lower costs and risks for amounts between five and seven figures, as long as you’re okay with custodial risk for a short time.
6) Sample routes (when to use what)
- ETH L1 → Arbitrum/Optimism (L2): Canonical bridges are the safest; deposits are quick, but withdrawals back to L1 take longer because of challenge delays. If you need to leave quickly, use a trusted liquidity bridge or CEX.
- Polygon/BNB/Other EVM ↔ Ethereum: Use official or well-known routes or bridges that have been tested in battle and have wide audits and 24/7 monitoring. Check to see if the asset you’re going to is native or wrapped.
- BTC ↔ EVM: You’ll see «wrapped BTC,» which can be either custodial or protocol-issued. Many users like to «spot BTC on a CEX» for large amounts, then withdraw either native BTC or the target chain’s native asset. This means there are fewer smart contract assumptions.
7) Operational checklist (print this)
- Bridge choice: canonical or light-client/zk if possible; audits looked at.
- Asset on destination: verified native vs. wrapped; confirmed ticker and contract address.
- Fees: source gas, bridge fee, relayer, destination gas, and possible swap.
- Timing: you know when the finality and challenge windows are; do you need it right away?
- Test transfer: a small amount was sent and confirmed on both explorers.
- Approvals: small amount allowed; revoke after completion.
- Recovery: support links saved, transaction hashes copied, and notifications set.
8) Common mistakes and how to fix them quickly
- Bridging the wrong token variant: You got «USDC.e» instead of the real USDC. Fix: Change the destination to native (watch fees) or use the issuer’s migration tool if you have one.
- Forgetting exit delays: You need money on L1 today, but you used an optimistic withdrawal. Fix: Use a liquidity bridge or CEX to get L1 liquidity right away (with spread/fees).
- Blind approvals to random routers: A phishing site asks for unlimited token approvals. Fix: Cancel, revoke old allowances, and only use known URLs.
- Multi-hop overkill: You chained three bridges to save $5, tripling risk. Fix: Keep routes simple; price isn’t the only thing that matters.
Questions and Answers
Are ZK bridges always safer than optimistic ones?
They take away the «challenge window» and give «validity proofs,» but they still depend on correct circuits, provers, and verification contracts. Quality of design and implementation is important.
How can I tell if a bridge is canonical?
Look at the official docs for the app or chain you want to go to. If they only list one «official» bridge, that’s usually the best one.
What about insurance?
Some bridges or aggregators do offer coverage. Pay close attention to the exclusions (governance failure, oracle faults). Insurance lowers tail risk, but it doesn’t get rid of it completely.
The bottom line
Pick bridges based on security model first, then fees and speed. Use canonical/light-client/ZK designs, check assets and routes, test small, and stay away from multi-hop complexity. Don’t forget the CEX hop option for big moves. If you do this all the time, bridging will become second nature, without any nasty surprises.