v3

latestOpenAPI 3.0.3raw.githubusercontent.com2026-04-10101545.6 KB
trees

Merkle inclusion proof

Generates and returns a Merkle inclusion proof (authentication path) for the leaf at insertion_index in the specified tree.

Always Protobuf -- responds with application/x-protobuf regardless of the Accept header.

Proof structure

The proof is an ordered list of 20 sibling hashes (one per level of the depth-20 tree), ordered from leaf level (index 0) to root level (index 19). Together with leaf and root, it can be used to verify membership and construct a Groth16 zero-knowledge proof compatible with the on-chain Umbra verifier.

Hash encoding

All hash values (root, leaf, each proof element) are little-endian 64-character hex strings (32 bytes), matching Solana on-chain byte order and Circom ZK circuit input format.

Performance

Proof generation traverses 20 tree levels. Operations exceeding 500 ms emit a slow-operation WARN log server-side.

get/v1/trees/{tree_index}/proof/{insertion_index}

Path parameters

tree_indexinteger required

Zero-based index of the Merkle tree to query.

insertion_indexinteger required

Zero-based leaf position for which to generate the proof. Must be strictly less than the tree's current num_leaves.

Response

Merkle proof generated successfully.