You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在BSC主网使用Web3发送BNB报错及相关问题咨询

问题解答

操作思路问题

你的操作思路有误。BSC主网的BNB是原生代币,和以太坊上的ETH地位完全一致,不需要通过ERC20/BEP20合约来实现转账、查询小数位等操作。你当前用合约实例去调用decimals()的方式是错误的,这也是触发报错的核心原因——你要么用了错误的合约地址(比如以太坊链上的地址),要么用了不匹配的ABI,而本质上原生BNB根本不需要通过合约来操作。

能否在BSC主网发送BNB

完全可以,BNB是BSC主网的原生资产,既是网络交易的Gas燃料,也可以直接作为转账资产。

BNB代币地址相关

  • 如果你操作的是BSC原生BNB:不存在合约地址,直接通过web3.eth.sendTransaction方法转账即可,小数位固定为18。
  • 你在Etherscan.io找到的0xB8c77482e45F1F44dE1745F52C74426C631bDD52是以太坊链上的ERC20格式BNB地址,并非BSC主网的地址,所以在BSC节点上调用这个地址的合约会报错(因为该地址在BSC链上对应的合约和你用的ABI不匹配,甚至可能不是合约)。
  • 如果你需要操作BSC主网的BEP20格式Wrapped BNB(WBNB),它的合约地址是0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c,但这是BNB的封装代币,和原生BNB是1:1映射的,普通转账不需要用到它。

ABI的使用

如果是操作原生BNB,不需要任何ABI;如果是操作BSC上的WBNB,需要用BSC链上该合约的ABI(去BSC区块浏览器查询,而非Etherscan)。你之前用Etherscan上的ABI是错误的,因为那对应以太坊链上的合约,和BSC链上的合约不兼容。

正确的BSC原生BNB转账示例

// 初始化Web3连接
const web3 = new Web3('https://bsc-dataseed1.binance.org:443');

// 转账参数(注意金额要转成wei,BNB小数位是18)
const transferParams = {
  from: '你的钱包地址',
  to: '接收地址',
  value: web3.utils.toWei('0.1', 'ether') // 转0.1 BNB
};

// 发送交易(需要钱包签名,这里假设你已经解锁了钱包或有私钥)
web3.eth.sendTransaction(transferParams)
  .on('transactionHash', (hash) => {
    console.log('交易哈希:', hash);
  })
  .on('receipt', (receipt) => {
    console.log('交易完成:', receipt);
  })
  .catch((error) => {
    console.error('交易失败:', error);
  });

内容的提问来源于stack exchange,提问作者blue water

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 23:02:50