Building privacy infrastructure
Out of 84 teams, judges selected seven winning projects across privacy infrastructure and gaming tracks. Each winner applied zero-knowledge technology to solve explicit data protection challenges.
Karan Bisht and Vedant Dorlikar
NightPool is a dark-pool Over-the-Counter (OTC) trading desk with a sealed-bid auction attached.
It uses Midnight to hide order prices and quantities while proving traders have the required funds to make a deal. Orders enter as commitments; membership is proved against a Merkle tree; and spending an order burns a nullifier, preventing it from being replayed. This setup allows hidden orders to settle verifiably on a public ledger without exposing private trade data. To learn the commitment and nullifier pattern, read nightpool.compact.
Prasant Koirala and Sakshyam Sigdel
Hermes is an anonymous, Reddit-style forum where users post, earn reputation, and access moderated spaces without revealing their identity to anyone.
It rebuilds essential forum infrastructure on Midnight so that nobody learns who you are. The system manages moderation, age gates, reputation scores, awards, and spam control directly through privacy-preserving logic. Midnight smart contracts verify user credentials and access rules without storing or exposing personal identity data to the server, the chain, or the moderators.
Ashiha Mahesh Kumar and Atharv Mantri
Latch gives automated AI assistants a digital wallet with hidden spending limits and purchasing rules.
The per-transaction limit, the total budget, the allowed category, and the amount spent are all private inputs. What reaches the ledger is a commitment to the policy and a commitment to the current spend state. The agent proves its next purchase obeys a policy nobody can read. That idea generalizes well past agents, to any place you want compliance proved without publishing the rulebook.
Team X H
ProveNow by X H and one teammate lets a merchant prove a point-of-sale payment happened without exposing the amount, the invoice, or the counterparty.
A commitment goes on-chain at payment time, a receipt secret proves it later, and a used-receipt set stops the same receipt being cashed twice. This is a great example of a project with a clearly defined problem which is finished end to end.
Shreyas Rao and Tejas Rao
MatchLock is the cleverest small idea in the field. Two parties who privately point at each other derive the same shared secret over the Jubjub curve without exchanging a single message, so their submissions land in the same ledger slot and the match opens. A nullifier blocks anyone from posting the same direction twice to fake a match. Compact has no in-circuit encryption, so it encrypts the payload client-side and passes the contract an opaque blob to hold. That workaround is the transferable lesson. When the language will not do something, keep it off-chain and store the result.
Privacy-native games
Two of the seven winners are games, and privacy turns out to make good gameplay. A secret you cannot cheat on is a mechanic.
Kaleab A. Gizaw
Moonray is a daily tournament puzzle game where players slice through irregular boards to find the optimal geometric solution while avoiding uncuttable obstacle nodes.
Everyone gets the same seed-derived field, so a public solution would be copied and pasted within minutes. The cut geometry never leaves the player's device. What reaches the chain is a nullifier marker indicating that this player has played, and a sealed commitment to their score, which opens later in a reveal window. Moonray was also the most complete build in the field, with a working contract, real tests, a finished interface, and the Preprod deployment that is playable.
Subarna Maity, Soumyadeep Dey, Ayush Kumar, and Sourish Panda
AmongUs Midnight is an online multiplayer social deduction game where crew members work together to complete tasks while trying to uncover hidden impostors secretly sabotaging the mission.
It runs secret roles and voting mechanics directly on Midnight so players cannot cheat. Roles are committed per seat, votes are spent via nullifiers, and ejected roles are revealed upon elimination, allowing the social deduction mechanics to run on cryptography rather than an honor system. The project won because it was a game people genuinely wanted to play, proving that a great user experience can be a strong differentiator.
Projects on Preprod
A local devnet provides a fast sandbox for testing smart contracts. Stopping at a local node is completely standard and expected for a 48-hour hackathon weekend.
However, two teams stood out by taking the extra step to deploy their smart contracts directly to Midnight's Preprod testnet:
- Hermes (Prasant Koirala and Sakshyam Sigdel): Deployed four contracts to Preprod and published the addresses, transaction hashes, and block numbers in their repository for public verification.
- Moonray (Kaleab A. Gizaw): Enabled browser-based deployment using an already-synced wallet, delivering a hosted, playable build live on Preprod.
Pushing past local simulation proves that zero-knowledge applications can move into live public environments within a weekend. These deployments give future builders two practical blueprints to copy.
What the winners had in common
- Primitives used because the design needed them. Commitments, nullifiers, Merkle membership. Eight of the entries reviewed used no private data at all.
- Finished layers. Contract, tests, and interface. Half-built frontends were common across the field.
- A deployment. Hermes and Moonray reached Preprod. Everyone else stayed on a local node.
- A use case a stranger understands in one sentence. Prove a receipt. Cap an agent's spend. Play a round without anyone seeing your role.
Recommendations for getting the privacy part right
- Disclose as late as possible. Put disclose() at the point a value crosses into public state, not at the top of the circuit.
- Disclose the boolean predicate and keep the raw value private.
- Store commitments or nullifiers on the ledger. Never store raw personal data.
- Never reuse a commitment's salt, or the commitments become linkable.
- Bind a proof to its subject. Do not trust ownPublicKey() on its own for authorization.
Build the next one
Congratulations to all seven teams. Every project is public, and the fastest way to understand a good Midnight build is to clone one and compile it.
- Browse all 86 submissions in the Devpost gallery
- Start from the docs and the example-counter walkthrough
- Study commitments and nullifiers in NightPool
- Copy the deployment path from Hermes or Moonray and get your contract onto Preprod
- Bring questions to the builders in Discord
These examples are available for the next group of hackers, and upcoming Midnight hackathons are listed here.


