noircashdocs

Send privately

Pay another noircash user from your notes. Only the recipient learns the amount, and your address never appears in the transaction.

A private send spends some of your notes and creates a new note for the recipient, plus a change note for you. On the chain it looks like any other private transaction: nobody else learns who paid whom, or how much.

Before you start

  • The recipient must have turned on privacy. The new note is bound to their registered owner key and encrypted to their viewing key, so the app needs both from the on-chain registry. If the address has not registered, see Recipient without privacy.
  • Your NOIR must be private. A private send spends notes. Public NOIR in your wallet can be sent like any token from your wallet, but that transfer is public; shield it first to send it privately.
  • Leave room for the network fee. It is paid in NOIR from the notes you spend. The Max button in the send form fills in 95% of your balance, keeping the rest for the fee.

Send

Fill in the form

Open Send, paste the recipient's address and type the amount in NOIR. Press Send privately.

Estimating the network fee

The app builds the transaction with a placeholder proof and asks the bundler for the gas numbers. Nothing is signed or sent yet.

Confirm in your wallet

Your wallet asks you to sign typed data named Spend (EIP-712), under the vault's domain. It carries one field, transaction: a hash of this exact transaction, including the notes it spends, the notes it creates and the fee. No gas is paid from your address and nothing is broadcast by your wallet.

Generating the proof

Your browser builds the zero-knowledge proof. The proof checks your Spend signature, so a proof built without it is rejected. This takes a few seconds on a desktop, and longer the first time, while the prover loads.

Submitting and waiting

The app sends the operation to an ERC-4337 bundler, which submits it to the chain. The app waits for confirmation, then reads your notes again.

What each side sees

WhoSees
The recipientA Received entry in their history, with the amount, once their app reads the chain. The note does not say who sent it: tell them if they need to know.
YouA Sent entry with the recipient's address, whose amount includes the network fee, and your change in your balance
Everyone elseThat a private transaction happened, and the network fee it paid. Not the sender, the recipient or the amount.

The recipient's note holds vault shares, so from then on it grows with each harvest like any other note.

Proving a payment

Only you know whom you paid: the recipient's address is written, encrypted, into your own change note, so your history shows it on any device once you sign in. To prove a payment to someone (the recipient, an accountant, a shop), press Proof of payment under the Sent entry. It copies a link; whoever opens it sees the recipient, the amount, the date and the transaction, checked against the chain.

The proof covers that one payment. It does not show your address, your balance or your other payments, and it does not let anyone move the recipient's funds or see when they spend them. Anyone holding the link can see who received that payment and how much, so share it only with whom it is meant for.

Why a signature for every send

The activation signature lets the app find your notes. Moving them needs your wallet each time: the proof must contain a valid Spend signature from the wallet that registered the key. So someone who got hold of your activation signature could see your notes, but not spend them. See Keys.

Always read the prompt: sign a Spend request only when you have just started a send, sale or unshield yourself.

Recipient without privacy

When the address you paste has not turned on privacy, the form says so and the button becomes Send as public NOIR. Pressing it unshields the amount straight to that address: the tokens leave your notes and arrive in their wallet as ordinary NOIR, like an unshield to someone else.

Private sendSend as public NOIR
Your addressHiddenHidden: the vault's ERC-4337 account submits it, and the proof does not say which notes paid
RecipientHiddenVisible
AmountHiddenVisible
Earns from fees afterwardsYes, in the recipient's noteNo, until the recipient shields it

To keep the payment private, ask the recipient to follow Get started first, then send.

What can go wrong

Message or symptomWhat it means
"The recipient has not activated privacy yet."The address has no registered key and the private send was attempted anyway. Nothing was sent.
"Not enough private balance for this amount plus the network fee."Lower the amount.
"Not enough in your two largest notes: consolidate your notes first."One transaction spends at most two notes, taken from your two largest. Send a smaller amount.
"No price yet: the vault has not read the market price."The fee is valued at the vault's price average of NOIR, which starts with the first trade through the noircash router, the first harvest or the first call to poke().
You reject the Spend promptNothing is sent and no fee is paid.
"not included after 2 minutes"The bundler did not include the operation in time. Refresh your balance before trying again: if it was included later, the notes are already spent.

A send that fails before inclusion costs nothing: the fee is only taken when the transaction is on-chain.

Check the recipient address carefully. A note sent to the wrong registered address belongs to that address, and nobody can reverse it.

On this page