Send privately
Pay another Voidcash address from your private balance. A relayer submits the transaction, and the chain shows no sender, no recipient and no amount.
A private send spends one or two of your notes and creates two new ones: a note for the recipient and a change note for you. A relayer submits the transaction and pays its network fee, so none of your wallets signs it or appears in it. On the chain it is a private transfer with no amount.
Before you start
- The recipient needs a Voidcash address, starting with
void. Ask them for it: see Receive. To pay an ordinary Solana address, unshield to it instead. - Your SOL must be private. A send spends notes; shield first if your SOL is in a wallet.
- Leave room for the relayer fee. It comes out of your notes on top of the amount. The Max button already leaves it out.
Send
Choose the amount
Press Send and type the amount in SOL, or use 25%, 50% or Max. The screen shows what is available: the most one send can move, every fee taken out.
Paste the recipient
Paste the void address, or press Paste. The app checks the address and its checksum before it lets you
continue.
Review
The review shows the recipient, what they receive (exactly the amount you typed), the relayer fee and, when needed, the notes to combine first with their fees. On-chain reads A private transfer, no amount. Hold Hold to confirm until it fills.
Combining notes (only when needed)
One transaction spends at most two notes. If no two of your notes cover the amount plus the relayer fee, the app first combines notes through the relayer, two into one, and waits for them to show up. Each merge costs one relayer fee. See Balance and notes.
Building the proof
Your browser builds the proof: on this device, with keys that never leave it. The proof binds everything the relayer will see: the relayer's address, its fee and a deadline.
Sending through the relayer
The app hands the proof to the relayer, which submits it and pays the network fee. When it is done, the app shows SOL sent, a link to the transaction on Solscan, and a Sent privately entry in your activity.
What it costs
| Cost | Amount |
|---|---|
| Pool fee | None. Private sends have no pool fee, by design: the program cannot see their amount. |
| Relayer fee | The relayer's quote, in SOL, shown in the review. It covers the network fee and the rent of the two accounts that mark your notes as spent. |
| Combining notes | One relayer fee per merge, only when your balance is spread over more than two notes |
The recipient receives the full amount. Your balance goes down by the amount plus the relayer fee. See Fees.
What each side sees
| Who | Sees |
|---|---|
| You | A Sent privately entry with the recipient's address and the amount, kept in this browser |
| The recipient | A new note in their balance, once their vault syncs. It does not say who sent it. |
| The relayer | The proof and the transaction it submits: the same data everyone sees on the chain |
| Everyone else | That a private transfer happened, when, which relayer submitted it and its fee. Not the sender, the recipient or the amount. |
How long it takes
The proof takes a few seconds in your browser; the first one takes longer while the prover loads. Then the transaction confirms like any Solana transaction. Combining notes adds a round trip each time: the app waits for the combined notes to appear before it goes on.
The transaction carries a deadline, 150 slots (about a minute) after it was built. A relayer that does not submit it in time cannot submit it later: it expires, and your notes stay unspent.
What can go wrong
| Message | What it means |
|---|---|
| That is not a Voidcash address | The text is not a void address, or a character is wrong and the checksum fails. |
| More than you have | The amount plus the fees is more than your notes can cover. |
| still syncing with the pool | The app is not in step with the pool yet. Wait for Synced. |
| relayer fee below the quote | The relayer's fee went up since the app read it. Lock and unlock the vault to read the new quote, then try again. |
| the combined notes did not show up in time; try again in a minute | The merges were sent, but the indexer had not shown them yet. Your balance is safe; try again once it has. |
| simulation failed | The relayer ran the transaction before sending it and the program refused it, for example because a note was already spent. Nothing was sent and no fee was paid. |
A send the relayer refuses costs nothing: the relayer simulates every transaction first and pays only for the ones it sends.
Check the recipient address before you confirm. A note sent to a valid void address belongs to whoever holds that
vault, and nobody can reverse the send.