Skip to main content

MetadataTree

Represents a metadata tree using a Merkle tree structure.

The MetadataTree class is used to manage a set of key-value pairs representing metadata, storing them in a Merkle tree for efficient verification and integrity checks.

This class is a utility within the NFT standard on Mina Protocol, enabling secure and verifiable storage of metadata. By leveraging the Merkle tree, clients can prove the inclusion of specific metadata entries without exposing the entire dataset.

Index

Constructors

Properties

Methods

Constructors

constructor

  • new MetadataTree(height: number, values: { key: bigint; value: Field }[]): MetadataTree
  • Constructs a new MetadataTree with the specified height and key-value pairs.

    @throws

    Will throw an error if the number of values exceeds the maximum capacity of the tree.

    @throws

    Will throw an error if any key is out of bounds for the tree height.


    Parameters

    • height: number

      The height of the Merkle tree (must be between 1 and 254).

    • values: { key: bigint; value: Field }[]

      An array of key-value pairs to store in the tree.

    Returns MetadataTree

Properties

readonlyheight

height: number

The height of the Merkle tree. Determines the maximum number of elements the tree can hold.

readonlyroot

root: Field

The root of the Merkle tree. Used for verifying the integrity of the tree and its contents.

readonlyvalues

values: { key: bigint; value: Field }[]

The list of key-value pairs stored in the tree. Each key is a bigint representing the index in the Merkle tree, and each value is a Field element from o1js.

Methods

publictoJSON

  • toJSON(): { height: number; root: string; values: { key: string; value: string }[] }
  • Serializes the MetadataTree to a JSON object.


    Returns { height: number; root: string; values: { key: string; value: string }[] }

    An object containing the tree's height, root, and values.

    • height: number
    • root: string
    • values: { key: string; value: string }[]

staticfromJSON

  • fromJSON(json: { height: number; root: string; values: { key: string; value: string }[] }): MetadataTree
  • Deserializes a JSON object into a MetadataTree instance.

    @throws

    Will throw an error if the JSON data is invalid or inconsistent.


    Parameters

    • json: { height: number; root: string; values: { key: string; value: string }[] }

      The JSON object containing the tree data.

      • height: number
      • root: string
      • values: { key: string; value: string }[]

    Returns MetadataTree

    A new MetadataTree instance constructed from the JSON data.