Hello,
I am working on moving an NFT project from Cardano to Ergo. And in doing so I have noticed a few problems with thE EIP-004 metadata standard.
These severely limit innovation and new NFT use cases, and should be rectified as soon as possible.
Specifically, the limit to one type of token in each NFT severely limits the ability to create dynamic and interactive NFTS. Also, limiting the tokens to only the 4 types listed in EIP-004 Makes it impossible to do a lot of things on Ergo.
As an example, I want to my NFT link to a HTML or JavaScript file on IPFS or ARweave which then gets rendered by the marketplace or NFT viewer in an iFrame right on the NFT, allowing the viewer to interact with the NFT right there. This works well on Cardano, as you can see in this link, which is an actual NFT rendered in a native Cardano NFT viewer. https://pool.pm/a3b37823ac5843e62c8f97d4b01e3cd600cda24215f9367f8147d38a.MagicApesTEST1
This is a very small, tip of the iceberg example of an NFT that currently can't be done on Ergo. Another example is the CardanoTrees or Aw0k3n Algorithms projects, which actually create the NFT directly on the blockchain using base64 with no external references whatsoever.
The other thing that needs to be corrected is that Ergo currently limits NFTs to only one media file reference. This creates a problem because a lot of NFTs use one item as the main media (for instance a song or onchain code) then need to also have an image linked in the NFT to show as a thumbnail. If you look at my above example, you will see in its metadata there contains both a "text/html" reference and an "image" reference. Limiting NFTs to one reference severely hinders the ability to think outside of the box and move the NFT space beyond the PFP only art that it currently is.
I want to propose adopting a NFT metadata standard that mirrors both Cardano and Ethereum. Cardano took the Ethereum EIP-721 standard and made minor adjustments to it then adopted it as CIP-25. This CIP even references OpenSeas standards.
I believe Ergo should take the same approach and use the CIP-25 and EIP-721 standards as a base then adapt them to fit Ergo's requirements.
The specific things I would like to see added to Ergo from CIP 25 are as follows:
-Unique policy ID's
-multiple reference allowance
-various reference type support
-Standard IPFS and ARweave reference structure (IPFS:// and AR://)
-policy lock times
Here is the full CIP-25 (Media NFT Metadata standard) as implemented: https://cips.cardano.org/cips/cip25/
I don't know how to create a pull request to propose an EIP myself, so I am putting this here hoping someone can help me move this idea forward.