How it works
Every market pool has a worst-case loss that escrow must cover. On each fill, the exchange recomputes that worst case across all of your open positions in the pool, and refunds anything held above it. The recalculation runs for every party to the trade — makers and takers alike, not just the taker who triggered it. If your worst case has dropped, escrow adjusts down to match and releases the excess to your wallet in the same on-chain batch that locks the fill.Example
You bet 100 USDC on outcome one at even odds (50% implied) — a win returns 200, so your worst case is the 100 you staked, and 100 stays locked. Later you bet 100 USDC on outcome two in the same market, also at even odds. Now one side always pays the other, so your worst-case net loss is 0. The exchange recalculates and refunds the full 200 USDC on the second fill.Tracking CE refunds
Refunds are reported as fields on rows you already read, not through a dedicated endpoint or channel:- Per bet —
ceRefundAmountonGET /trades-v3. - Per fill —
ceRefundAmountonGET /fills-v3. - Realtime — the affected rows are republished on the
trades and fills channels with
new
ceRefundAmountvalues and a freshupdatedAt. There is no separate “refund happened” event.
ceRefundAmount is post-fee — the amount you actually received. ceRefundFeeAmount is the fee
taken on that refund.
P&L accounting
CE refunds return to your wallet before settlement, so they are not insettleReturnAmount. When
reconciling P&L for a market that issued refunds, add them back in:
settleCeRefundAmount on the settlement object is a different number — the refund consumed against
your gross payout at settlement, not what you received. P&L uses the received figure.
Related
Reconciling fills
Where to find the refund on each leg.
Tracking positions
Netted exposure — the same idea, read-only.
Parlays
The other meaning of
ceRefundAmount.Quarter-line markets
Why one bet produces two refund calculations.