Connecting Your Instance to a Network

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)

Terminal window
ETHEREUM_JSONRPC_HTTP_URL=https://rpc.xdc.org
ETHEREUM_JSONRPC_TRACE_URL=https://rpc.xdc.org
ETHEREUM_JSONRPC_WS_URL=wss://ws.xdc.org
CHAIN_ID=50
COIN=XDC
NETWORK="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)

Terminal window
ETHEREUM_JSONRPC_HTTP_URL=https://rpc.apothem.network
CHAIN_ID=51
COIN=TXDC
SUBNETWORK="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:

Terminal window
ETHEREUM_JSONRPC_HTTP_URL=http://host.docker.internal:8545
ETHEREUM_JSONRPC_TRACE_URL=http://host.docker.internal:8545
CHAIN_ID=31337
COIN=ETH

Notes for devnets:

  • Enable tracing in your node if you want internal transactions (anvil supports trace endpoints by default; Hardhat node supports debug_traceTransaction).
  • Set FIRST_BLOCK=0 to 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

CapabilityNeeded for
eth_* methodsBlocks, transactions, receipts — required
trace_* or debug_*Internal transactions — strongly recommended
WebSocket (eth_subscribe)Real-time block updates — optional
Archive stateHistorical balance/state queries — optional

Without trace support the instance still indexes blocks and transactions, but the Internal Transactions views stay empty.

Verifying the connection

Terminal window
# From the instance host
curl -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.