自定义ERC-1155 NFT在Goerli测试网Etherscan无法显示预览按钮
问题背景
- 已将ERC-1155智能合约部署至Goerli测试网,合约地址为
0xE4e0b1FA4b3f4B947A14D429962eD30fEc9b9a96 - 已执行该合约首笔交易,向地址
0x771d8Ef1FA5b7fDE4cBd88925F21cF97D8b8A46D转入1枚NFT - 异常表现:在Etherscan对应账户的ERC1155 Token Txns标签页可查询到该代币记录,但代币旁未显示OpenSea渠道NFT常见的View NFT按钮,正常显示效果参考:

- 当前元数据配置:
- 元数据存储于IPFS,对应URI为
https://bafyreige3aa4bqeoy52rswmpkhzrlpitpvsyfp5hpusfuq52wdybuyerfi.ipfs.dweb.link/metadata.json - 元数据内容如下:
- 元数据存储于IPFS,对应URI为
{"name":"Goerli test 6","description":"","image":"https://bafkreidkn5flzjnvcdginsktvzbcrslqd7wrabjavejectvqxi2xq5v6bm.ipfs.dweb.link/"}
待解决疑问
- 需要完成哪些配置操作才可让Etherscan正常预览该NFT?
- 该问题是否由智能合约逻辑缺陷或元数据格式不符合规范导致?
解答
原因判定
该问题不属于合约核心转账/发行逻辑缺陷,核心原因是未完成Etherscan平台的代币准入配置,同时存在两处细节不符合Etherscan的NFT解析规则:
- Etherscan不会为新部署的ERC-1155合约自动挂载NFT预览入口,未提交代币信息审核、未完成合约源码验证的合约,默认不会显示View NFT按钮
- 现有元数据存在解析兼容问题:
image字段末尾多余的斜杠会导致Etherscan解析器无法识别该资源为可加载的图片文件;同时元数据缺少标准ERC-1155建议携带的attributes字段,会降低解析成功率 - 若合约内
uri(uint256 _id)方法为硬编码返回固定URI、未做token ID和URI的映射匹配,Etherscan无法为单个NFT拉取专属元数据,也会屏蔽预览入口
操作步骤
按以下顺序操作即可正常显示预览入口:
- 完成合约源码验证
进入合约对应的Etherscan页面Contract标签页,提交匹配的合约源码、编译版本、优化参数,完成源码校验,直到页面显示合约已验证的绿色标识。 - 修正合约URI逻辑
确保uri(uint256 _id)方法可根据传入的token ID返回对应元数据地址,即使是单NFT测试场景,也要保证传入对应token ID时返回准确的元数据URI,不要返回无ID映射的通用固定URI。 - 修正元数据格式
去掉image字段链接末尾的多余斜杠,补充空数组格式的attributes字段,修正后的参考元数据如下:
{ "name": "Goerli test 6", "description": "", "image": "https://bafkreidkn5flzjnvcdginsktvzbcrslqd7wrabjavejectvqxi2xq5v6bm.ipfs.dweb.link", "attributes": [] }
将修正后的元数据重新上传至IPFS,更新合约内对应token ID指向的URI。
- 提交Etherscan代币信息审核
在Etherscan代币提交通道选择ERC-1155分类,提交合约地址、项目名称、图标、描述等基础信息,等待平台审核通过。 - 刷新元数据缓存
审核通过后,在Etherscan对应代币页面申请元数据缓存刷新,等待10-30分钟缓存更新后,即可看到View NFT按钮和正常的NFT预览内容。
补充说明:Goerli测试网目前已逐步停止官方维护,平台缓存更新速度远慢于主网,若操作完成后未立即显示,等待数小时再查看即可,无需重复部署合约。
内容的提问来源于stack exchange,提问作者Austin
相关产品推荐
相关产品推荐

