Skip to content

Private Send ​

Private Send pays a normal Solana address from inside the pool. The recipient does not create an account in Veilix, does not receive a note, and does not submit a transaction.

It is the payment product. It uses the same trees as a shielded deposit.

What the user does ​

  1. Enters an amount, an asset, and a recipient address.
  2. Reviews a quote: recipient amount, relayer fee, platform fee, and an estimate of how long the withdrawal will take.
  3. Approves the deposit in their wallet.
  4. Waits while the proof is built and submitted.

The recipient sees an ordinary incoming transfer from the Veilix withdrawal. They are not asked to claim.

What the protocol does ​

For each payment:

  1. Create a new note for that exact amount and asset.
  2. Deposit it. The user signs this transaction. The protocol fee on the deposit is zero. The user pays the Solana fee.
  3. Wait until the new leaf is indexed.
  4. Prove a full withdrawal of that note to the recipient, with the relayer and platform fees bound in.
  5. Submit the proof through the indexer queue. A relayer signs the withdrawal.

The recipient is credited amount − fee of the same asset.

A batch can include several assets and several recipients. Each item is its own deposit and its own withdrawal. One batch submission carries up to eight proofs.

Failure looks like this ​

If the deposit fails, nothing entered the pool for that item.

If the deposit succeeds and the withdrawal fails, the funds are in the tree. The note is still the way to spend them. A later withdrawal to the same recipient, or to another address, can finish the payment. Losing that note loses the funds.

The session has to stay open through proving and submission. Closing it after the deposit signature, and before the proof is submitted, leaves a note that only the saved backup can spend.

Fees the payer should expect ​

The quote is the number to show before the signature. The recipient does not receive the gross amount. Show three figures: what the user sends, what the recipient gets, and the fee split between relayer and platform.

For integrators ​

Apps run this flow through the Veilix client. For each payment the client creates the note, asks the wallet to sign the deposit, then submits the withdrawal proof to a relayer.