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.
Path parameters
Zero-based index of the Merkle tree to query.
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.