EVM Chain ID List: Ethereum, Base, Arbitrum, Polygon and Every Network You Will Be Asked For

Chain IDs for every EVM network, explained by ChainGate.

A chain ID is a whole number that uniquely identifies an EVM-compatible blockchain, defined by EIP-155 and included in every transaction signature so that a transaction signed for one network cannot be replayed on another. Ethereum mainnet is 1, Base is 8453, Arbitrum One is 42161, Polygon PoS is 137, BNB Smart Chain is 56, Optimism is 10, Avalanche C-Chain is 43114 and the Sepolia testnet is 11155111.

The full list of mainnets and testnets is in sections 2 and 3, with each number in hex as well, because wallets and RPC endpoints often show it that way (Base is 8453 in decimal and 0x2105 in hex).

Chain IDs come up at the worst moments: a wallet form that will not save, a dapp that says "unsupported chain", a library that needs the number before it will sign. The lists online give you the number without the meaning, and the explainers give you the meaning without the list. This page has both: what the integer does, the chain IDs of the networks people actually use, in decimal and hex, and how to check one yourself in a few seconds.

The short version

  • A chain ID is the integer that identifies one EVM network. Ethereum is 1, Optimism 10, BNB Smart Chain 56, Polygon 137, Base 8453, Arbitrum One 42161, Avalanche 43114, Sepolia 11155111.
  • It is part of every signature since EIP-155, so a transaction signed for chain 1 is rejected on every other chain. That is what stops replay attacks between networks.
  • Hex and decimal are the same number: MetaMask shows 0x2105, chainlist shows 8453, both mean Base.
  • The authoritative value is whatever the network's RPC endpoint returns for eth_chainId. A wallet rejects a custom network whose entered chain ID does not match that answer.

1. What is a chain ID?

Every EVM network, from Ethereum itself to the smallest Layer 2, carries a single integer that tells software which chain it is talking to. That integer is the chain ID. It is not an address, not a contract and not a network name: it is a plain number that nodes, wallets, libraries and dapps all agree on, and it is baked into every transaction you sign.

The number comes from EIP-155, activated in the Spurious Dragon hard fork at block 2,675,000 in 2016. Before it, an Ethereum transaction signed on one chain was valid on any chain where the same account existed, which became a real problem when Ethereum and Ethereum Classic split and shared every address. EIP-155 added the chain ID to the data that gets signed, so the signature only verifies on the chain it was made for.

In practice you meet the chain ID in three places: the network settings of a wallet, the error message of a dapp that does not support the network you are on, and the configuration of any library that signs transactions.

2. Chain ID list: mainnets

The networks below are the ones people search for and the ones this site tracks. Values come from the ethereum-lists/chains registry that chainlist.org and chainid.network are built on, checked on 18 October 2026. Where ChainGate has a gas tracker for the network, the name links to it.

NetworkChain IDHexNative token
Ethereum Mainnet10x1ETH
OP Mainnet (Optimism)100xaETH
Cronos250x19CRO
BNB Smart Chain560x38BNB
Syscoin570x39SYS
Ethereum Classic610x3dETC
Gnosis1000x64XDAI
Unichain1300x82ETH
Polygon PoS1370x89POL
Monad1430x8fMON
Sonic1460x92S
opBNB2040xccBNB
Fantom Opera2500xfaFTM
zkSync Era3240x144ETH
PulseChain3690x171PLS
World Chain4800x1e0ETH
Polygon zkEVM11010x44dETH
Moonbeam12840x504GLMR
Moonriver12850x505MOVR
Sei13290x531SEI
Soneium18680x74cETH
Ronin20200x7e4RON
Kava22220x8aeKAVA
peaq33380xd0aPEAQ
Mantle50000x1388MNT
Base84530x2105ETH
Haqq Network112350x2be3ISLM
Arbitrum One421610xa4b1ETH
Arbitrum Nova421700xa4baETH
Celo422200xa4ecCELO
Avalanche C-Chain431140xa86aAVAX
Ink570730xdef1ETH
Linea591440xe708ETH
Berachain800940x138deBERA
Blast814570x13e31ETH
Chiliz Chain888880x15b38CHZ
Taiko1670000x28c58ETH
Scroll5343520x82750ETH
Zora77777770x76adf1ETH

A few of these trip people up. Polygon PoS is 137 and its native token is now POL, not MATIC; Polygon zkEVM is a different chain, 1101. OP Mainnet is the network most people still call Optimism. Arbitrum One (42161) is the main Arbitrum chain; Arbitrum Nova (42170) is a separate one for games and social apps. BNB Smart Chain (56) and opBNB (204) are different networks with the same gas token. Ethereum Classic has network ID 1, the same as Ethereum, but chain ID 61, which is exactly the case EIP-155 was written for.

3. Chain ID list: testnets and local networks

Testnets have their own chain IDs, and a wallet switched to the wrong one will show a zero balance for funds that are perfectly safe on the right one.

NetworkChain IDHexNotes
Ethereum Sepolia111551110xaa36a7Ethereum's recommended testnet for application development
Ethereum Hoodi5600480x88bb0Ethereum testnet for staking and validator testing
Ethereum Holesky170000x4268Deprecated since September 2025; use Hoodi
Base Sepolia845320x14a34Base testnet
Arbitrum Sepolia4216140x66eeeArbitrum testnet
OP Sepolia111554200xaa37dcOP Mainnet testnet
Polygon Amoy800020x13882Polygon PoS testnet
BNB Smart Chain Testnet970x61BNB Smart Chain testnet
Avalanche Fuji431130xa869Avalanche C-Chain testnet
Hardhat Network (local)313370x7a69Default for a local Hardhat Network
Geth private chain (local)13370x539Default for a Geth private chain; Besu's dev network uses it too

The Ethereum testnet statuses are from ethereum.org; Hardhat's default is in its network reference and Geth's in EIP-155 itself. Local chains are the one place where two different tools pick different defaults, so if a wallet complains when you connect to a local node, check whether it is 1337 or 31337.

4. Why does the chain ID matter?

Because it is part of the signature. Under EIP-155 the chain ID is one of the fields hashed before signing, and the signature's v value is set to the chain ID multiplied by two, plus 35 or 36. A node on chain 137 that receives a transaction signed for chain 1 cannot recover a valid sender from it and drops it. The same account, the same nonce and the same recipient exist on both chains, but the signature only works on one.

Everything else follows from that. A wallet uses the chain ID to show the right network name, currency symbol and explorer. A dapp uses it to pick the contract addresses to call, which is why a dapp built for Base refuses to work when your wallet is on Ethereum. A library uses it to build the signature, which is why getting it wrong in configuration produces transactions that never land anywhere.

5. Chain ID vs network ID

Ethereum networks carry two identifiers, and most of the time they are the same number, which is why the terms get mixed up. The Hyperledger Besu documentation puts the difference in one sentence: peer-to-peer communication between nodes uses the network ID, while the transaction signature process uses the chain ID.

The two diverge in a few known cases. Ethereum and Ethereum Classic both have network ID 1, because they were one network until 2016, but chain IDs 1 and 61. Besu's development network uses chain ID 1337 with network ID 2018. For Ethereum mainnet, Sepolia, Hoodi and every Layer 2 in the tables above, the two values match, and nothing you do in a wallet ever asks for the network ID.

Over JSON-RPC they are separate calls: eth_chainId returns the chain ID as a hex string, and net_version returns the network ID as a decimal string. If a tool asks for a "network ID" in a wallet or dapp context, it almost always means the chain ID.

6. How do I find a network's chain ID?

Four ways, from quickest to most authoritative.

The tables on this page
Covers the networks people use day to day, with the hex form next to each number.
chainlist.org or chainid.network
Both read the ethereum-lists/chains registry on GitHub, which lists over 2,800 EVM chains. Searching by name gives the chain ID, the native token and public RPC URLs. MetaMask's own help pages point to Chainlist, with the note that MetaMask does not maintain the data there, so check the entry before adding a network.
The wallet's network settings
MetaMask, Rabby, Trust Wallet and the rest show the chain ID of every configured network under its details. This is the number the wallet is actually signing with.
The RPC endpoint itself
Call eth_chainId on the node. Whatever it returns is, by definition, that network's chain ID, and it is what wallets compare against when you add a custom network:
curl -s -X POST https://mainnet.base.org \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'

# {"jsonrpc":"2.0","id":1,"result":"0x2105"}
# 0x2105 = 8453, so this endpoint is Base

The result is hex. 0x2105 is 8453, so this endpoint belongs to Base. Any JSON-RPC provider answers this call without an API key, which makes it the fastest way to confirm an RPC URL someone handed you is the network they claim.

7. How do I add a network to MetaMask with its chain ID?

Adding a custom network means filling the five fields defined by EIP-3085, the standard behind the wallet_addEthereumChain call that dapps use to do the same thing with one click:

Network name
Free text, for display only.
RPC URL
The JSON-RPC endpoint the wallet will talk to. Public ones are on Chainlist; your own provider's URL works as well.
Chain ID
The number from the tables above. Wallets accept decimal in the form; dapps pass it as 0x-prefixed hex in the API call.
Currency symbol
What the native token is called: ETH on Base and Arbitrum, POL on Polygon, BNB on BNB Smart Chain, AVAX on Avalanche.
Block explorer URL
Optional. Lets the wallet link transactions to the explorer.

The chain ID and the RPC URL have to agree. EIP-3085 requires the wallet to reject the request if the chain ID it was given does not match the value of eth_chainId from the RPC endpoint, and MetaMask shows an error on the form when that happens. If you see it, the number is wrong, the URL is for a different network, or the URL is a dead endpoint; test it with the curl call from the previous section.

8. Why do I get a chain ID mismatch or unsupported chain error?

The wording differs between wallets and dapps, but there are only a handful of causes:

The RPC URL and the chain ID disagree
You typed 8453 but pasted an Ethereum mainnet URL, or the reverse. The wallet asked the endpoint, got a different answer and refused. Fix the one that is wrong.
The dapp does not support the network you are on
"Unsupported chain" or "wrong network" means the dapp's contracts are deployed on other chain IDs. Switch the wallet to one the dapp lists, usually through its own network button.
A transaction was signed for a different chain ID than the node's
The node rejects it with an invalid-sender or invalid-chain-id error, because the EIP-155 signature cannot be recovered on that chain. This is a configuration bug in the sending software, never a network outage.
A local chain changed its ID
Restarting a dev node with a different chain ID than the one MetaMask has saved produces mismatches and stale nonces. Remove and re-add the local network.
Hex and decimal were mixed
0x89 is 137, but a form that expects decimal treats "0x89" as text. Use the decimal form in wallet forms and the hex form in API calls.

9. Decimal, hex and CAIP-2: three ways to write the same ID

Chainlist and wallet forms show chain IDs in decimal. JSON-RPC, EIP-3085 and MetaMask's internal settings use 0x-prefixed hexadecimal, so 137 appears as 0x89, 42161 as 0xa4b1 and 11155111 as 0xaa36a7. They are the same integer; the tables above give both.

Multi-chain tools such as WalletConnect add a third form, CAIP-2, which prefixes the number with a namespace so that chains outside the EVM can share one identifier scheme: Ethereum mainnet is eip155:1, Polygon is eip155:137, Base is eip155:8453. The eip155 part says "this is an EVM chain ID"; the number after the colon is the same chain ID as everywhere else.

10. Do Bitcoin and Solana have chain IDs?

Not in the EIP-155 sense. A chain ID is an EVM concept, and Bitcoin, Litecoin, Dogecoin, Solana and XRP do not have one, which is why a wallet never asks for it when you add those coins.

Those networks tell mainnet and test networks apart in other ways. Bitcoin-family chains use different address formats and network parameters for mainnet and testnet, which is why a testnet address starts differently. Solana runs separate clusters called Mainnet, Devnet and Testnet, each with its own RPC endpoint. If a form asks you for a "chain ID" when depositing Bitcoin or Solana, it is asking which network to use, not for a number.

11. Using chain IDs in code

Any library that signs EVM transactions needs the chain ID, either from configuration or by asking the node. With the ChainGate SDK the hosted networks already carry it, and a custom EVM network takes it as a parameter next to the RPC URL:

import { ChainGate, importWallet } from 'chaingate';

const cg = new ChainGate({ apiKey: process.env.CHAINGATE_API_KEY });
const wallet = importWallet({ phrase: process.env.MNEMONIC });

// Hosted networks already know their chain ID
const base = cg.connect(cg.networks.base, wallet);

// Any other EVM network: pass the RPC URL and the chain ID it reports
const scroll = cg.networks.evmRpc({
  rpcUrl: 'https://rpc.scroll.io',
  chainId: 534352,
  name: 'Scroll',
  symbol: 'ETH',
});
const scr = cg.connect(scroll, wallet);

The value you pass must match what the endpoint reports for eth_chainId, for the reasons in section 4. The tutorial on sending crypto in JavaScript walks through the rest of the flow, and the ChainGate documentation lists the hosted RPC URLs.

12. Where to go from here

With the chain ID settled, the next question on any network is what sending costs there. The multi-chain gas tracker covers every network in the mainnet table above with live fees, and the guide to gas fees explains the numbers it shows. If a transaction has already gone out and you need to find it, the transaction hash guide shows how to look it up on the right explorer. And for wallets, transfers and RPC access across all of these chains from one TypeScript library, ChainGate is the SDK behind this site.

Frequently asked questions

What is a chain ID in crypto?

A whole number that uniquely identifies an EVM-compatible blockchain, defined by EIP-155. It is included in every transaction signature so that a transaction signed for one network is invalid on every other. Ethereum mainnet is 1, Base 8453, Arbitrum One 42161, Polygon 137.

What is the chain ID of Ethereum mainnet?

1, written 0x1 in hex. Its testnets are Sepolia (11155111) and Hoodi (560048); Holesky (17000) is deprecated since September 2025.

What is the Base chain ID?

8453 in decimal, 0x2105 in hex. The Base Sepolia testnet is 84532.

What is the Arbitrum chain ID?

Arbitrum One is 42161 (0xa4b1). Arbitrum Nova is a separate chain, 42170, and the Arbitrum Sepolia testnet is 421614.

What is the Polygon chain ID?

Polygon PoS is 137 (0x89), with POL as its native token. Polygon zkEVM is a different chain, 1101, and the Polygon Amoy testnet is 80002.

What is the difference between chain ID and network ID?

The network ID is used for peer-to-peer communication between nodes; the chain ID is used in transaction signatures. They are the same number on Ethereum mainnet and every public testnet, but Ethereum Classic has network ID 1 and chain ID 61, and Besu's development network uses chain ID 1337 with network ID 2018.

How do I find the chain ID of a network?

Look it up on chainlist.org or chainid.network, read it in your wallet's network settings, or send an eth_chainId JSON-RPC call to the network's RPC URL. The RPC answer, in hex, is the authoritative value.

Why does MetaMask say the chain ID does not match?

Because the RPC URL you entered reports a different chain ID than the one you typed. EIP-3085 requires wallets to reject that combination. Check the number against the list, or call eth_chainId on the URL to see which network it really is.

Is the chain ID the same as the hex value in MetaMask?

Yes. MetaMask and JSON-RPC use 0x-prefixed hex while Chainlist and wallet forms use decimal, but 0x2105 and 8453 are the same number. Convert between them, never mix them in one field.

Build with ChainGate

Put these ideas to work — ChainGate gives you wallets, transactions and managed RPC for Ethereum and 20+ other blockchains with one install.