bridging
/install bridging
Bridging to Celo
This skill covers bridging assets between Celo and other blockchains, including native bridges and third-party solutions.
When to Use
- Transferring assets from Ethereum to Celo
- Bridging tokens from Celo to other chains
- Integrating cross-chain functionality
- Building multi-chain applications
Bridge Options
Native Bridge
| Bridge | Mainnet | Testnet |
|---|---|---|
| Superbridge | https://superbridge.app/celo | https://testnets.superbridge.app |
Native bridge provides direct transfers between Celo L2 and Ethereum L1 via the OP Stack standard bridge.
Source: https://docs.celo.org/tooling/bridges
Third-Party Bridges
| Bridge | URL | Description |
|---|---|---|
| Squid Router V2 | https://v2.app.squidrouter.com | Cross-chain routing via Axelar |
| LayerZero | https://layerzero.network | Omnichain interoperability protocol |
| Jumper Exchange | https://jumper.exchange | Multi-chain DEX aggregator |
| Portal (Wormhole) | https://portalbridge.com | Decentralized interoperability layer |
| AllBridge | https://app.allbridge.io/bridge | EVM and non-EVM chains |
| Satellite (Axelar) | https://satellite.money | Axelar network bridge |
| Transporter (CCIP) | https://www.transporter.io | Chainlink CCIP bridge |
| Layerswap | https://layerswap.io/app | 60+ chains, 15+ CEX integrations |
| Hyperlane Nexus | https://www.usenexus.org | Messaging and interoperability |
| Mach Exchange | https://www.mach.exchange | Cross-chain exchange |
| Galaxy | https://galaxy.exchange/swap | Native DEX on Celo |
| SmolRefuel | https://smolrefuel.com | Gasless refueling |
| USDT0 | https://usdt0.to | Native USDT via LayerZero OFT |
Source: https://docs.celo.org/home/bridged-tokens/bridges
Native ETH Bridging
Bridge native ETH from Ethereum to Celo as WETH.
Contract Addresses
Ethereum Mainnet → Celo:
| Contract | Address |
|---|---|
| SuperBridgeETHWrapper (L1) | 0x3bC7C4f8Afe7C8d514c9d4a3A42fb8176BE33c1e |
| L1 Standard Bridge | 0x9C4955b92F34148dbcfDCD82e9c9eCe5CF2badfe |
| L1 WETH | 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 |
| L2 WETH (Celo) | 0xD221812de1BD094f35587EE8E174B07B6167D9Af |
Sepolia Testnet → Celo Sepolia:
| Contract | Address |
|---|---|
| SuperBridgeETHWrapper (L1) | 0x523e358dFd0c4e98F3401DAc7b1879445d377e37 |
| L1 Standard Bridge | 0xec18a3c30131a0db4246e785355fbc16e2eaf408 |
| L1 WETH | 0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9 |
| L2 WETH (Celo Sepolia) | 0x2cE73DC897A3E10b3FF3F86470847c36ddB735cf |
Bridge ETH to Celo
import { createWalletClient, custom, parseEther } from "viem";
import { mainnet } from "viem/chains";
const SUPERBRIDGE_WRAPPER = "0x3bC7C4f8Afe7C8d514c9d4a3A42fb8176BE33c1e";
const WRAPPER_ABI = [
{
name: "wrapAndBridge",
type: "function",
stateMutability: "payable",
inputs: [
{ name: "_minGasLimit", type: "uint32" },
{ name: "_extraData", type: "bytes" },
],
outputs: [],
},
] as const;
async function bridgeETHToCelo(amount: string): Promise\x3Cstring> {
const walletClient = createWalletClient({
chain: mainnet,
transport: custom(window.ethereum),
});
const [address] = await walletClient.getAddresses();
const hash = await walletClient.writeContract({
address: SUPERBRIDGE_WRAPPER,
abi: WRAPPER_ABI,
functionName: "wrapAndBridge",
args: [200000, "0x"],
value: parseEther(amount),
});
return hash;
}
Natively Bridged Tokens
These tokens have official bridges from Ethereum via native bridge:
| Token | L1 Address (Ethereum) | L2 Address (Celo) |
|---|---|---|
| WETH | 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 | 0xD221812de1BD094f35587EE8E174B07B6167D9Af |
| WBTC | 0x2260fac5e5542a773aa44fbcfedf7c193bc2c599 | 0x8aC2901Dd8A1F17a1A4768A6bA4C3751e3995B2D |
| DAI | 0x6B175474E89094C44Da98b954EedeAC495271d0F | 0xac177de2439bd0c7659c61f373dbf247d1f41abe |
| AAVE | 0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9 | 0xF6A54aff8c97f7AF3CC86dbaeE88aF6a7AaB6288 |
| LINK | 0x514910771af9ca656af840dff83e8264ecf986ca | 0xf630876008a4ed9249fb4cac978ba16827f52e91 |
| UNI | 0x1f9840a85d5af5bf1d1762f925bdaddc4201f984 | 0xeE571697998ec64e32B57D754D700c4dda2f2a0e |
| CRV | 0xD533a949740bb3306d119CC777fa900bA034cd52 | 0x75184c282e55a7393053f0b8F4F3E7BeAE067fdC |
| rETH | 0xae78736cd615f374d3085123a210448e74fc6393 | 0x55f3d16e6bd2b8b8e6599df6ef4593ce9dcae9ed |
Source: https://docs.celo.org/home/bridged-tokens
Cross-Chain Messaging Protocols
For building cross-chain dApps:
| Protocol | URL | Celo Support |
|---|---|---|
| Chainlink CCIP | https://chain.link/cross-chain | Mainnet |
| Hyperlane | https://www.hyperlane.xyz | Mainnet, Sepolia |
| Wormhole | https://wormhole.com | Mainnet |
| LayerZero | https://layerzero.network | Mainnet |
| Axelar Network | https://axelar.network | Mainnet |
Source: https://docs.celo.org/tooling/bridges/cross-chain-messaging
Using LI.FI SDK
For cross-chain swaps and bridges:
import { createConfig, getQuote, executeRoute } from "@lifi/sdk";
// Initialize LI.FI
createConfig({
integrator: "your-app-name",
});
// Get bridge quote
const quote = await getQuote({
fromChain: 1, // Ethereum
toChain: 42220, // Celo
fromToken: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", // USDC on Ethereum
toToken: "0xcebA9300f2b948710d2653dD7B07f33A8B32118C", // USDC on Celo
fromAmount: "1000000000", // 1000 USDC (6 decimals)
fromAddress: userAddress,
});
// Execute the bridge
const result = await executeRoute(quote, {
updateRouteHook: (route) => {
console.log("Route updated:", route);
},
});
Bridge Considerations
Security
- Native bridges (Superbridge) are the most secure
- Third-party bridges rely on their own security models
- Always verify contract addresses before bridging
Timing
- Native L1→L2 bridges: ~15-20 minutes
- L2→L1 withdrawals: 7 days (challenge period)
- Third-party bridges: varies (minutes to hours)
Fees
- Native bridges: gas fees only
- Third-party bridges: gas + bridge fees
Dependencies
{
"dependencies": {
"viem": "^2.0.0"
}
}
For LI.FI integration:
{
"dependencies": {
"@lifi/sdk": "^3.0.0"
}
}
Additional Resources
- bridge-contracts.md - All bridge contract addresses
- bridged-tokens.md - Complete list of bridged tokens
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install bridging - After installation, invoke the skill by name or use
/bridging - Provide required inputs per the skill's parameter spec and get structured output
What is bridging?
Bridge assets to and from Celo. Use when transferring tokens between Celo and other chains like Ethereum. It is an AI Agent Skill for Claude Code / OpenClaw, with 261 downloads so far.
How do I install bridging?
Run "/install bridging" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is bridging free?
Yes, bridging is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does bridging support?
bridging is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created bridging?
It is built and maintained by San Clemente (@san-npm); the current version is v1.0.2008.