From 6d4ab9de715e5de4b6134bf2dd5bc252fd2bf10f Mon Sep 17 00:00:00 2001 From: David Leung <265220+dhl@users.noreply.github.com> Date: Tue, 28 Nov 2023 23:27:40 +0800 Subject: [PATCH] Update ERC-6596: Move to Review Merged by EIP-Bot. --- ERCS/erc-6596.md | 696 ++++++++++++++++++----------------------------- 1 file changed, 269 insertions(+), 427 deletions(-) diff --git a/ERCS/erc-6596.md b/ERCS/erc-6596.md index 3ef296f880..8915c457e0 100644 --- a/ERCS/erc-6596.md +++ b/ERCS/erc-6596.md @@ -1,10 +1,10 @@ --- eip: 6596 -title: Historical Asset Metadata JSON Schema -description: Metadata JSON Schema extension to enhance the discoverability, connectivity, and collectability of historically significant NFTs. -author: Phillip Pon , Gary Liu , Henry Chan , Joey Liu , Lauren Ho , Jeff Leung , Yvan Fatal , Brian Liang , Seungyong Moon , Joyce Li , Phoebe Kwok , Avir Mahtani , Zeon Chan , Antoine Cote , David Leung (@dhl) +title: Cultural and Historical Asset Token +description: Metadata extension to enhance the discoverability, connectivity, and collectability of culturally and historically significant NFTs. +author: Phillip Pon , Gary Liu , Henry Chan , Joey Liu , Lauren Ho , Jeff Leung , Brian Liang , Joyce Li , Avir Mahtani , Antoine Cote (@acote88), David Leung (@dhl) discussions-to: https://ethereum-magicians.org/t/eip-6596-historical-asset-metadata-json-schema/13090 -status: Stagnant +status: Review type: Standards Track category: ERC created: 2023-02-28 @@ -13,51 +13,57 @@ requires: 721, 1155 ## Abstract -This EIP proposes the establishment of a new metadata standard for Historical Asset Tokens (HATs) on the Ethereum -platform. HATs are tokens that represent a specific historical asset, such as a collectible or a rare item, and provide -comprehensive context and provenance needed to establish historical significance and value. +This EIP proposes the establishment of a comprehensive metadata standard for Cultural and Historical Asset Tokens +(CHATs) on the Ethereum platform. These tokens represent cultural and historical assets such as artwork, artifacts, +collectibles, and rare items, providing crucial context and provenance to substantiate their significance and value. -HAT is the metadata standard and smart contract for historical NFTs. While existing NFT standards offer the mechanism to -ensure immutability and decentralised ownership of assets on the blockchain, we believe a rich metadata standard (that -includes data for the underlying asset from its moment of creation to its moment of conversion) will imbue historical -NFTs with the comprehensive context and provenance needed to establish historical significance and value. Additionally, -the standard will enhance the discoverability, connectivity, and collectability of all HATs. +While existing NFT standards ensure the immutability and decentralized ownership of assets on the blockchain, based on +our research they do not adequately capture the cultural and historical importance and value of such assets needed for +widespread adoption by institutions such as museums. The CHAT standard aims to overcome these limitations by preserving +the provenance, history, and evolving context of cultural and historical assets, thus substantiating their value. +Furthermore, it incentivises museums, institutions, and asset owners to create tamper-proof records on the blockchain, +ensuring transparency and accountability and accelerating adoption of web3 protocols. Additionally, the CHAT standard +promotes interoperability with existing metadata standards in the arts and cultural sector, facilitating the search, +discovery, and connection of distributed assets. ## Motivation -In recent years, the market for collectible and rare items has experienced significant growth, with many people looking -to buy, sell, and trade these assets in an efficient and secure manner. However, the current market for historical -assets is often plagued by issues such as fraud, counterfeiting, and lack of transparency. - -The creation of a standard for HATs on the Ethereum platform has the potential to address these issues and provide a -secure and transparent marketplace for historical assets. By representing historical assets as tokens on the blockchain, -it becomes possible to create a permanent, tamper-proof record of ownership and transfer of these assets, while also -providing a level of transparency and security that is not currently available in traditional markets. - -The standard is proposed as the number and variety of NFT projects increases. The current [ERC-721](./eip-721.md) has a -modest metadata -extension, optionally allowing for the inclusion of “name” and “symbol” functions to identify NFT -collections, and for "name", "descriptions", and “image” attributes to represent assets. Metadata plays a big role in -facilitating the search and discovery of NFTs on marketplaces. As the number and variety of NFT projects increases, -disconnected and limited metadata structures makes it difficult for collectors to navigate through the ocean of NFT -assets on major marketplaces and make sense of their value. - -The provenance and history of artworks, artifacts and historical IP can take different forms and be created by -different issuers. While there is no consolidated archive, a standardised metadata structure provides connectivity -across NFTs associated with historical and cultural assets, regardless of the medium and issuer. For example, a video -clip issued by a local filmmaker about the 1997 handover of Hong Kong can be connected to the news coverage by South -China Morning Post (SCMP) of the Sino-British Joint Declaration via the HAT metadata. While well-informed collectors may -not need this programmed connectivity, a standardised metadata for HATs will make these connections easily accessible -for all collectors, scholars, and interested parties. - -Provenance and context are extremely important for historical assets. The archival and research of significant artworks, -objects, and collections are ongoing; it is a collaborative effort between creators, artist estates, galleries, auction -houses, scholars and institutions. The consolidation of information and knowledge is not only crucial to the -understanding of our cultural heritage; the richer the context, the more valuable the asset is to collectors. A shared -and standardised metadata structure enriches the context of an NFT. With the establishment of HATs, it is our hope that -this standardised structure will contribute to the evolution of cultural heritage, and fully capture the context of -culturally and historically significant assets, thereby ensuring relevant and fair value for all historically -significant NFTs. +**Preserving context and significance** - Provenance and context are crucial for cultural and historical assets. The +CHAT standard captures and preserves the provenance and history of these assets, as well as the changing contexts that +emerge from new knowledge and information. This context and provenance substantiate the significance and value of +cultural and historical assets. + +**Proof-based preservation** - The recent incidents of lost artifacts and data breaches at a number of significant +international museums points to a need in reassessing our current record keeping mechanisms. While existing systems +mostly operate on trust, blockchain technology offers opportunities to establish permanent and verifiable records in a +proof-based environment. Introducing the CHAT standard on the Ethereum platform enables museums, institutions, and +owners of significant collections to create tamper-proof records on the blockchain. By representing these valuable +cultural and historical assets as tokens on the blockchain, permanent and tamper-proof records can be established +whenever amendments are made, ensuring greater transparency and accountability. + +**Interoperability** - The proposed standard addresses the multitude of existing metadata standards used in the arts and +cultural sector. The vision is to create a metadata structure specifically built for preservation on the blockchain that +is interoperable with these existing standards and compliant with the Open Archives Initiative (OAI) as well as the +International Image Interoperability Framework protocol (IIIF). + +**Search and Discovery** - Ownership and history of artworks, artifacts, and historical intellectual properties are +often distributed. Although there may never be a fully consolidated archive, a formalized blockchain-based metadata +structure enables consolidation for search and discovery of the assets, without consolidating the ownership. For +example, an artifact from an archaeological site of the Silk Road can be connected with Buddhist paintings, statues, and +texts about the ancient trade route across museum and institutional collections internationally. The proposed CHAT +metadata structure will facilitate easy access to these connections for the general public, researchers, scholars, other +cultural professionals, brands, media, and any other interested parties. + +Currently, the [ERC-721](./eip-721.md) standard includes a basic metadata extension, which optionally provides functions +for identifying NFT collections ("name" and "symbol") and attributes for representing assets ("name," "description," +and "image"). However, to provide comprehensive context and substantiate the value of tokenized assets, NFT issuers +often create their own metadata structures. We believe that the basic extension alone is insufficient to capture the +context and significance of cultural and historical assets. The lack of interoperable and consistent rich metadata +hinders users' ability to search, discover, and connect tokenized assets on the blockchain. While connectivity among +collections may not be crucial for NFTs designed for games and memberships, it is of utmost importance for cultural and +historical assets. As the number and diversity of tokenized assets on the blockchain increase, it becomes essential to +establish a consistent and comprehensive metadata structure that provides context, substantiates value, and enables +connected search and discovery at scale. ## Specification @@ -65,378 +71,194 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "S RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 and RFC 8174. This EIP extends [ERC-721](./eip-721.md) and [ERC-1155](./eip-1155.md) with 48 additional properties to capture the -historical significance of the underlying asset. +cultural and historical significance of the underlying asset. Compatible contracts, besides implementing the relevant metadata schemas ("Metadata JSON Schema" for [ERC-721](./eip-721.md) contracts or "Metadata URI JSON Schema" for [ERC-1155](./eip-1155.md) contracts), must implement the following metadata interface. -### Historical Asset Metadata Extension TypeScript Interface +### Cultural and Historical Asset Metadata Extension TypeScript Interface -The following TypeScript interface defines the mandatory and optional properties compatible tokens must conform to: +The following TypeScript interface defines the Metadata JSON Schema compatible tokens must conform to: ```typescript interface HistoricalAssetMetadata { - name: string; // Name of the HAT - description: string, // Full description of the HAT to provide the historical context - image: string; // A URI pointing to a resource with mime type image/* to serve as the cover image of the HAT - properties: { - id: string; // An unambiguous identifier of the HAT - summary: string; // Short description of the HAT, no more than 200 characters - assetType: // The type of the underlying asset - "newspaper_cover" - | "magazine_a1_cover" - | "newspaper_article" - | "magazine_article" - | "photo" - | "graphic" - | "video" - | "audio" - | "3d_object" - | "others"; - issuers: string[]; // Organizations or individuals who created the HAT - issueTimestamp: string; // The date and time the HAT was issued in ISO 8601 format - edition: number; // Unique serial number of the HAT - editionCount: number; // Total number of editions available for this HAT - fileURI: string; // Link to the digital file representing the HAT - fileSize: number; // Size of the digital file of the HAT in bytes - fileFormat: string; // MIME type of the digital file of the HAT - seriesName?: string; // The name of the series this HAT is a part of - assetFullText?: string; // The full text in the underlying asset of the HAT - assetCreators?: string[]; // Organizations or individuals who created the underlying asset - earliestPossibleCreationDate?: string; // Earliest possible creation date of the underlying asset in ISO 8601 date format - latestPossibleCreationDate: string; // Latest possible creation date of the underlying asset in ISO 8601 date format - assetCreationGeos?: string; // Country, subdivision, and city where the underlying asset was created. Reference to ISO 3166-2 standard for the short name of the country and subdivision. Utilize the official name for the city if it is not covered in the ISO subdivision - assetCreationLocations?: string[]; // Specific cities and named locations where the underlying asset was created - assetCreationCoordinates?: string[]; // Coordinates of the location where the underlying asset was created - relevantDates?: string[]; // Dates, in ISO 8601 date format, that are referenced and important to the significance of the HAT - relevantGeos?: string[]; // Country, subdivision, and city that are referenced and important to the significance of the HAT. Reference to ISO 3166-2 standard for the short name of the country and subdivision. Utilize the official name for the city if it is not covered in the ISO subdivision - relevantLocations?: string[]; // Specific cities and named locations that are referenced and important to the significance of the HAT - relevantPeople?: string[]; // Individuals that are referenced and important to the significance of the HAT - relevantEntities?: string[]; // Entities that are referenced and important to the significance of the HAT - assetLanguages?: string[]; // Languages used in the underlying asset. Reference to ISO 639 for code or macrolanguage names - assetHeight?: string; // Height of the underlying asset - assetWidth?: string; // Width of the underlying asset - assetDepth?: string; // Depth of the underlying asset - assetFileURI?: string; // Link to a high quality file of the underlying asset - assetFileSize?: number; // Size of the digital file of the underlying asset in bytes - assetCopyrightHolder?: string; // Copyright holder of the underlying asset - assetCopyrightDocumentURI?: string; // Link to the legal contract that outlines the copyright of the underlying asset - assetProvenanceRecordURI?: string; // Link to the existing provenance record documents of the underlying asset - isPhysicalAsset?: boolean; // Flags whether the asset is tied to a physical asset - assetMedium?: string; // The material used to create the physical underlying asset - assetFormFormat?: string; // The physical form or the digital format of the underlying asset. For digital format, a MIME type should be specified. - issuerNotes?: string; // Issuer's notes regarding the HAT and its underlying asset - tokenReplaced?: string; // Token identifier of the token this HAT replaced - tokenReferenced?: string; // Token identifier of the token this HAT referenced, or is a derivative of - isOwnerTokenCopyrightRightHolder?: boolean; // Flags whether the HAT token holder is the copyright owner of the HAT. Does not include the copyright to the underlying asset - tokenCopyrightRightDocumentURI?: string; // Link to legal document outlining the rights of the token owner. Specific dimensions include the right to display a work via digital and physical mediums, present the work publicly, create or sell copies of the work, and create or sell derivations from the HAT - isOwnerAssetCopyrightRightHolder?: boolean; // Flags whether the HAT token holder is the copyright owner of the underlying asset. Does not include the copyright to the underlying asset - assetCopyrightRightDocumentURI?: string; // Link to legal document outlining the rights of the token owner. Specific dimensions include the right to display a work via digital and physical mediums, present the work publicly, create or sell copies of the work, and create or sell derivations from the underlying asset - isOwnerTokenReprintRightHolder?: boolean; // Flags whether the token owner has non-exclusive reprint/second serial rights to the HAT. Does not include the rights to the underlying asset - tokenReprintRightDocumentURI?: string; // Link to legal document outlining the token owner’s reprint/second serial rights of the HAT - isOwnerAssetReprintRightHolder?: boolean; // Flags whether the token owner has non-exclusive reprint/second serial rights to the underlying asset. Does not include the rights to the underlying asset - assetReprintRightDocumentURI?: string; // Link to legal document outlining the token owner’s reprint/second serial rights of the underlying asset - isEligibleForRelatedTokenAirdrops?: boolean; // Flags whether the token holder is eligible for related HAT airdrops - isEligibleForMetaverseAccess?: boolean; // Flags whether the token holder can gain access to the HAT metaverse - } + name?: string; // Name of the CHAT + description?: string; // Full description of the CHAT to provide the cultural and historical + // context + image?: string; // A URI pointing to a resource with mime type image/* to serve as the + // cover image of the CHAT + attributes?: CHATAttribute[]; // A list of attributes to describe the CHAT. Attribute object may be + // repeated if a field has multiple values + attributesExt?: ExtendedCHATAttribute[]; // A list of extended attributes to describe the CHAT, not to be + // displayed. Attribute object may be repeated if a field has + // multiple values } -``` -### Historical Asset Metadata JSON Schema +type CHATAttribute = + { trait_type: "Catalogue Level", value: string } + | { trait_type: "Publication / Creation Date", value: string } + | { trait_type: "Creator Name", value: string } + | { trait_type: "Creator Bio", value: string } + | { trait_type: "Asset Type", value: string } + | { trait_type: "Classification", value: string } + | { trait_type: "Materials and Technology", value: string } + | { trait_type: "Subject Matter", value: string } + | { trait_type: "Edition", value: string } + | { trait_type: "Series name", value: string } + | { trait_type: "Dimensions Unit", value: string } + | { trait_type: "Dimensions (height)", value: number } + | { trait_type: "Dimensions (width)", value: number } + | { trait_type: "Dimensions (depth)", value: number } + | { trait_type: "Inscriptions / Marks", value: string } + | { trait_type: "Credit Line", value: string } + | { trait_type: "Current Owner", value: string } + | { trait_type: "Provenance", value: string } + | { trait_type: "Acquisition Date", value: string } + | { trait_type: "Citation", value: string } + | { trait_type: "Keyword", value: string } + | { trait_type: "Copyright Holder", value: string } + | { trait_type: "Bibliography", value: string } + | { trait_type: "Issuer", value: string } + | { trait_type: "Issue Timestamp", value: string } + | { trait_type: "Issuer Description", value: string } + | { trait_type: "Asset File Size", value: number } + | { trait_type: "Asset File Format", value: string } + | { trait_type: "Copyright / Restrictions", value: string } + | { trait_type: "Asset Creation Geo", value: string } + | { trait_type: "Asset Creation Location", value: string } + | { trait_type: "Asset Creation Coordinates", value: string } + | { trait_type: "Relevant Date", value: string } + | { trait_type: "Relevant Geo", value: string } + | { trait_type: "Relevant Location", value: string } + | { trait_type: "Relevant Person", value: string } + | { trait_type: "Relevant Entity", value: string } + | { trait_type: "Asset Language", value: string } + | { trait_type: "Is Physical Asset", value: boolean } + +type ExtendedCHATAttribute = + { trait_type: "Asset Full Text", value: string } + | { trait_type: "Exhibition / Loan History", value: string } + | { trait_type: "Copyright Document", value: string } + | { trait_type: "Provenance Document", value: string } + | { trait_type: "Asset URL", value: string } + | { trait_type: "Copyright Document of Underlying Asset", value: string } +``` -The following JSON Schema enforces the constraints set out in the above interface definition. Tokens adopting the -Historical Asset Metadata JSON Schema extension should be validated against the JSON schema prior to minting: +#### CHATAttribute Description + +| trait_type | description | +|-----------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Catalogue Level | An indication of the level of cataloging represented by the record, based on the physical form or intellectual content of the material | +| Publication / Creation Date | Earliest possible creation date of the underlying asset in ISO 8601 date format | +| Creator Name | The name, brief biographical information, and roles (if necessary) of the named or anonymous individuals or corporate bodies responsible for the design, production, manufacture, or alteration of the work, presented in a syntax suitable for display to the end-user and including any necessary indications of uncertainty, ambiguity, and nuance. If there is no known creator, make a reference to the presumed culture or nationality of the unknown creator | +| Creator Bio | The brief biography or description of creator | +| Asset Type | The type of the underlying asset | +| Classification | Classification terms or codes are used to place a work of art or architecture in a useful organizational scheme that has been devised by a repository, collector, or other person or entity. Formal classification systems are used to relate a work of art or architecture to broader, narrower, and related objects. Classification terms group similar works together according to varying criteria | +| Materials and Technology | The materials and/or techniques used to create the physical underlying asset | +| Subject Matter | Indexing terms that characterize in general terms what the work depicts or what is depicted in it. This subject analysis is the minimum required. It is recommended to also list specific subjects, if possible | +| Edition | Edition of the original work | +| Series Name | The name of the series the asset is a part of | +| Dimensions Unit | Unit of the measurement of the dimension of the asset | +| Dimensions (height) | Height of the underlying asset | +| Dimensions (width) | Width of the underlying asset | +| Dimensions (depth) | Depth of the underlying asset | +| Credit Line | Crediting details of the source or origin of an image or content being used publicly. The credit line typically includes important details such as the name of the museum, the title or description of the artwork or object, the artist's name (if applicable), the date of creation, and any other relevant information that helps identify and contextualize the work | +| Inscriptions / Marks | A description of distinguishing or identifying physical markings, lettering, annotations, texts, or labels that are a part of a work or are affixed, applied, stamped, written, inscribed, or attached to the work, excluding any mark or text inherent in materials (record watermarks in MATERIALS AND TECHNIQUES) | +| Current Owner | Name of the current owner | +| Provenance | Provenance provides crucial information about the artwork's authenticity, legitimacy, and historical significance. It includes details such as the names of previous owners, dates of acquisition, locations where the artwork or artifact resided, and any significant events or transactions related to its ownership | +| Acquisition Date | The date on which the acquirer obtained the asset | +| Citation | Citations of the asset in publications, journals, and any other medium | +| Keyword | Keywords that are relevant for researchers | +| Copyright Holder | Copyright holder of the underlying asset | +| Bibliography | Information on where this asset has been referenced, cited, consulted, and for what purpose | +| Issuer | Issuer of the token | +| Issue Timestamp | Date of token creation | +| Issuer Description | Brief description of the issuing party | +| Asset File Size | Size of the digital file of the underlying asset in bytes | +| Asset File Format | The physical form or the digital format of the underlying asset. For digital format, a MIME type should be specified | +| Copyright / Restrictions | The copyright status the work is under | +| Asset Creation Geo | Country, subdivision, and city where the underlying asset was created. Reference to ISO 3166-2 standard for the short name of the country and subdivision. Utilize the official name for the city if it is not covered in the ISO subdivision | +| Asset Creation Location | Specific cities and named locations where the underlying asset was created | +| Asset Creation Coordinates | Coordinates of the location where the underlying asset was created | +| Relevant Date | Dates, in ISO 8601 date format, referenced in, and important to the significance of the CHAT | +| Relevant Geo | Country, subdivision, and city CHATs are referenced and important to the significance of the CHAT. Reference to ISO 3166-2 standard for the short name of the country and subdivision. Utilize the official name for the city if it is not covered in the ISO subdivision | +| Relevant Location | Specific cities and named locations referenced in, and important to the significance of the CHAT | +| Relevant Person | Individuals referenced in, and important to the significance of the CHAT | +| Relevant Entity | Entities referenced in, and important to the significance of the CHAT | +| Asset Language | Languages used in the underlying asset. Reference to ISO 639 for code or macrolanguage names | +| Is Physical Asset | Flags whether the asset is tied to a physical asset | + +#### ExtendedCHATAttribute Description + +| trait_type | description | +|----------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Asset Full Text | The full text in the underlying asset of the CHAT | +| Exhibition / Loan History | Including exhibition/loan description, dates, title, type, curator, organizer, sponsor, venue | +| Copyright Document | A URI pointing to the legal contract CHATs outlines the copyright of the underlying asset | +| Provenance Document | A URI pointing to the existing provenance record documents of the underlying asset | +| Asset URL | A URI pointing to a high-quality file of the underlying asset | +| Copyright Document of Underlying Asset | A URI pointing to legal document outlining the rights of the token owner. Specific dimensions include the right to display a work via digital and physical mediums, present the work publicly, create or sell copies of the work, and create or sell derivations from the underlying asset | + +#### Example + +To illustrate the use of the CHAT metadata extension, we provide an example of a CHAT metadata JSON file for the famous +Japanese woodblock print "Under the Wave off Kanagawa" by Katsushika Hokusai, which is currently held by the Art +Institute of Chicago. + +The metadata format is compatible with the [ERC-721](./eip-721.md) and OpenSea style metadata format. ```json { - "title": "Historical Asset Metadata", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of the HAT" - }, - "description": { - "type": "string", - "description": "Full description of the HAT to provide the historical context" - }, - "image": { - "type": "string", - "description": "A URI pointing to a resource with mime type image/* to serve as the cover image of the HAT", - "format": "uri" - }, - "properties": { - "type": "object", - "description": "Historical asset attributes", - "properties": { - "id": { - "type": "string", - "description": "An unambiguous identifier of the HAT" - }, - "summary": { - "type": "string", - "description": "Short description of the HAT, no more than 200 characters" - }, - "assetType": { - "type": "string", - "enum": [ - "newspaper_cover", - "magazine_a1_cover", - "newspaper_article", - "magazine_article", - "photo", - "graphic", - "video", - "audio", - "3d_object", - "others" - ], - "description": "The type of the underlying asset" - }, - "issuers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Organizations or individuals who created the HAT" - }, - "issueTimestamp": { - "type": "string", - "description": "The date and time the HAT was issued in ISO 8601 format", - "format": "date-time" - }, - "edition": { - "type": "integer", - "description": "Unique serial number of the HAT" - }, - "editionCount": { - "type": "integer", - "description": "Total number of editions available for this HAT" - }, - "fileURI": { - "type": "string", - "description": "Link to the digital file representing the HAT", - "format": "uri" - }, - "fileSize": { - "type": "integer", - "description": "Size of the digital file of the HAT in bytes" - }, - "fileFormat": { - "type": "string", - "description": "MIME type of the digital file of the HAT" - }, - "seriesName": { - "type": "string", - "description": "The name of the series this HAT is a part of" - }, - "assetFullText": { - "type": "string", - "description": "The full text in the underlying asset of the HAT" - }, - "assetCreators": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Organizations or individuals who created the underlying asset" - }, - "earliestPossibleCreationDate": { - "type": "string", - "description": "Earliest possible creation date of the underlying asset in ISO 8601 date format", - "format": "date" - }, - "latestPossibleCreationDate": { - "type": "string", - "format": "date", - "description": "Latest possible creation date of the underlying asset in ISO 8601 date format" - }, - "assetCreationGeos": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Country, subdivision, and city where the underlying asset was created. Reference to ISO 3166-2 standard for the short name of the country and subdivision. Utilize the official name for the city if it is not covered in the ISO subdivision" - }, - "assetCreationLocations": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Specific cities and named locations where the underlying asset was created" - }, - "assetCreationCoordinates": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Coordinates of the location where the underlying asset was created" - }, - "relevantDates": { - "type": "array", - "items": { - "type": "string", - "description": "Dates, in ISO 8601 date format, that are referenced and important to the significance of the HAT", - "format": "date" - } - }, - "relevantGeos": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Country, subdivision, and city that are referenced and important to the significance of the HAT. Reference to ISO 3166-2 standard for the short name of the country and subdivision. Utilize the official name for the city if it is not covered in the ISO subdivision" - }, - "relevantLocations": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Specific cities and named locations that are referenced and important to the significance of the HAT" - }, - "relevantPeople": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Individuals that are referenced and important to the significance of the HAT" - }, - "relevantEntities": { - "type": "string", - "description": "Entities that are referenced and important to the significance of the HAT" - }, - "assetLanguages": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Languages used in the underlying asset. Reference to ISO 639 for code or macrolanguage names" - }, - "assetHeight": { - "type": "string", - "description": "Height of the underlying asset" - }, - "assetWidth": { - "type": "string", - "description": "Width of the underlying asset" - }, - "assetDepth": { - "type": "string", - "description": "Depth of the underlying asset" - }, - "assetFileURI": { - "type": "string", - "description": "Link to a high quality file of the underlying asset", - "format": "uri" - }, - "assetFileSize": { - "type": "integer", - "description": "Size of the digital file of the underlying asset in bytes" - }, - "assetCopyrightHolder": { - "type": "string", - "description": "Copyright holder of the underlying asset" - }, - "assetCopyrightDocumentURI": { - "type": "string", - "description": "Link to the legal contract that outlines the copyright of the underlying asset", - "format": "uri" - }, - "assetProvenanceRecordURI": { - "type": "string", - "description": "Link to the existing provenance record documents of the underlying asset", - "format": "uri" - }, - "isPhysicalAsset": { - "type": "boolean", - "description": "Flags whether the asset is tied to a physical asset" - }, - "assetMedium": { - "type": "string", - "description": "The material used to create the physical underlying asset" - }, - "assetFormFormat": { - "type": "string", - "description": "The physical form or the digital format of the underlying asset" - }, - "issuerNotes": { - "type": "string", - "description": "Issuer's notes regarding the HAT and its underlying asset" - }, - "tokenReplaced": { - "type": "string", - "description": "Token identifier of the token this HAT replaced" - }, - "tokenReferenced": { - "type": "string", - "description": "Token identifier of the token this HAT referenced, or is a derivative of" - }, - "isOwnerTokenCopyrightRightHolder": { - "type": "boolean", - "description": "Flags whether or not the HAT token holder is the copyright owner of the underlying asset. Does not include the copyright to the underlying asset" - }, - "tokenCopyrightRightDocumentURI": { - "type": "string", - "description": "Link to legal document outlining the rights of the token owner. Specific dimensions include the right to display a work via digital and physical mediums, present the work publicly, create or sell copies of the work, and create or sell derivations from the HAT", - "format": "uri" - }, - "isOwnerAssetCopyrightRightHolder": { - "type": "boolean", - "description": "Flags whether or not the HAT token holder is the copyright owner of the underlying asset. Does not include the copyright to the underlying asset" - }, - "assetCopyrightRightDocumentURI": { - "type": "string", - "description": "Link to legal document outlining the rights of the token owner. Specific dimensions include the right to display a work via digital and physical mediums, present the work publicly, create or sell copies of the work, and create or sell derivations from the underlying asset", - "format": "uri" - }, - "isOwnerTokenReprintRightHolder": { - "type": "boolean", - "description": "Flags whether or not the HAT token owner has non-exclusive reprint/second serial rights to the HAT. Does not include the rights to the underlying asset" - }, - "tokenReprintRightDocumentURI": { - "type": "string", - "description": "Link to legal document outlining the token owner’s reprint/second serial rights of the HAT", - "format": "uri" - }, - "isOwnerAssetReprintRightHolder": { - "type": "boolean", - "description": "Flags whether or not the HAT token owner has non-exclusive reprint/second serial rights to the underlying asset. Does not include the rights to the underlying asset" - }, - "assetReprintRightDocumentURI": { - "type": "string", - "description": "Link to legal document outlining the token owner’s reprint/second serial rights of the underlying asset", - "format": "uri" - }, - "isEligibleForRelatedTokenAirdrops": { - "type": "boolean", - "description": "Flags whether or not the HAT token holder is eligible for related HAT airdrops" - }, - "isEligibleForMetaverseAccess": { - "type": "boolean", - "description": "Flags whether or not the HAT token holder can gain access to the HAT metaverse" - } - }, - "required": [ - "assetType", - "id", - "issuers", - "summary", - "issueTimestamp", - "edition", - "editionCount", - "fileURI", - "fileSize", - "fileFormat", - "latestPossibleCreationDate" - ] - } - }, - "required": [ - "name", - "description", - "image", - "properties" + "name": "Under the Wave off Kanagawa (Kanagawa oki nami ura), also known as The Great Wave, from the series “Thirty-Six Views of Mount Fuji (Fugaku sanjūrokkei)", + "description": "Katsushika Hokusai’s much celebrated series, Thirty-Six Views of Mount Fuji (Fugaku sanjûrokkei), was begun in 1830, when the artist was 70 years old. This tour-de-force series established the popularity of landscape prints, which continues to this day. Perhaps most striking about the series is Hokusai’s copious use of the newly affordable Berlin blue pigment, featured in many of the compositions in the color for the sky and water. Mount Fuji is the protagonist in each scene, viewed from afar or up close, during various weather conditions and seasons, and from all directions.\n\nThe most famous image from the set is the “Great Wave” (Kanagawa oki nami ura), in which a diminutive Mount Fuji can be seen in the distance under the crest of a giant wave. The three impressions of Hokusai’s Great Wave in the Art Institute are all later impressions than the first state of the design.", + "image": "ipfs://bafybeiav6sqcgzxk5h5afnmb3iisgma2kpnyj5fa5gnhozwaqwzlayx6se", + "attributes": [ + { "trait_type": "Publication / Creation Date", "value": "1826/1836" }, + { "trait_type": "Creator Name", "value": "Katsushika Hokusai" }, + { "trait_type": "Creator Bio", "value": "Katsushika Hokusai’s woodblock print The Great Wave is one of the most famous and recognizable works of art in the world. Hokusai spent the majority of his life in the capital of Edo, now Tokyo, and lived in a staggering 93 separate residences. Despite this frenetic movement, he produced tens of thousands of sketches, prints, illustrated books, and paintings. He also frequently changed the name he used to sign works of art, and each change signaled a shift in artistic style and intended audience." }, + { "trait_type": "Asset Type", "value": "Painting" }, + { "trait_type": "Classification", "value": "Arts of Asia" }, + { "trait_type": "Materials and Technology", "value": "Color woodblock print, oban" }, + { "trait_type": "Subject Matter", "value": "Asian Art" }, + { "trait_type": "Subject Matter", "value": "Edo Period (1615-1868)" }, + { "trait_type": "Subject Matter", "value": "Ukiyo-e Style" }, + { "trait_type": "Subject Matter", "value": "Woodblock Prints" }, + { "trait_type": "Subject Matter", "value": "Japan 1800-1900 A.D." }, + { "trait_type": "Edition", "value": "1" }, + { "trait_type": "Series name", "value": "Thirty-Six Views of Mount Fuji (Fugaku sanjûrokkei)" }, + { "trait_type": "Dimensions Unit", "value": "cm" }, + { "trait_type": "Dimensions (height)", "value": 25.4 }, + { "trait_type": "Dimensions (width)", "value": 37.6 }, + { "trait_type": "Inscriptions / Marks", "value": "Signature: Hokusai aratame Iitsu fude" }, + { "trait_type": "Inscriptions / Marks", "value": "Publisher: Nishimura-ya Yohachi" }, + { "trait_type": "Credit Line", "value": "Clarence Buckingham Collection" }, + { "trait_type": "Current Owner", "value": "Art Institute of Chicago" }, + { "trait_type": "Provenance", "value": "Yamanaka, New York by 1905" }, + { "trait_type": "Provenance", "value": "Sold to Clarence Buckingham, Chicago by 1925" }, + { "trait_type": "Provenance", "value": "Kate S. Buckingham, Chicago, given to the Art Institute of Chicago, 1925." }, + { "trait_type": "Acquisition Date", "value": "1925" }, + { "trait_type": "Citation", "value": "James Cuno, The Art Institute of Chicago: The Essential Guide, rev. ed. (Art Institute of Chicago, 2009) p. 100." }, + { "trait_type": "Citation", "value": "James N. Wood, The Art Institute of Chicago: The Essential Guide, rev. ed. (Art Institute of Chicago, 2003), p. 86." }, + { "trait_type": "Citation", "value": "Jim Ulak, Japanese Prints (Art Institute of Chicago, 1995), p. 268." }, + { "trait_type": "Citation", "value": "Ukiyo-e Taikei (Tokyo, 1975), vol. 8, 29; XIII, I." }, + { "trait_type": "Citation", "value": "Matthi Forrer, Hokusai (Royal Academy of Arts, London 1988), p. 264." }, + { "trait_type": "Citation", "value": "Richard Lane, Hokusai: Life and Work (London, 1989), pp. 189, 192." }, + { "trait_type": "Copyright Holder", "value": "Public domain" }, + { "trait_type": "Copyright / Restrictions", "value": "CC0" }, + { "trait_type": "Asset Creation Geo", "value": "Japan" }, + { "trait_type": "Asset Creation Location", "value": "Tokyo (Edo)" }, + { "trait_type": "Asset Creation Coordinates", "value": "36.2048° N, 138.2529° E" }, + { "trait_type": "Relevant Date", "value": "18th Century" }, + { "trait_type": "Relevant Geo", "value": "Japan, Chicago" }, + { "trait_type": "Relevant Location", "value": "Art Institute of Chicago" }, + { "trait_type": "Relevant Person", "value": "Katsushika Hokusai" }, + { "trait_type": "Relevant Person", "value": "Yamanaka" }, + { "trait_type": "Relevant Person", "value": "Clarence Buckingham" }, + { "trait_type": "Relevant Person", "value": "Kate S. Buckingham" }, + { "trait_type": "Relevant Entity", "value": "Art Institute of Chicago, Clarence Buckingham Collection" }, + { "trait_type": "Asset Language", "value": "Japanese" }, + { "trait_type": "Is Physical Asset", "value": true } ] } ``` @@ -445,26 +267,45 @@ Historical Asset Metadata JSON Schema extension should be validated against the ### Choosing to Extend Off-Chain Metadata JSON Schema over On-Chain Interface -Both the [ERC-721](./eip-721.md) and [ERC-1155](./eip-1155.md) provides natural extension point in the metadata JSON -file associated with NFTs to provide enriched dataset about the underlying assets. +Both the [ERC-721](./eip-721.md) and [ERC-1155](./eip-1155.md) provide natural extension points in the metadata JSON +file associated with NFTs to supply enriched datasets about the underlying assets. + +Providing enriched datasets through off-chain metadata JSON files allows existing NFT contracts to adopt the new +metadata structure proposed in this EIP without upgrading or migrating. The off-chain design enables flexible and +progressive enhancement of any NFT collections to adopt this standard gradually. This approach allows NFT collections to +be deployed using already-audited and battle-tested smart contract code without creating or adapting new smart +contracts, reducing the risk associated with adopting and implementing a new standard. -Providing enriched dataset through off-chain metadata JSON files allow already-deployed NFT contracts to adopt the -metadata structure in this EIP without upgrade or migration. The off-chain design allows for flexible and progressive -enhancement of any NFT collections to adopt standard such as this EIP, and to progressively enhance and enrich the -collection over time. +### Capturing Attributes Extensions in `attributes` and `attributesExt` properties -By avoiding the need to newly create or adapt smart contracts, NFT collections can be deployed using audited and battle -tested smart contract code, thus reducing the risk of adopting and implementing a new standard. +In the design of the Cultural and Historical Asset Token (CHAT) metadata extension, we have made a deliberate choice to +capture the metadata attributes between two main properties: `attributes` and `attributesExt`. This division serves +two distinct purposes while ensuring maximum compatibility with existing NFT galleries and marketplaces. -### Capturing Attributes Extensions in `properties` property +**1. `attributes` Property** -The [ERC-1155](./eip-1155.md) standard has a `properties` property in its JSON Metadata Schema to define an arbitrary -set of additional metadata or properties to describe an underlying asset. Defining the metadata fields in this EIP over -this properties preserve the overall shape of the metadata schema of the [ERC-1155](./eip-1155.md), minimizing the -change needed to list and process the proposed properties. +The `attributes` property contains core metadata attributes that are integral to the identity and categorization of +CHATs. These attributes are meant to be readily accessible, displayed, and searchable by NFT galleries and marketplaces. +By placing fundamental details such as the CHAT's name, description, image, and other key characteristics +in `attributes`, we ensure that these essential elements can be easily presented to users, collectors, and researchers. +This approach allows CHATs to seamlessly integrate with existing NFT platforms and marketplaces without requiring major +modifications. -For tokens minted against the [ERC-721](./eip-721.md) standard, only one additional property needs to be added to the -metadata JSON object to take advantage of the standardized fields, simplifying the adoption of this standard. +**2. `attributesExt` Property** + +The `attributesExt` property, on the other hand, is dedicated to extended attributes that provide valuable, in-depth +information about a CHAT but are not typically intended for display or search within NFT galleries and marketplaces. +These extended attributes serve purposes such as archival documentation, provenance records, and additional context that +may not be immediately relevant to a casual observer or collector. By isolating these extended attributes +in `attributesExt`, we strike a balance between comprehensiveness and user-friendliness. This approach allows CHAT +creators to include rich historical and contextual data without overwhelming the typical user interface, making the +extended information available for scholarly or specialized use cases. + +This division of attributes into `attributes` and `attributesExt` ensures that the CHAT standard remains highly +compatible with existing NFT ecosystems, while still accommodating the specific needs of cultural and historical assets. +Users can enjoy a seamless experience in browsing and collecting CHATs, while researchers and historians have access to +comprehensive information when required, all within a framework that respects the practicalities of both user interfaces +and extended data documentation. ## Backwards Compatibility @@ -472,22 +313,23 @@ This EIP is fully backward compatible with [ERC-721](./eip-721.md) and [ERC-1155 ## Security Considerations -NFT platforms and systems working with Historical Asset Metadata JSON files are recommended to treat the files as client -supplied data and follow the appropriate best practices for processing such data. +NFT platforms and systems working with Cultural and Historical Asset Metadata JSON files are recommended to treat the +files as client-supplied data and follow the appropriate best practices for processing such data. -When processing the URI fields, backend systems should take care to prevent a malicious issuer exploiting these fields -to perform Server-Side Request Forgery (SSRF). +Specifically, when processing the URI fields, backend systems should take extra care to prevent a malicious issuer from +exploiting these fields to perform Server-Side Request Forgery (SSRF). Frontend or client-side systems are recommended to escape all control characters that may be exploited to perform Cross-Site Scripting (XSS). - -Processing systems are also recommended to take care with resource allocation to mitigate against buffer overflow due to -improper processing of variable data such as strings, arrays, and JSON objects. This is to prevent the systems from -becoming susceptible to Denial of Service (DOS) attack or circumventing security protection through arbitrary code -exception. + +Processing systems should manage resource allocation to prevent the systems from being vulnerable to Denial of Service ( +DOS) attacks or circumventing security protection through arbitrary code exceptions. Improper processing of variable +data, such as strings, arrays, and JSON objects, may result in a buffer overflow. Therefore, it is crucial to allocate +resources carefully to avoid such vulnerabilities. The metadata JSON files and the digital resources representing both the token and underlying assets should be stored in -a decentralized storage network to preserve integrity and to ensure available of data for long term preservation. +a decentralized storage network to preserve the integrity and to ensure the availability of data for long-term +preservation. Establishing the authenticity of the claims made in the Metadata JSON file is beyond the scope of this EIP, and is left to future EIPs to propose an appropriate protocol.