Numbers Protocol
  • 📓Introduction
    • Numbers Protocol
      • Defining Web3 Assets
        • Assetization Process
        • Numbers ID (Nid)
        • Non-Fungible Tokens
        • Commit
        • AssetTree
          • integrityCid
          • digitalSourceType
          • miningPreference
          • nftRecord
        • Commit and AssetTree example
      • Glossary
      • Solution Stack
      • Use Cases
      • Roadmap & Milestones
      • Principles & Standards
    • Whitepaper
    • NUM Token
      • Get NUM
      • Bridge to Multiple Chains
      • Stake NUM
      • Liquidity Providers
      • NUM Utility
      • Token Allocation
      • Deflationary Token Economy
      • Audit Report
      • Distribution and Other Activities
      • Manage your NUM in Cold Wallet
      • 🛠️Developer Tools
    • NumbersDAO
      • Roles & Responsibilities
      • Become A DAO Member
      • Governance & Voting Rules - v2.0
      • [Deprecated] Governance Rules v1.0
    • Weekly Summary
      • 2023
        • 13 Jan 2023
        • 20 Jan 2023
        • 27 Jan 2023
        • 3 Feb 2023
        • 10 Feb 2023
        • 17 Feb 2023
        • 24 Feb 2023
        • 3 Mar 2023
        • 10 March 2023
        • 17 Mar 2023
        • 24 Mar 2023
        • 31 Mar 2023
        • 7 Apr 2023
        • 14 Apr 2023
        • 21 Apr 2023
        • 28 Apr 2023
        • 5 May 2023
        • 12 May 2023
        • 19 May 2023
        • 26 May 2023
        • 2 June 2023
        • 9 June 2023
        • 16 June 2023
        • 23 June 2023
        • 30 June 2023
        • 7 July 2023
        • 14 July 2023
        • 21 July 2023
        • 28 July 2023
        • 4 Aug 2023
        • 11 Aug 2023
        • 18 Aug 2023
        • 25 Aug 2023
        • 01 Sep 2023
        • 08 Sep 2023
        • 15 Sep 2023
        • 22 Sep 2023
        • 29 Sep 2023
        • 6 Oct 2023
        • 13 Oct 2023
        • 20 Oct 2023
        • 27 Oct 2023
        • 3 Nov 2023
        • 10 Nov 2023
        • 17 Nov 2023
        • 24 Nov 2023
        • 1 Dec 2023
        • 8 Dec 2023
        • 15 Dec 2023
        • 22 Dec 2023
        • 29 Dec 2023
      • 2024
        • 5 Jan 2024
        • 12 Jan 2024
        • 19 Jan 2024
        • 26 Jan 2024
        • 2 Feb 2024
        • 9 Feb 2024
        • 16 Feb 2024
        • 23 Feb 2024
        • 1 Mar 2024
        • 8 Mar 2024
        • 15 Mar 2024
        • 22 Mar 2024
        • 29 Mar 2024
        • 5 Apr 2024
        • 12 Apr 2024
        • 19 Apr 2024
        • 26 Apr 2024
        • 3 May 2024
        • 10 May 2024
        • 17 May 2024
        • 24 May 2024
        • 31 May 2024
        • 7 June 2024
        • 14 June 2024
        • 21 June 2024
        • 28 June 2024
        • 5 July 2024
        • 12 July 2024
        • 19 July 2024
        • 26 July 2024
        • 2 Aug 2024
        • 9 Aug 2024
        • 16 Aug 2024
        • 23 Aug 2024
        • 30 Aug 2024
        • 6 Sep 2024
        • 13 Sep 2024
        • 20 Sep 2024
        • 27 Sep 2024
        • 4 Oct 2024
        • 11 Oct 2024
        • 18 Oct 2024
        • 25 Oct 2024
        • 1 Nov 2024
        • 8 Nov 2024
        • 15 Nov 2024
        • 22 Nov 2024
        • 29 Nov 2024
        • 6 Dec 2024
        • 13 Dec 2024
        • 20 Dec 2024
        • 27 Dec 2024
      • 2025
        • 3 Jan 2025
        • 10 Jan 2025
        • 17 Jan 2025
        • 24 Jan 2025
        • 31 Jan 2025
        • 7 Feb 2025
        • 14 Feb 2025
        • 21 Feb 2025
        • 28 Feb 2025
        • 7 Mar 2025
        • 14 Mar 2025
        • 21 Mar 2025
        • 28 Mar 2025
        • 4 Apr 2025
        • 11 Apr 2025
    • Community Wiki
    • FAQ
      • What is provenance and how does it work?
      • What is C2PA and why do we need it?
      • What's the role of Numbers in AI?
      • What's the difference between Numbers and NFT
      • What's the difference between Numbers and C2PA
      • How can Numbers assist songwriters and artists?
      • Why Numbers needs its own blockchain?
      • Why Numbers Mainnet is permissioned?
      • Does Numbers support other blockchain?
      • How is the Nid generated?
      • Should I mint NFT or commit with "license-to" action?
      • Environmental impact of Numbers Mainnet
      • How do I get or bridge Mainnet/BEP-20/ERC-20 NUM?
      • What is Numbers Protocol's role in the AI space?
    • Partnership Programs
      • Creative Origins
      • Creative Innovators
      • Provenance Pioneers
  • 🌐Applications
    • User Tutorials
    • Verify Engine
      • Support Status
      • Search UI Interface
      • Asset Profile
      • Advanced Search & URL Parameters
    • Capture
  • 🛠️Developers
    • Numbers Blockchain
      • Testnet (Snow)
        • Testnet Launch PR
      • Mainnet (Jade)
      • Contract Overview
      • Commit Contract
        • How Commit Contract Works
        • assetTree File
        • On-chain Commit Logs
        • When Should You Use Commit Contract?
      • NFT Contract
    • Initial Asset Registration
    • Verify Engine API
      • Asset Search
      • NFT Search
      • Theft Detection
      • Support Status
    • Nit - Git for Media Files
      • Getting Started
      • Nit Bubble Plugin
    • Read Asset History
      • Read commits with Asset Profile
        • Embed social media into asset profile
      • Read commits via API
      • Read commits via nit module
      • Read commits via Bubble plugin
      • Get the merged AssetTree
    • Commit Asset History
      • Support Status
      • Commit via API
      • Commit via Nit module
      • Commit via Bubble plugin
    • More Tools
      • [NUM] Fetch NUM balance
      • [NUM] Transfer NUM from Custodial Wallet
      • [NUM] Check Staked Amount
      • [IPFS] Cat metadata from Nid/Cid
      • [IPFS] Create Metadata on IPFS
      • [IPFS] Check Nid/Cid on IPFS
      • [IPFS] Unpin Nid/Cid from IPFS
      • XMP parser
    • Working With Us
      • Job Opportunity
      • Reporting Security Vulnerability
Powered by GitBook
On this page
  • What is AssetTree
  • AssetTree Specification
  1. Introduction
  2. Numbers Protocol
  3. Defining Web3 Assets

AssetTree

PreviousCommitNextintegrityCid

Last updated 1 year ago

What is AssetTree

AssetTree files describe an asset's properties, including its creator, creation time, license, and other relevant details. These AssetTree files contain a comprehensive collection of metadata that are important to authenticating digital assets on the blockchain.

When changes are made to an asset, a new is created on the blockchain. This process also leads to the generation of a new AssetTree file, reflecting the updated state of the asset. Each of these commits includes the of the relevant AssetTree within its metadata, linking every asset state to a particular point in the blockchain.

An important part of this process is the merging of AssetTree files. This must be done according to the specifications, which then allows users to trace the complete history of an asset. Users may also use or module to merge AssetTree files. By merging the AssetTree files, one can see the complete lifecycle of the asset from its creation to its alterations, to the current state.

For example, consider a digital art piece that has undergone multiple iterations. Each AssetTree file would document properties such as the artist's name, the dates of revisions, the licenses under which the art is distributed, any relevant keywords, and other pertinent information about the art at each point of its evolution. These historical snapshots can be used to verify the authenticity of the art piece at each stage, ensuring it hasn't been tampered with and can always be traced back to its original creator.

Overall, AssetTree provides a comprehensive view of the properties of the asset and ensures transparency and accountability, making it an essential part of the assetization process.

AssetTree Specification

AssetTree is a JSON file on IPFS containing the following information:

  1. assetCid: (string) The Nid of the asset file

  2. assetCreator: (string) Name of the asser creator. The length should not exceed 15 characters.

  3. encodingFormat: (string) The asset's type expressed using a MIME format

  4. abstract: (string) An abstract is a short description that summarizes the asset, the length should not exceed 500 characters. More details see the definition on the

  5. assetTimestampCreated: (Unix timestamp) Creation time of the asset file, the time when the digital media content was converted to a Web3 asset (i.e. with the first blockchain recognition).

  6. headline: (string, optional) Headline or the title of the content file, the length should not exceed 25 characters. More details see the definition on the

  7. digitalSourceType: (string, optional) Specify the type of the source. More details see .

  8. assetLocationCreated: (string, optional) precise or broad location where the asset was created.

  9. assetSha256: (string, optional) SHA-256 hash of the asset file

  10. assetSourceType: (string, optional) This field specify where the asset comes from

  11. creatorWallet: (string, optional) the Wallet address of the asset creator

  12. creatorProfile: (string, optional) The Nid of the creator profile

  13. parentAssetCid: (string, optional) The Nid of the parent asset

  14. license.name: (string, optional) License of the asset file

  15. license.document: (string, optional) URL of the license file

  16. miningPreference.allowed : (array, optional) Provide options of the allowed mining preferences for data mining or AI/ML training workflow. More details see .

  17. miningPreference.notAllowed : (array, optional) Provide options of the NOT allowed mining preferences for data mining or AI/ML training workflow. More details see .

  18. miningPreference.constrained : (array, optional) Provide options of the allowed mining preferences with constraints for data mining or AI/ML training workflow. More details see . If the mining option is shown in the constrained array, the users should follow the license to use the asset properly.

  19. generatedBy : (string, optional) The AI model used to generate the content.

  20. generatedThrough : (string, optional) URL of the software application or a downloadable link which generates the digital content.

  21. usedBy: (string, optional) URL of the website that uses the asset

  22. integrityCid: (string, optional) the Cid/Nid of the additional proof metadata on IPFS

  23. nftRecord: (string, optional) IPFS Cid where you can find all the NFT records. More details can be found in the .

  24. displaySocial: (boolean, optional) Set this to True if you want to display the asset on with the social media link instead of the IPFS file URL.

  25. socialLink : (string, optional) Social link to the URL. If displaySocial is true, this URL will be used to display the asset on .

  26. custom: (JSON, optional) Custom metadata

Note:

The describes the relationship between and tables. Here is . You may also refer to the for more examples of how to create AssetTree and Commit.

This specification follows the verification method for input: data, signature and output: signer's wallet address.

Signature and Verification Flows
📓
Commit
Nid
Commit
API
nit
schema.org
schema.org
here
here
here
here
nftRecord page
Asset Profile
Asset Profile
DBDiagram
Commit
AssetTree
an example of the AssetTree file
nit open-source project
EIP-191