Shield & unshield
Understand the public boundary of a private pool.
Protocol behavior is proposed. This release is an interface preview; no funds or wallet signatures are accepted.
Shielding a deposit
The proposed deposit flow starts on the base chain. Select an allowlisted asset, approve an exact ERC-20 allowance if required, and authorize the deposit. Native-asset deposits attach value directly.
The deposit enters a pending screening state before it becomes a spendable note. A gas escrow can fund the guard’s processing cost. Its amount and refund rules must be shown before confirmation.
Deposit state machine
| State | Meaning |
|---|---|
| Pending | Awaiting a screening decision |
| Action required | Additional review or information needed |
| Approved | Accepted into shielded state |
| Rejected | Not admitted; refund handling applies |
| Reverted | Pending deposit canceled under contract rules |
Refunds and nonstandard tokens
The reference design permits cancellation while a deposit is pending, returning value and escrow; processing by the guard can consume escrow even if admission is rejected. Jammer must specify its exact policy before accepting assets.
Fee-on-transfer assets require balance-delta accounting. Token support must be explicit rather than inferred from an ERC-20 interface alone.
Unshielding
A withdrawal pays an external base-chain address. The recipient and transferred amount become public. The proof consumes private inputs and creates any remaining change notes.
The interface must show a clear privacy-boundary confirmation before an exit. A recipient without a registered key should never silently turn an intended private payment into a public withdrawal.