null.
Using null

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 receives fee. 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.

On this page