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

运行Web3.js查询以太坊账户余额报ERR_INVALID_ARG_TYPE错误如何解决?

报错解决方案

报错触发的原因是你代码第8行const privatekey1 = Buffer.from(process.env.PRIVATE_KEY_1)执行时,process.env.PRIVATE_KEY_1的值为undefined,不符合Buffer.from对入参的类型要求,和你安装的web3、ethereumjs-tx包没有关系。

场景1:仅需要实现查询账户余额功能

查询以太坊地址余额不需要用到账户私钥,你可以直接删除代码中以下两行即可正常运行:

const privatekey1 = Buffer.from(process.env.PRIVATE_KEY_1)
const privatekey2 = Buffer.from(process.env.PRIVATE_KEY_2)

删除后执行node app.js即可正常输出两个地址的余额。

场景2:后续需要用到私钥做签名、转账等操作,需要保留私钥定义代码

你需要给运行环境配置对应的环境变量,可选方案如下:

  • 方案1:使用dotenv包管理环境变量
  1. 执行命令安装dotenv:
    npm install dotenv
  2. 在项目根目录新建.env文件,写入以下内容(替换为你自己的账户私钥,私钥不要带0x前缀):
PRIVATE_KEY_1=你的第一个账户私钥
PRIVATE_KEY_2=你的第二个账户私钥
  1. 在app.js文件的第一行添加引入配置:
    require('dotenv').config()
  2. 重新执行node app.js即可正常运行。
  • 方案2:运行命令时临时注入环境变量
    根据你使用的终端类型选择对应命令:
    • Windows CMD:set PRIVATE_KEY_1=你的私钥1&& set PRIVATE_KEY_2=你的私钥2&& node app.js
    • Windows PowerShell:$env:PRIVATE_KEY_1="你的私钥1"; $env:PRIVATE_KEY_2="你的私钥2"; node app.js
    • Linux/Mac 终端:PRIVATE_KEY_1=你的私钥1 PRIVATE_KEY_2=你的私钥2 node app.js

注意:私钥属于敏感信息,不要泄露给他人,使用dotenv方案时请将.env文件加入.gitignore避免被提交到代码仓库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:24:02