如何使用Hardhat向本地Metamask钱包转入以太币?
Hardhat本地节点给指定地址转账ETH的方法
- 使用Hardhat默认测试账户直接转账
Hardhat启动npx hardhat node本地节点时,会默认生成20个预装10000ETH的测试账户,启动日志会打印所有账户的地址和私钥。你只需选择任意一个账户的私钥导入Metamask,就可以直接在Metamask中向目标地址发起转账,额度自定义即可。 - 使用Hardhat脚本批量/定向转账
在项目scripts目录下新建转账脚本sendETH.js,参考代码如下:
const hre = require("hardhat"); async function main() { // 取Hardhat默认的第一个测试账户作为转出方 const [sender] = await hre.ethers.getSigners(); // 替换为你的目标地址 const receiver = "0x你要转账的目标地址"; // 转账金额,这里示例转100ETH const amount = hre.ethers.utils.parseEther("100"); const tx = await sender.sendTransaction({ to: receiver, value: amount }); await tx.wait(); console.log(`已向${receiver}转账100ETH,交易哈希:${tx.hash}`); } main().catch((error) => { console.error(error); process.exitCode = 1; });
脚本编写完成后,在终端运行以下命令执行转账:npx hardhat run scripts/sendETH.js --network localhost
- 使用Hardhat控制台直接执行转账
终端运行命令进入Hardhat控制台环境:npx hardhat console --network localhost
依次输入以下命令即可完成转账,可根据需求调整金额:
// 获取默认测试转出账户 const [sender] = await ethers.getSigners() // 执行转账,替换目标地址和金额即可 await sender.sendTransaction({to: "0x目标地址", value: ethers.utils.parseEther("100")})
- 配置节点预资助指定地址(可选)
如果你希望目标地址每次启动Hardhat节点时默认自带足够ETH,可以修改hardhat.config.js的网络配置,添加预资助规则:
module.exports = { networks: { localhost: { url: "http://127.0.0.1:8545", // 配置预资助的账户,balance单位是wei,以下对应10000ETH accounts: [ { privateKey: "你的目标地址私钥", balance: "10000000000000000000000" } ] } } }
修改配置后重启Hardhat本地节点,对应地址就会有配置的余额,无需额外转账。
内容的提问来源于stack exchange,提问作者goonerify
相关产品推荐
相关产品推荐

