Request for feedback: ICRC-97 NFT metadata standard

Hi everyone, within the NFT ICRC Working Group we’ve created a metadata standard for NFTs.

ICRC-97: Non-Fungible Token (NFT) Metadata Standard

The standard is designed to allow for multiple assets with different data types with various purposes. Where additional asset purposes and attribute display types can be standardized in ICRC-97 extensions.

A list of asset purposes and attribute display types are defined in ICRC-97 to the minimum needed for wallets and marketplaces to display NFTs.

PR can be found here and the this link can be used to read the standard.

Design Rationale and Inspiration

The standard has been largely inspired by the Open Sea metadata standard but adapted to allow for either on-chain ICRC-3 metadata and off-chain JSON metadata.

Where the latter enables use cases like for example off-chain games with on-chain tokens for digital asset ownership, twin tokens for NFTs on other chains etc. This standard defines the technical details of defining common metadata, not the reasoning why one or the other should be used, this left open for developers to decide.

The standard has been designed to make it possible for extensions to cover various other NFT use cases like e.g. audio, 3d, video and other NFTs.

Feedback

We’re looking for feedback and input, below I’ve listed a few examples questions for feedback.

  • Do the current defined defaults within the standard cover most common use cases?
  • Do assets and attributes cover most common use cases, or is something else missing?
  • Does the definition of an asset fit or allow for an extension to fit your use case?
  • Does the definition of an attribute fit or allow for an extension to fit your use case?
  • Are there concerns from NFT devs regarding implementation complexity?
  • Are there concerns from Wallet & Market devs regarding implementation complexity?

We really appreciate any the feedback on this post, above PR or within the WG meetings.

Every two weeks there’s the NFT ICRC Working Group meeting, the first upcoming meeting is today. The agenda for this and other meetings can be found here.

@skilesare @dieter.sommer

5 Likes

I’m concerned about the cost of hosting assets for large collection, makes sense to use IPFS instead. But if you’re a purist and want everything on ICP then thats another topic. ICP NFT ecosystem’s innovation is stagnant due to corrupt and immature practices by gatekeepers and their enablers. This is definitely a good initiative in the right direction.

1 Like

The topic of storing assets was actually part of the ICRC-97 discussion, the standard now defines an url (not limited to http) in the metadata that links to the asset.

This URL could be on the IC itself, something like Arweave or anything else. The standard keeps the option open for implementers to decide themselves regarding the asset storage. In case developers want to store the asset directly in the metadata itself instead of referencing somewhere else, this can be done by e.g. using a base64 data uri.

5 Likes

I know it’s been a while, but @jorgenbuilder spent some time thinking about this IIRC, maybe he has time to give this a review?

Thanks a lot, @sea-snake, for this excellent summary and your work on ICRC-97! My comments have already been entered into GitHub and I think addressed from your side, besides those the current draft looks good to me!

Let’s see whether we can get some feedback from people who have been thinking about the same challenges themselves some time back as mentioned above in this topic. @jorgenbuilder, it would be great if we can get your inputs as it seems you have worked on something similar already.