Midnight Preprod · ZK Allowlist

Prove youbelong.Reveal nothing.

A private allowlist mint on Midnight. Generate a zero-knowledge proof that you’re on the list, without publishing it — and without revealing which entry is yours.

  • Private allowlist
  • ZK proof
  • Lace wallet
  • On-chain verify
ZK Allowlistmidnight · preprod
private input●●●●●●●●
merkle root0x6426...4e6e
nullifier0x7e91...ab29
Verified
0x01...101
Midnight
Lace Wallet
ZK-SNARK
Merkle Root
Nullifier
Privacy-First
Kachina
Halo2
Midnight
Lace Wallet
ZK-SNARK
Merkle Root
Nullifier
Privacy-First
Kachina
Halo2
What it guarantees

A mint gate that forgets you the moment it lets you through.

No Public List

The allowlist is committed as a single Merkle root. Individual entries never appear on-chain — nothing to scrape, nothing to leak.

Property ledgeron-chain
  • On-chain dataMerkle root only (32 bytes)
  • Off-chain dataFull list, held privately
  • ScrapableNo
  • PhishableNo
  • Recoverable from chainNo

One-Time Mint

A nullifier is recorded when you mint — not your address, not your entry. You can't double-mint, and no one can link mints back to you.

1Nullifier used
0x7e91…ab29

Fully Verifiable

Anyone can verify the proof and the Merkle root on-chain. Privacy without trust — the math shows the gate is honest.

proofvalid
merkle rootverified
How it works

Three steps. Zero leaks.

01

Allowlist committed as a hash

The full allowlist is turned into a Merkle tree off-chain. Only the root is published — a single 32-byte fingerprint that reveals nothing about who's on it.

02

You prove membership privately

Your wallet builds a ZK proof: 'I know a leaf in the tree with this root, and I haven't spent its nullifier.' The proof reveals no address, no index, no path.

03

Nullifier recorded, not identity

The chain checks the proof and stores a nullifier so this entry can't mint again. Your address is never linked to your slot. Ghostlist forgets you.

Public vs Private

Same gate. Different blast radius.

Traditional allowlists are public, scrapeable, and tied to your address. Ghostlist publishes only a hash.

Public allowlist

Exposed

What every phisher, scraper, and analyst can see on a legacy drop.

  • List of all allowlisted wallets
  • Your specific slot index
  • Merkle proof of your membership
  • Nullifier for one-time mint
  • Wallet address used to mint
  • Ability to verify on-chain

Ghostlist allowlist

Private

Only what's cryptographically necessary goes on-chain. Everything else stays local.

  • List of all allowlisted wallets
  • Your specific slot index
  • Merkle proof of your membership
  • Nullifier for one-time mint
  • Wallet address used to mint
  • Ability to verify on-chain
Ready when you are

Mint a Ghost. Privately.

One wallet, one proof, one nullifier. The chain remembers only the math — not you.

Stack

Network

Midnight

Preprod

Proof system

ZK-SNARK

Halo2

Wallet

Lace

Midnight

Mint cost

Free

Gasless

FAQ

Privacy without the cryptography headache.

All questions

Where is my secret stored?

Only on your device, in your Lace wallet. Your secret never leaves your machine. The proof is built locally and then discarded from memory.

What is a nullifier?

A one-time token that proves you minted without revealing which list entry is yours. It can't be linked back to you.

What if I try to mint twice?

The contract checks if your nullifier was already spent. If it was, the second transaction is rejected — that's the anti-double-mint guarantee.

Midnight
Zero Knowledge
Lace Wallet
Open Source