---
title: "垃圾 NFT 及其解决方法"
description: "如何使用 Alchemy 的 NFT API 查找、标记和过滤垃圾 NFT"
---

# 垃圾 NFT 及其解决方法

本文将介绍什么是垃圾 NFT、为什么它们会给 NFT dapp 开发者和用户带来问题，以及如何使用[**Alchemy 的 NFT API** 端点](https://www.alchemy.com/docs/data/nft-api/api-reference/nft-spam-endpoints/is-spam-contract-v-3)过滤垃圾 NFT。

## 什么是垃圾 NFT？

**垃圾 NFT 是指未经请求就被发送或空投到你的钱包地址的非同质化代币（NFT），你没有购买它们，也不想要它们。**

由于任何人都可以在公链上向钱包地址发送和接收代币，你的钱包中偶尔会出现不想要的 NFT。

## 垃圾 NFT 和空投 NFT 有什么区别？

**垃圾 NFT 指的是空投 NFT 中用户不想要的那部分。**

空投到你钱包中的免费 NFT 未必算是垃圾。例如，为了给收藏者提供额外价值，一些[**生成式 NFT 系列**](https://www.alchemy.com/overviews/solana-generative-nfts)会创建 NFT 并空投给收藏者。虽然这类 NFT 通常转售价值不高，但保留在收藏中也很有意思，因为它可以证明你参与了该社区。

## 为什么有人会发送垃圾 NFT？

人们发送未经请求的垃圾 NFT 的原因有很多，包括：

1. 引起知名 NFT 收藏者的关注
1. 让钱包所有者感到尴尬或烦恼
1. 尝试钓鱼攻击，从钱包所有者那里窃取代币
1. 推广新的 NFT 项目

随着[NFT 市场](https://www.alchemy.com/dapps/best/nft-marketplaces)的增长，垃圾 NFT 已成为一个日益严重的问题。

## 为什么垃圾 NFT 是个问题？

垃圾 NFT 之所以成为问题，主要有两个原因：它们经常被黑客利用，而且会给 NFT 收藏者带来糟糕的用户体验。

### 1. 诈骗者

诈骗者可以利用垃圾 NFT 诱骗用户分享私钥、签署消息，或确认将资金转入黑客账户的交易。

诈骗者可能会将 NFT 空投到钱包中，希望所有者会点击钓鱼链接，进入诈骗网站。诈骗者随后可能会诱导毫不知情的钱包持有者登录其 Ethereum 钱包，批准该交易并"领取"免费的 NFT。

一旦钱包签署了交易，诈骗者就可以卷走该钱包中的资金和 NFT。

其中一些网站会使用 **eth_sign**——一种不安全的方法，它允许签署诸如"发送你的以太币"之类的任意消息，可能导致你的账户和资产被他人控制。

虽然这些诈骗网站可能极具迷惑性，但它们往往存在一些危险信号，比如使用奇怪的措辞，或做出看起来好得不真实的承诺。

保护钱包最好的方法是永远不要与未知的智能合约交互。如果发现钱包中有垃圾 NFT，最安全的做法是不理会它们，或将其发送到销毁地址。

### 2. 糟糕的用户体验

由于 NFT 与艺术、实用性和创作者紧密相关，展示自己的收藏是一件值得骄傲的事，而钱包中垃圾 NFT 与最有价值的 NFT 混在一起，会造成糟糕的用户体验。

对于构建 [NFT 分析工具](https://www.alchemy.com/overviews/solana-nft-analytics-tools)、画廊或交易市场的开发者来说，垃圾 NFT 也是个问题，因为它会导致数据不准确，让不知情的用户误以为某个项目比实际情况更受欢迎。

为了确保 NFT 持有者和收藏者获得最佳用户体验，平台需要使用具备强大垃圾过滤功能和自定义设置的 [NFT API](https://www.alchemy.com/docs/reference/nft-api-quickstart)。

## Alchemy 的 NFT API 如何帮助处理垃圾 NFT？

Alchemy 的 NFT API 可以通过 **getNFTs** 的垃圾过滤器、**isSpamForContract** 以及 **getSpamContracts** 端点来过滤垃圾 NFT。

使用 Alchemy API 的 NFT 开发者可以在 getNFTsForOwner（即 getNFTs）API 端点上添加一个过滤器，排除已被归类为垃圾的 NFT。

[**isSpamForContract**](https://www.alchemy.com/docs/data/nft-api/api-reference/nft-spam-endpoints/is-spam-contract-v-3) NFT API 端点用于检查某个特定合约是否已被归类为垃圾。你可以按合约地址进行过滤，这意味着你也可以查找某个特定 NFT 的持有者，并检查这是否是他们唯一持有的 NFT。

[**getSpamContracts**](https://www.alchemy.com/docs/data/nft-api/api-reference/nft-spam-endpoints/is-spam-contract-v-3) NFT API 端点会返回所选链上所有 ERC 721 和 ERC 1155 垃圾合约的列表。

截至 2023 年 8 月，Alchemy NFT API 已标记超过 60 万个智能合约地址为垃圾合约。

### 如何使用 Alchemy 的 NFT API 过滤垃圾 NFT

有多种方法可以利用我们的垃圾检测功能来改善你应用的用户体验。

最常见的方法是在 [**getNFTsForOwner**](https://www.alchemy.com/docs/reference/nft-api-endpoints/nft-api-endpoints/nft-ownership-endpoints/get-nf-ts-for-owner-v-3)（即 getNFTs）端点上开启 SPAM 排除过滤器，从而只获取钱包中的合法 NFT。

[**isSpamContract**](https://www.alchemy.com/docs/data/nft-api/api-reference/nft-spam-endpoints/is-spam-contract-v-3) 可用于判断某个特定代币是否属于垃圾合约。

[**getSpamContracts**](https://www.alchemy.com/docs/data/nft-api/api-reference/nft-spam-endpoints/get-spam-contracts-v-3) 提供了更高的灵活性，你可以存储垃圾合约列表，并针对这些合约采取你希望的任何处理方式！

## 垃圾 NFT 是如何被判定的？

**垃圾判定涉及广泛的标准，包括但不限于发出虚假事件、抄袭其他知名 NFT、谎报其总供应量等。**

我们在判定垃圾 NFT 时主要考虑以下问题：

1. 如果该合约是 ERC721 或 1155，它是否违反了所实现的 ERC 标准？如果是，违反的程度有多严重？
1. 该合约是否以向知名的"蜜罐钱包"（例如 vitalik.eth）铸造大量代币而闻名？
1. 该合约是否严重谎报其总供应量或其他属性？
1. 元数据是否是抄袭自其他 NFT 系列？是否为空白？
1. 这些 NFT 在各交易市场上的交易活跃程度如何？
1. 是否有用户将该代币举报为垃圾？

我们综合运用这些启发式方法，来判定一个 NFT 是否属于垃圾。

如果你的智能合约被错误地标记为垃圾，或者你发现了一个绕过垃圾过滤器的垃圾 NFT 合约地址，请通过 Discord 向我们的团队报告，我们会尽力为你解决问题！

## 如何在 Ethereum 上销毁垃圾 NFT

要销毁垃圾 NFT，可将其发送到销毁地址，**例如"0xdead"地址 `0x000000000000000000000000000000000000dEaD`**。
