Skip to main content

MerkleTree

Defined in: lib/provable/merkle-tree.ts:28

A Merkle Tree is a binary tree in which every leaf is the cryptography hash of a piece of data, and every node is the hash of the concatenation of its two child nodes.

A Merkle Tree allows developers to easily and securely verify the integrity of large amounts of data.

Take a look at our documentation on how to use Merkle Trees in combination with zkApps and zero knowledge programming!

Levels are indexed from leaves (level 0) to root (level N - 1).

Constructors

new MerkleTree()

new MerkleTree(height: number): MerkleTree

Defined in: lib/provable/merkle-tree.ts:37

Creates a new, empty Merkle Tree.

Parameters

height

number

The height of Merkle Tree.

Returns

MerkleTree

A new MerkleTree

Properties

height

readonly height: number;

Defined in: lib/provable/merkle-tree.ts:37

The height of Merkle Tree.


nodes

nodes: Record<number, Record<string, Field>> = {};

Defined in: lib/provable/merkle-tree.ts:29


zeroes

zeroes: Field[];

Defined in: lib/provable/merkle-tree.ts:30

Accessors

leafCount

Get Signature

get leafCount(): bigint

Defined in: lib/provable/merkle-tree.ts:160

Returns the amount of leaf nodes.

Returns

bigint

Amount of leaf nodes.

Methods

clone()

clone(): MerkleTree

Defined in: lib/provable/merkle-tree.ts:48

Return a new MerkleTree with the same contents as this one.

Returns

MerkleTree


fill()

fill(leaves: Field[]): void

Defined in: lib/provable/merkle-tree.ts:150

Fills all leaves of the tree.

Parameters

leaves

Field[]

Values to fill the leaves with.

Returns

void


getLeaf()

getLeaf(index: bigint): Field

Defined in: lib/provable/merkle-tree.ts:71

Returns a leaf at a given index.

Parameters

index

bigint

Index of the leaf.

Returns

Field

The data of the leaf.


getNode()

getNode(level: number, index: bigint): Field

Defined in: lib/provable/merkle-tree.ts:62

Returns a node which lives at a given index and level.

Parameters

level

number

Level of the node.

index

bigint

Index of the node.

Returns

Field

The data of the node.


getRoot()

getRoot(): Field

Defined in: lib/provable/merkle-tree.ts:79

Returns the root of the Merkle Tree.

Returns

Field

The root of the Merkle Tree.


getWitness()

getWitness(index: bigint): Witness

Defined in: lib/provable/merkle-tree.ts:115

Returns the witness (also known as Merkle Proof or Merkle Witness) for the leaf at the given index.

Parameters

index

bigint

Position of the leaf node.

Returns

Witness

The witness that belongs to the leaf.


setLeaf()

setLeaf(index: bigint, leaf: Field): void

Defined in: lib/provable/merkle-tree.ts:94

Sets the value of a leaf node at a given index to a given value.

Parameters

index

bigint

Position of the leaf node.

leaf

Field

New value.

Returns

void


validate()

validate(index: bigint): boolean

Defined in: lib/provable/merkle-tree.ts:135

Checks if the witness that belongs to the leaf at the given index is a valid witness.

Parameters

index

bigint

Position of the leaf node.

Returns

boolean

True if the witness for the leaf node is valid.