Refund guarantee
If a trade does not complete, your money comes back. Not as a support ticket, as a function on the contract that nobody, including us, can switch off.
Last updated 1 September 2026
The guarantee
Every payment you escrow carries a deadline of at most 30 minutes. If the trade
has not settled by then, refundPayment(orderId, payer) becomes callable by anyone and
sends the full amount — price and fee — back to the address that paid it. There is no admin switch,
no pause function, and no path by which the desk can keep escrowed funds.
When it applies
| What happened | What you do |
|---|---|
| The counterparty never claimed your payment | Refund after the deadline. Your funds return in full. |
| The desk went offline mid-trade | Same. Settlement is on-chain, not dependent on our server staying up. |
| The counterparty claimed but delivery is slow | Nothing is lost: the preimage is public, and the delivery call stays open for at least an hour longer than your payment window. You or anyone can submit it. |
| You posted an order nobody took | Cancel it any time and withdraw instantly; time-limited orders are returned automatically when they expire. |
Claiming a refund
From the site: open Orders, connect the wallet that paid, and the Refund button appears once the countdown ends.
Without the site, from any wallet:
cast send $PAYMENT_ESCROW "refundPayment(bytes32,address)" $ORDER_ID $YOUR_ADDRESS \
--rpc-url https://mainnet.base.org --private-key $YOUR_KEY
Your order id is in the PaymentLocked event your own transaction emitted, so you can
always recover it from the chain even if this site disappears.
Why the windows are asymmetric
A payment can be locked for at most 30 minutes; a reservation must live at least 90. The contract enforces both. That gap is what guarantees there is always time to deliver after a preimage becomes public — it is the reason a half-finished trade cannot strand you.
What this does not cover
The guarantee is about settlement, not about price or about risks outside the contract. It does not protect you from a bug in unaudited code, from an address-level blocklist applied by the token issuer, or from sending funds to an address you control incorrectly. See Risk.