MILK

PRIVATE SOL
TRANSFERS

Zero-knowledge privacy on Solana.
No pools. No relayers. No trust.

Privacy is a state transition, not a place.

~5K
ZK constraints
$0.01
Per transaction
~5s
Proof generation
0
Servers needed

WHY MILK?

[X]

NO POOLS

Your tokens stay in your control. No shared liquidity pool, no locked funds, no pool risk.

{ZK}

CLIENT-SIDE ZK

Groth16 proofs generated entirely in your browser. No middlemen, no trust assumptions.

<*>

ANY AMOUNT

Send any amount of SOL privately. No fixed denominations — UTXO model with change.

///

GROWING PRIVACY

Anonymity set = entire commitment tree. Every user makes everyone more private.

>>>

SOLANA-NATIVE

Built on SPL Account Compression and altbn254 syscalls. $0.01 per transaction.

</>

OPEN SOURCE

Fully auditable Circom circuits, Anchor program, and Next.js frontend. Trust the code.

HOW IT WORKS

1

SHIELD

Connect your wallet and deposit any amount of SOL. A private commitment is created and stored in the Merkle tree. You receive a secret note — save it!

2

TRANSFER

Paste your secret note and enter the amount to send. A ZK proof verifies balance conservation in your browser. Two new notes are created — one for the recipient, one for your change. No SOL moves on-chain.

3

UNSHIELD

The recipient pastes their secret note and withdraws SOL to any wallet. A ZK proof verifies ownership without revealing the original sender. The link is broken.

ARCHITECTURE

Commitment = Poseidon(amount, nullifier, secret)

BROWSER

  • > Poseidon hashing
  • > snarkjs proof gen
  • > Groth16 circuits

SOLANA PROGRAM

  • > Poseidon Merkle tree
  • > Root history (30)
  • > Nullifier PDAs
  • > SOL vault
V
V

ZK CIRCUIT

Circom 2.0

GROTH16 VERIFY

alt_bn128 syscall

READY?

Start making private transfers on Solana. Your browser generates the proofs. Nobody sees who sent what to whom.

LAUNCH APP