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

BEP20代币在BSC测试网账户间转账的Web3实现示例及问题求助

BSC测试网BEP20代币跨账户转账操作指南

前置检查项

操作前先确认所有基础配置符合要求,避免低级错误:

  • 两个账户都持有足够的BSC测试网BNB作为gas费
  • 转出账户的目标BEP20代币余额≥转账金额,注意大部分BEP20代币精度为18位,转账数值需要对应乘以10^18计算
  • 调用的合约地址为BSC测试网对应的BEP20合约地址,未误用主网地址
  • 钱包/代码连接的是BSC测试网节点,正确RPC为https://data-seed-prebsc-1-s1.binance.org:8545/,链ID为97

方法1:通过MetaMask等加密钱包直接操作

  • 打开钱包,手动切换到BSC测试网网络
  • 在资产栏选择「导入代币」,输入目标BEP20的测试网合约地址,完成代币导入
  • 点击对应代币的「发送」按钮,输入接收方地址、转账金额,按提示确认交易即可

方法2:通过ethers.js代码实现转账

参考代码示例:

const { ethers } = require("ethers");

// 连接BSC测试网RPC
const provider = new ethers.providers.JsonRpcProvider("https://data-seed-prebsc-1-s1.binance.org:8545/");
// 填入转出账户私钥,测试环境禁止使用主网私钥
const signer = new ethers.Wallet("你的转出账户私钥", provider);
// BEP20合约极简ABI
const bep20Abi = [
  "function transfer(address to, uint amount) external returns (bool)",
  "function decimals() external view returns (uint8)"
];
// 替换为目标BEP20的测试网合约地址
const tokenContract = new ethers.Contract("BEP20测试网合约地址", bep20Abi, signer);

async function transferBEP20(toAddress, amount) {
  const decimals = await tokenContract.decimals();
  // 自动转换精度对应的转账数值
  const transferAmount = ethers.utils.parseUnits(amount.toString(), decimals);
  // 发起转账交易
  const tx = await tokenContract.transfer(toAddress, transferAmount, {
    gasLimit: 250000 // 手动设置gas上限避免估算失败
  });
  console.log("交易哈希:", tx.hash);
  await tx.wait();
  console.log("转账交易已上链确认");
}

// 调用示例:转1个目标BEP20代币到指定地址
transferBEP20("接收方钱包地址", 1);

常见报错排查

  • 提示insufficient funds:检查转出账户的测试BNB余额是否足够支付gas,或者目标BEP20代币余额是否覆盖转账金额
  • 提示gas required exceeds allowance:手动调高gasLimit参数到250000以上即可,部分BEP20合约转账消耗gas高于默认估算值
  • 提示invalid address:检查接收地址、合约地址是否符合EVM地址格式,无多输漏输字符
  • 链上交易执行失败:到BSC测试网浏览器输入交易哈希即可查看具体失败原因

相关错误截图:
错误截图1
错误截图2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:06:01