# Foundry Configuration Fix **Date**: 2025-12-11 **Issue**: Warnings about unknown `etherscan` and `rpc_url` config in profiles --- ## ❌ Problem Foundry was showing warnings: ``` Warning: Found unknown `etherscan` config for profile `mainnet` defined in foundry.toml. Warning: Found unknown `rpc_url` config for profile `mainnet` defined in foundry.toml. ``` These warnings appeared for all network profiles (mainnet, cronos, bsc, polygon, gnosis, avalanche, base, arbitrum, optimism). --- ## ✅ Solution Foundry profiles don't support `rpc_url` and `etherscan` as direct keys. These configurations should be referenced via command-line flags instead. **Removed**: Profile sections with `rpc_url` and `etherscan` keys **Kept**: `[rpc_endpoints]` and `[etherscan]` sections (these are correct) --- ## 📋 Correct Usage ### RPC Endpoints Reference RPC endpoints by name from the `[rpc_endpoints]` section: ```bash # Use mainnet RPC forge script ... --rpc-url mainnet # Use polygon RPC forge script ... --rpc-url polygon ``` ### Etherscan API Keys Reference etherscan configs by name and pass the API key: ```bash # For mainnet forge verify-contract ... --etherscan-api-key $ETHERSCAN_API_KEY # For polygon forge verify-contract ... --etherscan-api-key $POLYGONSCAN_API_KEY ``` Or use the `--chain` flag with the etherscan config name: ```bash forge verify-contract ... --chain polygon --etherscan-api-key $POLYGONSCAN_API_KEY ``` --- ## 🔧 Configuration Structure ### Correct `foundry.toml` Structure ```toml [rpc_endpoints] mainnet = "${ETHEREUM_MAINNET_RPC}" polygon = "${POLYGON_RPC_URL}" # ... etc [etherscan] mainnet = { key = "${ETHERSCAN_API_KEY}" } polygon = { key = "${POLYGONSCAN_API_KEY}", chain = "polygon" } # ... etc # Profiles should NOT contain rpc_url or etherscan keys [profile.default] # ... compiler settings ``` ### Removed Profile Sections The following profile sections were removed (they caused warnings): ```toml # ❌ REMOVED - Not supported by Foundry [profile.mainnet] rpc_url = "mainnet" etherscan = "mainnet" chain_id = 1 ``` --- ## 📝 Chain IDs Reference For reference when using `--chain-id` flag: - **mainnet**: 1 - **cronos**: 25 - **bsc**: 56 - **polygon**: 137 - **gnosis**: 100 - **avalanche**: 43114 - **base**: 8453 - **arbitrum**: 42161 - **optimism**: 10 --- ## ✅ Verification After the fix, Foundry commands should run without warnings: ```bash # Should show no warnings forge script script/DeployMainnetTether.s.sol --rpc-url mainnet --dry-run # Should show no warnings forge verify-contract ... --etherscan-api-key $ETHERSCAN_API_KEY ``` --- ## 📚 Additional Resources - [Foundry Book - Configuration](https://book.getfoundry.sh/reference/config) - [Foundry Book - Scripts](https://book.getfoundry.sh/reference/forge/forge-script) - [Foundry Book - Verify](https://book.getfoundry.sh/reference/forge/forge-verify-contract) --- **Last Updated**: 2025-12-11 **Status**: ✅ Fixed