Shielded payment lifecycle
A shielded payment uses two transactions: initiation and resolution. The sender and recipient each use a participating virtual asset service provider (VASP). The sender VASP prepares initiation, which reserves the input notes in the pool. The recipient VASP then prepares a resolution with anAccept or
Reject decision.
Initiation
The sender instructs the sender VASP, and the spending key authorizes the proposed spend. The sender VASP prepares a sender proof establishing that the input notes are controlled by the authorizing identity and cover the payment. Initiation reserves the input notes until the payment is resolved or reclaimed. Once the pool verifies the submitted proofs and checks that the inputs are available, it creates a hold and locks the notes. They remain unspent while the hold is pending.Resolution
The recipient VASP decides whether to accept or reject the held payment and prepares a resolution transaction. The recipient proof connects that decision to the held payment and its intended recipient.Accept
The recipient VASP prepares a resolution proving acceptance of the held payment. Acceptance spends the reserved input notes and creates the output notes. After verifying the submitted proofs, the pool records the input nullifiers and appends the recipient note commitment. The payment is complete once the transaction executes successfully and its block is final.Reject
Rejection releases the input locks without spending the notes. The recipient VASP prepares a resolution proving rejection. Once verified, the pool marks the hold as rejected. It records no nullifiers and creates no output notes, leaving the original notes available for another payment or unshielding.Expiry and reclaim
Every initiation includes a deadline. Once it passes, the pool stops accepting resolutions for the hold. The notes remain locked until a reclaim transaction releases them. The pool checks the hold’s state and deadline, then releases the locks.- Accept
- Reject
- Reclaim