Params
The other fields are as in Private Transfer.
Execution
_checkSpend: relayer allowlist, tx nullifier, root- Verify 38 public inputs
- Spend nullifiers
- Insert change and fee-change commitments in one batch
- Pay
feetomsg.sender - Accrue
floor(value × withdrawalFeeBps / 10,000)to the treasury, and pay the rest to the recipient - Emit
ProtocolFeeCharged(WITHDRAWAL, txNullifier, coin, fee)andShieldedWithdrawal
There is no round or timestamp check. Round-mode timing is applied off-chain by the scheduler.