Logo
新用户订阅 RPC,首月享 6.5 折优惠查看优惠
RPC Assistant

如何将 BNB Chain RPC 添加到 MetaMask?

摘要

将 BNB Smart Chain 添加到 MetaMask 只需填写一个网络表单:链 ID 56、您想使用的 BNB Chain RPC URL、货币符号 BNB,以及区块浏览器 https://bscscan.com。真正影响您应用的是您粘贴的 RPC URL,因为公共端点与托管或专用端点在负载下的表现差异很大。

本页涵盖 BNB Smart Chain 主网和测试网的确切链设置、如何在 MetaMask 中添加它们、如何使用 curl 和 ethers 验证连接,以及何时共享公共端点足够,何时应迁移到托管或专用 BNB Chain 基础设施。

MetaMask 没有预装 BNB Smart Chain,因此大多数人首先需要的是网络表单:链 ID、RPC URL、符号和区块浏览器。填写表单很容易,但您选择的 RPC URL 才是决定钱包或应用在流量增加时能否保持响应的关键。本页为您提供确切的 BNB Smart Chain 设置,逐步介绍如何在 MetaMask 中添加它们,然后解释如何检查您选择的端点是否真正在发挥作用。

您应该在 MetaMask 中填入哪个 BNB Chain 端点?

对于手动使用的钱包,公共端点通常就足够了。对于任何脚本、dapp、机器人或共享 RPC URL 的团队,选择更为重要。以此作为起点:

您正在做什么适合的端点类型原因
将 BNB Chain 添加到个人 MetaMask 钱包公共端点请求量低,偶尔读取,无需管理 API 密钥
在 BNB Chain 测试网上测试 dapp公共测试网端点免费、设置快速、易于重置
将 dapp 发布给真实用户托管 RPC API更高的速率限制、监控以及出问题时的支持途径
运行索引器、机器人或大量 eth_getLogs 查询专用 BNB Chain 节点可预测的容量、无邻居干扰、需要历史数据时可访问归档

OnFinality 提供可直接粘贴到 MetaMask 的公共 BNB Smart Chain 端点,以及当共享端点不再足够时的托管 RPC API 和专用节点选项。您可以在 BNB Chain RPC 页面 查看网络详情,并在 RPC 定价 比较计划。

如果您不确定需要哪个层级,简短版本是:从公共端点开始,有真实用户时转向托管,当工作负载持续或日志繁重时转向专用。

MetaMask 的 BNB Smart Chain 网络设置

这些是 MetaMask 在添加自定义网络时要求的值。主网和测试网仅在链 ID、RPC URL、符号和区块浏览器上不同。

字段BNB Smart Chain 主网BNB Smart Chain 测试网
网络名称BNB Smart ChainBNB Smart Chain Testnet
RPC URLhttps://bnb.api.onfinality.io/publichttps://bnb-testnet.api.onfinality.io/public
链 ID5697
货币符号BNBtBNB
区块浏览器https://bscscan.comhttps://testnet.bscscan.com

一些以后能节省时间的注意事项:

  • 链 ID 56 是主网。如果 dapp 说找不到您的网络,链 ID 是首先要检查的。
  • 货币符号字段在 MetaMask 中是装饰性的,但请保持为 BNB,以便余额正确显示。
  • 测试网使用 tBNB,您可以从水龙头获取。测试网 BNB 没有价值。
  • 如果您粘贴的 RPC URL 带有尾随空格,MetaMask 将拒绝它。请干净地复制。

逐步将 BNB Chain 添加到 MetaMask

  1. 打开 MetaMask,点击钱包左上角的网络选择器。
  2. 选择 添加网络,然后选择 手动添加网络。
  3. 填写上表中的字段。对于主网,使用链 ID 56 和主网 RPC URL。
  4. 保存。MetaMask 切换到新网络并显示您的 BNB 余额。
  5. 如果余额看起来不对,切换到另一个网络再切回来,这会强制刷新。

您也可以从 dapp 以编程方式添加网络。这与 MetaMask 内部使用的流程相同,当您希望在不要求用户输入设置的情况下引导用户时非常有用:

await window.ethereum.request({
  method: "wallet_addEthereumChain",
  params: [{
    chainId: "0x38", // 56 in hex
    chainName: "BNB Smart Chain",
    nativeCurrency: { name: "BNB", symbol: "BNB", decimals: 18 },
    rpcUrls: ["https://bnb.api.onfinality.io/public"],
    blockExplorerUrls: ["https://bscscan.com"]
  }]
});

对于测试网,替换为 chainId: "0x61" (97)、测试网 RPC URL、tBNB 和测试网浏览器。保持十六进制和十进制链 ID 一致,因为 MetaMask 在此调用中期望十六进制,而在手动表单中期望十进制。

在信任端点之前验证它

在您将余额卡住或交易失败归咎于 MetaMask 之前,直接检查端点。一个快速的 JSON-RPC 调用可以告诉您节点是否响应以及是否在您期望的链上:

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

您应该得到 "0x38",即十六进制的 56。如果得到不同的值,说明您指向了错误的网络。第二次调用确认节点已同步:

curl -s https://bnb.api.onfinality.io/public \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'

将该区块号与公共浏览器进行比较。如果节点远远落后,交易可能显示为待处理,即使它们已经确认。

在 JavaScript 应用中,使用 ethers 进行相同的检查如下所示:

import { JsonRpcProvider } from "ethers";

const provider = new JsonRpcProvider("https://bnb.api.onfinality.io/public");
const network = await provider.getNetwork();
console.log(network.chainId); // 56n
console.log(await provider.getBlockNumber());

如果 chainId 不是 56n,您的应用正在与错误的链通信,MetaMask 将因此显示令人困惑的余额。

当公共 BNB RPC 不再足够时

公共端点是共享的。对于钱包来说这没问题,但会以几种可预测的方式出现问题:

  • 突发流量下的速率限制。 每个用户触发大量 eth_call 请求的 dapp 在高峰活动期间可能触及共享限制。
  • 日志缓慢或缺失。 跨大区块范围的 eth_getLogs 很重。共享端点通常会限制范围或超时。
  • 无归档历史。 如果您需要很久以前的余额或状态,您需要支持归档的节点。
  • 无可见性。 使用公共端点,您无法看到错误率、延迟或哪个方法失败。

当您遇到这些问题时,解决方案不是换一个公共 URL。而是使用具有更高限制和监控的托管 RPC API,或用于持续工作负载的专用 BNB Chain 节点。OnFinality 两者都提供,BNB Chain 网络页面 列出了该链可用的内容。如果您需要帮助将工作负载匹配到层级,提供商选择指南 介绍了标准。

调试常见的 MetaMask 和 BNB RPC 问题

大多数问题归结为少数几个原因。将症状与可能的修复方法匹配:

症状可能原因该怎么办
MetaMask 显示网络不可用RPC URL 拼写错误或端点宕机重新粘贴 URL,然后用 curl 测试
BNB Chain 上余额显示为零链 ID 错误或选择了错误的网络确认链 ID 56 且 MetaMask 在 BNB Smart Chain 上
交易卡在待处理状态节点落后,或 gas 价格太低对照浏览器检查 eth_blockNumber,然后检查 gas
eth_getLogs 返回错误区块范围对端点来说太宽缩小范围或迁移到托管/专用端点
Dapp 无法切换网络wallet_addEthereumChain 被拒绝或链 ID 不匹配验证十六进制链 ID 0x38 且用户批准了提示
在钱包中有效,在应用中失败两者中的 RPC URL 不同将应用和钱包指向同一个端点

两个习惯可以防止大多数这些问题。首先,将 RPC URL 放在代码库中的一个位置,这样钱包和应用就不会偏离。其次,在启动时记录应用看到的链 ID,这样错误网络的 bug 会立即显现。

MetaMask 中的 BNB Chain 测试网

测试网是您应该首先尝试网络更改的地方。使用链 ID 97、表中的测试网 RPC URL、符号 tBNB 和测试网浏览器。从水龙头获取测试网 BNB,然后对测试网端点运行相同的 curl 检查,以确认您在链 0x61 上。

一个常见的错误是部署到测试网,但在前端留下了主网 RPC URL。合约存在于一条链上而不在另一条链上,因此调用失败的方式看起来像是合约 bug。在调试合约之前检查链 ID。如果需要,BNB Chain 测试网页面 有网络详情。

关键要点

  • BNB Smart Chain 主网使用链 ID 56、符号 BNB 和浏览器 bscscan.com。
  • BNB Smart Chain 测试网使用链 ID 97、符号 tBNB 和测试网浏览器。
  • RPC URL 是影响可靠性的设置。公共端点适合钱包;托管和专用端点适合应用和繁重工作负载。
  • 在调试自己的代码之前,使用 eth_chainId 和 eth_blockNumber 验证任何端点。
  • 在代码库中保留一个 RPC URL,这样钱包和应用不会漂移到不同的网络。
  • 当您有真实用户时迁移到托管 RPC,当工作负载持续或日志繁重时迁移到专用节点。

常见问题

MetaMask 的 BNB Chain RPC URL 是什么?

对于主网,您可以使用 https://bnb.api.onfinality.io/public 和链 ID 56。对于测试网,使用 https://bnb-testnet.api.onfinality.io/public 和链 ID 97。任何有效的 BNB Smart Chain RPC URL 都可以在表单中使用,但您选择的端点会影响负载下的可靠性。

为什么 MetaMask 默认不显示 BNB Chain?

MetaMask 自带以太坊和几个测试网。其他 EVM 链,包括 BNB Smart Chain,通过链 ID、RPC URL、符号和浏览器作为自定义网络添加。

BNB Smart Chain 和 BSC 是一样的吗?

是的。BSC、BNB Smart Chain 和 BNB Chain 可以互换使用,指的是同一个链 ID 为 56 的 EVM 网络。原生代币是 BNB。

我可以在生产环境中使用公共 RPC 端点吗?

可以,但共享端点的限制会在突发流量、宽泛日志查询和归档请求下显现。对于生产应用,托管 RPC API 或专用节点提供更可预测的容量和支持途径。

如何检查我的 RPC 在哪个链上?

调用 eth_chainId。BNB Smart Chain 主网返回 0x38 (56),测试网返回 0x61 (97)。如果得到其他值,端点指向了不同的网络。

我需要为 BNB Chain 使用归档节点吗?

仅当您查询历史状态或宽泛日志范围时需要。标准节点提供近期数据。如果您的应用读取旧余额或回填事件,您需要归档访问,这在专用 BNB Chain 节点上可用。

下一步

如果您正在设置钱包,上述设置就是您所需要的。如果您正在 BNB Chain 上构建,请尽早决定端点层级:从 BNB Chain 网络页面 上的公共端点开始,然后随着请求量的增长迁移到托管 RPC API 或专用节点。您可以查看 RPC 定价 和完整的 支持的 RPC 网络 列表来规划下一步。

RPC 知识库

相关 RPC 内容

区块链基础设施

什么是区块链节点基础设施,何时应租用而不是自行运行?

区块链节点基础设施是维持区块链网络运行的硬件、软件和网络。它包括全节点、归档节点和验证器,每种都有不同的存储和计算需求。运行自己的节点可以让你掌控一切,但也带来了同步、监控和扩展等运维负担。像 OnFinality 这样的托管 RPC 服务提供了可靠的节点基础设施访问,而无需自行托管的负担。...

网络 RPCAvalanche

在选择 Avalanche RPC 提供商时,我应该关注什么?

# 在选择 Avalanche RPC 提供商时,我应该关注什么? Avalanche RPC 提供商之所以重要,是因为 Web3 应用程序依赖稳定的端点访问来进行读取、交易、仪表盘和后端工作流。正确的设置应匹配你的工作负载,支持你所需的网络和测试网,使限制可见,并在共享 RPC 不再足够时为你提供...

网络 RPCEthereum

什么是以太坊 RPC URL,如何选择合适的?

以太坊 RPC URL 是你的 dApp 用来与以太坊区块链通信的 HTTP 或 WebSocket 端点。本文解释了 RPC URL 的组成部分、如何配置钱包和应用程序,以及如何评估公共、托管和专用端点选项以用于生产工作负载。...

区块链基础设施

加密节点托管:何时租用基础设施而非自行运行

加密节点托管是指在第三方基础设施上运行区块链节点,而非自行托管。本文解释了构建与购买的权衡,帮助您评估托管选项,并提供决策清单,以便在自管理服务器、VPS提供商和OnFinality等托管节点服务之间做出选择。...

网络 RPCAsset Hub

Kusama 迁移:发生了什么变化以及如何更新您的 RPC 端点

Kusama 迁移将核心功能从中继链转移到 Asset Hub,改变了开发者连接网络的方式。本指南解释了发生了什么变化、如何更新您的 RPC 端点,以及如何避免常见的迁移陷阱。...

网络 RPCPolygon

Polygon RPC:如何选择能承受生产流量的端点

Polygon RPC 是你的应用用来在 Polygon PoS 上读取链状态、提交交易和订阅事件的 HTTP 和 WebSocket 端点。早期选择的端点往往会成为你凌晨两点调试的端点,因此值得根据真实工作负载来选择,而不是从教程中快速复制粘贴。 本页介绍了端点形态、链设置、请求模式以及流量增长后...

永远不用担心基础设施

OnFinality 消除了 DevOps 的繁重工作,让您能够更聪明、更快地构建。

开始