使用Alchemy在Hardhat部署至Goerli测试网遇错误求助
解决Hardhat部署ERC721到Goerli测试网的两类错误
执行命令 npx hardhat run scripts/deploy.js --network goerli 通过Alchemy部署ERC721到Goerli测试网时,先后触发「Invalid URL」和「私钥过长,预期32字节」错误,以下是针对性修复方案:
错误1:Invalid URL
错误原因
从错误日志的input字段可见,读取到的API URL为带引号和分号的格式:"https://eth-goerli.g.alchemy.com/v2/uR8fEpEHIqXWM_tfZ7gg0utbi0705htE";,说明你的.env文件中API_URL参数被多余的引号和分号包裹,导致URL解析失败。
修复步骤
打开项目根目录的.env文件,将API_URL的格式修正为纯URL字符串,删除前后的引号和分号:
API_URL=https://eth-goerli.g.alchemy.com/v2/你的Alchemy项目密钥
错误2:私钥过长,预期32字节
错误原因
两种常见场景:
.env文件中的PRIVATE_KEY已经带有0x前缀,而hardhat.config.js中又额外拼接了0x,最终私钥变成0x0x...格式,长度超出32字节要求;- 复制私钥时混入了换行符、空格或其他多余字符,导致私钥长度不符合标准。
修复步骤
- 检查
.env中的PRIVATE_KEY:确保是纯64位十六进制字符串,无0x前缀、无多余符号和换行:
PRIVATE_KEY=你的钱包私钥(纯64位十六进制,不要0x)
- 对应修改
hardhat.config.js中的accounts配置:
// 如果.env里的私钥没有0x前缀,保留0x拼接 accounts: [`0x${PRIVATE_KEY}`], // 如果.env里的私钥已经带0x,直接引用即可 // accounts: [PRIVATE_KEY],
验证修复
修改完成后,重新执行部署命令:
npx hardhat run scripts/deploy.js --network goerli
若配置正确,控制台会输出合约部署地址。
内容的提问来源于stack exchange,提问作者Sonikesh
相关产品推荐
相关产品推荐

