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

使用Hardhat部署至Mumbai网络时遇HH8错误:Invalid account #0求助

问题描述

执行命令 npx hardhat run scripts/deploy.js --network mumbai 时触发HH8错误,提示:

Invalid account: #0 for network: mumbai - Expected string, received undefined

已尝试两篇Stack Overflow方案但无效,附上当前hardhat.config.js代码:

/* hardhat.config.js */
require("@nomiclabs/hardhat-waffle");


module.exports = {
  defaultNetwork: "hardhat",
  networks: {
    hardhat: {
      chainId: 1337
    },

  mumbai: {
    url: "https://rpc-mumbai.maticvigil.com",
   accounts: [process.env.privateKey]
  }
  
  },
  solidity: {
    version: "0.8.4",
    settings: {
      optimizer: {
        enabled: true,
        runs: 200
      }
    }
  }
}
解决方法

这个错误的核心是process.env.privateKey没有读取到有效私钥值,导致accounts数组第一个元素为undefined,不符合Hardhat要求的字符串格式。按以下步骤修复:

  • 配置环境变量读取私钥

    1. 在项目根目录新建.env文件,写入你的Mumbai测试网钱包私钥:privateKey=你的64位十六进制私钥字符串(带0x前缀也可)
    2. 在hardhat.config.js顶部添加环境变量加载代码,并安装依赖:
      require("@nomiclabs/hardhat-waffle");
      require("dotenv").config(); // 新增该行,用于读取.env文件
      
      执行命令安装依赖:npm install dotenv --save-dev
  • 验证私钥格式
    确保私钥是无多余空格、换行的纯字符串,长度为64位(带0x则为66位),避免复制时遗漏字符。

  • 临时测试方案(不推荐长期使用)
    若不想用环境变量,可直接将私钥写入配置(注意绝对不要提交到公开代码仓库):

    mumbai: {
      url: "https://rpc-mumbai.maticvigil.com",
      accounts: ["你的完整私钥字符串"]
    }
    
  • 关于"账户0"的说明
    错误中的#0指的是accounts数组的第一个元素,并非本地Hardhat生成的测试账户,不需要删除任何账户,只需确保该位置是有效的私钥字符串即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 06:49:06