4.8 KiB
4.8 KiB
Wallet Requirements for Deployment
Overview
Before deploying bridge contracts, ensure your wallet has sufficient balances for gas fees and operations.
Required Balances
Ethereum Mainnet
| Token | Purpose | Minimum Required | Recommended |
|---|---|---|---|
| ETH | Gas fees for deployment | 0.025 ETH | 0.05 ETH (buffer) |
| LINK | CCIP fees (not for deployment) | 0 | 10 LINK (for testing) |
Breakdown:
- Deploy CCIPWETH9Bridge: ~0.00789 ETH
- Deploy CCIPWETH10Bridge: ~0.00789 ETH
- Configure destinations (4 calls): ~0.006 ETH
- Total: ~0.02178 ETH
- Recommended buffer: 0.05 ETH (for unexpected gas spikes)
ChainID 138
| Token | Purpose | Minimum Required | Recommended |
|---|---|---|---|
| ETH | Gas fees for deployment | 1 ETH | 2 ETH (buffer) |
| LINK | CCIP fees (not for deployment) | 0 | 10 LINK (for testing) |
Breakdown:
- Deploy CCIPWETH9Bridge: ~0.001 ETH (estimate)
- Deploy CCIPWETH10Bridge: ~0.001 ETH (estimate)
- Configure destinations (4 calls): ~0.001 ETH
- Total: ~0.003 ETH
- Recommended buffer: 2 ETH (for future operations)
Pre-Deployment Check
Run the balance checker before deployment:
./scripts/deployment/check-wallet-balances.sh
This script will:
- ✅ Check ETH balance on Mainnet
- ✅ Check ETH balance on ChainID 138
- ✅ Check LINK balance (if configured)
- ✅ Verify sufficient funds for deployment
- ✅ Provide deficit amounts if insufficient
Funding Your Wallet
Mainnet ETH
Option 1: Exchange Transfer
- Buy ETH on an exchange (Coinbase, Binance, etc.)
- Withdraw to your wallet address
- Wait for confirmation (usually 1-2 hours)
Option 2: Bridge from Layer 2
- Use a bridge (Arbitrum, Optimism, etc.)
- Bridge ETH to Mainnet
- Wait for confirmation
Option 3: Receive from Another Wallet
- Send ETH from another wallet
- Wait for confirmation
ChainID 138 ETH
Option 1: Faucet (if available)
# Check if faucet exists
curl -X POST $RPC_URL \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_getBalance","params":["'$WALLET_ADDRESS'","latest"],"id":1}'
Option 2: Transfer from Validator
- If you control a validator, you can transfer ETH
Option 3: Pre-fund in Genesis
- Add your wallet address to genesis.json
allocsection
LINK Token
LINK is not required for deployment, only for:
- Paying CCIP fees when users bridge tokens
- Testing cross-chain transfers
To get LINK on Mainnet:
- Buy on an exchange
- Use Uniswap or other DEX
- Mainnet LINK address:
0x514910771AF9Ca656af840dff83E8264EcF986CA
To get LINK on ChainID 138:
- Deploy MockLinkToken (for testing)
- Or deploy real LINK token if available
Environment Variables
Ensure these are set in .env:
# Wallet
PRIVATE_KEY=your-private-key
# Mainnet
MAINNET_RPC_URL=https://eth.llamarpc.com
MAINNET_LINK_TOKEN=0x514910771AF9Ca656af840dff83E8264EcF986CA
# ChainID 138
RPC_URL=https://rpc.d-bis.org
LINK_TOKEN=<link-token-address>
Verification Steps
-
Check balances:
./scripts/deployment/check-wallet-balances.sh -
Verify wallet address:
cast wallet address --private-key $PRIVATE_KEY -
Check Mainnet ETH:
cast balance $WALLET_ADDRESS --rpc-url $MAINNET_RPC_URL -
Check ChainID 138 ETH:
cast balance $WALLET_ADDRESS --rpc-url $RPC_URL
Troubleshooting
Error: "Insufficient balance"
Solution: Fund your wallet with the required amount:
- Mainnet: Send ETH to your wallet address
- ChainID 138: Use faucet or transfer from validator
Error: "Could not derive address"
Solution: Check that PRIVATE_KEY is correctly set in .env:
echo $PRIVATE_KEY | wc -c # Should be 66 (0x + 64 hex chars)
Error: "RPC URL not accessible"
Solution:
- Check RPC URL is correct
- Try alternative RPC endpoints
- Check network connectivity
Cost Summary
Mainnet Deployment
| Item | Cost |
|---|---|
| Deploy CCIPWETH9Bridge | ~0.00789 ETH |
| Deploy CCIPWETH10Bridge | ~0.00789 ETH |
| Configure destinations | ~0.006 ETH |
| Total | ~0.02178 ETH |
| Recommended Buffer | 0.05 ETH |
ChainID 138 Deployment
| Item | Cost |
|---|---|
| Deploy CCIPWETH9Bridge | ~0.001 ETH (estimate) |
| Deploy CCIPWETH10Bridge | ~0.001 ETH (estimate) |
| Configure destinations | ~0.001 ETH (estimate) |
| Total | ~0.003 ETH |
| Recommended Buffer | 2 ETH |
Next Steps
After verifying balances:
- ✅ Run pre-deployment check:
./scripts/deployment/check-wallet-balances.sh - ✅ Deploy on ChainID 138:
./scripts/deployment/deploy-bridges-chain138.sh - ✅ Deploy on Mainnet:
./scripts/deployment/deploy-bridges-mainnet.sh - ✅ Configure bridges: See
docs/BRIDGE_CONFIGURATION.md