Using the app
Connect, shield, transfer, unshield — and why the relayer path matters.
The app is a thin UI over the SDK. All proofs are generated in your browser in a Web Worker; your notes never leave your device unencrypted.
Live on devnet — dev-grade, unaudited. Not for real value.
1 — Connect & unlock
Connect a wallet (or use the built-in local dev wallet), then unlock: you sign one deterministic message. That signature derives two secrets — your spending key and your note-encryption key — with no transaction and no fee. The same wallet always reconstructs the same shielded identity, even after clearing the browser.
2 — Shield (deposit into privacy)
Pick an amount. The app mints a note, generates a proof (a "sealing" step of a few hundred milliseconds), builds the shield transaction, and sends it. On confirmation your shielded balance updates and the new note is encrypted to storage.
The deposit amount and your address are public (it is a public transfer into the pool). Privacy begins the moment you transfer or unshield.
3 — Private transfer
Enter a recipient's shielded pubkey and an amount. The SDK selects input notes, creates the recipient note plus your change note, proves, and sends. Sender and amount stay hidden. Because there is no indexer-side note delivery yet, the app gives you a note string to hand the recipient out of band; they import it into their vault to claim the funds.
4 — Unshield (withdraw to public)
Choose a public recipient and amount. There are two paths:
- Relayer (gasless) — recommended. The relayer
submits and pays for the withdrawal, so it is not linkable to your wallet.
The recipient receives
amount − fee; the relayer receivesfee. Your wallet never signs the chain transaction. - Self-pay (fallback). You sign and pay gas yourself — simpler, but the transaction is linkable to your connected wallet. Prefer the relayer for an unlinkable exit.
Either way, the recipient address is bound into the proof, so no one can redirect your withdrawal.
Why the relayer matters
Self-pay leaks the one thing the pool exists to hide: it ties your exit back to a wallet you control. The relayer is what makes an unshield actually private.