Call deposit, transfer, or withdraw with the same intent shape. Each call prepares, then you execute. For Stellar code, see Deposit.

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: Private sender on this route requires Protocol Relay. Direct execute() is for public-sender / positive public deposit.

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: Private sender on this route requires Protocol Relay.

Transfer to unregistered recipient (escrow send)

Send to a public wallet when the recipient has not registered a private address yet. The prepared transaction stays indistinguishable from an ordinary private transfer.
  1. Prepare — validate sender state and use private disclosure (recipient/asset/amount private).
  2. Execute — preset derives an escrow note owner from a random nonce and the recipient G-address. Public escrow recipient limbs stay zero.
  3. Submit — escrow sends require Protocol Relay and a zero public deposit.
Requires transactEnvironment hooks. See Transfer to unregistered recipient. Typical disclosure:

Operation comparison

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

Deposit sequence

Operation lifecycle

Prepare, execute, errors, and progress events.

Disclosure policy

Public vs private fields per route.

State methods

Production vs fixture state.