The Content Graph
Asset Nodes

Asset Nodes

Asset nodes point at the metadata for an asset and function as their tokenized representation.

Asset nodes only exist as leafs in the content graph.

Asset Nodes Ids

The unique id of an asset is calculated based on the content it represents. The unique identifier for a digital asset is generated by hashing the raw data with the keccak256 (opens in a new tab) hashing algorithm. This creates a 256 bit/32 byte unique identifier. As asset nodes are unique there should only be one owner per digital asset. An existing asset can be redistributed through creating a reference node for the original asset.

Input: Hello World!
keccak256 Output: 0x3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0


Authorization modules for both reference and access are set utilizing the setAccessAuth() and setReferenceAuth() methods. Providing auth to a user at the asset level means that all users authorized here will have access/reference on all child content nodes. If a user does not satisfy either, authorization will be delegated to parent org nodes modules.

Asset Node Schema


  • data contains all the associated metadata for an asset
  • signature contains the signature param/values from signing the content in the data field
  • binding contains a hash value from the asset


  • data.description a textual description of the underlying content of the asset
  • data.encrypted a boolean to describe the data state in the content locations
  • data.access a key value list of params organized by method for accessing the content
  • data.content a list of locations of the content and the corresponding encoding
  • data.content[i].location a uri where the content is accessible
  • data.content[i].type the MIME type of the content
  • data.manifest a extendable field where additional metadata can be stored and attested to by the signer
  • data.contentBinding.hash the hash of the raw unencrypted content associated with the asset
  • data.contentBinding.algo the algorithm used to hash the raw unencrypted content associated with the asset
access Methods & Schema

See licenses section for more information on methods of access and how licenses work in VERIFY.


  • signature.curve the elliptic curve used to sign the content of the data field
  • signature.signature the produced signature from signing the message
  • signature.message the keccak256 hash of the content in the data field
  • signature.description a textual description of the method used to generate the signature

Example Asset Node Schema

  "data": {
    "description": "",
    "encrypted": true|false,
    "access": {
    "content": [
        "location": "",
        "type": ""
    "manifest": {},
    "contentBinding": {
      "algo": "",
      "hash": ""
  "signature": {
    "curve": "",
    "signature": "",
    "message": "",
    "description": ""