(Unfinished) Zero-knowledge whitelist application running on top of Mina Protocol (a.k.a. proof of group chat)
Krystal stores members of a zero-knowledge identity group inside a Merkle tree stored on IPFS. Krystal subsequently stores the root of the Merkle tree on Mina. A user can verify that they belong in the Merkle tree using a zk-snark proof created client-side. It can function as a simple whitelist/group for NFT raffles or prove ownership of an asset without revealing who the user is. Developers can use it for any use case that might require having a selected group of individuals belonging to a specific group without revealing identity (airdrops, ticketing, etc.). P.S.: This is an incomplete submission and most of our codebase has not been uploaded, thus we're not qualifiable for the hackathon prizes.
How it's made
It is a simple ReactJS + ChakraUI front end. The app logic and state live on Mina Protocol and IPFS and the ZK-snark proofs submitted to Mina are done using snarkyjs. We haven't managed to finish the hackathon project in time, but we managed to learn a bit more about how Mina works, and how zero-knowledge cryptography works.