Reference applications for Umbra — a privacy
protocol for Solana that shields SPL / Token-2022 balances using Arcium MPC and
zero-knowledge proofs. Everything here is built on the public TypeScript SDK,
@umbra-privacy/sdk
(5.0.0-rc.9, protocol V18).
-
private-payments-nextjs/— a full private-payments Next.js app (mainnet-beta by default; one env switch to devnet). Wallet-only signer, the SDK's standard browser store adapters (createShardedUtxoDataStore+createShardedNullifierStore), and the five private-payment steps as one tab each:- Register — Umbra registration (3-step, idempotent) + key-consistency restore.
- Deposit — public ATA → your EncryptedTokenAccount (ETA), via MPC.
- Transfer — write a Stealth Pool Note from your ETA (receiver- or self-claimable).
- Claim — scan + burn notes addressed to you (→ ETA or ATA).
- Withdraw — ETA → your public ATA (unshield), via MPC.
See
private-payments-nextjs/README.mdfor the full walkthrough and architecture. -
compliance-auditor/— a headless (no-UI) selective-disclosure example: derive the scoped viewing-key hierarchy (Master → Mint → Monthly → Daily) and issue / query / revoke an on-chain X25519 re-encryption grant to an auditor. A framework-agnostic core (src/core/) + a thin Node CLI demo — drop the core into a CLI, React, or mobile app unchanged. Seecompliance-auditor/README.md.
cd private-payments-nextjs
pnpm install
pnpm dev # http://localhost:3000Connect a Solana wallet set to devnet, fund it from the faucet, then walk tabs 1 → 5.
Built on @umbra-privacy/sdk@5.0.0-rc.6, which pins @umbra-privacy/umbra-codama@3.0.0-rc.6.
No package-manager overrides or dist patches are needed — the earlier rc.3/rc.4
codama PDA bug (ConstraintSeeds 2006) and columnar scan() bug are both fixed in rc.6.
Just pnpm install.
- Docs: https://sdk.umbraprivacy.com/
- Supported tokens: https://sdk.umbraprivacy.com/supported-tokens
- SDK on npm: https://www.npmjs.com/package/@umbra-privacy/sdk