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

调用NFT合约balanceOf方法报错:TypeError: contract.methods.balanceOf is not a function

解决TypeError: contract.methods.balanceOf is not a function问题
  • 检查ABI的完整性与正确性
    ERC721/ERC1155标准NFT合约都包含balanceOf方法,若你的ABI中缺失该方法,就会触发此错误。务必使用目标NFT合约的完整ABI,而非片段ABI。比如ERC721的balanceOf在ABI中的定义示例:

    {
      "constant": true,
      "inputs": [{"name": "_owner", "type": "address"}],
      "name": "balanceOf",
      "outputs": [{"name": "", "type": "uint256"}],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
    

    可通过对应区块链的浏览器导出目标合约的完整ABI。

  • 验证合约地址准确性
    确认你传入web3.eth.Contract的地址是目标NFT的合约地址,而非其他无关合约地址。地址错误会导致连接到不包含balanceOf方法的合约,进而报错。

  • 排查Web3版本兼容性
    Web3.js不同版本的合约实例创建语法有差异:

    • 若使用v1.x版本,你的代码写法是正确的:new web3.eth.Contract(ABI, ADDRESS)
    • 若使用v4.x版本,需改为:new web3.Contract(ABI, ADDRESS)
      版本不匹配会导致合约方法无法正常被识别。
  • 确认account变量已正确初始化
    确保account变量是有效的以太坊地址,且在调用balanceOf前已通过connect()方法正确赋值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 00:56:08