# Gas and Token Requirements for Multichain Deployment

**Last Updated**: 2026-02-26 20:12:26 UTC
**Purpose**: Complete breakdown of gas costs and native tokens required for deploying all remaining contracts across all chains

> **⚠️ Real-Time Updates**: This document can be updated with real-time gas prices using:
> ```bash
> ./scripts/deployment/get-multichain-gas-prices.sh
> ./scripts/deployment/update-gas-estimates.sh
> ```
> The estimates below use current market conditions. Always check real-time prices before deployment.
>
> **📖 See**: [Real-Time Gas System](./REAL_TIME_GAS_SYSTEM.md) for complete guide

---

## 📊 Deployment Status Summary

### Ethereum Mainnet (Chain ID: 1)
- ✅ **CCIPWETH9Bridge**: Already deployed (`0x3304b747E565a97ec8AC220b0B6A1f6ffDB837e6`)
- ✅ **CCIPWETH10Bridge**: Already deployed (`0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e`)
- ✅ **WETH9**: Already exists (canonical: `0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2`)
- ✅ **WETH10**: Already exists (canonical: `0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f`)
- ⏳ **CCIPLogger**: **NEEDS DEPLOYMENT**

### Other Chains (Cronos, BSC, Polygon, Gnosis)
- ⏳ **WETH9**: Needs deployment
- ⏳ **WETH10**: Needs deployment
- ⏳ **CCIPWETH9Bridge**: Needs deployment
- ⏳ **CCIPWETH10Bridge**: Needs deployment
- ⏳ **CCIPLogger**: Needs deployment

---

## ⛽ Gas Cost Estimates

### Contract Gas Requirements

| Contract | Estimated Gas | Notes |
|----------|---------------|-------|
| **WETH9** | ~450,000 | Simple token contract |
| **WETH10** | ~750,000 | Enhanced WETH with flash loans |
| **CCIPWETH9Bridge** | ~1,800,000 | Complex bridge with CCIP integration |
| **CCIPWETH10Bridge** | ~1,800,000 | Complex bridge with CCIP integration |
| **CCIPLogger** | ~2,500,000 | CCIP receiver with OpenZeppelin dependencies |

### Total Gas per Chain

| Chain | Contracts to Deploy | Total Gas | Buffer (20%) | **Total with Buffer** |
|-------|-------------------|-----------|--------------|----------------------|
| **Ethereum Mainnet** | 1 (CCIPLogger only) | 2,500,000 | 500,000 | **3,000,000** |
| **Cronos** | 5 (all contracts) | 7,300,000 | 1,460,000 | **8,760,000** |
| **BSC** | 5 (all contracts) | 7,300,000 | 1,460,000 | **8,760,000** |
| **Polygon** | 5 (all contracts) | 7,300,000 | 1,460,000 | **8,760,000** |
| **Gnosis** | 5 (all contracts) | 7,300,000 | 1,460,000 | **8,760,000** |

---

## 💰 Native Token Requirements by Chain

### Ethereum Mainnet (ETH)

**Gas Price Sources**:
- **Primary**: Etherscan Gas API v2 (via `ETHERSCAN_API_KEY` in `.env`)
- **Fallback**: RPC endpoint (via `ETH_MAINNET_RPC_URL` in `.env`)
- **Default**: 20 gwei (if APIs unavailable)

**Current Real-Time Estimate** (last run: 2026-01-31):
- **Gas Price**: 2.74 gwei (Etherscan API)
- **Total Gas**: 3,000,000 units
- **Cost**: 0.0082 ETH
- **USD Cost**: ~$20.59 (at $2,500/ETH)

**Refresh**: Run `./scripts/deployment/get-multichain-gas-prices.sh` for latest.

**Gas Price Scenarios** (for reference):
- **Low**: 20 gwei → 0.06 ETH (~$150)
- **Normal**: 50 gwei → 0.15 ETH (~$375)
- **High**: 100 gwei → 0.30 ETH (~$750)

**Recommended Balance**: **0.20 ETH** (covers normal + buffer)

**Token**: ETH (Ethereum)

---

### Cronos (CRO)

**Gas Price Sources**:
- **Primary**: RPC endpoint (via `CRONOS_RPC_URL` in `.env`)
- **Default**: 1,000 gwei (1 gwei in ETH terms) if RPC unavailable

**Current Real-Time Estimate** (run `./scripts/deployment/get-multichain-gas-prices.sh` for latest):
- **Gas Price**: [Fetched from RPC]
- **Total Gas**: 8,760,000 units
- **Cost**: [Calculated from real-time price] CRO
- **USD Cost**: [Calculated from real-time price]

**Gas Price Scenarios** (for reference):
- **Low**: 500 gwei → 4.38 CRO (~$0.35)
- **Normal**: 1,000 gwei → 8.76 CRO (~$0.70)
- **High**: 2,000 gwei → 17.52 CRO (~$1.40)

**Recommended Balance**: **15 CRO** (covers normal + buffer)

**Token**: CRO (Cronos)

---

### BSC / BNB Smart Chain (BNB)

**Gas Price Assumptions**:
- **Low**: 3 gwei
- **Normal**: 5 gwei
- **High**: 10 gwei

| Scenario | Gas Price | Total Gas | Cost (BNB) | Cost (USD @ $300/BNB) |
|----------|-----------|-----------|------------|----------------------|
| **Current** | .05 gwei | 8,760,000 | .0004380000 BNB | $.1314000000 |
| **Normal** | 5 gwei | 8,760,000 | 0.044 BNB | $13.20 |
| **High** | 10 gwei | 8,760,000 | 0.088 BNB | $26.40 |

**Recommended Balance**: **0.06 BNB** (covers normal + buffer)

**Token**: BNB (Binance Coin)

---

### Polygon PoS (MATIC)

**Gas Price Assumptions**:
- **Low**: 30 gwei
- **Normal**: 50 gwei
- **High**: 100 gwei

| Scenario | Gas Price | Total Gas | Cost (MATIC) | Cost (USD @ $0.80/MATIC) |
|----------|-----------|-----------|--------------|-------------------------|
| **Current** | 34.84 gwei | 8,760,000 | .3052138581 MATIC | $.2441710864 |
| **Normal** | 50 gwei | 8,760,000 | 0.44 MATIC | $0.35 |
| **High** | 100 gwei | 8,760,000 | 0.88 MATIC | $0.70 |

**Recommended Balance**: **1.0 MATIC** (covers normal + buffer + verification)

**Token**: MATIC (Polygon)

---

### Gnosis Chain (xDAI)

**Gas Price Assumptions**:
- **Low**: 1 gwei
- **Normal**: 2 gwei
- **High**: 5 gwei

| Scenario | Gas Price | Total Gas | Cost (xDAI) | Cost (USD @ $1.00/xDAI) |
|----------|-----------|-----------|-------------|-------------------------|
| **Current** | 0 gwei | 8,760,000 | .0000235014 xDAI | $.0000235014 |
| **Normal** | 2 gwei | 8,760,000 | 0.0175 xDAI | $0.02 |
| **High** | 5 gwei | 8,760,000 | 0.0438 xDAI | $0.04 |

**Recommended Balance**: **0.05 xDAI** (covers normal + buffer)

**Token**: xDAI (Gnosis Chain native token, pegged to USD)

---

## 📋 Complete Token Requirements Summary

### Minimum Required Balances (Conservative)

| Chain | Native Token | Minimum Balance | Recommended Balance | USD Equivalent (@ current rates) |
|-------|--------------|-----------------|---------------------|--------------------------------|
| **Ethereum Mainnet** | ETH | 0.15 ETH | **0.20 ETH** | $500 |
| **Cronos** | CRO | 8.76 CRO | **15 CRO** | $1.20 |
| **BSC** | BNB | 0.044 BNB | **0.06 BNB** | $18 |
| **Polygon** | MATIC | 0.44 MATIC | **1.0 MATIC** | $0.80 |
| **Gnosis** | xDAI | 0.0175 xDAI | **0.05 xDAI** | $0.05 |

### Total USD Cost Estimate

**At Normal Gas Prices**:
- Ethereum Mainnet: $375
- Cronos: $0.70
- BSC: $13.20
- Polygon: $0.35
- Gnosis: $0.02
- **Total**: ~$389.27

**With Recommended Buffers**:
- Ethereum Mainnet: $500
- Cronos: $1.20
- BSC: $18
- Polygon: $0.80
- Gnosis: $0.05
- **Total**: ~$520.05

---

## 🔍 Contract-Specific Breakdown

### Ethereum Mainnet Deployment

| Contract | Gas Units | Cost @ 50 gwei (ETH) | Cost @ 50 gwei (USD) |
|----------|-----------|---------------------|---------------------|
| CCIPLogger | 2,500,000 | 0.125 ETH | $312.50 |
| **Buffer (20%)** | 500,000 | 0.025 ETH | $62.50 |
| **TOTAL** | **3,000,000** | **0.15 ETH** | **$375.00** |

### Cronos / BSC / Polygon / Gnosis Deployment

| Contract | Gas Units | Notes |
|----------|-----------|-------|
| WETH9 | 450,000 | Simple token contract |
| WETH10 | 750,000 | Enhanced with flash loans |
| CCIPWETH9Bridge | 1,800,000 | Bridge contract |
| CCIPWETH10Bridge | 1,800,000 | Bridge contract |
| CCIPLogger | 2,500,000 | CCIP receiver |
| **Subtotal** | **7,300,000** | |
| **Buffer (20%)** | **1,460,000** | |
| **TOTAL** | **8,760,000** | |

---

## ⚠️ Additional Considerations

### Contract Verification Costs

Contract verification on explorers typically requires:
- **Etherscan**: Free (but may require API key)
- **Cronoscan**: Free
- **BscScan**: Free
- **Polygonscan**: Free
- **Gnosisscan**: Free

**Note**: Verification is free but may require additional transactions for constructor arguments encoding.

### LINK Token Requirements (for CCIP Fees)

After deployment, bridges will need LINK tokens for CCIP cross-chain message fees:

| Chain | LINK Token Address | Recommended Balance |
|-------|-------------------|---------------------|
| **Ethereum Mainnet** | `0x514910771AF9Ca656af840dff83E8264EcF986CA` | 10 LINK |
| **Cronos** | TBD | 10 LINK |
| **BSC** | TBD | 10 LINK |
| **Polygon** | `0x53E0bca35eC356BD5ddDFebbD1Fc0fD03FaBad39` | 10 LINK |
| **Gnosis** | TBD | 10 LINK |

**Total LINK Required**: ~50 LINK (for initial operations and testing)

---

## 🚀 Pre-Deployment Checklist

Before deploying to each chain, verify:

- [ ] **Ethereum Mainnet**: Wallet has ≥ 0.20 ETH
- [ ] **Cronos**: Wallet has ≥ 15 CRO
- [ ] **BSC**: Wallet has ≥ 0.06 BNB
- [ ] **Polygon**: Wallet has ≥ 1.0 MATIC
- [ ] **Gnosis**: Wallet has ≥ 0.05 xDAI
- [ ] All RPC endpoints are accessible
- [ ] All explorer API keys are configured
- [ ] CCIP router addresses are correct for each chain
- [ ] LINK token addresses are correct for each chain

---

## 📝 Environment Variables for Gas Configuration

Add these to your `.env` file:

```bash
# Gas Configuration (optional - Foundry auto-detects)
# Ethereum Mainnet
ETH_MAINNET_GAS_PRICE=50000000000  # 50 gwei
ETH_MAINNET_GAS_LIMIT=3000000

# Cronos
CRONOS_GAS_PRICE=1000000000  # 1000 gwei (1 gwei in ETH terms)
CRONOS_GAS_LIMIT=9000000

# BSC
BSC_GAS_PRICE=5000000000  # 5 gwei
BSC_GAS_LIMIT=9000000

# Polygon
POLYGON_GAS_PRICE=50000000000  # 50 gwei
POLYGON_GAS_LIMIT=9000000

# Gnosis
GNOSIS_GAS_PRICE=2000000000  # 2 gwei
GNOSIS_GAS_LIMIT=9000000
```

---

## 🔄 Real-Time Gas Price Checking

### Automated Script (Recommended)

Use the provided script to fetch real-time gas prices for all chains:

```bash
# Fetch and display real-time gas prices for all chains
./scripts/deployment/get-multichain-gas-prices.sh

# Update documentation with real-time prices
./scripts/deployment/update-gas-estimates.sh
```

This script:
- Fetches gas prices from configured APIs in `.env`
- Calculates costs for all chains
- Updates documentation automatically
- Exports values for use in other scripts

### Manual Checking

Before deployment, you can also check current gas prices manually:

```bash
# Ethereum Mainnet (via Etherscan API)
curl -s "https://api.etherscan.io/v2/api?chainid=1&module=gastracker&action=gasoracle&apikey=${ETHERSCAN_API_KEY}"

# Or via RPC
cast gas-price --rpc-url $ETH_MAINNET_RPC_URL

# Cronos
cast gas-price --rpc-url $CRONOS_RPC_URL

# BSC
cast gas-price --rpc-url $BSC_RPC_URL

# Polygon
cast gas-price --rpc-url $POLYGON_RPC_URL

# Gnosis
cast gas-price --rpc-url $GNOSIS_RPC_URL
```

### Required Environment Variables

Ensure these are set in your `.env` file:

```bash
# Ethereum Mainnet
ETHERSCAN_API_KEY=your_api_key_here
ETH_MAINNET_RPC_URL=https://...

# Other chains
CRONOS_RPC_URL=https://...
BSC_RPC_URL=https://...
POLYGON_RPC_URL=https://...
GNOSIS_RPC_URL=https://...
```

---

## 📊 Cost Optimization Tips

1. **Deploy During Low Activity**: Weekends and off-peak hours typically have lower gas
2. **Monitor Gas Prices**: Use gas trackers before deploying
3. **Batch Deployments**: Deploy multiple contracts in one transaction when possible
4. **Use Gas Tokens**: Some chains support gas tokens (check per chain)
5. **Test on Testnets First**: Verify everything works before mainnet deployment

---

## 🎯 Quick Reference: Minimum Balances

| Chain | Token | Minimum | Recommended |
|-------|-------|---------|-------------|
| **Mainnet** | ETH | 0.15 ETH | **0.20 ETH** |
| **Cronos** | CRO | 8.76 CRO | **15 CRO** |
| **BSC** | BNB | 0.044 BNB | **0.06 BNB** |
| **Polygon** | MATIC | 0.44 MATIC | **1.0 MATIC** |
| **Gnosis** | xDAI | 0.0175 xDAI | **0.05 xDAI** |

---

**Last Updated**: 2026-02-26 20:12:26 UTC
**Next Review**: Before each deployment phase

---

## 📊 Real-Time Gas Price Updates

### How to Update Estimates

1. **Fetch Real-Time Prices**:
   ```bash
   ./scripts/deployment/get-multichain-gas-prices.sh
   ```

2. **Update Documentation**:
   ```bash
   ./scripts/deployment/update-gas-estimates.sh
   ```

3. **Verify Updates**:
   - Check `GAS_AND_TOKEN_REQUIREMENTS.md` for updated costs
   - Check `TOKENS_AND_CHAINS_SUMMARY.md` for updated balances
   - Check `DEPLOYMENT_QUICK_REFERENCE.md` for quick reference

### Gas Price Data Sources

The scripts use the following sources (in priority order):

1. **Ethereum Mainnet**:
   - Etherscan Gas API v2 (via `ETHERSCAN_API_KEY`)
   - RPC endpoint (via `ETH_MAINNET_RPC_URL`)
   - Default: 20 gwei

2. **Other Chains** (Cronos, BSC, Polygon, Gnosis):
   - RPC endpoint (via `*_RPC_URL` in `.env`)
   - Default: Chain-specific defaults

### Output Format

The script outputs:
- Current gas prices in gwei for each chain
- Deployment costs in native tokens
- USD equivalents (using approximate exchange rates)
- Total estimated cost across all chains
- JSON file with all data for programmatic use

### Exchange Rates (for USD calculations)

Current approximate rates used:
- ETH: $2,500
- CRO: $0.08
- BNB: $300
- MATIC: $0.80
- xDAI: $1.00

**Note**: These rates are approximate. For accurate USD costs, use real-time exchange rates.

