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

BNB Smart Chain RPC:端点设置、链 ID 和调试

摘要

BNB Smart Chain (BSC) 提供与 EVM 兼容的 JSON-RPC 接口,因此大多数以太坊工具在将其指向 BSC 端点并设置链 ID 56 后即可使用。本页涵盖端点格式、钱包和库配置、对 BSC 应用重要的方法,以及如何调试最可能遇到的故障。

您可以先使用公共 OnFinality 端点进行快速测试,然后在需要可预测的吞吐量、归档访问或用于生产流量的 WebSocket 订阅时,迁移到托管的 RPC API 或专用节点。

BNB Smart Chain (BSC) 使用与以太坊相同的 JSON-RPC 方言,这就是为什么大多数开发者只需更改一个 URL 就能将现有的 EVM 工具连接到它。摩擦通常出现在后期:钱包静默指向错误的链、eth_getLogs 调用超时,或者 WebSocket 订阅在负载下断开。本页首先提供端点设置,然后是调试路径和生产决策点。

链设置一览

在将 BSC 添加到钱包、库或后端配置时,请使用这些值。它们与网络的规范 EVM 参数匹配。

设置BNB Smart Chain 主网BNB Chain 测试网
链 ID5697
链名称BNB Smart Chain MainnetBNB Smart Chain Testnet
原生货币BNB(18 位小数)tBNB(18 位小数)
区块浏览器https://bscscan.comhttps://testnet.bscscan.com
传输HTTP, WebSocketHTTP
公共 OnFinality 端点https://bnb.api.onfinality.io/publichttps://bnb-testnet.api.onfinality.io/public

如果您在测试网上构建,请在代码库中将两个配置分开。大量“交易失败”报告源于将测试网私钥用于主网端点,或反之。

在编写代码之前选择正确的连接类型

在复制端点之前,请确定您的应用实际需要哪种连接。这个选择比任何提供商标志更能决定成本和可靠性。

  • 公共共享端点 — 适用于脚本、原型、钱包测试和低容量读取。不适用于持续的生产流量或大型日志查询。
  • 托管 RPC API — 带有密钥的端点,具有更高的限制、监控和支持。大多数 dApp、机器人和后端的正确默认选择。有关计划形态,请参阅 RPC 定价。
  • 专用节点 — 私有端点后面的您自己的 BSC 节点。当您需要一致的吞吐量、归档历史、trace/debug 方法或与其他租户隔离时,请选择此选项。请参阅 专用节点。

一个快速规则:如果您的应用可以容忍偶尔的重试,并且您没有运行繁重的 eth_getLogs 或 WebSocket 工作负载,那么托管 RPC API 通常就足够了。如果您正在索引、运行交易机器人或需要历史状态,请计划专用基础设施。

在钱包和库中配置 BSC

钱包网络配置

大多数 EVM 钱包接受自定义网络对象。以下字段是重要的:

{
  "chainId": "0x38",
  "chainName": "BNB Smart Chain Mainnet",
  "nativeCurrency": { "name": "BNB", "symbol": "BNB", "decimals": 18 },
  "rpcUrls": ["https://bnb.api.onfinality.io/public"],
  "blockExplorerUrls": ["https://bscscan.com"]
}

请注意,chainId 是十六进制(0x38 = 56)。拒绝该网络的钱包通常是因为链 ID 是十进制或 RPC URL 无法访问。

viem / ethers

一旦您提供链 ID 和传输,这两个库都可以与 BSC 一起使用:

import { createPublicClient, http } from 'viem';
import { bsc } from 'viem/chains';

const client = createPublicClient({
  chain: bsc,
  transport: http('https://bnb.api.onfinality.io/public')
});

const block = await client.getBlockNumber();
console.log('BSC head:', block);

对于 ethers v6,将相同的 URL 传递给 JsonRpcProvider,并在发送交易之前确认报告的 network.chainId 是 56n。

原始 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":[]}'

健康的响应返回 "result":"0x38"。如果您收到超时或 HTML 错误页面,问题出在端点或网络路径,而不是您的合约调用。

在 BSC 上行为不同的方法

BSC 与 EVM 兼容,但有几个方法值得关注,因为它们是生产问题的常见来源。

方法典型用途注意事项
eth_getLogs索引事件、回填宽区块范围可能在共享端点上超时;分块范围
eth_call读取合约如果目标区块在非归档节点上被修剪,则失败
eth_getBalance钱包余额历史余额需要归档访问
eth_subscribe实时事件需要 WebSocket 传输;并非所有端点都暴露它
debug_traceTransaction深度调试通常仅在专用/归档节点上可用
eth_sendRawTransaction广播拒绝通常意味着 nonce 或 gas 问题,而不是 RPC 失败

如果您的工作负载依赖于最后三行,请在承诺提供商之前确认支持。OnFinality 的 BNB Smart Chain 页面 列出了该网络的传输和端点详细信息。

常见 BSC RPC 故障的调试路径

按顺序处理这些症状。大多数问题在前两步解决。

症状可能原因首次修复
chainId 不匹配钱包或配置中的网络错误验证 0x38(主网)或 0x61(测试网)
eth_getLogs 超时区块范围太宽拆分为更小的范围并分页
nonce too low待处理交易或重复使用的 nonce使用 pending 重新读取 eth_getTransactionCount
insufficient fundsGas 价格飙升或代币错误检查 BNB 余额和当前 gas 价格
WebSocket 断开连接空闲超时或传输不稳定添加重连逻辑和心跳
method not found端点缺少 trace/debug迁移到启用了这些方法的专用节点
空的 eth_call 结果该区块的状态被修剪使用支持归档的端点

一个有用的习惯:在每次失败的请求旁边记录端点 URL 和链 ID。这决定了是五分钟修复还是一个下午的猜测。

何时从公共端点迁移到托管或专用

公共端点是一个好的起点,但它们是共享的。一旦您的流量变得不可预测,您就开始与同一 URL 上的其他人竞争容量。需要关注的信号:

  • 高峰时段速率限制响应增加。
  • eth_getLogs 或归档查询间歇性失败。
  • WebSocket 订阅在没有明确网络原因的情况下断开。
  • 需要公共端点不暴露的 trace/debug 方法。

此时,托管 RPC API 为您提供一个带有更清晰限制和监控的密钥端点,而专用节点为您提供隔离的容量以及对可用方法和历史的控制。OnFinality 在其 RPC API 服务 中提供两者,您可以在 定价页面 上比较计划形态。

发布前的操作清单

  • 在配置中固定链 ID 和端点,而不是分散的常量。
  • 添加备用端点,以便单个提供商中断不会导致应用宕机。
  • 分块 eth_getLogs 调用并限制每个请求的区块范围。
  • 为 WebSocket 订阅实现重连逻辑。
  • 监控每个方法的错误率和延迟,而不仅仅是整体正常运行时间。
  • 严格分开测试网和主网配置。
  • 如果您计划索引历史,请尽早确认归档和 trace 需求。

关键要点

  • BNB Smart Chain 使用链 ID 56(主网)和 97(测试网),原生货币为 BNB。
  • 公共 OnFinality 端点 https://bnb.api.onfinality.io/public 适用于测试;生产工作负载通常需要托管或专用端点。
  • eth_getLogs、归档读取和 WebSocket 订阅是最有可能迫使基础设施升级的方法。
  • 大多数“RPC 错误”实际上是链 ID、nonce 或 gas 问题——在更换提供商之前检查这些。
  • 使用 BNB Smart Chain 网络页面 和 支持的网络列表 确认端点和传输详细信息。

常见问题解答

BNB Smart Chain 的 RPC URL 是什么?

公共 OnFinality 端点是 https://bnb.api.onfinality.io/public。对于生产环境,请使用来自提供商仪表板的带密钥的托管端点或专用节点 URL。

BNB Smart Chain 的链 ID 是什么?

主网是 56(0x38)。测试网是 97(0x61)。

BSC 支持 WebSocket RPC 吗?

是的,BSC 支持 WebSocket 传输,这是 eth_subscribe 所需的。在依赖它之前,请确认您选择的端点暴露了 WS。

为什么我的 eth_getLogs 调用在 BSC 上超时?

BSC 快速生成区块,因此宽区块范围会产生大量结果集。分块范围并分页。如果仍然失败,您可能需要具有更高限制的专用端点。

我可以将以太坊工具与 BSC 一起使用吗?

是的。BSC 与 EVM 兼容,因此一旦设置链 ID 和 RPC URL,viem、ethers、Hardhat 和 Foundry 都可以工作。

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

仅当您查询旧区块的历史状态或余额时。标准节点会修剪该数据,因此归档访问需要提供它的提供商。

后续步骤

如果您仍在原型设计,请从公共端点和上面的配置片段开始。如果您正在准备生产,请查看 如何选择 RPC 提供商,然后比较 BSC 的 RPC 定价 和 专用节点 选项。对于测试网工作,BNB Chain 测试网页面 有匹配的设置。

RPC 知识库

相关 RPC 内容

网络 RPCSonic

选择 Sonic RPC 提供商时应该关注什么?

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

网络 RPCBase

什么是 Base NFT API,以及如何在 Base 上查询 NFT 数据?

Base NFT API 是一组 RPC 方法和索引数据服务,用于在 Base 网络上读取 NFT 所有权、元数据和转账历史。标准的 JSON-RPC 调用如 eth_call、eth_getLogs 和 eth_getBalance 覆盖链上读取,而索引器风格的 API 则添加预聚合的所有权和集合...

区块链基础设施

什么是RWA节点基础设施,以及如何构建它?

RWA节点基础设施是支持代币化现实世界资产的区块链和数据层,包括RPC端点、索引器和节点操作。本文解释了核心组件、如何评估基础设施提供商,以及如何为生产级RWA应用设计弹性堆栈。...

RPC 提供商选择

对于区块链项目,最好的 JSON-RPC API 提供商是什么?

选择 JSON-RPC API 提供商是任何区块链项目关键的基础设施决策。最好的提供商取决于您的具体工作负载、链要求和预算。本文概述了关键的评估标准——从方法支持和数据访问到定价模型和故障转移策略——以帮助您做出明智的选择。...

RPC 提供商选择Arbitrum

什么是Arbitrum RPC节点,如何选择合适的节点?

Arbitrum RPC节点是一个端点,让你的dApp能够读取和写入Arbitrum One、Nova或Sepolia测试网的数据。选择合适的节点提供商需要评估吞吐量限制、归档数据支持、WebSocket可用性以及故障转移模式。本文涵盖了链设置、公共与私有端点,以及一个决策清单,帮助你选择符合生产需...

网络 RPCSui

Sui JSON-RPC:方法、端点和如何使用

Sui JSON-RPC 是与 Sui 区块链交互的标准接口,使开发者能够查询链上数据、提交交易并订阅事件。本文解释了核心方法、如何连接 Sui 端点,以及在 Sui 上构建时需避免的常见陷阱。...

永远不用担心基础设施

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

开始