摘要
BSC 测试网(BNB Smart Chain 测试网)是 BNB Smart Chain 的 EVM 兼容开发网络。它使用链 ID 97 和无价值的 gas 代币 tBNB,因此你可以部署合约、运行集成测试和演练主网流程,而无需花费真实的 BNB。大多数开发者来到这里需要三件事之一:将网络添加到钱包的链设置、获取 tBNB 的水龙头,或一个可靠的 RPC 端点来指向 Hardhat、Foundry、viem 或 ethers。
本页首先提供链设置,然后逐步介绍连接钱包、将 JSON-RPC 端点接入你的工具,以及调试测试网上最常见的故障。如果你需要一个托管端点而不是公共端点,OnFinality 为 BNB Chain 网络提供 RPC API 访问和专用节点基础设施——查看 BNB 测试网网络页面 获取当前端点详情,以及 RPC 定价页面 了解套餐选项。
关于命名的快速说明:“BSC 测试网”和“BNB Smart Chain 测试网”指的是同一个网络。一些工具将其标记为“BNB Chain 测试网”或“Binance 测试网”。链 ID 97 是可靠的标识符——在配置任何内容时都要匹配它。
关键要点
- BSC 测试网使用链 ID 97、原生 gas 代币 tBNB,以及位于 testnet.bscscan.com 的区块浏览器。
- 使用下方的链设置表将网络添加到 MetaMask,然后在发送任何内容之前确认链 ID 匹配 97。
- 从官方 BNB Chain 水龙头获取 tBNB;测试网代币没有实际价值,并且有速率限制。
- 将 Hardhat、Foundry、viem 或 ethers 指向 JSON-RPC URL,并在配置中保留链 ID,以便意外的主网写入快速失败。
- 大多数测试网故障是链 ID 错误、缺少用于 gas 的 tBNB、过时的 nonce,或公共端点被限速或滞后。
- 对于 CI 管道和共享暂存环境,托管 RPC 端点或专用节点消除了共享公共端点的可变性。
BSC 测试网链设置一览
这些是将 BSC 测试网添加到钱包或指向客户端所需的值。链 ID 97 是实际区分此网络与 BNB Smart Chain 主网(链 ID 56)的字段,因此请在每个配置文件和钱包界面中验证它。
如果工具要求网络名称,“BNB Smart Chain 测试网”和“BSC 测试网”在实践中都被接受;名称是装饰性的,链 ID 不是。
| 标准 | 检查内容 | 为什么重要 |
|---|---|---|
| 网络名称 | BNB Smart Chain 测试网(也显示为 BSC 测试网) | 钱包中的装饰性标签;帮助您一眼区分测试网和主网。 |
| 链 ID | 97 | 权威标识符。不匹配会导致签名和交易失败。 |
| 原生 gas 代币 | tBNB | 用于 gas 的无价值测试代币;在任何写入调用成功之前,你需要一些。 |
| RPC URL | 你控制或信任的 JSON-RPC 端点 | 公共端点共享且可能被限速;托管端点对 CI 更可预测。 |
| 区块浏览器 | https://testnet.bscscan.com | 用于确认交易、读取回滚原因和验证合约。 |
| 货币小数位 | 18 | 与主网 BNB 格式匹配,因此你的 UI 和脚本行为相同。 |
将 BSC 测试网添加到 MetaMask 而不破坏主网
最常见的钱包错误是编辑现有的 BNB Smart Chain 主网条目,而不是添加新网络。将 BSC 测试网添加为单独的网络,以便主网保持完整,并且你的钱包清楚地显示你所在的链。
在 MetaMask 中,打开网络选择器,选择“添加网络”,然后选择“手动添加网络”,并填写上表中的链设置。保存,切换到新网络,并确认网络详情中的链 ID 显示为 97。如果你使用不同的钱包,字段名称可能不同,但值相同。
- 不要覆盖主网 BNB Smart Chain 条目——而是添加新网络。
- 保存后,切换网络并重新检查链 ID;一些钱包会缓存之前的链。
- 如果钱包显示 0 tBNB 余额,这是预期的,直到你从水龙头领取。
- 为测试网工作保留一个单独的账户,以便测试交易永远不会与主网历史混合。
从水龙头获取 tBNB
BSC 测试网 gas 用 tBNB 支付,你可以从官方 BNB Chain 测试网水龙头获取。水龙头有速率限制,可能需要少量主网 BNB 余额或钱包连接以防止滥用,因此请在 CI 运行之前而不是期间计划水龙头领取。
tBNB 没有实际价值。不要购买它,不要将真实资产桥接到测试网期望恢复它们,也不要将测试网余额视为生产数据。如果你需要更大数量进行负载测试,请通过水龙头的文档渠道请求,而不是编写重复领取的脚本。
- 将 tBNB 领取到你的部署脚本使用的同一地址。
- 首先为部署者账户提供资金;没有 gas 合约调用会失败。
- 水龙头限制按计划重置——查看水龙头页面了解当前规则。
- 保留少量 tBNB 缓冲,用于失败交易的 gas 和 nonce 重试。
将 Hardhat、Foundry、viem 或 ethers 指向 BSC 测试网 RPC
钱包设置完成后,下一步是将你的工具连接到 JSON-RPC 端点。模式在各框架中相同:将 RPC URL 存储在环境变量中,显式设置链 ID 97,并保留单独的主网配置,以便复制粘贴错误时大声失败,而不是静默部署到主网。
下面的代码片段使用 RPC URL 的占位符。将它们替换为你的提供商的端点——对于 OnFinality,当前的 BSC 测试网端点列在 BNB 测试网网络页面 上。
- Hardhat:添加一个
bscTestnet网络条目,包含url和chainId: 97。 - Foundry:在
foundry.toml中设置[rpc_endpoints] bsc_testnet = "${BSC_TESTNET_RPC_URL}"。 - viem:创建一个链对象,
id: 97,并传递传输 URL。 - ethers:使用
new JsonRpcProvider(url, 97),以便在连接时断言链 ID。
调试路径:当 BSC 测试网请求失败时
测试网故障通常归结为少数几种原因。按顺序处理它们——大多数在第一步或第二步解决,顺序可以避免你在真正问题是空钱包时追逐端点问题。
首先确认端点报告的链 ID,然后确认发送者有 tBNB,然后查看交易本身。如果链上一切看起来正确但调用仍然失败,端点是下一个怀疑对象。
| 标准 | 检查内容 | 为什么重要 |
|---|---|---|
chainId 返回 56 而不是 97 | 端点 URL 指向主网 | 为 97 签名的交易被拒绝;你也可能意外读取主网状态。 |
insufficient funds for gas | 发送者 tBNB 余额 | 测试网 gas 仍然花费 tBNB;在重试之前从水龙头领取。 |
nonce too low 或 replacement transaction underpriced | 待处理交易和本地 nonce 缓存 | 卡住或替换的交易使客户端与链不同步。 |
execution reverted 没有原因 | 合约调用输入和浏览器跟踪 | 公共端点通常省略回滚数据;浏览器显示失败的调用。 |
| 超时或 429 响应 | 端点速率限制和请求量 | 共享公共端点会节流;CI 作业和日志查询很快达到限制。 |
eth_getLogs 返回部分结果 | 区块范围大小和端点限制 | 大范围通常被限制;将查询拆分为更小的窗口。 |
当公共端点不够时
公共 BSC 测试网端点对于单个开发者点击 dApp 来说没问题。当多个 CI 作业、暂存前端和索引器都共享同一个被节流的 URL 时,它们就成了问题。症状看起来像不稳定的测试和间歇性超时,而不是干净的错误,这使得调试成本高昂。
托管 RPC 端点为你提供一个具有可预测限制的 URL,并在出现问题时提供支持路径。专用节点更进一步:为归档查询、日志密集型调试和共享端点可能无法可靠支持的 WebSocket 订阅提供隔离容量。OnFinality 提供两者——从 BNB 测试网网络页面 开始获取端点详情,并查看 支持的 RPC 网络 获取完整列表。
- 单个开发者,偶尔部署:公共端点通常足够。
- 团队 CI 与并行作业:托管端点避免共享节流。
- 归档读取、跟踪调用或大量
eth_getLogs:在提交之前检查方法支持。 - 长期 WebSocket 订阅:确认所选套餐的传输支持。
测试网到主网的准备清单
BSC 测试网紧密镜像主网,但通过的测试网运行并不是主网准备就绪的证明。在推广合约或服务之前,检查以下项目——每一项都能捕获一类仅靠测试网无法暴露的 bug。
目标不是重新测试所有内容,而是确认链 ID 97 和链 ID 56 之间的差异在你的配置、gas 假设和监控中得到明确处理。
- 链 ID 从配置读取,而不是硬编码在一个容易遗漏的地方。
- Gas 估算和优先费用在主网上重新测量;测试网条件不同。
- 合约地址是环境特定的,不在测试网和主网之间共享。
- 浏览器链接和监控仪表板指向正确的网络。
- 依赖水龙头的脚本在生产部署之前被移除或门控。
- RPC 端点和套餐的大小根据预期的主网流量而非测试网流量确定。
常见问题
BSC 测试网的链 ID 是什么?
BSC 测试网使用链 ID 97。BNB Smart Chain 主网使用链 ID 56。在签署交易之前,始终验证你的端点报告的链 ID。
BSC 测试网上的原生代币是什么?
原生 gas 代币是 tBNB。它没有价值,仅用于测试。你从官方 BNB Chain 测试网水龙头获取它。
如何将 BSC 测试网添加到 MetaMask?
打开网络选择器,选择“添加网络”,然后选择“手动添加网络”,并输入链设置:网络名称 BNB Smart Chain 测试网,链 ID 97,货币符号 tBNB,以及浏览器 URL https://testnet.bscscan.com。添加新网络而不是编辑现有的主网条目。
为什么我的 BSC 测试网交易因资金不足而失败?
测试网交易仍然花费 tBNB 作为 gas。如果发送者没有 tBNB,交易无法被包含。从水龙头领取 tBNB 到发送地址并重试。
我可以在 CI 中使用公共 BSC 测试网 RPC 端点吗?
可以,但公共端点共享且通常被限速,这表现为不稳定的测试和超时。对于 CI 管道和共享暂存环境,托管 RPC 端点或专用节点更可预测。
BSC 测试网和 BNB Smart Chain 测试网一样吗?
是的。BSC 测试网、BNB Smart Chain 测试网和 BNB Chain 测试网都指同一个链 ID 为 97 的网络。在配置工具时匹配链 ID。