Files
smom-dbis-138/docs/deployment/EXPLORER_API_KEYS.md

117 lines
3.4 KiB
Markdown
Raw Normal View History

# Explorer API Keys Setup Guide
**Purpose**: Contract verification on blockchain explorers
**Status**: Optional but recommended
---
## 🔑 Required API Keys
### Chains with Contract Verification
| Chain | Explorer | API Key Variable | Get API Key |
|-------|----------|-----------------|-------------|
| **Ethereum Mainnet** | Etherscan | `ETHERSCAN_API_KEY` | https://etherscan.io/apis |
| **BSC** | BscScan | `BSCSCAN_API_KEY` | https://bscscan.com/apis |
| **Polygon** | Polygonscan | `POLYGONSCAN_API_KEY` | https://polygonscan.com/apis |
| **Avalanche** | Snowtrace | `SNOWTRACE_API_KEY` | https://snowtrace.io/apis |
| **Base** | Basescan | `BASESCAN_API_KEY` | https://basescan.org/apis |
| **Arbitrum** | Arbiscan | `ARBISCAN_API_KEY` | https://arbiscan.io/apis |
| **Optimism** | Optimistic Etherscan | `OPTIMISTIC_ETHERSCAN_API_KEY` | https://optimistic.etherscan.io/apis |
| **Cronos** | Cronos Explorer | `CRONOSCAN_API_KEY` | https://explorer.cronos.org/register (My API Keys) |
| **Gnosis** | Gnosisscan | `GNOSISSCAN_API_KEY` | https://gnosisscan.io/apis |
---
## 📝 How to Get API Keys
### 1. Create Account
- Visit the explorer website
- Sign up for a free account
- Verify your email
### 2. Generate API Key
- Go to API section (usually under "Account" or "API")
- Click "Create API Key"
- Give it a name (e.g., "Foundry Deployment")
- Copy the API key
### 3. Add to `.env`
```bash
ETHERSCAN_API_KEY=your_actual_api_key_here
BSCSCAN_API_KEY=your_actual_api_key_here
POLYGONSCAN_API_KEY=your_actual_api_key_here
SNOWTRACE_API_KEY=your_actual_api_key_here
BASESCAN_API_KEY=your_actual_api_key_here
ARBISCAN_API_KEY=your_actual_api_key_here
OPTIMISTIC_ETHERSCAN_API_KEY=your_actual_api_key_here
CRONOSCAN_API_KEY=your_actual_api_key_here
GNOSISSCAN_API_KEY=your_actual_api_key_here
```
---
## ⚠️ Important Notes
1. **Free Tier Limits**: Most explorers offer free API keys with rate limits
- Usually sufficient for deployment and verification
- Check limits on each explorer's website
2. **Security**:
- Never commit API keys to version control
- Keep `.env` file secure
- Rotate keys periodically
3. **Optional but Recommended**:
- Contract verification helps users trust your contracts
- Makes contract interaction easier
- Required for some DeFi protocols
4. **Without API Keys**:
- Deployment will still work
- Contracts won't be automatically verified
- Manual verification possible later
5. **Cronos**:
- Use Cronos Explorer (explorer.cronos.org), not cronoscan.com
- Forge verification requires manual UI: https://explorer.cronos.org/verifyContract
- See [CRONOS_EXPLORER_OPERATIONS.md](../04-configuration/CRONOS_EXPLORER_OPERATIONS.md) for confirmation and API usage
---
## ✅ Verification
After adding API keys, test with:
```bash
# Test Ethereum Mainnet (if you have a deployed contract)
forge verify-contract \
--chain-id 1 \
--num-of-optimizations 200 \
<CONTRACT_ADDRESS> \
<CONTRACT_NAME> \
$ETHERSCAN_API_KEY
```
---
## 🚀 Deployment with Verification
When deploying with `--verify` flag, Foundry will automatically use the API keys:
```bash
forge script script/DeployAll.s.sol:DeployAll \
--rpc-url mainnet \
--private-key $PRIVATE_KEY \
--broadcast \
--verify \
-vvvv
```
The `--verify` flag uses the API keys from `.env` automatically.
---
**Status**: Optional - Deployment works without API keys, but verification requires them.