The project uses zk proofs, merkle trees, and erc721s to commit to a hidden token that the user owns. The token may be revealed at a later time. The project is bare bones and is intended to be used as a building block for more complex use cases, such as on chain gaming where attributes must remain hidden.

ZK Commitable NFT showcase

How it's made

Using a circom circuit to prove that a hidden token id is contained within a merkle root of the prover's owned tokens, then the circuit constructs a new merkle root containing the committed token ids. The proof is verified onchain and the new merkle root is stored in a mapping from the prover's address.