Mutable NFTs - Why They Exist
Published on 2022-03-22
🚨 This post is an unpolished thought
I recently spent some time investigating some NFTs that I owned and I realized that a significant percetage of NFTs that I own are mutable.
Mutable in this case refers to the quality of having metadata which is not stored on chain or on a permanent solution like IPFS . e.g. using a self-hosted DB/API. The host of the data can change the data returned by the
Shoutout to rameerez.eth for building looksmutable.com. I used his application to inspect a mutable NFT that I own.
A good percentage of Web 3 projects still use mutable endpoints to host their metadata.
Decentralized storage solutions currently cannot reflect the qualities of tokens that can be upgraded especially for #GameFi NFTs. e.g. a weapon NFT whose
level can be upgraded.
Reflecting this kind of change in
level would require the metadata to be mutable, thus required self-hosting metadata. This sadly goes against the grain of what a fully decentralized apps is about.
The other solution would be to store all this data on-chain
- Fully decentralized ✅
- Relative state is store on-chain
- NFTs are still immutable
- tokenUri may not reflect upgradable properties. (So popular wallets cannot consume such state deterministically).
- High gas fees on ethereum to update this kind of state.
- No presently defined protocol to standardize contract data across multiple chains. This work would be duplicated for each new chain one supports. e.g. WormholeBridge reflects metadata for Ethereum <-> Solana cross-chain transfers because each NFT's
tokenUriis standardized by the ERC721 standard on Ethereum and Metaplex Metadata standard on Solana.
What solutions are being explored in this space? 🤔
I believe that if #GameFi NFTs should have some relative mutable state, it should also be stored on-chain, at a low cost to allow for high-frequency reads & writes.
The desired result would be more NFTs would remain immutable.
If you have any thoughts/helpful resources on this subject, feel free to @ me on Twitter or comment below! 💚