Interactive NFTs & Standardising metadata
There are 2 things:
adding a property to the NFT JSON metadata, called "interactive_nft" that acts as a manifest on how to render the NFT (if this property is in the JSON, instead of showing "image," you run the NFT with one of the specific components created for this format)
adding one function to the NFT contract that allows configuration per token per owner
This way, we can have NFTs that allow edition by the owner and save the configuration in the contract. When the NFT is loaded, the website checks if there is a configuration for the current owner and, if yes, loads it with the NFT to render it as the owner would like to—kind of allowing "async-like" things.
The second is optional; not every platform or project needs it. But it allows flexibility in games, game items, Art, and similar areas. For example, I could create an NFT that has only the role of showing other NFTs in the gallery. If you buy this NFT, you can configure which NFTs you want to be shown, permissionless, without any "centralized configuration" since it's in the contract, and given to the code at runtime. Platforms load NFT The platform sees "interactive_nft" property Platform checks if the NFT contract has a configuration for this NFT for the current owner
The platform runs NFT using a specific component for interactive NFTs and parameters (owner, nft_json, ownerConfiguration)
Metadata standardization
OpenSea has decided to go this way: if the content pointed by the property “animation_url” is HTML, they copy the HTML content to their server, and when the NFT is viewed on their website, they load this content.
This is a very easy implementation that works for some use cases, but it is not very flexible and works only for the basic use cases.
For example, if the NFT distributor updates the code, they would expect the NFT to show the update automatically
Another example, if the NFT code is in a directory and references things like “./images/my-image.jpg”, this will not work except if the whole directory is copied (which can be either impossible or a hassle and is prompt to errors).
If the code needs its metadata or any other data to work, but the metadata changes over time, that might not be reflected and break the NFT
This is why it would be urgent to find a consensus on how those NFTs should be displayed.
Further reading
Full description: https://github.com/beyondnft/sandbox
Discussion to: https://ethereum-magicians.org/t/standardizing-metadata-for-interactive-nfts/6168
Adding rich metadata to your ERC721 and ERC1155 OpenSea implementation: https://docs.opensea.io/docs/metadata-standards
Last updated