// privacy is personal
onchain.
off the record.
veil is a ZK shielded pool for Robinhood Chain. Balances live in encrypted notes, your browser proves you can spend them, and a solver settles the trade. The note owner never lands in public trade inputs.
what the chain sees
Same swap. Left is a normal DEX. Right is veil.
dex swap
from 0x9f2c…e41a ← you, forever to router sell 1.00 WETH buy 2,431.08 USDG history every tx this wallet ever made
veil trade
from solver 0x44b0…1c9e owner redacted (inside proof) sell 1.00 WETH buy 2,431.08 USDG proof groth16 ✓ nullifiers ✓ history unlinked from deposit wallet
assets and amounts are still public. timing and network metadata can still link activity. no magic.
flow
evm wallet --deposit--> +--------+ commitment +-----------------+
(public) <-withdraw-- | pool | <----------> | encrypted notes |
+--------+ | (your browser) |
^ +--------+--------+
| settle(proof) | zk proof
+-------- solver <-----------+
(permissionless, rfq)01own the keys
Private wallet generated locally. Recovery file encrypted with your passphrase. No account, no email.
02prove, don't reveal
Groth16 proofs show note ownership and conserve value. The pool verifies onchain, solvers compete to settle.
03exit always open
Withdrawals go back to the original deposit wallet. Works while trading is paused. No screening needed.
exact guarantees
| action | public onchain | stays private |
|---|---|---|
| deposit | wallet, asset, amount, commitment | viewing + spending secrets |
| trade | solver, assets, amounts, proof, nullifiers | your wallet, note owner |
| withdraw | wallet, asset, amount, proof, nullifiers | viewing + spending secrets |
Deposits are screened (sanctions + serious illicit only, not "used a mixer once"). Only your public address is checked. Trades, withdrawals and recovery never are. policy →
$ veil --mind-your-own-wallet
> ready.