Point your self-hosted instance at any EVM-compatible chain.
OpenScan.AI indexes any chain that exposes a standard Ethereum JSON-RPC interface. This page lists connection details for the networks OpenScan.AI officially supports, plus how to connect a custom chain.
Supported networks
XDC Network (mainnet)
ETHEREUM_JSONRPC_HTTP_URL=https://rpc.xdc.orgETHEREUM_JSONRPC_TRACE_URL=https://rpc.xdc.orgETHEREUM_JSONRPC_WS_URL=wss://ws.xdc.orgCHAIN_ID=50COIN=XDCNETWORK="XDC Network"SUBNETWORK="XDC Mainnet"The public RPC works for light testing. For a full mainnet index, run your own XDC archive node and point the instance at it — public endpoints rate-limit the heavy trace calls indexing requires.
XDC Apothem (testnet)
ETHEREUM_JSONRPC_HTTP_URL=https://rpc.apothem.networkCHAIN_ID=51COIN=TXDCSUBNETWORK="XDC Apothem Testnet"EVS, Wanchain, Velas
OpenScan.AI also powers explorers for EVS, Wanchain, and Velas. To self-host an instance for one of these networks, set CHAIN_ID and the RPC URLs to the network’s public endpoints (check the network’s own documentation), and set COIN to the native currency symbol.
Custom / private chains
For a local devnet (Anvil, Hardhat) or a private chain:
ETHEREUM_JSONRPC_HTTP_URL=http://host.docker.internal:8545ETHEREUM_JSONRPC_TRACE_URL=http://host.docker.internal:8545CHAIN_ID=31337COIN=ETHNotes for devnets:
- Enable tracing in your node if you want internal transactions (
anvilsupports trace endpoints by default; Hardhat node supportsdebug_traceTransaction). - Set
FIRST_BLOCK=0to index from genesis. - Devnets restart from empty state — reset the explorer database when you reset the chain:
docker compose down -v && docker compose up -d.
RPC endpoint requirements
| Capability | Needed for |
|---|---|
eth_* methods | Blocks, transactions, receipts — required |
trace_* or debug_* | Internal transactions — strongly recommended |
WebSocket (eth_subscribe) | Real-time block updates — optional |
| Archive state | Historical balance/state queries — optional |
Without trace support the instance still indexes blocks and transactions, but the Internal Transactions views stay empty.
Verifying the connection
# From the instance hostcurl -X POST $ETHEREUM_JSONRPC_HTTP_URL \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'The returned chain ID must match your CHAIN_ID. After starting the instance, watch docker compose logs -f backend — steady Fetched block lines mean the connection is healthy; repeated JSON-RPC errors mean the endpoint is unreachable, over its rate limit, or missing trace support.
Multiple chains
One instance indexes one chain. To cover several networks, run one instance per chain — see Production Deployment for running multiple stacks side by side, or use Explorer-as-a-Service for a managed multi-network setup.