Files
smom-dbis-138/docs/deployment/EXPLORER_API_KEYS.md
defiQUG 1fb7266469 Add Oracle Aggregator and CCIP Integration
- Introduced Aggregator.sol for Chainlink-compatible oracle functionality, including round-based updates and access control.
- Added OracleWithCCIP.sol to extend Aggregator with CCIP cross-chain messaging capabilities.
- Created .gitmodules to include OpenZeppelin contracts as a submodule.
- Developed a comprehensive deployment guide in NEXT_STEPS_COMPLETE_GUIDE.md for Phase 2 and smart contract deployment.
- Implemented Vite configuration for the orchestration portal, supporting both Vue and React frameworks.
- Added server-side logic for the Multi-Cloud Orchestration Portal, including API endpoints for environment management and monitoring.
- Created scripts for resource import and usage validation across non-US regions.
- Added tests for CCIP error handling and integration to ensure robust functionality.
- Included various new files and directories for the orchestration portal and deployment scripts.
2025-12-12 14:57:48 -08:00

112 lines
3.1 KiB
Markdown

# 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** | Cronoscan | `CRONOSCAN_API_KEY` | https://cronoscan.com/apis |
| **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
---
## ✅ 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.