Skip to main content

Overview

The RFQ (Request for Quote) system enables quote-based trade execution by allowing users to request prices from market makers.
The RFQ system is currently in early alpha and requires onboarding. Contact [email protected] to request access.

Roles

Requesters

  • Create Requests: unsigned intents to buy or sell outcome tokens
  • Anyone may originate Requests from the Polymarket site or API

Quoters (Market Makers)

  • Respond to Requests with Quotes: unsigned intents to fill those Requests
  • Must be onboarded into the RFQ system by address
  • Compete to offer the best price

High-Level Lifecycle

RFQ Lifecycle
  1. Requester creates a Request to BUY or SELL outcome tokens
    • This initiates an auction to the community of Quoters
  2. Quoter A creates a Quote responding to the Request
  3. Quoter B submits a better Quote (e.g., cheaper price)
  4. Requester selects and accepts a Quote
    • An Order is automatically created, which the Requester signs
    • A timer begins: the Quoter must approve within the defined window
  5. Selected Quoter has last look
    • If approved: another Order is created, which the Quoter signs
    • If not approved within timeframe: RFQ is rejected
  6. If approved: RFQ is executed onchain

System Parameters

The RFQ API is live at https://clob.polymarket.com/rfq
ParameterValueDescription
Last LookEnabledQuoters have a final decision window before committing
RequestTTL10 minutesHow long a Request is live before auto-expiration
QuoteAcceptTTL10 secondsTime for Quoter to approve after Requester accepts
MultiRequestEnabledfalseRequester can only have 1 active Request at a time
QuoteRestrictionModeOneQuotePerRequestPerMarketQuoter can only have 1 active Quote per market
These parameters may change as the system progresses out of alpha.

State Transitions

Request States

Request State Transitions
StateDescription
STATE_ACCEPTING_QUOTESRequest is live, accepting quotes from market makers
STATE_QUOTE_ACCEPTEDRequester accepted a quote, waiting for Quoter approval
STATE_MAKER_ORDER_APPROVEDQuoter approved, pending onchain execution
STATE_COMPLETEDSuccessfully executed onchain
STATE_USER_CANCELEDRequester canceled the request
STATE_INTERNAL_CANCELEDSystem canceled the request
STATE_REQUEST_EXPIREDRequest TTL expired
STATE_REQUEST_EXECUTION_FAILEDOnchain execution failed

Quote States

Quote State Transitions
StateDescription
STATE_REQUEST_QUOTEDQuote submitted, waiting for Requester decision
STATE_REQUEST_ACCEPTED_QUOTERequester accepted this quote, last look timer started
STATE_MAKER_APPROVEDQuoter approved, pending execution
STATE_COMPLETEDSuccessfully executed
STATE_MAKER_CANCELEDQuoter canceled their quote
STATE_REQUEST_CANCELEDParent request was canceled
STATE_REQUEST_EXPIREDParent request expired
STATE_EXECUTION_FAILEDOnchain execution failed
STATE_MAKER_REJECTED_CANCELEDQuoter rejected during last look
STATE_MAKER_REJECTED_EXPIREDQuoter did not respond during last look window

Authentication

All RFQ endpoints use L2 Auth from the Polymarket CLOB API. See CLOB Authentication for details on generating and using API credentials.

Next Steps