Claude
Skills
Sign in
Back

evm-chains

Included with Lifetime
$97 forever

This skill should be used when the user asks to resolve an EVM chain name or chain ID; find chain metadata such as a default public RPC, native currency symbol, or block explorer URL; determine whether a chain is supported by RouteMesh; enrich bridge, bridge tx, cross-chain swap, Bungee, or Socket transaction lookups; or read on-chain account data for any EVM chain — "check ETH balance", "query ERC-20 balance", "get wallet balance", "check token holdings", "fetch NFT transfers", "ERC-721 or ERC-1155 transfer history", "transaction history", "find first funding transaction", "trace fund origin", "who funded this address", "query Etherscan", "query Blockscout", or "look up a chain on Chainscout". It routes each data query through Etherscan API V2 (preferred) or the Blockscout/Chainscout APIs (fallback for chains Etherscan doesn't serve), with Bungee for bridge enrichment and direct JSON-RPC as a last resort. Also use it for chain resolution before fetching data from or interacting with an EVM chain.

Backend & APIsscripts

What this skill does


# EVM Chains

Local EVM chain dataset (chain name, chain ID, public RPCs, native currency symbol, default block explorer URL, RouteMesh support) **and** a router for reading on-chain data: resolve the chain, then dispatch balance, token, transfer, transaction, and first-funding queries to Etherscan (preferred) or Blockscout (fallback). For bridge transactions and cross-chain swaps, enrich explorer/RPC verification with Bungee status data.

Use this skill to resolve chain metadata before reading from an RPC, sending transactions, calling contracts, constructing chain-specific RPC URLs, or building explorer links to addresses, transactions, or blocks — and to query on-chain account data once the chain is resolved (see [Querying On-Chain Data (Routing)](#querying-on-chain-data-routing)). Also use it when the user mentions bridging, bridge tx, cross-chain swap, Bungee, or Socket, or when a transaction is inferred to be bridge-related.

Match chains by displayed name or numeric chain ID. Treat any chain missing from the tables as outside this skill's local dataset. If the requested chain is not listed, use the web search tool to find authoritative metadata from the chain's official documentation or Chainlist before proceeding.

Also normalize common code aliases to their table rows, such as `mainnet` → Ethereum (`1`), `bsc` → BNB Chain (`56`), `coreDao` → Core Dao (`1116`), `hyperevm` → HyperEVM (`999`), and `zksyncSepolia` → ZKsync Sepolia Testnet (`300`).

## Querying On-Chain Data (Routing)

To read account data — native balance, token holdings, ERC-20/721/1155 transfers, transaction history, or first-funding — resolve the chain, then dispatch to the right explorer API. Do not default to Ethereum; infer the chain from the prompt (explicit chain mention, chain-specific tokens like POL→137 / ARB→42161, testnet keywords). If ambiguous, ask.

1. **Resolve the chain** — map the name → chain ID via the tables below (Mainnets, Testnets).
2. **Etherscan (preferred)** — if the chain ID is listed in `./references/etherscan-chains.md`, follow `./references/etherscan-api.md` (unified API V2, needs `$ETHERSCAN_API_KEY`).
3. **Blockscout (fallback)** — otherwise follow `./references/blockscout-api.md`. Blockscout/Chainscout indexes 1000+ chains Etherscan doesn't serve, with full token holdings on the free tier.
4. **Neither** — if the chain is in neither registry, query the public RPCs below directly over JSON-RPC (`cast` from the `cli-cast` skill, or `curl`). If the chain is non-EVM (Solana, Bitcoin, Cosmos, …), report that it is unsupported.

**Paid-chain auto-fallback.** Base (`8453`), OP (`10`), Avalanche (`43114`), and BNB (`56`) — plus their testnets `84532`, `11155420`, `43113`, `97` — are Etherscan-listed, but their data endpoints require a paid Etherscan plan. If the target is one of these **and** `./scripts/etherscan-detect-plan.sh` reports `paid_chains=false` (free tier), route to Blockscout instead: it serves them free, no key, with full holdings. Etherscan stays the default for every other chain.

## Bridge Transaction Enrichment (Bungee)

When the user mentions bridging, bridge tx, cross-chain swap, Bungee, or Socket, or when a transaction looks bridge-related from logs, counterparties, calldata, or token movement, read `./references/bungee-api.md` before answering. Use Bungee to enrich the analysis with origin/destination transaction context, route/bridge name, status code, timestamps, and refunds.

Keep Bungee as an enrichment source alongside Etherscan, Blockscout, explorers, and RPC receipts. Do not treat Bungee as authoritative for on-chain execution by itself; verify submitted transactions and terminal outcomes with explorer/RPC data whenever possible. If Bungee has no record or the public sandbox is rate-limited/unavailable, say so and continue normal on-chain analysis.

## RouteMesh

Use RouteMesh only when the `RouteMesh` column is `Yes` and the `ROUTEMESH_API_KEY` environment variable is available.

To verify current RouteMesh support, call `GET https://lb.routeme.sh/chains`; use `https://lb2.routeme.sh/chains` as the backup endpoint. Do not use `https://rpc.routeme.sh/chains`; the hostname may not resolve even though it appears in RouteMesh's OpenAPI spec.

Construct the RouteMesh RPC URL as:

```text
https://lb.routeme.sh/rpc/CHAIN_ID/ROUTEMESH_API_KEY
```

Replace `CHAIN_ID` with the numeric chain ID and `ROUTEMESH_API_KEY` with the value of the `ROUTEMESH_API_KEY` environment variable. If `RouteMesh` is `No` or `ROUTEMESH_API_KEY` is not available, use the chain's primary public RPC first, then the listed fallback RPCs in order.

## Public RPCs

Public RPCs are best-effort. Before relying on one for data fetches or contract calls, verify it with `eth_chainId`. If the primary endpoint fails, try the fallback endpoints for that chain from the fallback table. If a chain has no fallback row, only the primary public RPC is listed.

Do not use RPCs for Form or Meld. They are intentionally omitted from the active mainnet table because those chains are now defunct and no longer operating. If the user asks about Form or Meld, say that the chain is defunct/no longer operating instead of returning an RPC URL.

## Explorer URLs

The `Explorer URL` column is the base URL of the chain's canonical block explorer. Append standard path segments to build links:

| Resource    | Path              | Example                                  |
| ----------- | ----------------- | ---------------------------------------- |
| Address     | `/address/<addr>` | `https://arbiscan.io/address/0xabc...`   |
| Transaction | `/tx/<hash>`      | `https://etherscan.io/tx/0x123...`       |
| Block       | `/block/<number>` | `https://basescan.org/block/12345678`    |
| Token       | `/token/<addr>`   | `https://polygonscan.com/token/0xdef...` |

Etherscan and Etherscan-stack explorers (Arbiscan, Basescan, BscScan, Polygonscan, Optimism Etherscan, Lineascan, Snowscan, Blastscan, Berascan, Uniscan, Gnosisscan, abscan.org) all follow this scheme. Most Blockscout-based and chain-native explorers accept the same segments, but conventions can drift — verify against the explorer UI when in doubt.

Explorer URL presence, Etherscan-style paths, or an Etherscan-stack explorer name do not imply Etherscan API V2 support. When API coverage matters, use `./references/etherscan-chains.md` or Etherscan's live `https://api.etherscan.io/v2/chainlist` endpoint. Treat this table as chain metadata for RPC and explorer-link construction only.

## Caveats

**OP Mainnet pre-regenesis history is not available through current explorer/RPC routes.** For OP Mainnet (`10`) queries before the final regenesis on `2021-11-11`, read `./references/optimism-pre-2021-11-11.md` before using Etherscan, Blockscout, or public RPC results.

**Ronin (`app.roninchain.com`) does not follow the Etherscan path scheme.** Verify against the explorer UI before constructing a Ronin link.

**PulseChain's explorer (`scan.pulsechain.com`) is a Blockscout frontend; its JSON API is on a separate host.** Address, tx, and block links under `scan.pulsechain.com` resolve, but `scan.pulsechain.com/api/...` returns a frontend 404, and the Blockscout API backend at `api.scan.pulsechain.com` has been observed down (HTTP 502). Prefer PulseChain's listed RPC endpoints for programmatic data.

## Mainnets

| Chain name    | Chain ID | Primary public RPC                              | Native currency symbol | Explorer URL                      | RouteMesh |
| ------------- | -------- | ----------------------------------------------- | ---------------------- | --------------------------------- | --------- |
| Abstract      | 2741     | https://api.mainnet.abs.xyz                     | ETH                    | https://abscan.org                | Yes       |
| Arbitrum      | 42161    | https://arb1.arbitrum.io/rpc                    | ETH                    | https://arbiscan.io               | Yes       |
| Avalanche     | 43114    | https
Files: 12
Size: 92.1 KB
Complexity: 81/100
Category: Backend & APIs

Related in Backend & APIs