Skip to main content
ALL CHAINS

Public endpoints

This page is a single reference for public RPC URLs, block explorers, chain IDs, faucets, and default ports used across the Elastos stack: the ELA main chain, Elastos Smart Chain (ESC), and Elastos Identity Chain (EID), on mainnet and testnet.

Values here follow ESC/EID node configuration in source and commonly used public providers. Prefer HTTPS endpoints in production; treat URLs as infrastructure that can change; verify against upstream docs if something fails.

Chain IDs at a glance

LayerMainnetTestnet
ESC (Smart Chain)2021
EID (Identity Chain)2223

The ELA main chain does not use an EVM chain ID in the same way; its explorers and APIs are keyed by transaction and address on the native layer. ESC and EID are EVM-compatible: use eth_chainId, eth_blockNumber, and related JSON-RPC methods against the HTTPS endpoints below (WebSocket may be offered on the same port as HTTP for self-hosted nodes; see ports).

Verifying ESC/EID JSON-RPC

Quick-check that an HTTPS endpoint matches the expected chain:

curl -s -X POST https://api.elastos.io/esc \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'

You should see a result of 0x14 (hex for 20) for ESC mainnet. Swap the URL for EID and expect 0x16 (22). For testnet endpoints, expect 0x15 (21) and 0x17 (23) respectively.

Environment and CI

Store RPC URLs in environment variables (for example ESC_RPC_URL, EID_RPC_URL) so local, staging, and production configs differ only by values, not code. In CI, pin a single provider or rotate through a small list with retries to reduce flaky pipelines when a public node is briefly unavailable.

Mainnets

NetworkProviderChain IDRPC URLExplorer
MainchainElastosN/Ahttps://blockchain.elastos.io/api/v1/https://blockchain.elastos.io

Mainchain rows point at REST-style base paths (/api/v1/) for the blockchain explorer backend; consult the main chain API documentation for concrete routes.

Multiple providers

Configure more than one RPC (primary + fallbacks) in wallets, indexers, and backends. Public endpoints can rate-limit, restart, or differ by region; failing over to another provider avoids a single point of failure without running your own node.

Testnets

NetworkProviderChain IDRPC URLExplorer
Mainchain TestnetElastosN/Ahttps://blockchain-testnet.elastos.io/api/v1/https://blockchain-testnet.elastos.io
Use testnet for development

Build and test contracts, DIDs, and integrations on ESC/EID testnet before mainnet. Testnet tokens are free via faucets; state and economics differ from production; never assume testnet behavior matches mainnet for security or economics.

Faucets

NetworkURL
ESC Testnethttps://esc-faucet.elastos.io/

Request testnet gas tokens only for development and staging; do not rely on faucet uptime for CI unless you mirror funds or use a funded ephemeral key with care.

Self-hosted node ports

When you run binaries locally or on your own servers, these are the default listener ports (adjust in config if you remap them). P2P ports must be reachable by peers if you participate in the network; JSON-RPC and REST are for your applications and automation.

Open only what you need: typical deployments expose P2P to the world (with firewall rules) while keeping RPC on localhost or a private interface unless you operate a dedicated gateway.

ServicePortProtocol
ELA Main Chain P2P20338TCP
ELA Main Chain JSON-RPC20336HTTP
ELA Main Chain REST20334HTTP
Arbiter P2P20538TCP
Arbiter JSON-RPC20536HTTP
Do not expose RPC to the open internet

Binding JSON-RPC or REST on 0.0.0.0 without firewall rules, TLS, and authentication is unsafe: nodes can be abused for relay spam, resource exhaustion, or worse. Keep self-hosted RPC on private networks or behind a reverse proxy with strict access control; never assume “default” equals “secure.”

MetaMask configuration

Add custom networks in MetaMask (or any EIP-155 wallet) using the fields below. The RPC URL must match the network you are sending transactions on; a wrong chain ID will cause signature mismatch or lost funds relative to user intent.

The ELA main chain does not use an EVM chain ID in the same way; its explorers and APIs are keyed by transaction and address on the native layer.

See also

  • Main chain and sidechain node repositories: verify genesis, bootnodes, and RPC bind addresses in default configs when deploying.
  • Application stacks (ethers, viem, web3.js): point JsonRpcProvider / createPublicClient at the ESC or EID URLs in this page for the correct chain.

Use this page alongside guides for deploying contracts, identity (DID) flows, and cross-chain bridges so every environment (local, CI, production) references the same canonical endpoints and chain IDs.

When you document runbooks for operators, include which RPC is considered authoritative for monitoring (e.g. block height alerts) and fallback order if the primary returns HTTP 429 or timeouts. Keep explorer URLs next to RPC URLs in internal wikis so support can jump from a failing endpoint to a block explorer without guessing.

Libraries

Ethereum-compatible libraries work against ESC and EID when you supply the correct RPC URL and chain ID: configure ethers JsonRpcProvider, viem createPublicClient, or web3.js Web3 with the endpoints in this document. For the native main chain, use the REST/JSON-RPC clients and routes documented for that layer rather than EVM calls.

Trailing slashes and paths

Public gateways sometimes normalize paths; if a client fails with 404 or HTML responses, confirm you are POSTing JSON-RPC to the base URL as shown (no extra path segment unless your provider documents one). Mainchain explorer APIs use explicit /api/v1/ paths; follow the main chain API reference for resource names.