Introduction
Voidcash is a private SOL balance on Solana. Shield SOL from any wallet, send it privately to another Voidcash address, and unshield it to any Solana address.
Voidcash gives you a private SOL balance on Solana. You move SOL from an ordinary wallet into a shared pool, and from then on only you can see how much you hold. You can pay another Voidcash user from that balance, and take SOL out to any Solana address whenever you want.
There is no account and no email. The app creates a vault in your browser: a random secret that holds your keys, locked with a passphrase. Your keys never leave the browser, and the proofs that move your SOL are built on your device.
Three moves
| Move | What happens | Pool fee |
|---|---|---|
| Shield | SOL goes from your wallet into the pool and becomes a private note that only your keys can open and spend. Your wallet signs once. | None at launch |
| Send | You pay another Voidcash address (it starts with void) from your notes. A relayer submits the transaction, so none of your wallets signs it. | None, by design |
| Unshield | SOL leaves the pool for any Solana address, which receives it from the pool, not from you. | 0.5% of the amount at launch |
Sends and unshields also pay the relayer a small fee in SOL, for the network fees and the accounts the transaction creates. See Fees.
What stays private, and what is public
Everything Voidcash does is an ordinary Solana transaction to the pool program, so anyone can read it. What the transaction reveals depends on the move.
| Private | Public | |
|---|---|---|
| Your balance | Yes. Notes are encrypted; only your viewing key opens them. | The pool's total, and how many notes it holds |
| A send | Who paid whom, and how much. The transaction shows no amount at all. | That a private transfer happened, when, and the relayer's fee |
| A shield | Where that SOL goes next: a note's later spend cannot be linked to the shield that created it | The wallet that shielded and the amount: a deposit is an ordinary transfer into the pool |
| An unshield | Which notes paid for it | The address that received SOL from the pool, and how much |
| Your keys | Created and kept in your browser, never on a server | Nothing |
Timing is public too. Shielding and unshielding the same amount minutes apart is easy to match: let time pass and vary amounts.
How the parts fit
| Part | Where it runs | What it does |
|---|---|---|
| The vault | Your browser | Holds the root your keys come from, sealed with your passphrase. Finds your notes, builds every proof in a background worker, and computes your balance. |
| The pool program | Solana | Holds the SOL, keeps the tree of notes and the list of spent ones, verifies each proof, and pays out exits and fees. |
| The indexer | A server | Serves every note and every spent marker the program has recorded, to anyone. Your app downloads all of them, so the indexer cannot tell which are yours. |
| The relayer | A server | Quotes its fee and submits sends and unshields as the fee payer. It cannot change them: the recipient, the amount, its own address and its fee are bound in the proof. |
| Your wallet | A Solana wallet in your browser, such as Phantom, Solflare or Backpack | Shields SOL and can receive unshields. It never signs anything inside the pool. |
Before every proof, the app checks the indexer's data against the program: it proves only against a state of the tree that the program itself has recorded.
Start here
Get started
Create a vault, save the recovery key, and unlock it.
Shield SOL
Move SOL from your wallet into your private balance.
Receive
Your void address, and how incoming notes reach you.
Send privately
Pay another Voidcash address through the relayer.
Unshield
Take SOL out to any Solana address.
Fees
Every fee, who receives it, and the 1% cap.
Recovery
The recovery key, the passphrase, and moving to another device.
FAQ
Short answers to common questions.
Go deeper
How it works
The parts, the notes and the tree, the circuit and its trusted setup, the program, the relayer and the indexer.
Buyback and burn
How a share of every pool fee buys $VOID and burns it.
Trust model
Who holds which key, and what each key and service can do.
What is public
What the chain shows for each move, and what stays private.
Developers
The program's on-chain interface, and the relayer's and indexer's APIs.
Constants
Every fee, limit and interval, and the addresses.