This log starts on 18 July 2026. Earlier changes are not tracked here. Every retired path listed
below still resolves through a redirect, so old bookmarks keep working, but the old paths are not
supported surface.
AddedChangedRemoved
Position ids for makers, the fee rate echoed on quotes, stricter auth errors, and implied_probability removed.
Removed:
implied_probability on quote requests. Quote requests and the market maker stream
no longer carry the field. It was always 0 and never used for pricing. Drop it from any parser
that requires it.Added: position_id on the market maker position reads.
GET /v1/mm/positions and
GET /v1/mm/positions/{id} now return the on-chain
position_id, hex encoded and lowercase. It matches the position_id on a broadcast
cashout_request, so a maker can tell
whether an auction is on a position they back without keeping a side index.Added: taker_fee_bps on the submit quote response.
PUT /v1/mm/quote-requests/{id}/quote echoes the
fee rate the quote was priced at.Changed: submitting a quote now fails closed on the fee rate. If the taker fee rate cannot be
read, the request returns 503 with details.reason: "fee_unavailable" instead of pricing at
0 bps. Previously a config read failure silently priced the quote against the gross bet instead of
the net stake, so the maker underwrote a larger base than intended. Retry on this reason.Changed: a malformed API key now returns 403 everywhere. The SSE surface previously returned
401 for a credential that does not start with api_, while REST returned 403. Both now
return 403 with details.reason: "wrong_api_key_type".Changed: every WebSocket auth:error now carries a code. The auth timeout path previously
sent only a message. Branch on code, never on message. See
WebSocket for the four values.Clarified: rate limits are three buckets, not one. Public market reads are keyed per IP and do
not draw down the authenticated per-account budget, and sending an API key to a public read does
not raise its limit. The quote service routes have their own per-IP limit. See
Limits and fees.Removed: World Cup reward pool. The FIFA World Cup 10k reward pool challenge ended and its
page was removed.
/guides/world-cup-reward-pool now redirects to Referrals.Renamed: early exit auctions are now early cashout. The guide moved from
/guides/early-exit-auctions to /guides/early-cashout.Changed: one auction model replaces two flows. The separate buyback and takeover flows are
gone. A single broadcast auction now covers both outcomes. A winning bid from the maker who backs
the position closes it. A winning bid from anyone else acquires it. Bids are one all-in
price_micro figure, with no direction field and no separate fee term.If you still branch on the old buyback and takeover distinction, replace it with a comparison of
the winning market_maker_id against counterparty_mm_id. See
Cashout auctions.Retired:
GET /v1/wallet/blockhash. The endpoint was removed. Transactions are built and
sponsored server side, so clients no longer fetch a blockhash.Retired:
POST /v1/mm/heartbeat. Market maker liveness now comes from the SSE stream
connection. Remove any heartbeat loop. Holding the
MM stream open is enough.Added: market maker position reads.
GET /v1/mm/positions
and GET /v1/mm/positions/{id} return your active positions
with their full parlay legs.Added: referral program. Earn 20% of the trading fees generated by traders you
refer, claimable at 25 USDC.Added:
GET /v1/mm/quotes. Reconcile your quotes and their
lifecycle status after a disconnect.Renamed: quote service paths. The quote service and market maker endpoints moved out of the
flat /rfqs and /mm documentation roots:The
/v1/... request paths did not change. Only the documentation routes moved.
