A chain ID (written chainId in code and chain_id in config files) is the number that identifies an EVM network: 1 for Ethereum, 56 for BNB Chain, 137 for Polygon, 8453 for Base, 42161 for Arbitrum One. Your wallet writes the chain ID into every transaction it signs, so a transaction meant for one network cannot be replayed on another; this protection comes from EIP-155 (2016). You need the chain ID when you add a network to a wallet, configure a dApp or check that an RPC endpoint is genuine.
Key Takeaways
- One number per EVM network, included in every signed transaction.
- Replay protection: a signature for chain 56 is invalid on chain 1.
- Hex and decimal are the same ID: 8453 = 0x2105. RPC calls and MetaMask’s API use hex.
- Same address, different chains: your 0x address is identical everywhere; the chain ID decides the network.
- Collisions exist: check the name and RPC, not only the number.
Chain ID List: 30 Popular Networks
| Network | Chain ID | Hex | Gas token |
|---|---|---|---|
| Ethereum | 1 | 0x1 | ETH |
| OP Mainnet (Optimism) | 10 | 0xa | ETH |
| Cronos | 25 | 0x19 | CRO |
| BNB Smart Chain | 56 | 0x38 | BNB |
| Gnosis | 100 | 0x64 | xDAI |
| Unichain | 130 | 0x82 | ETH |
| Polygon PoS | 137 | 0x89 | POL |
| Monad | 143 | 0x8f | MON |
| Sonic | 146 | 0x92 | S |
| ZKsync Era | 324 | 0x144 | ETH |
| World Chain | 480 | 0x1e0 | ETH |
| HyperEVM | 999 | 0x3e7 | HYPE |
| Metis | 1088 | 0x440 | METIS |
| Sei | 1329 | 0x531 | SEI |
| Soneium | 1868 | 0x74c | ETH |
| Ronin | 2020 | 0x7e4 | RON |
| Abstract | 2741 | 0xab5 | ETH |
| MegaETH | 4326 | 0x10e6 | ETH |
| Mantle | 5000 | 0x1388 | MNT |
| Arc | 5042 | 0x13b2 | USDC |
| Base | 8453 | 0x2105 | ETH |
| Plasma | 9745 | 0x2611 | XPL |
| ApeChain | 33139 | 0x8173 | APE |
| Arbitrum One | 42161 | 0xa4b1 | ETH |
| Celo | 42220 | 0xa4ec | CELO |
| Avalanche C-Chain | 43114 | 0xa86a | AVAX |
| Ink | 57073 | 0xdef1 | ETH |
| Linea | 59144 | 0xe708 | ETH |
| Berachain | 80094 | 0x138de | BERA |
| Scroll | 534352 | 0x82750 | ETH |
Checked on November 6, 2026 against the LI.FI chain list and the chainlist.org registry (chainid.network); 29 of 30 matched in both, and the exception, 999, is explained in collisions below. Tested RPC URLs and MetaMask fields for most of these networks are in our networks section, for example Base, Arbitrum, Polygon, BNB Smart Chain and HyperEVM.
Testnets
| Testnet | Chain ID | Hex |
|---|---|---|
| Ethereum Sepolia | 11155111 | 0xaa36a7 |
| Ethereum Hoodi | 560048 | 0x88bb0 |
| Base Sepolia | 84532 | 0x14a34 |
| Arbitrum Sepolia | 421614 | 0x66eee |
| OP Sepolia | 11155420 | 0xaa37dc |
Testnet tokens have no value; never buy them, and never send mainnet funds to a testnet.
How to Check a Chain ID Yourself
Every EVM RPC endpoint answers the eth_chainId method. On November 6, 2026 we asked three public endpoints:
| RPC endpoint | eth_chainId | Decimal |
|---|---|---|
| mainnet.base.org | 0x2105 | 8453 |
| arb1.arbitrum.io/rpc | 0xa4b1 | 42161 |
| api.mainnet.abs.xyz | 0xab5 | 2741 |
curl -s -X POST https://mainnet.base.org \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'
If the number does not match the network’s official docs, the endpoint belongs to another network. Hex to decimal: any calculator in programmer mode, or python3 -c "print(0x2105)".
Chain ID vs Network ID
The chain ID and the network ID are two different numbers that usually look the same:
| Chain ID | Network ID | |
|---|---|---|
| Used by | wallets, signatures (EIP-155), dApps | nodes finding peers on the p2p network |
| RPC method | eth_chainId (hex) | net_version (decimal string) |
| Matters to you | yes, every transaction | almost never |
On Base, net_version returned “8453” and eth_chainId 0x2105: the same number. The well-known exception is Ethereum Classic: chain ID 61, network ID 1 (chainlist.org data), because it kept Ethereum’s original network ID after the 2016 split. When a guide says “network ID” in wallet settings, it almost always means the chain ID.
Where to Find the Chain ID in Your Wallet
- MetaMask: open the network list, choose Edit on a network; the Chain ID field shows the decimal value. See how to add a network to MetaMask.
- Any EVM wallet: network or RPC settings show the chain ID next to the RPC URL and currency symbol.
- Block explorers (Etherscan, Basescan, Arbiscan) show the network name; the chain ID is on the network’s docs page.
- dApps read it from your wallet and show “wrong network” or “switch network” when it differs from what they support.
Wrong Chain ID Errors and Fixes
| Symptom | What it means | Fix |
|---|---|---|
| Wallet refuses to save a network: the RPC returned a different chain ID | the RPC URL belongs to another network | take RPC and chain ID from one official source |
| dApp asks to “switch to chain 42161” | your wallet is on another network | approve the switch, or switch manually |
| MetaMask error 4902 | the dApp requested a network your wallet has not added | add the network first (MetaMask docs: wallet_addEthereumChain) |
| Transaction rejected with a chain ID mismatch | it was signed for one chain and sent to another | resend with the wallet on the right network |
| Network added, but tokens do not show | right chain ID, token not imported | add the token by its contract address |
MetaMask’s network docs describe code 4902 and require the chain ID as a hex string, for example 0x1.
Collisions and Fake Networks
Chain IDs are not enforced by anyone: a project picks a number and registers it. 999 is HyperEVM’s chain ID (its RPC returned 0x3e7 on November 6, 2026), but the chainlist.org registry lists 999 as Wanchain Testnet. 1337 is the default for local development chains, and LI.FI also uses 1337 as its internal ID for Hyperliquid. So a number alone proves nothing. A malicious RPC can also report a real chain ID while serving fake data, which is why the name, the RPC URL and the explorer must all come from official docs.
Non-EVM Chains
Solana, Bitcoin and Sui have no EVM chain ID. Bridge and swap APIs give them internal IDs so routes can be defined with numbers:
| Chain | LI.FI internal ID | Notes |
|---|---|---|
| Solana | 1151111081099710 | not an on-chain value |
| Bitcoin | 20000000000001 | not an on-chain value |
| Sui | 9270000000000000 | not an on-chain value |
| Tron | 728126428 | equals Tron’s eth_chainId answer 0x2b6653dc |
Never type these IDs into a wallet’s “add network” form; they only exist inside routing APIs.
Related: gas tokens by chain, what is a layer 2, sent crypto to the wrong network.
