Chain Registry

blockparty bundles a snapshot of 600+ EVM chains with their explorer configurations. The registry is loaded from a JSON file and provides lookup, listing, and search.

from blockparty import ChainRegistry

registry = ChainRegistry.load()

entry = registry.get(8453)
print(entry.name)        # "Base Mainnet"
print(entry.is_testnet)  # False
for explorer in entry.explorers:
    print(f"  {explorer.type}: {explorer.frontend_url}")

matches = registry.search("base")

Custom registry file

registry = ChainRegistry.load(path="/etc/myapp/chains.json")

Regenerating

The bundled chains.json can be regenerated from the live Etherscan, Routescan, and Blockscout APIs:

python -m blockparty.registry.generate

This fetches current chain lists from all three providers, merges them, resolves Routescan vanity URLs, and writes the result to src/blockparty/registry/data/chains.json.

Chains where Routescan’s publicApi flag is false are excluded (they appear in Routescan’s chain list but don’t actually have API access).

Registry data model

Each chain entry contains:

  • chain_id — The EVM chain ID

  • name — Human-readable chain name

  • is_testnet — Whether it’s a testnet

  • explorers — List of ExplorerInfo objects, each with:

    • type"etherscan", "routescan", or "blockscout"

    • api_url — Full base URL for API calls

    • frontend_url — Human-facing explorer URL

    • frontend_url_vanity — Vanity hostname (Routescan only)

    • status — Etherscan chain status code (0/1/2)

    • hosted_by — Blockscout hosting indicator