-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proposal for initial best practices for ICRC7 metadata #76
Comments
Updated in response to the 20240521 Working Group meeting: To provide a standardized approach to handling metadata for NFTs within the Internet Computer ecosystem, the ICRC-76 metadata standard has been designed. This standard facilitates a bi-modal for specifying and verifying metadata, accommodating diverse NFT use cases, and ensuring interoperability with existing standards. The initial standards are purposely simple and MAY be extended through additional ICRC Extensions to target specific systems, standards, and protocols. Below is a comprehensive description of the ICRC-76 metadata standard's specifications: ICRC-76 Metadata Standard SpecificationMetadata Retrieval MethodsThe ICRCX standard supports two methods for associating metadata with NFTs. Each method caters to different storage preferences and application requirements:
//todo: Some outstanding questions on what to do about data in metadata that is Text, a URI, but NOT supposed to be traversed and included in the metadata. (Choice one is to have a specific tag in a map for this type of data ie icrc76:no_follow or two to have a tag for followable links ie icrc76:metadata:follow). IC-URI specificationLocations that hold data on the IC that are both addressable from the IC and from https can use the IC-URI specification as follows:
Optional Verification via HashTo ensure the integrity and authenticity of the metadata, especially when it is stored externally, a hash can optionally be provided:
Standard Items for
|
This is already in a great shape, please find some comments in the forum to further improve it. |
External metadataICRC-3 extension that defines a value that is a record that points to external json metadata:
Standardized urls for http assets on the ICThe following url format:
Details like mime etc are not included since main purpose is to have urls that point to IC http urls without relying on a gateway in the url. |
Updated in response to the 20240602 Working Group meeting: To provide a standardized approach to handling metadata for NFTs within the Internet Computer ecosystem, the ICRC-76 metadata standard has been designed. This standard facilitates specifying and verifying metadata, accommodating diverse NFT use cases, and ensuring interoperability with existing standards. The initial standards are purposely simple and MAY be extended through additional ICRC Extensions to target specific systems, standards, and protocols. Below is a comprehensive description of the ICRC-76 metadata standard's specifications: ICRC-76 Metadata Standard SpecificationMetadata Retrieval MethodsThe ICRC-76 standard supports three methods for associating metadata with NFTs. Each method caters to different storage preferences and application requirements:
Standard Items for
|
Didn't get around to define the whole OpenSea inspired spec in full detail yet but here's the current definition of the The main goal was to be OpenSea compatible (support same feature set) but allow for multiple assets with various data External metadata entry pointThe following metadata property MUST be defined in the root of the token metadata if we want to return external
External JSON metadata properties
On-chain metadata entry pointThe following metadata property MUST be defined in the root of the token metadata if we want to return on-chain
Metadata properties
Asset properties
Purpose valuesBelow list of purpose values are part of the ICRC-99 standard, this list could be extended by other standards.
Attribute properties
Display type valuesBelow list of display types are part of the ICRC-99 standard, this list could be extended by other standards.
|
To provide a standardized approach to handling metadata for NFTs within the Internet Computer ecosystem, the ICRCX metadata standard has been designed. This standard facilitates multiple methods for specifying and verifying metadata, accommodating diverse NFT use cases and ensuring interoperability with existing standards. Below is a comprehensive description of the ICRCX metadata standard's specifications:
ICRCX Metadata Standard Specification
Metadata Retrieval Methods
The ICRCX standard supports several methods for associating metadata with NFTs. Each method caters to different storage preferences and application requirements:
URI-based Metadata (
IcrcX:metadata:uri
):#Text
containing the URI.Embedded JSON Metadata (
icrcX:metadata:json
):#Text
containing JSON data.Direct Value Metadata (
icrcX:metadata:value
):Value
type to support complex structures.Value
type, typically a map containing key-value pairs.Image Only Metadata (
icrcX:metadata:image
):#Text
containing the image URL.Canister-based Metadata (
icrcX:metadata:canister
):#Text(canisterID)
and#Text(path)
and an optional#Text(path)
format which shuld be json or candid.Optional Verification via Hash
To ensure the integrity and authenticity of the metadata, especially when it is stored externally, a hash can optionally be provided:
icrcX:metadata:hash
):#Blob
containing the hash value.Standard Items for
icrcX:metadata:value
When using the direct value method for metadata (
icrcX:metadata:value
), the following standard items are recommended within the metadata map:icrcX:name
: Text — Name of the NFT.icrcX:description
: Text — Description of the NFT.icrcX:image
: Text — URL or data URL pointing to an image representing the NFT.icrcX:preview
: Text — URL or data URL pointing to a thumbnail image of the NFT.icrcX:experience
: Text — URL or data URL pointing to a dapp for interacting with the NFT.icrcX:attributes
: Array of Maps — Each attribute is a map containing properties like trait type, value, and display type.JSON Format Compliance
When metadata is represented in JSON format (either embedded or via URI), it should adhere to widely accepted standards such as those established for ERC-721 or ERC-1155:
icrcX:metadata:format
, may be used to specify the metadata standard or version being followed (e.g., "erc721", "enjin", "opensea").Summary
This standardized approach ensures flexibility in how metadata is stored and accessed while promoting consistency in its structure and verification. It supports both on-chain and off-chain storage strategies, caters to different levels of complexity in metadata content, and facilitates interoperability with existing blockchain ecosystems through compliance with popular standards like ERC-721 and ERC-1155.
The text was updated successfully, but these errors were encountered: