What problem does it solve?
Developers building zero-knowledge circuits, privacy pools, or state commitments need sparse Merkle trees whose roots are compatible with ZK proof systems like Circom, but implementing Poseidon-based SMTs with correct bit ordering and hashing from scratch is error-prone.
Core Features & Use Cases
- Poseidon SMT for ZK Circuits: Create trees with PoseidonSmtHasher (CircomT3 leaf, CircomT2 node) producing roots usable directly as Circom public inputs.
- Celestia-Compatible Trees: Build SHA-256 domain-separated sparse Merkle trees matching Celestia's specification.
- Persistent Storage & Proofs: Store trees with ISmtNodeStorage backends, lazy-load nodes via LoadRootAsync, and generate membership or non-membership proofs for privacy pools and anonymous voting.
- Use Case: A developer building a privacy pool nullifier set inserts commitment keys into a Poseidon SMT, computes the root, and feeds it into a Circom proof verifying membership without revealing the leaf.
Quick Start
Ask the AI to create a Poseidon-based sparse Merkle tree in C# using Nethereum.Merkle, insert key-value pairs, and compute the root hash for a ZK circuit.