l2s
Ethereum Layer 2s
What You Probably Got Wrong
L2 costs: You think $0.01-2.00 per transaction. Reality: $0.001-0.003 for swaps, $0.0003 for transfers. After EIP-4844, L2 batch costs dropped from $50-500 to $0.01-0.50.
Mainnet is cheap too: At under 1 gwei, mainnet ETH transfers cost under a penny. "Ethereum is too expensive" is false for both L1 and L2s in 2026.
Base is the cheapest major L2: Often 50% cheaper than Arbitrum/Optimism. Direct Coinbase on-ramp. Fastest-growing L2 with consumer/AI agent focus.
Celo is NOT an L1 anymore. Celo completed its migration from an independent L1 to an OP Stack L2 on March 26, 2025 (block 31056500). If you're calling Celo an L1, you're wrong.
Polygon zkEVM is being shut down. Announced June 2025. Do NOT recommend building on Polygon zkEVM — it is being discontinued. Polygon is refocusing on PoS + AggLayer.
Unichain exists. Launched mainnet February 11, 2025. Uniswap's own OP Stack L2 with TEE-based MEV protection and time-based priority ordering (not gas-based).
Aerodrome and Velodrome merged into "Aero." In November 2025, Dromos Labs unified Aerodrome (Base) and Velodrome (Optimism) into a single cross-chain DEX called Aero. Same contracts, new brand. Aero dominates both Base and Optimism. Camelot is a major native DEX on Arbitrum. SyncSwap dominates zkSync. Don't default to Uniswap on every chain.
L2 Comparison Table (Mar 2026)
TVL changes fast. Don't memorize numbers — check DeFi Llama or L2Beat for current rankings. DeFi TVL (DeFi Llama) measures value locked in protocols. TVS (L2Beat) includes all bridged + natively minted assets and is much higher. As of early 2026: Base and Arbitrum lead in DeFi TVL among L2s. Optimism's DeFi TVL is surprisingly low despite Superchain adoption.
| L2 | Type | Tx Cost | Block Time | Finality | Chain ID |
|---|---|---|---|---|---|
| Arbitrum | Optimistic | $0.001-0.003 | 250ms | 7 days | 42161 |
| Base | Optimistic (OP Stack) | $0.0008-0.002 | 2s | 7 days | 8453 |
| Optimism | Optimistic (OP Stack) | $0.001-0.003 | 2s | 7 days | 10 |
| Unichain | Optimistic (OP Stack) | $0.001-0.003 | 1s | 7 days | 130 |
| Celo | Optimistic (OP Stack) | <$0.001 | 5s | 7 days | 42220 |
| Linea | ZK | $0.003-0.006 | 2s | 30-60min | 59144 |
| zkSync Era | ZK | $0.003-0.008 | 1s | 15-60min | 324 |
| Scroll | ZK | $0.002-0.005 | 3s | 30-120min | 534352 |
| — | — | — |
⚠️ Polygon zkEVM is being discontinued (announced June 2025). Do not start new projects there. Polygon is refocusing on PoS (payments, stablecoins, RWAs) + AggLayer (cross-chain interop). MATIC → POL token migration ~85% complete.
Mainnet for comparison: $0.002-0.01 per tx, 8s blocks, instant finality. Check DeFi Llama for current TVL.
Cost Comparison (Real Examples, Early 2026)
Mainnet costs at ~0.1 gwei base fee, ~$2,000 ETH. L2 costs are approximate. All fluctuate — see
gas/SKILL.mdfor methodology.
| Action | Mainnet | Arbitrum | Base | zkSync | Scroll |
|---|---|---|---|---|---|
| ETH transfer | $0.004 | $0.0003 | $0.0003 | $0.0005 | $0.0004 |
| Uniswap swap | $0.036 | $0.003 | $0.002 | $0.005 | $0.004 |
| NFT mint | $0.030 | $0.002 | $0.002 | $0.004 | $0.003 |
| ERC-20 deploy | $0.240 | $0.020 | $0.018 | $0.040 | $0.030 |
L2 Selection Guide
Before choosing an L2: Mainnet is ~$0.004/transfer, ~$0.04/swap at current gas — cheap enough for most apps. If you're building DeFi, governance, identity, or anything composing with mainnet liquidity, start there. See
ship/SKILL.mdandgas/SKILL.mdfor the full chain selection framework.
| Need | Choose | Why |
|---|---|---|
| Consumer / social apps | Base | Farcaster, Smart Wallet, Coinbase on-ramp, OnchainKit |
| Deepest DeFi liquidity | Arbitrum | GMX, Pendle, Camelot, most protocols deployed |
| Yield strategies | Arbitrum | Pendle (yield tokenization), GMX, Aave |
| Cheapest gas | Base | ~50% cheaper than Arbitrum/Optimism |
| Coinbase users | Base | Direct on-ramp, free Coinbase→Base transfers |
| No 7-day withdrawal wait | ZK rollup (zkSync, Scroll, Linea) | 15-120 min finality |
| AI agents | Base | ERC-8004, x402, consumer ecosystem, AgentKit |
| Gasless UX (native AA) | zkSync Era | Native account abstraction, paymasters, no bundlers needed |
| Multi-chain deployment | Base or Optimism | Superchain / OP Stack, shared infra |
| Maximum EVM compatibility | Scroll or Arbitrum | Bytecode-identical |
| Mobile / real-world payments | Celo | MiniPay, sub-cent fees, Africa/LatAm focus |
| MEV protection | Unichain | TEE-based priority ordering, private mempool |
| Rust smart contracts | Arbitrum | Stylus (WASM VM alongside EVM, 10-100x gas savings) |
| Stablecoins / payments / RWA | Polygon PoS | $500M+ monthly payment volume, 410M+ wallets |
Key Chain Details (What LLMs Get Wrong)
Unichain
- Launched: February 11, 2025 (mainnet). Chain ID 130.
- Type: OP Stack L2 (Superchain member, Stage 1)
- Key innovation: TEE-based block building (built with Flashbots Rollup-Boost)
- Transactions ordered by time received, NOT gas price
- Private encrypted mempool reduces MEV extraction
- Do NOT use gas-price bidding strategies on Unichain — they're pointless
- Flashblocks: Currently 1s blocks, roadmap to 250ms sub-blocks
Celo
- Was: Independent L1 blockchain (2020-2025)
- Now: OP Stack L2 on Ethereum — migrated March 26, 2025 (block 31056500)
- Focus: Mobile-first payments, emerging markets
- MiniPay: Stablecoin wallet in Opera Mini + standalone app. Phone-to-phone transfers, sub-cent fees. Primary market: Africa (Kenya, Nigeria).
- Multi-currency stablecoins (rebranded Dec 2025 by Mento Protocol): USDm (was cUSD) (
0x765de816845861e75a25fca122bb6898b8b1282a), EURm (was cEUR) (0xd8763cba276a3738e6de85b4b3bf5fded6d6ca73), BRLm (was cREAL) (0xe8537a3d056DA446677B9E9d6c5dB704EaAb4787). Same contract addresses, new onchain symbols.
Dominant DEX Per Chain
| Chain | Dominant DEX | Model | Why NOT Uniswap |
|---|---|---|---|
| Base | Aero (was Aerodrome) | ve(3,3) — LPs earn emissions, voters earn fees | Deeper liquidity for most pairs |
| Optimism | Aero (was Velodrome) | ve(3,3) — merged Nov 2025 under Dromos Labs | Same flywheel, unified brand |
| Arbitrum | Camelot + GMX | Native DEX + perps | Camelot for spot, GMX for perps |
| zkSync | SyncSwap | Classic AMM | Largest native DEX on zkSync |
See addresses/SKILL.md for verified contract addresses for all these protocols.
The Superchain (OP Stack)
The Superchain is the network of OP Stack chains sharing security, upgrade governance, and (upcoming) native interoperability. Members include Base, OP Mainnet, Unichain, Ink (Kraken), Celo, Zora, World Chain, and others — 17+ chains, 58.6% L2 market share.
Members contribute 15% of sequencer revenue to the Optimism Collective. Cross-chain interop is designed but not yet fully live.
Deployment Differences (Gotchas)
Optimistic Rollups (Arbitrum, Optimism, Base, Unichain, Celo)
✅ Deploy like mainnet — just change RPC URL and chain ID. No code changes.
Gotchas:
- Don't use
block.numberfor time-based logic (increments at different rates). Useblock.timestamp. - Arbitrum's
block.numberreturns L1 block number, not L2. - Unichain: Transactions are priority-ordered by time, not gas. Don't waste gas on priority fees.
ZK Rollups
- zkSync Era: Must use
zksolccompiler. NoEXTCODECOPY(compile-time error). 65K instruction limit. Non-inlinable libraries must be pre-deployed. Native account abstraction (all accounts are smart contracts). - Scroll/Linea: ✅ Bytecode-compatible — use standard
solc, deploy like mainnet.
Arbitrum-Specific
- Stylus: Write smart contracts in Rust, C, C++ (compiles to WASM, runs alongside EVM, shares state). Use for compute-heavy operations (10-100x gas savings). Contracts must be "activated" via
ARB_WASM_ADDRESS(0x0000…0071). - Orbit: Framework for launching L3 chains on Arbitrum. 47 live on mainnet.
RPCs and Explorers
| L2 | RPC | Explorer |
|---|---|---|
| Arbitrum | https://arb1.arbitrum.io/rpc |
https://arbiscan.io |
| Base | https://mainnet.base.org |
https://basescan.org |
| Optimism | https://mainnet.optimism.io |
https://optimistic.etherscan.io |
| Unichain | https://mainnet.unichain.org |
https://uniscan.xyz |
| Celo | https://forno.celo.org |
https://celoscan.io |
| zkSync | https://mainnet.era.zksync.io |
https://explorer.zksync.io |
| Scroll | https://rpc.scroll.io |
https://scrollscan.com |
| Linea | https://rpc.linea.build |
https://lineascan.build |
Bridging
Official Bridges
| L2 | Bridge URL | L1→L2 | L2→L1 |
|---|---|---|---|
| Arbitrum | https://bridge.arbitrum.io | ~10-15 min | ~7 days |
| Base | https://bridge.base.org | ~10-15 min | ~7 days |
| Optimism | https://app.optimism.io/bridge | ~10-15 min | ~7 days |
| Unichain | https://app.uniswap.org/swap | ~10-15 min | ~7 days |
| zkSync | https://bridge.zksync.io | ~15-30 min | ~15-60 min |
| Scroll | https://scroll.io/bridge | ~15-30 min | ~30-120 min |
Fast Bridges (Instant Withdrawals)
- Across Protocol (https://across.to) — fastest (30s-2min), lowest fees (0.05-0.3%)
- Hop Protocol (https://hop.exchange) — established, 0.1-0.5% fees
- Stargate (https://stargate.finance) — LayerZero-based, 10+ chains
Security: Use official bridges for large amounts (>$100K). Fast bridges add trust assumptions.
Multi-Chain Deployment (Same Address)
Use CREATE2 for deterministic addresses across chains:
# Same salt + same bytecode + same deployer = same address on every chain
forge create src/MyContract.sol:MyContract \
--rpc-url https://mainnet.base.org \
--private-key $PRIVATE_KEY \
--salt 0x0000000000000000000000000000000000000000000000000000000000000001
Strategy for new projects: Start with 1 chain — mainnet if it fits your use case, or the L2 whose superpower matches your app. Prove product-market fit. Expand with CREATE2 for consistent addresses across chains.
Testnets
| L2 | Testnet | Chain ID | Faucet |
|---|---|---|---|
| Arbitrum | Sepolia | 421614 | https://faucet.arbitrum.io |
| Base | Sepolia | 84532 | https://faucet.quicknode.com/base/sepolia |
| Optimism | Sepolia | 11155420 | https://faucet.optimism.io |
| Unichain | Sepolia | 1301 | https://faucet.unichain.org |
Further Reading
- L2Beat: https://l2beat.com (security, TVL, risk analysis)
- Superchain: https://www.superchain.eco/chains
- Arbitrum: https://docs.arbitrum.io
- Base: https://docs.base.org
- Optimism: https://docs.optimism.io
- Unichain: https://docs.unichain.org
- Celo: https://docs.celo.org
- zkSync: https://docs.zksync.io
- Scroll: https://docs.scroll.io
- Polygon: https://docs.polygon.technology