The policy
There is no on-chain refund mechanism on either rail. Refunds are merchant-initiated, off-chain, and manual. One path covers every case — overpayment, underpayment, wrong token, and cancellation:1
Customer requests a refund
Through the merchant’s own support channel. The platform is not in this loop.
2
Merchant collects a self-custody address
Supplied by the customer at refund time. Not stored in advance, not inferred.
3
Merchant sends the funds
From their own wallet, after the payment has been distributed and claimed.
The rule that must never be broken
Never refund to the inbound sender.CEX withdrawals originate from a shared omnibus hot wallet, not the customer’s own address. Returning funds there is unattributable and almost always a permanent loss for the customer.
Why there is no window
The binding constraint is the refund target, not a timer. Because a large share of deposit-rail payments have no safe on-chain refund target, an on-chain window would have added attack surface and audit scope without protecting the users actually at risk. It also created a free-option exploit — pay, watch the market, reverse within the window — which dies by construction once the window is gone. Removing it also shrank the audited contract surface and sped up settlement, since funds sweep as soon as the deposit confirms.Practical consequences
Open gaps
What the platform never does
- Never fronts refund money.
- Never claws back a settled payment.
- Never holds funds pending a dispute.