Skip to main content

Overview

  • Type: Singleton (one per network)
  • Purpose: Collect tokens from the receiver to refund the payer after capture
  • Address: 0x88C9826dFA17Ad9d3a726015C667dD995394D341 (all chains)

Features

  • Refunds (after capture) - Pulls funds from the receiver’s wallet after the escrow has already released them
  • Receiver approval required - The receiver must approve the collector contract or supply a signature
  • Operator integration - operator.refund() invokes the collector through the token collector interface

How it works

Once the escrow has released funds to the receiver (state: Captured), refunding the payer requires pulling tokens back out of the receiver’s wallet. The ReceiverRefundCollector handles that flow:
  1. Operator calls refund(paymentInfo, amount, receiverRefundCollector, collectorData)
  2. The collector transfers tokens from the receiver to the escrow contract
  3. The escrow contract returns tokens to the payer
The receiver must pre-approve the ReceiverRefundCollector for token transfers, or collectorData must carry a valid receiver signature authorizing the refund.