スパムNFTとその対処法
執筆者 Alchemy
このドキュメントでは、スパムNFTとは何か、なぜそれがNFT dappの開発者やユーザーにとって問題となるのか、そしてAlchemyのNFT APIエンドポイントを使ってスパムNFTをフィルタリングする方法について説明します。
スパムNFTとは何か?
スパムNFTとは、購入した覚えも欲しいと思った覚えもないのに、ウォレットアドレスに送りつけられたり、エアドロップされたりする、望まれていないNon-fungible token(NFT)のことです。
パブリックブロックチェーン上では誰でもウォレットアドレスとの間でトークンを送受信できるため、望まないNFTがウォレットに現れることがあります。
スパムNFTとエアドロップされたNFTの違いは何か?
スパムNFTとは、エアドロップされたNFTのうち、ユーザーにとって不要なものを指します。
ウォレットにエアドロップされた無料のNFTが必ずしもスパムとみなされるわけではありません。例えば、コレクターに追加の価値を提供するために、一部のジェネラティブNFTコレクションではNFTを作成し、コレクターにエアドロップすることがあります。これらのNFTは再販価値が低いことが多いものの、コミュニティへの参加を示すものとして、コレクションに残しておくのが楽しいこともあります。
なぜ人々はスパムNFTを送るのか?
人々が望まれないスパムNFTを送る理由には、次のようなものがあります。
- 有名なNFTコレクターの注目を集めるため
- ウォレット所有者に恥をかかせたり、迷惑をかけたりするため
- フィッシング攻撃を試み、ウォレット所有者からトークンを盗むため
- 新しいNFTプロジェクトを宣伝するため
NFT市場の成長に伴い、スパムNFTは増加する問題となっています。
なぜスパムNFTは問題なのか?
スパムNFTが問題となる主な理由は2つあります。ハッカーに悪用されることが多いことと、NFTコレクターにとって好ましくないユーザー体験を生むことです。
1. 詐欺師
スパムNFTは、詐欺師が人々を誘い込んで秘密鍵を共有させたり、メッセージに署名させたり、ハッカーのアカウントに資金を送るトランザクションを承認させたりするために使われることがあります。
詐欺師は、所有者がフィッシングリンクをたどって詐欺サイトにアクセスすることを期待して、ウォレットにNFTをエアドロップすることがあります。その後、詐欺師は何も知らないウォレット所有者に対し、Ethereumウォレットにサインインしてこのトランザクションを承認し、無料のNFTを「受け取る」よう促します。
ウォレットがトランザクションに署名すると、詐欺師はウォレットの資金やNFTを引き出すことができます。
これらのサイトの中には、eth_signという危険な手法を使うものもあります。これは「あなたのetherを送る」といった任意のメッセージへの署名を許可してしまい、アカウントや資産の制御を渡してしまう可能性があります。
こうした詐欺サイトは非常に説得力がある場合もありますが、不自然な言い回しや、うますぎる約束など、警戒すべき兆候を伴っていることが多くあります。
ウォレットを守る最善の方法は、未知のスマートコントラクトと決して関わらないことです。ウォレットにスパム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が所有者が保有する唯一のNFTかどうかを確認することもできます。
getSpamContracts NFT APIエンドポイントは、選択したチェーン上のすべてのERC 721およびERC 1155のスパムコントラクトのリストを返します。
2023年8月時点で、Alchemy NFT APIは60万件を超えるスマートコントラクトアドレスをスパムとしてマークしています。
AlchemyのNFT APIでスパムNFTをフィルタリングする方法
スパム検出機能を活用してアプリのUXを改善する方法は複数あります。
最も一般的な方法は、getNFTsForOwner(別名getNFTs)エンドポイントでSPAM除外フィルターを有効にし、ウォレットから正当なNFTのみを取得することです。
isSpamContractを使うと、特定のトークンがスパムコントラクトに属しているかどうかを判定できます。
getSpamContractsを使うと、スパムコントラクトのリストを保存し、それらのコントラクトに対して好きな対応を取ることができるため、さらに柔軟性が高まります。
スパムNFTはどのように分類されるか?
スパムの分類基準は幅広く、偽のイベントを発行すること、他の有名なNFTをコピーすること、総供給量について偽ること、などが含まれますが、これらに限られません。
スパムを分類する際に問う主な質問は以下の通りです。
- コントラクトがERC721または1155である場合、実装しているERC規格に違反しているか。違反している場合、どの程度深刻に規格から逸脱しているか。
- そのコントラクトは、人気のあるハニーポットウォレット(例:vitalik.eth)に大量のトークンをミントすることで知られているか。
- そのコントラクトは、総供給量やその他の属性について著しく偽っているか。
- メタデータが他のNFTコレクションのコピーになっていないか。あるいは空になっていないか。
- これらのNFTはマーケットプレイス間でどれだけ活発に取引されてきたか。
- ユーザーからこのトークンがスパムとして報告されているか。
これらのヒューリスティクスを組み合わせることで、あるNFTがスパムとみなされるかどうかを判断しています。
自分のスマートコントラクトが誤ってスパムとしてマークされた場合、またはスパムフィルターをすり抜けたスパムNFTコントラクトアドレスを見つけた場合は、Alchemy Dashboardからサポートチケットを開いてください。できる限り対応いたします。
Ethereum上でスパムNFTをバーンする方法
スパムNFTをバーンするには、例えば "0xdead" アドレス 0x000000000000000000000000000000000000dEaD のようなバーンアドレスに送ってください。
関連する概要

ブロックチェーンで魔法を生み出す
Alchemyは、最も強力なweb3開発者向けプロダクトとツールを、豊富なリソース、コミュニティ、そして卓越したサポートと組み合わせて提供します。


