What disclosure controls
Each operation intent includes adisclosure object with four fields:
Each field is either
'public' or 'private'.
Public vs private
Disclosure is a product and compliance choice within the constraints of each operation route.
”Both” in route reference tables
Some reference tables in this documentation show both for a field (for example withdraw sender). Both is not a third API value — it means the route accepts eitherpublic or private for that field.
The network preset policy adapter rejects invalid combinations with unsupported_disclosure during prepare.
Route constraints
These rules apply across presets at the domain level:
Concrete enforcement lives in the network preset policy module. Adjust disclosure before calling prepare — do not rely on execute-time fixes.
Per-operation reference
Deposit
Sender, asset, and amount are public. Recipient stays private because the deposit creates a private pool note.Withdraw
Sender may be public or private. Payout to a public wallet requires recipient, asset, and amount to be public.Transfer to registered recipient
Sender may be public or private. Recipient, asset, and amount stay private for fully private transfers between registered users.Transfer to unregistered recipient
Pending-claim onboarding requires sender, asset, and amount to be public so indexers and compliance services can process the claim before registration completes.Choosing disclosure in your product
- More public fields — simpler reconciliation, clearer compliance signals, less privacy on those attributes.
- More private fields — stronger privacy; ensure your audit and KYT configuration supports the route.
Related
Operations
How each operation uses disclosure.
Security and privacy
Local storage vs on-chain visibility.
Operation lifecycle
When policy errors surface.