# Evm Contract Source

> Use this skill when the user asks to "get contract source code", "show verified contract", "fetch source from etherscan", "view smart contract code", or mentions viewing verified source code on EVM chains (Ethereum, Polygon, Arbitrum, etc.). Requires a contract address and optional chain parameter.

- Skill: `majiayu000/evm-contract-source` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/evm-contract-source`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/evm-contract-source/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/evm-contract-source

---


# EVM Contract Source Fetcher

Fetches verified smart contract source code from block explorers (Etherscan, Polygonscan, etc.).

## Usage

Run the script with address and optional chain:
```bash
${CLAUDE_PLUGIN_ROOT}/scripts/crypto-evm-contract-source.sh <address> [chain]
```

## Arguments

- `address` (required): Contract address in hex format (0x + 40 hex characters). ENS names are NOT supported.
- `chain` (optional): Chain name - ethereum (default), polygon, arbitrum, optimism, base, bsc

## Supported Chains

| Chain | Aliases | Explorer |
|-------|---------|----------|
| ethereum | eth, mainnet | Etherscan |
| polygon | matic | Polygonscan |
| arbitrum | arb | Arbiscan |
| optimism | op | Optimism Etherscan |
| base | - | Basescan |
| bsc | binance | BSCScan |

## Requirements

- `cast` (Foundry) must be installed
- API key must be set for the target chain:
  - `ETHERSCAN_API_KEY` for Ethereum (also used as fallback for other chains)
  - `POLYGONSCAN_API_KEY` for Polygon
  - `ARBISCAN_API_KEY` for Arbitrum
  - `OPTIMISM_API_KEY` for Optimism
  - `BASESCAN_API_KEY` for Base
  - `BSCSCAN_API_KEY` for BSC

## Examples

```bash
# Get WETH source on Ethereum
${CLAUDE_PLUGIN_ROOT}/scripts/crypto-evm-contract-source.sh 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2

# Get QuickSwap Router source on Polygon
${CLAUDE_PLUGIN_ROOT}/scripts/crypto-evm-contract-source.sh 0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff polygon
```

## Note

For Solana program IDL, use the `sol-program-idl` skill instead.

