0024 XLS-24d: Metadata Structure for XLS-20d NFTs #69
Replies: 26 comments 37 replies
-
Thank you for this proposal and the additional work composing together a preview of the existing standards. I propose to unify the file directives:
as all of these serve the same purpose with some conditions/modifications. It hence makes sense to define one universal data structure with modifiers such as
|
Beta Was this translation helpful? Give feedback.
-
I propose to move the localization definitions out of the scope of this structure, and only link to the localized meta files, like so:
Following, for example, the link for the german meta file
This will allow for swapping out different locales without needing any additional code for parsing the localization directive. |
Beta Was this translation helpful? Give feedback.
-
In conjunction with my previous suggestion #69 (comment), which eliminates the need for the
|
Beta Was this translation helpful? Give feedback.
-
I like the idea of having a bare minimum spec for the schema, something simple based on EIP-721 to start. but having an optional reference to a schema file to tell any dapp/app/program how to parse the metadata for custom specs. I can see there being a need for more customized objects within the spec in the future based on the type of NFT that the metadata is describing (audio, metaverse, images, real estate, physicals, ect). Making this as flexible as possible, but at the same time not adding too much complexity will be key. |
Beta Was this translation helpful? Give feedback.
-
Here is the standard I use in my dapps for saving/loading/parsing IPFS data that's NOT NFTs. The only addition I would suggest to the XLS-24d standard is the/a domain.
You already excluded This would be an upgrade but I honestly wouldn't upload an NFT to XRPL mainnet you couldn't change without the base fields from the well established companies (Open Sea, Solana, BSC). It could at any moment change and the interoperability would be missed.* BASE:
Notice how Solana duplicated the *They could add XRP or a side chain could be created to connect the two. |
Beta Was this translation helpful? Give feedback.
-
Question about royalties, I know that Solana has on-chain royalty structure where royalties are automatically and instantly distributed from each sale on secondary markets, how would this work with XRP if there is a name as a creator? is this not used in addition to on-chain royalty distribution? |
Beta Was this translation helpful? Give feedback.
-
Revision 1 really is next level. This approach is not only future-proof, but allows for complete compatibility with every standard that's already out there. My only concern would be, that this invites for a too chaotic schema usage, in the sense, that everybody will roll out their own. These schema fields still need to be read in and assigned to their designated purpose, and that is a human task. Perhaps it makes sense to propose specific schema standards as well. |
Beta Was this translation helpful? Give feedback.
-
Hello everyone, looking to get some feedback on our metadata that we will be using for our NFTs on XRPL. It is heavily based on the suggested standard.
An example
|
Beta Was this translation helpful? Give feedback.
-
Twitter handle of the minter would be useful |
Beta Was this translation helpful? Give feedback.
-
I think everybody who wants to mint NFTs should have a gravatar linked so that we can easily get their information without it being static information as part of the metadata. This can be optional though |
Beta Was this translation helpful? Give feedback.
-
In order to allow for compatibility across different nft generating engines, marketplaces, apps and nft visualizers, I would recommend the following structure for the attributes array:
It is used by Open Sea https://docs.opensea.io/docs/metadata-standards, adopted by many marketplaces / Nft visualizers and implemented by open source NFT generating engines such as hashlips art engine: https://github.com/HashLips/hashlips_art_engine |
Beta Was this translation helpful? Give feedback.
-
I suggest to add a license field to have a license hash included, makes it easier to check license types such as CC0 - For lets say a merch store. "schema":"URI://UriToXRArt.v0Schema", |
Beta Was this translation helpful? Give feedback.
-
since XLS20 seems to be only 2 weeks away from implementation onto main net I want to stoke conversation on this again. XLS24 gives a lot of flexibility for future use cases beyond just art, but the immediate implications and use case in the next few months will be 95% art based NFTs. Thinking in broader terms of not just on the XRPL, but across the whole industry, projects should be cognizant of implementing a minimum standards (similar to the opensea standard) of sorts for easy implementation and compatibility. Many of the large EVM based chains have very similar metadata standards with small deviations/differences. The Base Art NFT example above seems to fill that minimum standard. A thought on adding collection attributes. on EVM chains collections are mutable user defined within marketplaces. NFTs are grouped based on the contract they were minted from, but users can add new NFTs from other sources into a collection. There are both pros and cons to adding collection attributes into the metadata itself. |
Beta Was this translation helpful? Give feedback.
-
If youre a marketplace aiming to mint music NFTs please don't hesitate to email the Sonar Muse team at [email protected] as we're creating the music NFT standard for the XRPL and for interchain compatability. We would want to provide our service to marketplaces too, just to ensure there is congruency amongst all of us |
Beta Was this translation helpful? Give feedback.
-
Hello Marc, have you assisted here with development on xrpl ?
… On Sep 9, 2022, at 7:43 AM, Marc Zuze ***@***.***> wrote:
If youre a marketplace aiming to mint music NFTs please don't hesitate to email the Sonar Muse team at ***@***.*** as we're creating the music NFT standard for the XRPL and for interchain compatability. We would want to provide our service to marketplaces too, just to ensure there is congruency amongst all of us
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
|
Beta Was this translation helpful? Give feedback.
-
After reading through this and seeing ideas, I'm just not sure which ideas are winning. Perhaps we can evolve the schema in a fork --> https://github.com/strategyengine/XRPL-Standards and still discuss in this thread. Anyone can create a PR in there and any 4 approvals will allow a merge. If this already exists somewhere, please let me know and I'll delete this repo. |
Beta Was this translation helpful? Give feedback.
-
Revision: 2 The following IPFS path is the content after formatting the shema text at JSON Prettiy Print.
|
Beta Was this translation helpful? Give feedback.
-
The metadata file should have both IPFS CIDv1 and CIDv0 like this image. (To check in Bithomp: https://bithomp.com/explorer/rMGqQpJnjZhd64uzGzq7Zm1AZG7iD7NTu1 |
Beta Was this translation helpful? Give feedback.
-
We need to add 3D file types to the animation category or general file types. These include GLB, GLTF, OBJ, FBX, and DAE. This will allow marketplaces to implement 3D viewers for game assets. Proposal to move GIF and other video animations to the video category. Proposal to change animation URL to align with OpenSea metadata schema: |
Beta Was this translation helpful? Give feedback.
-
Should the standard define where the schema file is? For e.g. whats the right thing for a client to do if the URI of an NFToken is a directory? The standard could say something like "if the NFToken URI is a file with .json read the json, if it's a directory request index.json & nft.json" etc. I don't think the standard should require that the URI be to the schema file, not least for more exotic future uses of XRPL NFTs. |
Beta Was this translation helpful? Give feedback.
-
I wonder how marketplaces will support this. I understand the flexibility and the objectives of the standard, but the format is completely open-ended, thus very complex to support for a marketplace. Have you considered having a number of required fields that will simplify the way tokens are shown in marketplaces? Making |
Beta Was this translation helpful? Give feedback.
-
Hey @x-Tokenize, just wanted to check if you going to put a new revision out which has the "c_image" definition in we talked about on Twitter. |
Beta Was this translation helpful? Give feedback.
-
Hi everybody. Just wanted to let you know that Sonar Muse has released our NFT music standard. the schema can be viewed here: https://sonarmuse.org/schema/v0 We've been working with web2 and web3 DSPs to create a standard that can support multiple songs and albums at a time, with all the necessary information about the music collection in the metadata. This can also be made interoperable with other blockchains in the future as we continue to expand on the many different use cases for music NFTs. This current standard is currently for listening only NFT rights an NFT minted using our standard can be viewed here: |
Beta Was this translation helpful? Give feedback.
-
Why a new schema instead of incorporating? |
Beta Was this translation helpful? Give feedback.
-
// THE FOLLOWING IS MEANT TO... // NOTE: DYNAMIC METADATA ISN'T IMPLEMENTED, SUGGESTED SOLUTION: TOML FILES
|
Beta Was this translation helpful? Give feedback.
-
0024 XLS-24d: XLS-20d NFT Metadata Structure
By: MikeCheckYaSelf
Affiliation: @x-Tokenize
Revision: 2
Revision History: XLS-24d Revisions
Contributors: Mwni, nkl, ajkagy, dangell7, CombatKanga, XPunkDS, TheCryptoonz, xDude, Andrew Kaskaniotis, PeerKat, moonkie, vet, Henk ter Harmsel
Introduction
An NFT (Non Fungible Token) is a type of digital asset that uniquely represents ownership or the right to access to "something" that lives off chain. This "something" can take many different forms in the physical/digital realm such as works of art, real-estate, contractual agreements, tickets to events, derivative assets and much more.
The data which represents the underlying asset/rights are often described and then (in most cases) stored somewhere off-chain such as on a centralized server or a decentralized file system like InterPlantery File System (IPFS). This data is known as the metadata of the NFT and can take many different forms depending on what the NFT represents.
Motivation
With the release of the XLS-20d NFT dev network, there has been significant development of applications utilizing the proposed XLS-20d standard. The areas of interest utilizing NFTs are vast and thus requires a scalable standard for the representation of metadata to facilitate NFToken interoperability amongst applications.
Advantages
Revision Changes (current:2)
Comments on Revision 2
Thank you to all the individuals that provided their feedback here and through other channels. All of your invaluable feedback has been taken into account in this second revision and we will definitely give credit where it's due!
The main goal of this revision was to expand on and provide additional guidance in the methodology assoicated with defining/advancing nftType schema definitions. Here we also provide a clear definition of the 'art.v0' nftType, have made changes to the art.v0 schema example in revision 1 and have provided additional examples to make it easier to follow along.
Proposal
NFTs are versatile in nature and defining metadata requirements/expectations for all different use cases and implementations can lead to an astounding set of metadata definitions. The key elements of an NFT's metadata structure must be defined in such a way that they are concise and are easily expandable as use cases evolve and more complex systems are designed.
Identifying an appropriate base structure for NFT metadata will significantly create a more scalable and interoperable environment for application developers/creators building on the XRPL. It is also important for such a structure to be interoperable with standards being applied on other networks. Interoperability with other networks will provide other network participants a low-barrier to entry if they would like to bridge their NFTs to the XRPL.
Revision 1 introduced the concept of attaching a JSON schema file to the metadata of an NFT.
A JSON schema is used to describe your existing data format(s), provide human and machine readable documentation and can also be used to validate metadata of an NFT. Describing metadata format(s) provides applications with a detailed breakdown of types, requirements and structure of the metadata that it reads. Validation is not only great for determining if an NFT will work appropriately with your application but, can also be used for filtering out unwanted 'nftTypes'.
There are many existing schema validation libraries which makes integration into an application very trivial.
To learn more about JSON schemas, check out relevant resources here:
Utilizing JSON schemas, we as a community can define and version our metadata as the XRPL NFT space evolves. For different nftTypes, we expect community leaders of those NFT types to contribute and derive a set of schema definitions for those use cases and implementations.
Defining a schema for an nftType:
To create/update a schema for a specific nftType, it is important to consider the process as a set of building blocks;
If a schema for a specific nftType has not yet been defined, then it is up to it's creator to decide what are the absolute
bare minimum properties required for that nftType and should be an extension of the 'base.v0' nftType which can be found here:
Base Metadata
$Schema File
Examining the 'base.v0' nftType, we can see that we include the schema, nftType, name and description which are all defined
as required properties within the schema file. These can be thought of as the foundational properties of everything in the sense
that everything has a 'name' and a can be described using a 'description'.
Expanding to Different Use Cases
Defining the required metadata fields and schemas for different use cases and asset types is certainly not a trivial task. When deciding the properties that should or should not be included in the specification, it is important to perform extensive research into the industry that the nftType is associated with and follow industry best practices associated with what that nftType represents.
Versioning of nftTypes will allow for backwards compatability for legacy NFTs as new implementations and applications arise. Advancing an nftType should be backwards compatible with previous versions such that all prior required properties are included and required in the latter. These properties and schemas can be derived from definitions of the specific asset type found on schema.org.
Art/Collectible NFT Guidance:
Many of the pioneering projects in the XRPL NFT space fall under the art/collectible category; for this reason we deemed it important to derive the foundational 'art.v0' metadata format for projects and creators to adopt. After much discussion and debate on what the foundational art.v0 type should be, it became clear that the legacy 'art.v0' nftType should be a representation of other familiar standards which were previously mentioned in the original version of this proposal.
art.v0:
The schema provided in revision 1 was meant to be an example and not a final version. Here you can find the final schema which can be used to validate nfts of the art.v0 nftType.
Art and collectible projects that are following this guidance should note that the nftType and schema should remain constant as art.v0 and ipfs://QmNpi8rcXEkohca8iXu7zysKKSJYqCvBJn3xJwga8jXqWU respectively. The contributing marketplaces, minting and viewing applications will post an updated nftType (art.v1) and schema as the ecosystem evolves! Since versioned nftTypes are backwards compatible, there won't be any issues when nftTypes are updated. Since the content of the art.v0 schema doesn't change, uploading and pinning the schema to IPFS would result in an identical CID. If your project is utilizing IPFS, it is encouraged that you pin the schema to contribute to it availability and longevity.
Changes from the r1 example schema to the final art.v0 schema:
Schema File:
The art.v0 nftType defines schema, nftType, name, description and image as required properties to fall under the art.v0 category but, also provides validation support for additional properties found in other nft metadata standards such as animation, video, audio, file, collection and attributes.
This schema definition for art.v0 improves upon the one described in r1 as it no longer requires the nft creator to define their own schema because the variabilty has been stripped from the definition. A project that chooses to upload this schema to IPFS will notice that the resulting IPFS hash will be the identical.
If an NFT creator is using IPFS and following the art.v0 schema, it is encouraged to pin the following hash to ensure availability of the schema: QmNpi8rcXEkohca8iXu7zysKKSJYqCvBJn3xJwga8jXqWU
The contents of QmNpi8rcXEkohca8iXu7zysKKSJYqCvBJn3xJwga8jXqWUcan be found here.
Example 1) nftType: art.v0 with only required properties:
Example 1 shows a valid art.v0 metadata file which includes the bare minimum required fields.
Mint Tx
IPFS Hash: QmPeitiHkxakhdqZsAFo4QdkkNUkCjSSzrXzCEw8sAnGAD
Example 2) nftType: art.v0 with all supported properties:
Example 2 shows a valid art.v0 metadata file which includes all of the supported fields that can be validated by the art.v0 schema definition.
Mint Tx
IPFS Hash: QmXA1nR96522ygY33KQoMk94LLHZLwfYkFhPU3c9jJ192o
Example 3) nftType: art.v0 with all supported properties and additional properties:
Example 3 shows a valid art.v0 metadata file which includes all of the supported fields as well as additional properties that an issuer might need for their application. Although XLS-24d enables you to add as much additional information as you'd like, it is up to the marketplace/viewing application to determine if they will handle and display that information.
Mint Tx
IPFS Hash: QmfYHzY8UwyobMqbQyCTbeUNfy9EJv2KvEvk6ouhUmdUj5
Asset Property Media Types:
When declaring a "contentMediaType" for a property, JSON-Schema only allows for a single definition and is limiting. Marketplaces and viewing applications plan to support several media types for most of the asset properites (image, animation, video, audio, file). With this in mind below we have included a list of common media types for the different properties. These are not yet considered to be universally accepted. It is best to consult with your marketplace/viewing application of choice to determine their accepted content media types.
In the coming weeks, we will post a concise overview of known supported media types for all of the properties accross many of the popular NFT marketplaces and viewing applications.
Conclusion
Defining a set metadata standards that applies to all NFTs is not possible because of the vast amount of use cases and asset types that an NFT can represent. It is important to emphasize that the goal here is not to provide a limiting standard but, to provide a scalable and interoperable methodology which can be applied to all nftTypes.
Although this revision includes guidance for the art.v0 nftType, it also shows that this approach enables creators to do what they do best and that's being creative. A creator can choose to add as much additional information within their metadata as they wish and it is encouraged to do so (assuming it doesn't interfere with the existing property definitions of that nftType). Adding information to your metadata, is what makes your project unique and can be used as a case study when determining revisions and additions to nftTypes (art.vX).
Discord
To actively participate in the discussion join the X-Tokenize Discord.
Beta Was this translation helpful? Give feedback.
All reactions