An NFT buyer discovers a collection listed in their wallet that appears legitimate: the name matches a known project, the metadata displays correctly, and the transaction history shows a purchase price in line with market rates. Yet when they attempt to list it for sale, the floor price is zero, and no marketplace recognizes the token. The problem is not market collapse but metadata spoofing—a fraudulent collection designed to mimic a legitimate one closely enough to deceive casual inspection. For users managing NFTs across Ethereum, Polygon, Arbitrum, and other EVM chains, this scenario represents a core security challenge that extends beyond private key protection to the verification of what those keys actually control.
Rabby Wallet’s design places transaction transparency and preview functionality at the center of its defense against this category of fraud. Because the wallet operates as a non-custodial application where private keys remain on the user’s device, the responsibility for verifying asset authenticity falls directly on the holder rather than on a third-party custodian. Understanding how to read contract addresses, confirm collection metadata, and cross-reference on-chain information becomes as critical as securing the recovery phrase itself. A fraudulent NFT that enters a wallet through an approved transaction cannot be removed by the application retroactively; prevention through verification is the only reliable mitigation.
How metadata spoofing works and why it succeeds
An NFT on an EVM blockchain consists of two distinct components: the contract address where the token is recorded and the metadata—typically a JSON file or URI that contains the name, description, image, and attributes. A spoofed collection exploits the gap between these by creating a new smart contract with an identical or nearly identical name to a legitimate project, then storing metadata that replicates the visual appearance and description of the original. From the perspective of a wallet interface displaying only the collection name and image, the spoofed version appears genuine. The user may even believe they are purchasing from a legitimate marketplace if that marketplace does not verify the contract address against a known whitelist.
The attack succeeds because wallet interfaces often prioritize readability over technical precision. Displaying «Bored Ape Yacht Club» is more user-friendly than displaying «0x74c9b1d2840b065b378df3615aeb953eb7ccdfb7,» yet the contract address is the only authoritative identifier. A fraudster creates a contract at a different address—one that may be sequentially close or visually similar when abbreviated—and populates it with tokens bearing the legitimate project’s metadata. When an unsuspecting buyer approves a transfer, they approve the transfer from the spoofed contract, not the real one. The wallet confirms the transaction is valid because the spoofed contract is, in fact, a valid smart contract executing a valid transfer operation. The fraud is not a technical failure but a social engineering success.
Metadata can be modified or replaced after a token is minted, depending on how the collection is designed. If a project uses centralized metadata storage or upgradeable smart contracts, a compromised or malicious actor could theoretically change image URIs, descriptions, or traits retroactively. This is less common than outright spoofing, but it remains a concern for collections where metadata points to updatable storage rather than immutable content-addressed systems like IPFS. Users who inspect an NFT weeks after purchase may see different visual content than what appeared at the time of acquisition.
The most effective spoofing occurs around high-profile launches, trending collections, or moments when trading volume spikes. A buyer in a hurry, distracted by market excitement or social pressure, is more likely to skip verification steps. Scammers often generate multiple spoofed variations of the same project in hopes that at least one will find victims. Some fraudsters maintain collections with minimal trading activity while waiting for the right moment to «rug»—withdraw collected funds or suddenly modify metadata to reveal the scam—while others focus on immediate profit through a single transaction before the wallet holder realizes the deception.
Reading contract addresses as your primary verification tool
The contract address is the authoritative identifier of any NFT collection. No visual design, social media endorsement, or marketplace listing overrides it. In Rabby Wallet, the contract address should be visible when inspecting a collection or token. The correct approach to verification is to locate this address, copy it precisely, and cross-reference it against multiple trusted sources before approving any transaction involving the NFT. For major collections like Bored Ape Yacht Club, OpenSea’s collection page displays the contract address prominently, and it should match exactly with the address shown in your wallet.
EVM contract addresses are 42-character hexadecimal strings beginning with «0x.» Humans cannot reliably memorize or verify these by sight alone, yet they must be matched character by character. A spoofed contract will differ from the legitimate one in at least one position. The difference may appear minor—a «1» instead of an «l» in a typeface where they look similar—but on the blockchain, a single character difference points to an entirely separate contract. Copy-pasting the address directly from the wallet into a block explorer like Etherscan, Polygonscan, or Arbiscan will retrieve the contract’s full details: the creator, deployment date, transaction history, and the current holder count. A spoofed contract will typically show a recent creation date, a small number of holders, and metadata that replicates another project.
For collections launched before 2020, verify the deployment date matches the project’s history. A contract claiming to be from a 2021 project but showing a creation date in 2024 is definitively fraudulent. For newer projects, cross-reference the contract address against official announcements from the project itself—preferably from verified social media accounts, the official website, or pinned messages in official Discord communities. Scammers sometimes impersonate project founders on social media or create nearly identical Discord servers, so verification should rely on official sources and independent blockchain records, not on claims made in chat applications.
If you are purchasing an NFT from a marketplace, verify the contract address on that marketplace against the wallet before confirming the purchase. Some fraudulent marketplace clones (not the wallet itself, but third-party sites) may display spoofed collections with spoofed addresses. The marketplace should clearly display the contract address for every listing, and that address should match what your wallet shows after the transaction completes. If there is any discrepancy, do not proceed.
Verifying metadata immutability and storage location
Metadata storage tells you whether an NFT’s name, image, and attributes can be changed after minting. Collections using immutable, content-addressed storage like IPFS (InterPlanetary File System) with cryptographic hashes ensure that metadata cannot be retroactively altered. When you inspect an NFT in Rabby Wallet or on a block explorer, the metadata URI should point to a specific IPFS hash or other immutable source. A URI like «ipfs://QmXxxxx…» indicates the metadata is pinned to a specific content address and cannot be changed without creating a new token with a different hash.
In contrast, metadata hosted on a mutable server—often indicated by an https:// URI pointing to a domain controlled by the project—can be updated if the project’s keys are compromised or if the project operator is malicious. Some legitimate projects use this approach for flexibility (updating artwork, adding new traits), but it introduces a window where an attacker who gains control of the server could replace legitimate metadata with something entirely different. Rug-pull scammers have been known to replace NFT metadata with offensive or worthless content, or to point URIs to dead links, all while the underlying tokens remain valid and tradeable on the blockchain.
To verify metadata storage, open a block explorer, search for the contract address, and navigate to the contract details. Look for the base URI or metadata format used by the collection. If it is a standard ERC-721 or ERC-1155 collection, the contract code should specify how metadata is retrieved. A reputable project will either use IPFS hashes (immutable) or documented mutable storage with clear governance about who can modify metadata and under what circumstances. If metadata URIs are broken, unreachable, or redirected to unfamiliar domains, that is a warning sign. Some phishing campaigns use metadata URIs that point to fake verification pages or credential-harvesting sites disguised as official project portals.
Recognizing common spoofing patterns and naming tricks
Spoofed collections often use names that are character-for-character identical to the original or employ Unicode substitution tricks where visually similar characters from different alphabets replace legitimate ones. A «Ø» (Norwegian letter) might be used instead of «O,» a Cyrillic «A» instead of a Latin «A,» or an «l» (lowercase L) instead of a «1» (number one). These tricks are nearly invisible in a wallet interface but create a different contract address. The defense is to copy the collection name from multiple sources and compare them as text rather than relying on visual inspection. If the wallet displays «Bored Ape Yacht Club» but a block explorer or official source shows «Bored Ape Yacht Club» with different character encoding, they are not the same collection.
Another pattern involves creating collections with names that are very close approximations: «Bored Apes Yacht Club» (Apes plural, or Yacht instead of Yacht), «Bored Ape Club,» or «Ape Yacht Club.» These variations are intentionally confusing and rely on users scanning quickly rather than reading precisely. The contract address will be entirely different, yet the collection name alone can mislead someone who is familiar with the original only by reputation. A user who has heard of BAYC but never actually examined a legitimate token may not notice that the name they see is subtly different.
Some spoofed collections are deployed with a small number of tokens and a low floor price to appear new or niche, then suddenly increase in apparent value through wash trading (transactions between accounts the scammer controls, artificially inflating the floor price). When the spoofed collection appears to be gaining value, victims are more likely to purchase or hold it, believing it to be a legitimate emerging project. By the time the market realizes the deception, the scammer has collected funds and abandoned the contract. Others are designed purely to harvest approval signatures: a user may approve a spoofed NFT contract to transfer tokens without intending to actually receive anything, and the scammer uses that approval to drain the user’s other assets from that wallet.
The most sophisticated spoofing includes compromised metadata that displays legitimate imagery at first, then uses JavaScript in the metadata URI to redirect image loads to spoofed versions after a delay, or to serve different content to different viewers based on IP address or user agent. This is technically complex but possible when metadata is not immutable. Users who inspect an NFT hours after purchase may see different imagery than what appeared at transaction time.
Using block explorers to confirm collection legitimacy
A block explorer like Etherscan provides the authoritative record of a contract’s history. To verify an NFT collection, paste the contract address into Etherscan’s search bar. The contract details page will show the contract creator, creation date, total transactions, token standard (ERC-721 or ERC-1155), and holder count. A legitimate project will display historical context that aligns with public announcements. You can also review recent transfers to see who is buying and selling, check for signs of wash trading (rapid back-and-forth transfers between a small number of accounts), and verify that the contract code matches what you would expect from a professional project (not obviously malicious or obfuscated).
The «Read Contract» or «Code» tabs in Etherscan allow you to examine the smart contract’s functions and design. While most users lack the expertise to review Solidity code, you can check for red flags: contracts that allow arbitrary metadata changes, have no owner renunciation, contain suspicious external calls, or show evidence of recent modification. Some scam contracts are deliberately obfuscated or compiled in ways that prevent code inspection, which is itself a warning sign. Legitimate projects typically have clear, auditable code or at minimum have been audited by third-party security firms (audit reports should be published on the project’s official website).
The «Holders» tab shows how many unique addresses hold tokens from the contract. A spoofed collection will often have a very small holder count (under 100) even if the contract has been active for months. A legitimate collection with significant trading activity and a healthy community will have thousands of holders. If you are examining a collection claimed to be popular but the holder count suggests very low adoption, investigate further. Similarly, check the transfer history. A spoofed collection will show transfers primarily involving the creator or a small set of accounts, whereas a legitimate collection will show diverse transfer patterns reflecting genuine trading activity across different users.
Transaction preview as a verification checkpoint
Rabby Wallet’s transaction preview functionality displays the details of any action before you sign it. When approving an NFT transfer, purchase, or interaction with a smart contract, take full advantage of this feature. The preview should clearly show the contract address involved, the type of transaction, what you are approving, and what you should expect to receive. For an NFT purchase, verify that the contract address in the preview matches the address you verified independently. If the preview shows a contract address you do not recognize, pause and investigate before proceeding. A transaction preview that appears unclear or contains extraneous data (such as arbitrary function calls beyond a simple transfer) deserves scrutiny.
One class of scams involves approving contracts that grant unlimited spending authority to a malicious contract. A user may believe they are approving a transfer of one specific NFT, but the actual transaction gives a scammer contract blanket authority to transfer all assets of that type from the user’s wallet indefinitely. The preview should show the scope of what you are approving. If you are approving only one transaction, the preview should not request unlimited approval. If a marketplace requires unlimited approval, verify that it is a legitimate, well-known platform before proceeding. Some legitimate marketplaces do request approval for multiple transactions to reduce gas costs, but they should be transparent about this and should allow users to revoke approvals afterward.
For transactions involving NFTs from a crypto wallet extension like Rabby, the preview should display the NFT image, collection name, token ID, and the destination address if you are transferring it. If the preview shows placeholder content or generic data instead of the actual NFT metadata, this suggests either a network issue or that the metadata is corrupted or missing. Either condition warrants delaying the transaction until the issue is resolved. Do not approve a transaction for an NFT you cannot visually confirm matches your expectations.
Establishing a personal verification workflow
A reliable defense against NFT spoofing requires a repeatable process that becomes habitual. Before approving any NFT transaction, execute these steps in order: First, copy the contract address from the wallet and paste it into a block explorer. Second, verify the contract creation date, holder count, and transaction history against public information about the project. Third, confirm the contract address matches the official project website, verified social media accounts, or established references. Fourth, check the metadata URI to determine if it is immutable (IPFS hash) or mutable (https domain). Fifth, review the transaction preview in Rabby Wallet to ensure it matches your intention. Sixth, if you are purchasing from a marketplace, verify that the marketplace contract matches established references and that the collection address is displayed correctly on the marketplace before finalizing the purchase.
This workflow takes two to five minutes depending on the complexity of the collection and how much independent verification is necessary. For high-value purchases, the time invested is insignificant compared to the loss incurred if the NFT turns out to be spoofed. For collections from new or lesser-known projects, extend the verification process. Contact the project’s official support channels if you have doubts, and do not rely on information obtained from social media comments or marketplace chat features, as these are frequently impersonated by scammers.
Keep a personal reference list of verified contract addresses for collections you plan to purchase repeatedly. Bookmarking the official project website and the Etherscan page for a collection reduces reliance on memory and makes future verification faster. Some community members maintain public lists of verified contract addresses for popular collections, though these should be treated as starting points for your own verification rather than absolute authorities.
Finally, understand that verification responsibility cannot be delegated entirely to software. While Rabby Wallet provides transparency and tools that make verification possible, the wallet cannot automatically distinguish a spoofed collection from a legitimate one without being explicitly programmed with a whitelist of known projects. No wallet can know about every legitimate collection on every EVM chain. Your personal due diligence is the only layer of defense that scales across all possible collections and all possible fraud schemes. An NFT wallet’s security rests not only on encryption and private key protection, but on the holder’s commitment to verify what those keys are actually authorizing.
Frequently asked questions
How can I tell if an NFT collection in my wallet is spoofed?
Copy the contract address from your wallet, paste it into Etherscan or another block explorer, and verify that the contract creation date, holder count, and transaction history match the project’s official history. Compare the contract address character-by-character against official sources. Check metadata storage to confirm whether it is immutable (IPFS) or mutable (https). A spoofed collection will typically have a recent creation date, very few holders, and metadata that replicates another project. If anything seems inconsistent, do not trade the NFT until you have resolved the discrepancy.
What should I do if I accidentally approve a transaction for a spoofed NFT?
Approving a transaction does not automatically execute a transfer if you do not confirm the transaction itself. If you approved a spoofed contract before realizing it was fraudulent, you can revoke the approval through Rabby Wallet or a revocation service like etherscan.io. Navigate to the contract address, find the «Write Contract» section, and execute a revoke function if one is available, or use a third-party revocation tool. Going forward, always verify the contract address before clicking «Approve» or «Confirm.»
Can metadata be changed after an NFT is minted?
Yes, if the collection uses mutable metadata storage (centralized servers or upgradeable contracts). Collections using immutable storage like IPFS with content hashes cannot have metadata changed without creating a new token. Check the metadata URI in the contract code: if it points to an IPFS hash, it is immutable. If it points to an https domain, verify that the domain is controlled by the legitimate project and that only trusted parties can modify the metadata. Spoofed collections may use mutable metadata to change from legitimate content to offensive or valueless content after victims have purchased.