HomeBrowseUpload
← Back to registry
// Skill profile

Etherscan API V2

name: etherscan-api

by davidtaikocha · published 2026-03-22

数据处理API集成加密货币
Total installs
0
Stars
★ 0
Last updated
2026-03
// Install command
$ claw add gh:davidtaikocha/davidtaikocha-etherscan-api
View on GitHub
// Full documentation

---

name: etherscan-api

description: Use when you need to query Etherscan API V2 for onchain activity, contract metadata, ABI/source retrieval, proxy implementation discovery, and transaction/log analysis across EVM chains.

---

# Etherscan API V2

Overview

Use this skill to fetch onchain data from Etherscan-compatible explorers using the unified V2 API.

Core model:

  • One base URL: `https://api.etherscan.io/v2/api`
  • One API key
  • Switch chains via `chainid`
  • Explorer URLs relevant to this workspace:

  • Ethereum mainnet: `https://etherscan.io/`
  • Ethereum hoodi: `https://hoodi.etherscan.io/`
  • Taiko mainnet: `https://taikoscan.io/`
  • Taiko hoodi: `https://hoodi.taikoscan.io/`
  • Read first:

  • `references/network-map.md`
  • `references/endpoint-cheatsheet.md`
  • `references/rate-limits.md`
  • `references/explorer-url-patterns.md`
  • Required Inputs

    Collect these before querying:

  • `ETHERSCAN_API_KEY`
  • Target `chainid`
  • Address / tx hash / block range
  • Endpoint intent (activity, logs, source, ABI, status)
  • Deterministic Workflow

    1. Pick `chainid` from `references/network-map.md`.

    2. Choose endpoint by intent from `references/endpoint-cheatsheet.md`.

    3. Build request on `https://api.etherscan.io/v2/api` with required params.

    4. Parse `status`, `message`, `result`.

    5. If contract endpoint returns proxy metadata (`Proxy == "1"`), follow `Implementation`.

    6. For large history, paginate (`page`, `offset`) and/or narrow block ranges.

    Method Selection

    | Goal | Module / Action |

    | --- | --- |

    | Address normal tx history | `account` / `txlist` |

    | Address internal tx history | `account` / `txlistinternal` |

    | ERC20 transfer history | `account` / `tokentx` |

    | Event logs | `logs` / `getLogs` |

    | Contract ABI | `contract` / `getabi` |

    | Contract source + proxy fields | `contract` / `getsourcecode` |

    | Contract deployer + creation tx | `contract` / `getcontractcreation` |

    | Tx execution status | `transaction` / `getstatus` |

    | Tx receipt status | `transaction` / `gettxreceiptstatus` |

    Quick Commands

    Set key once:

    export ETHERSCAN_API_KEY="<your_key>"

    Get ABI (Taiko mainnet example):

    curl -s "https://api.etherscan.io/v2/api?chainid=167000&module=contract&action=getabi&address=<contract>&apikey=$ETHERSCAN_API_KEY"

    Get source + proxy metadata (Taiko hoodi example):

    curl -s "https://api.etherscan.io/v2/api?chainid=167013&module=contract&action=getsourcecode&address=<contract>&apikey=$ETHERSCAN_API_KEY"

    Get address activity in block window:

    curl -s "https://api.etherscan.io/v2/api?chainid=1&module=account&action=txlist&address=<address>&startblock=<from>&endblock=<to>&page=1&offset=100&sort=desc&apikey=$ETHERSCAN_API_KEY"

    Get logs for a contract in block window:

    curl -s "https://api.etherscan.io/v2/api?chainid=560048&module=logs&action=getLogs&address=<contract>&fromBlock=<from>&toBlock=<to>&page=1&offset=1000&apikey=$ETHERSCAN_API_KEY"

    Proxy-Aware Contract Handling

    When `getsourcecode` returns:

  • `Proxy: "1"`
  • non-empty `Implementation`
  • then:

    1. Keep runtime call target as proxy address.

    2. Fetch ABI/source from implementation address.

    3. Decode selectors against implementation ABI.

    4. Re-check implementation before privileged write analysis.

    Safety Rails

    Never skip these checks:

  • Always set correct `chainid`; wrong chain silently yields wrong context.
  • Respect plan limits and add client-side throttling/retries.
  • Treat `status: "0"` as non-success even with HTTP 200.
  • For analytics windows, lock `startblock`/`endblock` explicitly.
  • For logs, remember `offset` max is 1000 per query and paginate.
  • Keep retries idempotent and resume scans from stored cursors/block checkpoints.
  • Expected Output

    Return:

  • exact URL/query used (without exposing secret key)
  • chain (`chainid` + explorer)
  • endpoint (`module`/`action`)
  • parsed status/result summary
  • proxy follow-up decisions (`Proxy`, `Implementation`) when contract-related
  • // Comments
    Sign in with GitHub to leave a comment.
    // Related skills

    More tools from the same signal band