Cryptoclaw etherscan

Query block explorer APIs (Etherscan, BSCScan, Polygonscan, etc.) for transactions, contracts, and gas data.

install
source · Clone the upstream repo
git clone https://github.com/TermiX-official/cryptoclaw
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/TermiX-official/cryptoclaw "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/etherscan" ~/.claude/skills/termix-official-cryptoclaw-etherscan && rm -rf "$T"
manifest: skills/etherscan/SKILL.md
source content

Multi-chain Explorer API

Query Etherscan-compatible block explorer APIs for transaction history, contract source code, ABIs, and gas data.

Supported Explorers

ChainBase URLEnv Var (optional override)
Ethereum
https://api.etherscan.io/api
ETHERSCAN_API_KEY
BSC
https://api.bscscan.com/api
BSCSCAN_API_KEY
or same key
Polygon
https://api.polygonscan.com/api
POLYGONSCAN_API_KEY
Arbitrum
https://api.arbiscan.io/api
ARBISCAN_API_KEY
Optimism
https://api-optimistic.etherscan.io/api
OPTIMISM_API_KEY
Base
https://api.basescan.org/api
BASESCAN_API_KEY

All explorers accept the

apikey
parameter. Many share a single Etherscan key, but some chains require separate registration.

Rate limit: 5 calls/second per key.

Modules & Actions

Account — Transaction History

?module=account&action=txlist&address={addr}&startblock=0&endblock=99999999&page=1&offset=20&sort=desc&apikey={key}

Returns normal transactions for an address.

Account — Token Transfers (ERC-20)

?module=account&action=tokentx&address={addr}&page=1&offset=20&sort=desc&apikey={key}

Filter by contract: add

&contractaddress={token}

Account — ERC-721 Transfers

?module=account&action=tokennfttx&address={addr}&page=1&offset=20&sort=desc&apikey={key}

Account — Balance

?module=account&action=balance&address={addr}&tag=latest&apikey={key}

Returns balance in wei. Divide by 1e18 for ETH/BNB.

Contract — Get ABI

?module=contract&action=getabi&address={addr}&apikey={key}

Returns the contract ABI as a JSON string. Tip: Parse the result and pass it to

read_contract
or
write_contract
for dynamic contract interaction.

Contract — Get Source Code

?module=contract&action=getsourcecode&address={addr}&apikey={key}

Returns source code, compiler version, constructor arguments, and proxy implementation address if applicable.

Gas Tracker (Ethereum only)

?module=gastracker&action=gasoracle&apikey={key}

Returns SafeGasPrice, ProposeGasPrice, FastGasPrice in gwei.

Workflow: Dynamic Contract Interaction

  1. User provides a contract address
  2. Call
    getabi
    to fetch the ABI
  3. Parse the ABI to list available read/write functions
  4. Use
    read_contract
    with the ABI and function name to query
  5. Use
    write_contract
    for state-changing calls (with user confirmation)

This enables interacting with ANY verified contract without pre-built tools.

Usage Notes

  • Always include
    &apikey={key}
    — requests without it are heavily rate-limited
  • Use
    offset
    and
    page
    for pagination; don't fetch more than needed
  • The
    getabi
    endpoint only works for verified contracts
  • For proxy contracts,
    getsourcecode
    includes the implementation address — fetch that ABI too
  • Cross-reference contract data with
    security-check
    skill for risk assessment

Example Queries

User: "Show my recent transactions on BSC" → Call BSCScan

txlist
for active wallet, present last 10 with value and status

User: "Get the ABI for this contract: 0x..." → Call

getabi
, parse result, summarize available functions

User: "What's the current gas price on Ethereum?" → Call

gasoracle
, present safe/standard/fast prices