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 Commit 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 Nid 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 Commit specifications, which then allows users to trace the complete history of an asset. Users may also use API or nit 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. 1.
    assetCid: (string) The Nid of the asset file
  2. 2.
    assetCreator: (string) Name of the asser creator
  3. 3.
    encodingFormat: (string) The asset's type expressed using a MIME format
  4. 4.
    abstract: (string) A summary or abstract of the asset
  5. 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. 6.
    digitalSourceType: (string, optional) Specify the type of the source. More details see here.
  7. 7.
    assetLocationCreated: (string, optional) precise or broad location where the asset was created.
  8. 8.
    assetSha256: (string, optional) SHA-256 hash of the asset file
  9. 9.
    assetSourceType: (string, optional) This field specify where the asset comes from
  10. 10.
    creatorWallet: (string, optional) the Wallet address of the asset creator
  11. 11.
    creatorProfile: (string, optional) The Nid of the creator profile
  12. 12.
    parentAssetCid: (string, optional) The Nid of the parent asset
  13. 13. (string, optional) License of the asset file
  14. 14.
    license.document: (string, optional) URL of the license file
  15. 15.
    miningPreference.allowed : (array, optional) Provide options of the allowed mining preferences for data mining or AI/ML training workflow. More details see here.
  16. 16.
    miningPreference.notAllowed : (array, optional) Provide options of the NOT allowed mining preferences for data mining or AI/ML training workflow. More details see here.
  17. 17.
    miningPreference.constrained : (array, optional) Provide options of the allowed mining preferences with constraints for data mining or AI/ML training workflow. More details see here. If the mining option is shown in the constrained array, the users should follow the license to use the asset properly.
  18. 18.
    generatedBy : (string, optional) The AI model used to generate the content.
  19. 19.
    generatedThrough : (string, optional) URL of the service that is used to generate the content.
  20. 20.
    usedBy: (string, optional) URL of the website that uses the asset
  21. 21.
    integrityCid: (string, optional) the Cid/Nid of the additional proof metadata on IPFS
  22. 22.
    nftRecord: (string, optional) IPFS Cid where you can find all the NFT records. More details can be found in the nftRecord page.
  23. 23.
    custom: (JSON, optional) Custom metadata
The DBDiagram describes the relationship between Commit and AssetTree tables. Here is an example of the AssetTree file. You may also refer to the nit open-source project for more examples of how to create AssetTree and Commit.
  • This specification follows the EIP-191 verification method for input: data, signature and output: signer's wallet address.
Last modified 19d ago