4.2 KiB
4.2 KiB
Cross-Chain Bridge Configuration Guide
Date: 2025-12-11 Status: Ready for Configuration
🌉 Bridge Overview
Each chain has two CCIP bridges deployed:
- CCIPWETH9Bridge: For WETH9 cross-chain transfers
- CCIPWETH10Bridge: For WETH10 cross-chain transfers
📋 Deployed Bridges by Chain
BSC (Chain ID: 56)
- CCIPWETH9Bridge:
0x8078a09637e47fa5ed34f626046ea2094a5cde5e - CCIPWETH10Bridge:
0x105f8a15b819948a89153505762444ee9f324684
Polygon (Chain ID: 137)
- CCIPWETH9Bridge:
0xa780ef19a041745d353c9432f2a7f5a241335ffe - CCIPWETH10Bridge:
0xdab0591e5e89295ffad75a71dcfc30c5625c4fa2
Avalanche (Chain ID: 43114)
- CCIPWETH9Bridge:
0x8078a09637e47fa5ed34f626046ea2094a5cde5e - CCIPWETH10Bridge:
0x105f8a15b819948a89153505762444ee9f324684
Base (Chain ID: 8453)
- CCIPWETH9Bridge:
0x8078a09637e47fa5ed34f626046ea2094a5cde5e - CCIPWETH10BRIDGE:
0x105f8a15b819948a89153505762444ee9f324684
Arbitrum (Chain ID: 42161)
- CCIPWETH9Bridge:
0x8078a09637e47fa5ed34f626046ea2094a5cde5e - CCIPWETH10Bridge:
0x105f8a15b819948a89153505762444ee9f324684
Optimism (Chain ID: 10)
- CCIPWETH9Bridge:
0x8078a09637e47fa5ed34f626046ea2094a5cde5e - CCIPWETH10Bridge:
0x105f8a15b819948a89153505762444ee9f324684
⚙️ Configuration Steps
1. Set Destination Chains
For each bridge, configure destination chain selectors:
// Example: Configure BSC bridge to send to Polygon
bridge.setDestinationChain(
POLYGON_SELECTOR, // 4051577828743386545
polygonBridgeAddress
);
2. Fund Bridges with LINK
Each bridge needs LINK tokens for CCIP fees:
# Transfer LINK to bridge
cast send $LINK_TOKEN \
"transfer(address,uint256)" \
$BRIDGE_ADDRESS \
$AMOUNT \
--rpc-url $RPC_URL \
--private-key $PRIVATE_KEY
Recommended: 10 LINK per bridge for initial operations
3. Enable Bridges
Enable bridges for cross-chain operations:
bridge.enable();
4. Set Fee Configuration
Configure fee parameters if needed:
bridge.setFeeConfig(...);
🔗 Chain Selectors Reference
| Chain | Chain Selector |
|---|---|
| Ethereum Mainnet | 5009297550715157269 |
| BSC | 11344663589394136015 |
| Polygon | 4051577828743386545 |
| Avalanche | 6433500567565415381 |
| Base | 15971525489660198786 |
| Arbitrum | 4949039107694359620 |
| Optimism | 3734403246176062136 |
| Cronos | TBD |
| Gnosis Chain | 465200170687744372 |
| Celo | 1346049177634351622 |
| Wemix | 5142893604156789321 |
| Chain-138 | TBD |
📝 Configuration Scripts
Example: Configure BSC → Polygon Bridge
# Set Polygon as destination for BSC WETH9 bridge
cast send $CCIPWETH9BRIDGE_BSC \
"setDestinationChain(uint64,address)" \
4051577828743386545 \
$CCIPWETH9BRIDGE_POLYGON \
--rpc-url $BSC_RPC_URL \
--private-key $PRIVATE_KEY
# Fund bridge with LINK
cast send $CCIP_BSC_LINK_TOKEN \
"transfer(address,uint256)" \
$CCIPWETH9BRIDGE_BSC \
10000000000000000000 \
--rpc-url $BSC_RPC_URL \
--private-key $PRIVATE_KEY
# Enable bridge
cast send $CCIPWETH9BRIDGE_BSC \
"enable()" \
--rpc-url $BSC_RPC_URL \
--private-key $PRIVATE_KEY
🧪 Testing Bridge Configuration
Test Cross-Chain Transfer
# On source chain: Lock and send
cast send $CCIPWETH9BRIDGE_BSC \
"lockAndSend(uint256,uint64)" \
$AMOUNT \
4051577828743386545 \
--rpc-url $BSC_RPC_URL \
--private-key $PRIVATE_KEY
# On destination chain: Check for received message
# (CCIP will automatically deliver)
⚠️ Important Notes
- LINK Tokens: Ensure bridges have sufficient LINK for CCIP fees
- Chain Selectors: Use correct selectors from CCIP documentation
- Gas Limits: Set appropriate gas limits for cross-chain messages
- Security: Verify all destination addresses before enabling
- Testing: Test with small amounts first
📚 Additional Resources
Last Updated: 2025-12-11