Zero dependencies. Zero build tools. Just open and use.
A single HTML file that downloads verified smart contract source code from 50+ blockchain explorers using the Etherscan API V2.
- Single File: Just one
index.html- no npm, no webpack, no mess - Zero Setup: Open in browser and it works
- 50+ Chains: Ethereum, BSC, Polygon, Arbitrum, Optimism, Base, Avalanche, and more
- ZIP Download: Gets all contract files bundled with metadata
- API V2: Uses the latest Etherscan unified API
- One API Key: Single key works across all supported chains
Just visit: https://mamolas.github.io/contract-downloader-simple
# Download the file
wget https://raw.githubusercontent.com/mamolas/contract-downloader-simple/main/index.html
# Open in browser
open index.html # macOS
xdg-open index.html # Linux
start index.html # WindowsOr just download index.html and double-click it!
- Go to Etherscan.io and create a free account
- Navigate to API Keys
- Create a new API key
- Copy and paste it into the form
That's it! One key works for all 50+ supported chains.
- Ethereum Mainnet (Chain ID: 1)
- BNB Smart Chain (Chain ID: 56)
- Polygon (Chain ID: 137)
- Base (Chain ID: 8453)
- Arbitrum One (Chain ID: 42161)
- Optimism (Chain ID: 10)
- Avalanche C-Chain (Chain ID: 43114)
- Linea (Chain ID: 59144)
- Blast (Chain ID: 81457)
Select "Custom Chain ID" from the dropdown and enter any chain ID:
- Scroll:
534352 - Mantle:
5000 - Gnosis:
100 - Moonbeam:
1284 - Celo:
42220 - Sonic:
146 - And 40+ more!
📖 Full list: Etherscan Supported Chains
- Enter your Etherscan API key
- Select the blockchain network (or enter custom chain ID)
- Paste the contract address
- Click "Download Contract"
- Get a ZIP file with:
- All contract source files (
.sol) - Complete metadata (compiler version, optimization settings, etc.)
- All contract source files (
The downloaded ZIP contains:
- Source Code Files: All
.solfiles from the contract - metadata.json: Complete contract information including:
- Contract name and address
- Compiler version
- Optimization settings
- Constructor arguments
- License type
- Proxy/implementation details (if applicable)
- Network: Ethereum Mainnet
- Address:
0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
- Network: Polygon
- Address:
0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174
- Network: Custom Chain ID →
534352 - Address: Your contract address
No, it needs internet to call the Etherscan API. But the HTML file itself is completely standalone.
Nope! Just a web browser.
No, the contract must be verified on the blockchain explorer.
Yes, everything runs in your browser. Your API key never touches any server except Etherscan's.
Free Etherscan API keys have 5 calls/second limit. This tool makes 1 call per download.
- Pure HTML/CSS/JavaScript: No frameworks, no build process
- Only External Dependency: JSZip CDN (for creating ZIP files)
- File Size: ~13KB total
- Browser Support: Any modern browser (Chrome, Firefox, Safari, Edge)
- API: Etherscan API V2 unified endpoint
| Feature | Old (Next.js) | New (Simple) |
|---|---|---|
| Dependencies | 15+ packages | 1 CDN |
| File Size | ~50MB | 13KB |
| Setup Time | 5-10 min | 0 seconds |
| Build Required | Yes | No |
| npm audit issues | Many | None |
| Works Offline | No | No* |
*Both need internet for API calls
- CORS: Must use browser, not command-line
curl - Large contracts (100+ files) may take a few seconds to ZIP
- No batch download (one contract at a time)
Found a bug? Have a suggestion?
- Open an issue
- Or submit a PR (it's just one file!)
MIT - Use it however you want!
If you find this useful, give it a star! ⭐
Made with 💜 for developers who prefer simplicity over complexity.