Moxie Marlinspike (@moxie) on X

X (formerly Twitter) ·

1 min read Original article ↗

user avatar

NFT image data is not on-chain (too costly). Instead, what's on-chain is just a URL that *points* to the image. But surprisingly, there is no hash commitment in the NFT for the image at the URL. This means whoever controls the URL host can change the NFT image at any time. 2/n

user avatar

Looking at popular NFTs, there are tokens trading for crazy $$ where the NFT image comes from a random VPS running Apache. The VPS admin, or anyone who controls the domain name, can change the NFT image/name to render as 💩 (or whatever) at any point w/o owning the token. 3/n

user avatar

My NFT simply does this by default. It renders differently based on the IP/UA of the request, so the NFT image data isn't ever consistent, and what you bid on isn't what you get. This is how ERC721 is setup, though, not something unique to this NFT Good luck to all bidders! 4/n

user avatar

Update: my NFT was removed by OpenSea without warning or explanation. I don’t see any terms it violated? No problem, this is web3 right? But the NFT also disappeared from my crypto wallet! Why? Because MetaMask just calls the OpenSea API. Loving the decentralized future so far..