MIP: NFT and SFT Standard 2.0

Summary

Offer more flexibility to NFTs and SFTs to respond to new use cases and remove the dependency on IPFS for attributes.


Motivation

  • Spica upgrade brought dyNFTs allowing projects to update NFTs, such as name, image, and attributes. Friction is the dependency on IPFS and therefore off-chain interaction to update an NFT.

  • Gaming, ticketing, RWA etc.. need a clear and flexible standard to respond to their needs.

  • Risk of not using MultiversX as infrastructure due to lack of tailored solutions.


Solution

No protocol changes are needed, all are based on ES and APIs.

  1. Format standard:
    Creating an NFT or a SFT should be in this format which works retroactively for existing collections:
    Attributes Field:
    Attributes: On-chain attributes (optional)
    Metadata: CID attributes (optional)
    Tags: tags (optional)
    URI 1: Media stored on IPFS.
    URI 2: Dynamic attributes, not limited to IPFS (Game Server, API endpoint etc..) (optional)

  2. API & ES Logic: The API and ES now return on-chain attributes if no Metadata is passed or Metadata if no Attributes are passed.

  3. Branding: For the API & ES to be able to return the on-chain attributes, the project has to do a branding request including the format of the on-chain attributes.

  4. Marketplaces, Explorer, xSpotlight, Wallets: Check if URI 2 exists and is responsive. If not, use the attributes field.

The main goal is to create a standard that requires the least amount of changes while working retroactively.
Those changes allow SCs to read and write the attributes of NFTs directly on-chain without depending on an external microservice to do the IPFS uploading and pinning.

Example: NFT of a character gains XP and levels UP.
Existing solution: The server needs to check the SC, create a new JSON, upload it to IPFS, Pin it, and send a transaction to update the NFT with the new level.
New solution: SC can read the XP and Level, trigger an update of the Level and rewrite the attribute field without depending on IPFS.

Establishing URI 2 as a dynamic attributes field ensures that marketplaces can display the latest values of said NFT based on the game server. This was done on a per-project basis like Cantina Royale with XOXNO.

Example: Player profile stats.
Existing solution: No standard, the projects do it differently, contacting each marketplace/explorer/xSpotlight for them to adapt to their solution.
New solution: Making URI 2 the standard for dynamic data (not blocked to IPFS) ensures projects and infrastructure providers don’t need to adapt on a case-by-case basis and the data is available from the get-go.


Impact

  • Clearer Standard: Be able to offer a clear standard and thorough examples for each use case of NFT/SFTs making MultiversX an attractive solution.

  • Easier integrations: Removes the need for custom integrations for most use cases.

  • Removes off-chain dependency: Attributes can now be fully updated on-chain without needing to use IPFS to store each change


FAQ

Q: Does it change anything for existing collections?
A: No, this proposal has been designed to be retroactive and therefore will still display all information as it used to be.

Q: Does it benefit existing collections?
A: Yes, dynamic NFTs will be able to edit the URIs to display dynamic data. The attributes field can also be updated to contain on-chain attributes, thereby removing the IPFS dependency.

Q: Why make changes to the standard?
A: A much clearer and more flexible standard is needed to respond to the requirements of projects. We’ve seen those changes and similar standards being implemented on other chains.


9 Likes

This proposal was drafted thanks to the feedback of Martin Wagner, Kevin Lallement, Micha Vie & Ovidiu Popica

As you said, I spent a lot of time with you exploring DynNFT. Having a standard way to support on-chain attributes would allow a lot of cool integrations, make it easier for projects to adopt MultiversX for gaming, ticketing, RWA and more, and reduce friction when building dynamic experiences. It would also simplify how marketplaces, explorers and wallets display and interact with NFTs, without relying on custom solutions every time.

2 Likes

We’ll definitely need this on MvX!
Great proposal Joaquim, love it!

2 Likes

Good one, would be a great thing.

1 Like

Excellent proposal, Joaquim! Any rough estimate of the increase in on-chain storage with this proposal ?

1 Like

Great question!

It’s actually a logic already used by certain projects like Knights of Cathena but isn’t being displayed by the API/ES.

If the standard gets adopted we can expect more projects using this solution but the storage requirement would remain minimal. That’s why I haven’t spent time discussing inscribing of media which would be a completely different best.

I love this and think it is a critical upgrade to have!

Your examples were perfect to show the current limitations and what would be possible.

Push this!

1 Like

Good proposal. Here we need more the experts of NFTs, meaning XOXNO and the team behind creating custom marketplaces. Will ping them to write here.

2 Likes

I fully support this proposal.

It addresses real, current limitations we’ve encountered.
Some Kepler users have already asked for this kind of functionality, but until now, only slow workarounds are possible.

This solution is needed.

1 Like

I (of course) also fully support this proposal.

Especially eliminating the ipfs requirement will allow for way more flexibility for all projects, as well as reduce the integration overhead for marketplaces, wallets, etc.

We at Knights of Cathena always had to struggle with the current restrictions and as others have mentioned only slow workarounds are possible and in some cases there just exists no viable alternative in the first place. For example it is completely impossible to have our item attributes in the metadata. Any balancing action would need to affect millions of nfts, so its just not feasible to change them. With custom data endpoint in the URIs this would be something very easy to achieve with tangible benefits for the whole nft ecosystem.

3 Likes