Every privacy operation shares the same intent shape and the same prepare → execute lifecycle. This page describes what each operation does at the domain level, without chain-specific wiring. For Stellar code examples, see Stellar application development.

Shared operation inputs

Deposit

Move value from a public wallet balance into a private pool note.
  1. Prepare — validate asset catalog, pool state, wallet secrets, and disclosure policy.
  2. Execute — sign and submit the pool deposit; emit encrypted audit data per policy.
  3. After success — SDK adds a new private record and updates pool state in local storage.
Typical disclosure:

Withdraw

Spend a private pool note and pay out to a public wallet.
  1. Prepare — select note(s) covering the amount, validate pool root, check disclosure.
  2. Execute — submit pool withdrawal; move public asset to the recipient account.
  3. After success — mark consumed record(s); persist change note if amount exceeds withdrawal.
Typical disclosure:

Transfer to registered recipient

Spend a sender note and create output note(s) for a recipient who is already in the registry cache.
  1. Prepare — resolve recipient private payment address from registry lookup; validate sender balance.
  2. Execute — submit pool transact with recipient output and optional sender change.
  3. After success — update consumed/sender records and add recipient/change records.
Typical disclosure:

Transfer to unregistered recipient (pending claim)

Send to a public wallet when the recipient has not registered a private address yet.
  1. Prepare — validate sender state and disclosure (recipient/asset/amount usually public).
  2. Execute — preset attaches onboarding payload so the recipient can claim later.
  3. After success — sender note consumed; pending claim indexed by your backend.
Requires preset-specific transactEnvironment hooks. See Transfer to unregistered recipient. Typical disclosure:

Operation comparison

Concrete Stellar addresses, seed-state fixtures, and full code blocks live in the Stellar how-to guides. Seed state blocks are documentation fixtures, not production onboarding — see Data sources.

Deposit sequence

Operation lifecycle

Prepare, execute, errors, and progress events.

Disclosure policy

Public vs private fields per route.

Data sources

Production vs fixture state.