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

使用Hardhat+Hedera+Arkhia编译Solidity合约时私钥长度报错

解决Hardhat连接Hedera网络时“私钥过短,预期32字节”的错误

出现这个错误的核心原因是Hedera原生私钥格式和Hardhat期望的EVM兼容32字节私钥格式不匹配,不管是DER编码还是原生十六进制私钥,都需要做格式转换才能被Hardhat识别。

步骤1:提取/转换出正确的32字节私钥

Hedera的Ed25519类型私钥包含额外元数据,需要提取核心的32字节部分,或用Hedera SDK直接转换:

方法A:手动提取(针对十六进制/DER私钥)

如果你的私钥是DER编码格式(类似302e020100300506032b657004220420...),找到字符串中0420之后的64个字符,这就是32字节的私钥内容,给它加上0x前缀即可。
如果是Hedera原生十六进制私钥,同样提取0420后的64位字符,加0x前缀。

方法B:用Hedera SDK自动转换

写个简单的Node.js脚本快速转换:

const { PrivateKey } = require("@hashgraph/sdk");

// 替换成你的Hedera私钥(DER字符串或十六进制字符串都可)
const hederaPrivateKey = "你的Hedera私钥";
const privateKey = PrivateKey.fromString(hederaPrivateKey);
// 生成带0x前缀的32字节EVM兼容私钥
const evmPrivateKey = `0x${privateKey.toStringRaw()}`;

console.log("转换后的EVM兼容私钥:", evmPrivateKey);

运行脚本后,复制输出的私钥即可。

步骤2:修正Hardhat配置

  1. 修正Arkhia RPC URL格式:需将API Key作为查询参数拼接,而非直接拼接URL和Key:
    const arkhiaJsonRpcRelayTestnet = `https://testnet.arkhia.io/json-rpc/hedera/testnet?api-key=${process.env.ARKHIA_API_KEY}`;
    
  2. 把转换后的私钥存入.env文件(禁止硬编码在代码中):
    ARKHIA_API_KEY=你的Arkhia API密钥
    OPERATOR_PRIVATE_KEY=转换后的带0x前缀的32字节私钥
    
  3. 更新hardhat.config.js的账户配置:
    require("@nomicfoundation/hardhat-toolbox");
    require('dotenv').config({path: '.env'});
    
    const arkhiaJsonRpcRelayTestnet = `https://testnet.arkhia.io/json-rpc/hedera/testnet?api-key=${process.env.ARKHIA_API_KEY}`;
    const operatorPrivateKey = process.env.OPERATOR_PRIVATE_KEY;
    
    module.exports = {
       defaultNetwork: "hedera",
       solidity: {
         version: "0.8.0",
         settings: {
           optimizer: {
             enabled: true,
             runs: 200,
           },
         },
       },
       networks: {
         hedera: {
           url: arkhiaJsonRpcRelayTestnet,
           accounts: [operatorPrivateKey]
         }
       },
     };
    

验证

运行npx hardhat accounts命令,若能正常输出账户地址,说明私钥配置正确,可正常编译部署合约。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 06:10:37