Install
openclaw skills install etherscan-apiUse when you need to query Etherscan API V2 for onchain activity, contract metadata, ABI/source retrieval, proxy implementation discovery, and transaction/lo...
openclaw skills install etherscan-apiUse this skill to fetch onchain data from Etherscan-compatible explorers using the unified V2 API.
Core model:
https://api.etherscan.io/v2/apichainidExplorer URLs relevant to this workspace:
https://etherscan.io/https://hoodi.etherscan.io/https://taikoscan.io/https://hoodi.taikoscan.io/Read first:
references/network-map.mdreferences/endpoint-cheatsheet.mdreferences/rate-limits.mdreferences/explorer-url-patterns.mdCollect these before querying:
ETHERSCAN_API_KEYchainidchainid from references/network-map.md.references/endpoint-cheatsheet.md.https://api.etherscan.io/v2/api with required params.status, message, result.Proxy == "1"), follow Implementation.page, offset) and/or narrow block ranges.| 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 |
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"
When getsourcecode returns:
Proxy: "1"Implementationthen:
Never skip these checks:
chainid; wrong chain silently yields wrong context.status: "0" as non-success even with HTTP 200.startblock/endblock explicitly.offset max is 1000 per query and paginate.Return:
chainid + explorer)module/action)Proxy, Implementation) when contract-related