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

使用Alchemy与Sepolia铸造NFT时遇404错误求助

解决Alchemy铸造NFT时的404 Not Found错误

以下是针对该问题的排查和修复步骤:

1. 修正AlchemyProvider的使用方式(最可能的触发原因)

在ethers v6版本中,AlchemyProvider的第二个参数要求传入纯Alchemy API密钥字符串,而非完整的RPC请求URL。如果你传入的是类似https://eth-sepolia.g.alchemy.com/v2/xxx的完整地址,会导致请求路径错误,返回404。

两种修复方案:

  • 方案一:改用JsonRpcProvider传入完整URL:
    // 替换原有provider创建代码
    const provider = new ethers.JsonRpcProvider(process.env.API_URL);
    
  • 方案二:将环境变量API_URL改为仅存储Alchemy API密钥,保留AlchemyProvider:
    // 确保process.env.API_KEY仅为你的Alchemy密钥字符串
    const provider = new ethers.AlchemyProvider("sepolia", process.env.API_KEY);
    

2. 确保环境变量正确加载

你的代码未显式加载环境变量配置,若未做全局配置,process.env中的变量可能为空,导致请求无效地址。

在mint.js顶部添加环境变量加载代码:

require('dotenv').config(); // 需先安装依赖:npm install dotenv

同时检查.env文件的变量格式是否正确:

API_URL=https://eth-sepolia.g.alchemy.com/v2/你的Alchemy密钥
PRIVATE_KEY=你的钱包私钥
CONTRACT_ADDRESS=Sepolia网络上的合约地址
PUBLIC_KEY=你的钱包公钥

3. 验证Alchemy API密钥的网络匹配

登录Alchemy后台,确认你的API密钥对应的App是创建在Sepolia测试网下,而非主网或已停用的Goerli等其他测试网。

4. 确认合约地址有效性

检查CONTRACT_ADDRESS是否为你在Sepolia网络上成功部署的合约地址,复制时避免多空格或字符缺失。

修复后的完整示例代码

require('dotenv').config();
const { ethers } = require("ethers");

const contract = require("../artifacts/contracts/avatar.sol/avatar.json");  
const contractInterface = contract.abi;

const provider = new ethers.JsonRpcProvider(process.env.API_URL);

const wallet = new ethers.Wallet(process.env.PRIVATE_KEY, provider);

const Avatar = new ethers.Contract(process.env.CONTRACT_ADDRESS, contractInterface, wallet);

const main = async () => {  
    try {  
      const transaction = await Avatar.mint(process.env.PUBLIC_KEY);  
      console.log("交易哈希:", transaction.hash);
      await transaction.wait(); // 等待交易上链确认
      console.log("NFT铸造完成");
    } catch (e) {  
      console.log("something went wrong", e);  
    }  
};

main();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 07:32:48