bridging
Skill8 starsChanged 2 months agoApache-2.0View on GitHub
Bridge assets to and from Celo. Use when transferring tokens between Celo and other chains like Ethereum.
In this repository15 other files it gives its agents.
- 8004Skill
- celo-composerSkill
- celo-defiSkill
- celo-rpcSkill
- celo-stablecoinsSkill
- contract-verificationSkill
- evm-foundrySkill
- evm-hardhatSkill
- evm-wallet-integrationSkill
- fee-abstractionSkill
- minipay-integrationSkill
- thirdwebSkill
- viemSkill
- wagmiSkill
- x402Skill
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 184
Always verify contract addresses before bridging
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
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<string> {
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
Source of truth: Celopedia
These skills are focused, task-level references. For anything broader — verified contract addresses, ecosystem and protocol data, listing requirements, grants, governance, migration guides, or cross-cutting Celo questions — Celopedia is the canonical source and is kept current. Where this skill and Celopedia disagree, Celopedia wins.
npx skills add celo-org/celopedia-skillsDoes it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

