垃圾 NFT 及其解决方法
作者 Alchemy
本文将介绍什么是垃圾 NFT、为什么它们会给 NFT dapp 开发者和用户带来问题,以及如何使用Alchemy 的 NFT API 端点过滤垃圾 NFT。
什么是垃圾 NFT?
垃圾 NFT 是指未经请求就被发送或空投到你的钱包地址的非同质化代币(NFT),你没有购买它们,也不想要它们。
由于任何人都可以在公链上向钱包地址发送和接收代币,你的钱包中偶尔会出现不想要的 NFT。
垃圾 NFT 和空投 NFT 有什么区别?
垃圾 NFT 指的是空投 NFT 中用户不想要的那部分。
空投到你钱包中的免费 NFT 未必算是垃圾。例如,为了给收藏者提供额外价值,一些生成式 NFT 系列会创建 NFT 并空投给收藏者。虽然这类 NFT 通常转售价值不高,但保留在收藏中也很有意思,因为它可以证明你参与了该社区。
为什么有人会发送垃圾 NFT?
人们发送未经请求的垃圾 NFT 的原因有很多,包括:
- 引起知名 NFT 收藏者的关注
- 让钱包所有者感到尴尬或烦恼
- 尝试钓鱼攻击,从钱包所有者那里窃取代币
- 推广新的 NFT 项目
随着NFT 市场的增长,垃圾 NFT 已成为一个日益严重的问题。
为什么垃圾 NFT 是个问题?
垃圾 NFT 之所以成为问题,主要有两个原因:它们经常被黑客利用,而且会给 NFT 收藏者带来糟糕的用户体验。
1. 诈骗者
诈骗者可以利用垃圾 NFT 诱骗用户分享私钥、签署消息,或确认将资金转入黑客账户的交易。
诈骗者可能会将 NFT 空投到钱包中,希望所有者会点击钓鱼链接,进入诈骗网站。诈骗者随后可能会诱导毫不知情的钱包持有者登录其 Ethereum 钱包,批准该交易并"领取"免费的 NFT。
一旦钱包签署了交易,诈骗者就可以卷走该钱包中的资金和 NFT。
其中一些网站会使用 eth_sign——一种不安全的方法,它允许签署诸如"发送你的以太币"之类的任意消息,可能导致你的账户和资产被他人控制。
虽然这些诈骗网站可能极具迷惑性,但它们往往存在一些危险信号,比如使用奇怪的措辞,或做出看起来好得不真实的承诺。
保护钱包最好的方法是永远不要与未知的智能合约交互。如果发现钱包中有垃圾 NFT,最安全的做法是不理会它们,或将其发送到销毁地址。
2. 糟糕的用户体验
由于 NFT 与艺术、实用性和创作者紧密相关,展示自己的收藏是一件值得骄傲的事,而钱包中垃圾 NFT 与最有价值的 NFT 混在一起,会造成糟糕的用户体验。
对于构建 NFT 分析工具、画廊或交易市场的开发者来说,垃圾 NFT 也是个问题,因为它会导致数据不准确,让不知情的用户误以为某个项目比实际情况更受欢迎。
为了确保 NFT 持有者和收藏者获得最佳用户体验,平台需要使用具备强大垃圾过滤功能和自定义设置的 NFT API。
Alchemy 的 NFT API 如何帮助处理垃圾 NFT?
Alchemy 的 NFT API 可以通过 getNFTs 的垃圾过滤器、isSpamForContract 以及 getSpamContracts 端点来过滤垃圾 NFT。
使用 Alchemy API 的 NFT 开发者可以在 getNFTsForOwner(即 getNFTs)API 端点上添加一个过滤器,排除已被归类为垃圾的 NFT。
isSpamForContract NFT API 端点用于检查某个特定合约是否已被归类为垃圾。你可以按合约地址进行过滤,这意味着你也可以查找某个特定 NFT 的持有者,并检查这是否是他们唯一持有的 NFT。
getSpamContracts NFT API 端点会返回所选链上所有 ERC 721 和 ERC 1155 垃圾合约的列表。
截至 2023 年 8 月,Alchemy NFT API 已标记超过 60 万个智能合约地址为垃圾合约。
如何使用 Alchemy 的 NFT API 过滤垃圾 NFT
有多种方法可以利用我们的垃圾检测功能来改善你应用的用户体验。
最常见的方法是在 getNFTsForOwner(即 getNFTs)端点上开启 SPAM 排除过滤器,从而只获取钱包中的合法 NFT。
isSpamContract 可用于判断某个特定代币是否属于垃圾合约。
getSpamContracts 提供了更高的灵活性,你可以存储垃圾合约列表,并针对这些合约采取你希望的任何处理方式!
垃圾 NFT 是如何被判定的?
垃圾判定涉及广泛的标准,包括但不限于发出虚假事件、抄袭其他知名 NFT、谎报其总供应量等。
我们在判定垃圾 NFT 时主要考虑以下问题:
- 如果该合约是 ERC721 或 1155,它是否违反了所实现的 ERC 标准?如果是,违反的程度有多严重?
- 该合约是否以向知名的"蜜罐钱包"(例如 vitalik.eth)铸造大量代币而闻名?
- 该合约是否严重谎报其总供应量或其他属性?
- 元数据是否是抄袭自其他 NFT 系列?是否为空白?
- 这些 NFT 在各交易市场上的交易活跃程度如何?
- 是否有用户将该代币举报为垃圾?
我们综合运用这些启发式方法,来判定一个 NFT 是否属于垃圾。
如果你的智能合约被错误地标记为垃圾,或者你发现了一个绕过垃圾过滤器的垃圾 NFT 合约地址,请通过 Discord 向我们的团队报告,我们会尽力为你解决问题!
如何在 Ethereum 上销毁垃圾 NFT
要销毁垃圾 NFT,可将其发送到销毁地址,例如"0xdead"地址 0x000000000000000000000000000000000000dEaD。
相关概览

构建区块链应用
Alchemy 将最强大的 Web3 开发者产品和工具与资源、社区及专业支持结合在一起。


