0% 0% 0% 0%

Shielded send

Index
  1. 01. Concepts
  2. 02. Contracts
  3. 03. pool
  4. 04. policy
  5. 05. viewkeys
  6. 06. verifier
  7. 07. Circuits
  8. 08. Features
  9. 09. Shielded send
  10. 10. Deposit & withdraw
  11. 11. Consolidate & split
  12. 12. Shielded swap & pay
  13. 13. Escrow
  14. 14. Payment channels
  15. 15. Payroll & subscriptions
  16. 16. Auditor disclosure
  17. 17. ASP compliance
  18. 18. Cloud runtimes

Shielded send

The core action: pay anyone in the pool with amount, sender, and receiver hidden on-chain.

What happens

You paste a recipient’s ozky… code and an amount. The Rust core does coin selection — the transfer4 circuit spends up to 4 owned notes — builds a witness, and proves it: it shows the input notes are in the Merkle tree, publishes their nullifiers, and creates two output commitments — one for the recipient, one for your change. A relayer submits it; the pool verifies and records it.

What an observer sees

Indistinguishable commitments and nullifiers. Not who paid whom, not how much. Your local Transactions history is the only record of the payment — it is not reconstructable from the chain.

Notes

  • Change returns to you automatically as a fresh note.
  • The recipient’s wallet finds the payment by view-tag scanning — it simply appears.
  • Funds prove ASP membership in-circuit, so they’re provably clean.

Spends publish nullifiers — see Concepts. To get value into the pool first, see Deposit & withdraw.