链 ID 是唯一标识一条 EVM 兼容区块链的整数,由 EIP-155 定义,并包含在每个交易签名中,因此为一条网络签名的交易无法在另一条网络上重放。以太坊主网是 1,Base 是 8453,Arbitrum One 是 42161,Polygon PoS 是 137,BNB Smart Chain 是 56,Optimism 是 10,Avalanche C-Chain 是 43114,Sepolia 测试网是 11155111。
主网和测试网的完整列表在第 2 节和第 3 节,每个编号还附有十六进制形式,因为钱包和 RPC 端点经常以这种方式显示它(Base 的十进制是 8453,十六进制是 0x2105)。
链 ID 总在最糟糕的时刻冒出来:一个保存不了的钱包表单、一个提示「unsupported chain」的 dapp、一个要先拿到这个数字才肯签名的库。网上的列表只给数字不讲含义,讲解文章只讲含义不给列表。这个页面两者都有:这个整数的作用、人们真正在用的网络的链 ID(十进制和十六进制都有),以及如何在几秒钟内自己查验一个链 ID。
简要版
- 链 ID 是标识一条 EVM 网络的整数。以太坊是 1,Optimism 是 10,BNB Smart Chain 是 56,Polygon 是 137,Base 是 8453,Arbitrum One 是 42161,Avalanche 是 43114,Sepolia 是 11155111。
- 自 EIP-155 起它就是每个签名的一部分,所以为链 1 签名的交易在其他所有链上都会被拒绝。这就是阻止跨网络重放攻击的机制。
- 十六进制和十进制是同一个数:MetaMask 显示 0x2105,chainlist 显示 8453,两者都指 Base。
- 权威值是该网络的 RPC 端点对 eth_chainId 返回的结果。自定义网络填入的链 ID 与这个答案不一致时,钱包会拒绝添加。
1. 什么是链 ID?
每条 EVM 网络,从以太坊本身到最小的 Layer 2,都带有一个整数,用来告诉软件它在和哪条链通信。这个整数就是链 ID。它不是地址,不是合约,也不是网络名称:它只是一个普通的数字,节点、钱包、库和 dapp 都认同它,而且它被写进你签署的每一笔交易里。
这个数字来自 EIP-155,该提案在 2016 年的 Spurious Dragon 硬分叉中于区块 2,675,000 激活。在此之前,在一条链上签名的以太坊交易,在任何存在同一账户的链上都有效;以太坊和 Ethereum Classic 分裂后共享所有地址,这就成了实实在在的问题。EIP-155 把链 ID 加进了被签名的数据,所以签名只在它所针对的那条链上才能通过验证。
实际中你会在三个地方遇到链 ID:钱包的网络设置、不支持你当前网络的 dapp 的错误提示,以及任何签署交易的库的配置。
2. 链 ID 列表:主网
下面这些网络是人们常搜索的,也是本站追踪的。数值来自 ethereum-lists/chains 注册表,chainlist.org 和 chainid.network 都建立在它之上,核对日期为 2026年10月18日。ChainGate 有该网络 gas 追踪器的,网络名称会链接过去。
| 网络 | 链 ID | 十六进制 | 原生代币 |
|---|---|---|---|
| Ethereum Mainnet | 1 | 0x1 | ETH |
| OP Mainnet (Optimism) | 10 | 0xa | ETH |
| Cronos | 25 | 0x19 | CRO |
| BNB Smart Chain | 56 | 0x38 | BNB |
| Syscoin | 57 | 0x39 | SYS |
| Ethereum Classic | 61 | 0x3d | ETC |
| Gnosis | 100 | 0x64 | XDAI |
| Unichain | 130 | 0x82 | ETH |
| Polygon PoS | 137 | 0x89 | POL |
| Monad | 143 | 0x8f | MON |
| Sonic | 146 | 0x92 | S |
| opBNB | 204 | 0xcc | BNB |
| Fantom Opera | 250 | 0xfa | FTM |
| zkSync Era | 324 | 0x144 | ETH |
| PulseChain | 369 | 0x171 | PLS |
| World Chain | 480 | 0x1e0 | ETH |
| Polygon zkEVM | 1101 | 0x44d | ETH |
| Moonbeam | 1284 | 0x504 | GLMR |
| Moonriver | 1285 | 0x505 | MOVR |
| Sei | 1329 | 0x531 | SEI |
| Soneium | 1868 | 0x74c | ETH |
| Ronin | 2020 | 0x7e4 | RON |
| Kava | 2222 | 0x8ae | KAVA |
| peaq | 3338 | 0xd0a | PEAQ |
| Mantle | 5000 | 0x1388 | MNT |
| Base | 8453 | 0x2105 | ETH |
| Haqq Network | 11235 | 0x2be3 | ISLM |
| Arbitrum One | 42161 | 0xa4b1 | ETH |
| Arbitrum Nova | 42170 | 0xa4ba | ETH |
| Celo | 42220 | 0xa4ec | CELO |
| Avalanche C-Chain | 43114 | 0xa86a | AVAX |
| Ink | 57073 | 0xdef1 | ETH |
| Linea | 59144 | 0xe708 | ETH |
| Berachain | 80094 | 0x138de | BERA |
| Blast | 81457 | 0x13e31 | ETH |
| Chiliz Chain | 88888 | 0x15b38 | CHZ |
| Taiko | 167000 | 0x28c58 | ETH |
| Scroll | 534352 | 0x82750 | ETH |
| Zora | 7777777 | 0x76adf1 | ETH |
其中有几个容易让人栽跟头。Polygon PoS 是 137,它的原生代币现在是 POL,不再是 MATIC;Polygon zkEVM 是另一条链,1101。OP Mainnet 就是大多数人仍叫 Optimism 的那条网络。Arbitrum One(42161)是 Arbitrum 的主链;Arbitrum Nova(42170)是另一条面向游戏和社交应用的链。BNB Smart Chain(56)和 opBNB(204)是两条不同的网络,gas 代币相同。Ethereum Classic 的网络 ID 是 1,和以太坊一样,但链 ID 是 61,这正是 EIP-155 要解决的情形。
3. 链 ID 列表:测试网和本地网络
测试网有自己的链 ID;钱包切到错误的测试网时,在正确网络上安然无恙的资金会显示为零余额。
| 网络 | 链 ID | 十六进制 | 备注 |
|---|---|---|---|
| Ethereum Sepolia | 11155111 | 0xaa36a7 | 以太坊推荐用于应用开发的测试网 |
| Ethereum Hoodi | 560048 | 0x88bb0 | 用于质押和验证者测试的以太坊测试网 |
| Ethereum Holesky | 17000 | 0x4268 | 2025年9月起已弃用,请改用 Hoodi |
| Base Sepolia | 84532 | 0x14a34 | Base 测试网 |
| Arbitrum Sepolia | 421614 | 0x66eee | Arbitrum 测试网 |
| OP Sepolia | 11155420 | 0xaa37dc | OP Mainnet 测试网 |
| Polygon Amoy | 80002 | 0x13882 | Polygon PoS 测试网 |
| BNB Smart Chain Testnet | 97 | 0x61 | BNB Smart Chain 测试网 |
| Avalanche Fuji | 43113 | 0xa869 | Avalanche C-Chain 测试网 |
| Hardhat Network (local) | 31337 | 0x7a69 | 本地 Hardhat Network 的默认值 |
| Geth private chain (local) | 1337 | 0x539 | Geth 私有链的默认值;Besu 的开发网络也用它 |
以太坊测试网的状态来自 ethereum.org;Hardhat 的默认值见其网络参考文档,Geth 的默认值则写在 EIP-155 本身。本地链是唯一一个两种工具会选不同默认值的地方,所以如果连接本地节点时钱包报错,先确认它是 1337 还是 31337。
4. 链 ID 为什么重要?
因为它是签名的一部分。在 EIP-155 下,链 ID 是签名前参与哈希的字段之一,签名的 v 值被设为链 ID 乘以二再加 35 或 36。链 137 上的节点收到一笔为链 1 签名的交易时,无法从中恢复出有效的发送方,于是丢弃它。同一个账户、同一个 nonce、同一个接收方在两条链上都存在,但签名只在其中一条上有效。
其他一切都由此而来。钱包用链 ID 来显示正确的网络名称、货币符号和区块浏览器。dapp 用它来选择要调用的合约地址,这就是为什么为 Base 构建的 dapp 在你的钱包处于以太坊时会拒绝工作。库用它来构造签名,这就是为什么配置里填错它会产生永远不会上链的交易。
5. 链 ID 与网络 ID
以太坊网络带有两个标识符,大多数时候它们是同一个数字,所以这两个词常被混用。Hyperledger Besu 文档用一句话说清了区别:节点之间的点对点通信使用网络 ID,而交易签名过程使用链 ID。
两者在少数已知情形下不同。以太坊和 Ethereum Classic 的网络 ID 都是 1,因为它们在 2016 年之前是同一条网络,但链 ID 分别是 1 和 61。Besu 的开发网络使用链 ID 1337、网络 ID 2018。对于以太坊主网、Sepolia、Hoodi 和上表中的每一条 Layer 2,两个值都相同,而且你在钱包里做的任何操作都不会要求填网络 ID。
在 JSON-RPC 中它们是两个独立的调用:eth_chainId 以十六进制字符串返回链 ID,net_version 以十进制字符串返回网络 ID。如果某个工具在钱包或 dapp 的语境下要「网络 ID」,它几乎总是指链 ID。
6. 如何查找一条网络的链 ID?
四种方法,从最快到最权威。
- 本页的表格
- 覆盖人们日常使用的网络,每个编号旁边都附有十六进制形式。
- chainlist.org 或 chainid.network
- 两者都读取 GitHub 上的 ethereum-lists/chains 注册表,其中收录了 2,800 多条 EVM 链。按名称搜索就能得到链 ID、原生代币和公共 RPC URL。MetaMask 自己的帮助页面指向 Chainlist,并注明 MetaMask 不维护那里的数据,所以添加网络前请先核对条目。
- 钱包的网络设置
- MetaMask、Rabby、Trust Wallet 等钱包都会在每条已配置网络的详情里显示其链 ID。这就是钱包实际用来签名的那个数字。
- RPC 端点本身
- 在节点上调用 eth_chainId。它返回什么,按定义就是该网络的链 ID,也是你添加自定义网络时钱包用来比对的值:
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结果是十六进制。0x2105 就是 8453,所以这个端点属于 Base。任何 JSON-RPC 提供商都无需 API key 就能响应这个调用,这使它成为确认别人给你的 RPC URL 是否真是他们所说的那条网络的最快方式。
7. 如何用链 ID 在 MetaMask 中添加网络?
添加自定义网络就是填写 EIP-3085 定义的五个字段,这项标准也是 wallet_addEthereumChain 调用的基础,dapp 用这个调用一键完成同样的事:
- 网络名称
- 自由文本,仅用于显示。
- RPC URL
- 钱包将与之通信的 JSON-RPC 端点。公共端点见 Chainlist;你自己的服务商提供的 URL 也可以。
- 链 ID
- 上表中的编号。钱包表单接受十进制;dapp 在 API 调用中以 0x 前缀的十六进制传入。
- 货币符号
- 原生代币的名称:Base 和 Arbitrum 上是 ETH,Polygon 上是 POL,BNB Smart Chain 上是 BNB,Avalanche 上是 AVAX。
- 区块浏览器 URL
- 可选。让钱包能把交易链接到浏览器。
链 ID 和 RPC URL 必须一致。EIP-3085 要求钱包在收到的链 ID 与 RPC 端点的 eth_chainId 返回值不匹配时拒绝请求,MetaMask 遇到这种情况会在表单上显示错误。如果你看到它,要么编号错了,要么 URL 属于另一条网络,要么 URL 是失效的端点;用上一节的 curl 调用测试一下。
8. 为什么会出现链 ID 不匹配或 unsupported chain 错误?
钱包和 dapp 的措辞各不相同,但原因只有这么几种:
- RPC URL 和链 ID 不一致
- 你填了 8453 却粘贴了以太坊主网的 URL,或者反过来。钱包询问了端点,得到不同的答案,于是拒绝。改正错的那一个。
- dapp 不支持你所在的网络
- 「Unsupported chain」或「wrong network」表示 dapp 的合约部署在其他链 ID 上。把钱包切换到 dapp 列出的网络之一,通常通过它自己的网络按钮。
- 交易签名用的链 ID 与节点的不同
- 节点会以 invalid-sender 或 invalid-chain-id 错误拒绝它,因为 EIP-155 签名无法在那条链上恢复。这是发送软件的配置错误,绝不是网络故障。
- 本地链改了 ID
- 用与 MetaMask 已保存的不同的链 ID 重启开发节点,会产生不匹配和过期的 nonce。删除并重新添加本地网络。
- 混用了十六进制和十进制
- 0x89 就是 137,但一个期望十进制的表单会把「0x89」当成文本。钱包表单用十进制,API 调用用十六进制。
9. 十进制、十六进制和 CAIP-2:同一个 ID 的三种写法
Chainlist 和钱包表单以十进制显示链 ID。JSON-RPC、EIP-3085 和 MetaMask 的内部设置使用 0x 前缀的十六进制,所以 137 显示为 0x89,42161 显示为 0xa4b1,11155111 显示为 0xaa36a7。它们是同一个整数;上表两种形式都给出了。
WalletConnect 之类的多链工具又加了第三种形式 CAIP-2,它在数字前加上命名空间,让 EVM 之外的链也能共用一套标识方案:以太坊主网是 eip155:1,Polygon 是 eip155:137,Base 是 eip155:8453。eip155 这部分表示「这是一个 EVM 链 ID」;冒号后面的数字就是和其他地方一样的链 ID。
10. 比特币和 Solana 有链 ID 吗?
没有 EIP-155 意义上的链 ID。链 ID 是 EVM 的概念,比特币、Litecoin、Dogecoin、Solana 和 XRP 都没有,这也是为什么添加这些币种时钱包从不向你索要它。
这些网络用其他方式区分主网和测试网络。比特币系的链在主网和测试网上使用不同的地址格式和网络参数,所以测试网地址的开头不一样。Solana 运行着几个独立的集群,分别叫 Mainnet、Devnet 和 Testnet,每个都有自己的 RPC 端点。如果在充值比特币或 Solana 时表单向你要「链 ID」,它问的是用哪条网络,而不是要一个数字。
11. 在代码中使用链 ID
任何签署 EVM 交易的库都需要链 ID,要么来自配置,要么向节点询问。使用 ChainGate SDK 时,托管的网络已经自带链 ID,自定义 EVM 网络则把它作为参数与 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);你传入的值必须与端点对 eth_chainId 报告的值一致,原因见第 4 节。这篇用 JavaScript 发送加密货币的教程介绍了流程的其余部分,而ChainGate 文档列出了托管的 RPC URL。
12. 接下来看什么
链 ID 确定之后,在任何网络上接下来的问题都是在那里发送一笔交易要花多少钱。多链 gas 追踪器以实时费用覆盖上面主网表格中的每一条网络,而Gas 费指南解释了它显示的那些数字。如果一笔交易已经发出而你需要找到它,交易哈希指南展示了如何在正确的浏览器上查询。如果你希望用一个 TypeScript 库就在所有这些链上搞定钱包、转账和 RPC 访问,ChainGate 就是本站背后的 SDK。
常见问题
加密货币里的链 ID 是什么?
唯一标识一条 EVM 兼容区块链的整数,由 EIP-155 定义。它包含在每个交易签名中,因此为一条网络签名的交易在其他所有网络上都无效。以太坊主网是 1,Base 是 8453,Arbitrum One 是 42161,Polygon 是 137。
以太坊主网的链 ID 是多少?
1,十六进制写作 0x1。它的测试网是 Sepolia(11155111)和 Hoodi(560048);Holesky(17000)从 2025年9月起已弃用。
Base 的链 ID 是多少?
十进制 8453,十六进制 0x2105。Base Sepolia 测试网是 84532。
Arbitrum 的链 ID 是多少?
Arbitrum One 是 42161(0xa4b1)。Arbitrum Nova 是另一条链,42170,Arbitrum Sepolia 测试网是 421614。
Polygon 的链 ID 是多少?
Polygon PoS 是 137(0x89),原生代币是 POL。Polygon zkEVM 是另一条链,1101,Polygon Amoy 测试网是 80002。
链 ID 和网络 ID 有什么区别?
网络 ID 用于节点之间的点对点通信;链 ID 用于交易签名。在以太坊主网和每条公共测试网上两者是同一个数字,但 Ethereum Classic 的网络 ID 是 1、链 ID 是 61,Besu 的开发网络使用链 ID 1337、网络 ID 2018。
如何查找一条网络的链 ID?
在 chainlist.org 或 chainid.network 上查,在钱包的网络设置里看,或者向该网络的 RPC URL 发送一个 eth_chainId JSON-RPC 调用。RPC 返回的十六进制值是权威值。
为什么 MetaMask 提示链 ID 不匹配?
因为你输入的 RPC URL 报告的链 ID 与你填写的不同。EIP-3085 要求钱包拒绝这种组合。对照列表检查编号,或对该 URL 调用 eth_chainId 看看它到底是哪条网络。
链 ID 和 MetaMask 里的十六进制值是一回事吗?
是的。MetaMask 和 JSON-RPC 使用 0x 前缀的十六进制,Chainlist 和钱包表单使用十进制,但 0x2105 和 8453 是同一个数。在两者之间换算即可,千万不要在同一个字段里混用。
使用 ChainGate 构建
把这些想法落地 —— ChainGate 提供钱包、交易与托管 RPC,一次安装即可覆盖以太坊以及 20 多条其他区块链。