Skip to article Polymarket

Polymarket liquidity increases when a post-only order rests on the book

Polymarket liquidity increases when a post-only limit order adds a resting quote to an outcome’s order book. The order sets a price and share quantity, and it can’t take existing liquidity on entry. If it would match immediately, Polymarket rejects it. A live status confirms that the quote is resting; it doesn’t confirm a fill.

Before submitting, confirm trading eligibility for your location and select a market that accepts orders. The account also needs the appropriate balance and approvals. Posting the quote, receiving a fill, and settling that trade represent different commitments.

Bottom line: Canceling a resting quote removes only its unfilled quantity, so earlier fills can leave outcome exposure after the quote disappears.

Trading eligibility and market state govern a new quote

A new opening quote requires permission to trade from the requesting location, plus an outcome whose market currently accepts orders. Geographic restrictions can block trading completely or allow only the closing of existing positions. Some restrictions cover both the frontend and API; others apply only to the frontend. Close-only permission doesn’t authorize a first buy that opens exposure. The account’s closed-only mode can also reject new opening orders independently of location.

Within the market data, active , closed , and acceptingOrders describe different operational conditions. Order-book trading also requires enableOrderBook to be true. A market can exist onchain without offering a usable book. Select the specific Yes or No outcome before interpreting its quotes, and read the resolution rules that define its exposure.

Spread and depth describe available trading interest

Resting bids offer to buy an outcome, while resting asks offer to sell it; the difference between the best prices is the spread. Depth describes the quantities available across those prices. Together, they show where counterparties currently express trading interest. The displayed probability usually reflects the bid-ask midpoint, with the last traded price replacing it when the spread exceeds 10 cents. That display doesn’t promise execution at the same price. An order seeking immediate execution can consume only the depth within its permitted price range. Quantity quoted beyond that range won’t help it fill.

The wallet supplies collateral or outcome inventory

Buy quotes require sufficient pUSD, the USDC-backed ERC-20 collateral token on Polygon, while sell quotes require the selected outcome tokens. Existing open orders can reserve balance, reducing what remains available for another quote. The account wallet that holds these assets must also grant the permissions required by the market’s settlement contracts. Signing an order doesn’t replace those approvals.

Outcome balances use ERC-1155 positions in either Conditional Tokens for CTF markets or PositionManager for Polymarket Protocol V2. The market version determines the identifier and settlement route. Existing CTF permissions don’t automatically authorize the V2 contracts, and the V2 migration doesn’t convert existing CTF holdings.

The unified SDK selects the matching exchange, signing domain, and approval route from the chosen outcome identifier. A manually constructed API order must supply the correct version-specific values.

Price increments and order lifetimes bound the commitment

The active tick size defines the permitted price increments, and Polymarket rejects orders below the applicable minimum size. For a direct central limit order book (CLOB) response, min_order_size expresses the minimum share quantity. Reward qualification has separate size rules. An order that satisfies trading requirements can therefore fall outside the conditions that qualify it for incentives.

Good Till Cancelled, or GTC, keeps a resting limit order active until it fills or cancellation removes it. Good Till Date, or GTD, adds an expiration. Both support post-only placement. A chosen deadline limits how long an unfilled quote remains available; it doesn’t prevent a counterparty from filling the quote before that deadline.

Diagram: Polymarket liquidity - Price increments and order lifetimes bound the commitment

View image file

Post-only controls how a limit order enters the book

Polymarket rejects a post-only order that would immediately match resting liquidity. A buy becomes marketable at or above the lowest ask; a sell becomes marketable at or below the highest bid. A limit price alone therefore doesn’t establish maker status.

In the TypeScript SDK, use postOnly: true with placeLimitOrder() . Python uses post_only=True with place_limit_order() . Direct API requests pair postOnly: true with a GTC or GTD order type.

A first quote can be live without a purchase

An accepted post-only buy can leave the outcome-token balance unchanged because the resting order hasn’t purchased shares. A live quote answers whether liquidity was posted; a successfully settled fill establishes a completed purchase.

  • Pause if location restrictions, the account’s closed-only mode, or the market’s operating state prevent a new opening order.
  • For a buy quote, choose a valid price below the current lowest ask and a quantity that meets the trading minimum.
  • Submit with post-only enabled only after the account has sufficient pUSD, valid authentication, and the required approval.
  • Count the quote as posted when acceptance reports live , then compare the open order’s outcome, side, price, and quantity with the request.
  • To stop without leaving a quote open, cancel its unfilled amount and inspect the latest order state and filled quantity.

The book can change between inspection and submission, making the chosen price cross an opposing quote and triggering rejection. A fill can also occur before cancellation takes effect. Cancellation removes only the quantity that hasn’t matched.

Fill records establish what traded

The order ID follows the resting quote, while resulting trade IDs identify its fills. The SDK response reports whether the order was accepted. A single quote can fill in portions as different counterparties trade against it, so the requested quantity and executed quantity need separate readings.

The CLOB operator matches orders offchain, and the market’s contracts settle matched trades on Polygon. A trade marked MATCHED has entered execution, and MINED means its transaction reached the blockchain. CONFIRMED establishes successful finality on Polygon. Retrying and permanent failure are separate trade states, so the final settled quantity can differ from an earlier expectation.

The placement response captures the insertion status. A later authenticated read shows the quote’s current state, which can change while it waits on the book.

Cancellation leaves completed fills intact

Cancellation can withdraw the quantity that remains unfilled, while any matched portion stays committed to its settlement outcome. For a single quote, an order-ID cancellation targets that quote without removing other resting orders. In the direct API response, canceled lists successful cancellations, and not_canceled gives reasons for orders that couldn’t be canceled. An HTTP success code alone doesn’t establish that the requested order was withdrawn. Marketable orders in configured pending delay windows remain non-cancellable during those windows. Cancellation also preserves the original and matched sizes, so a removed remainder can coexist with an earlier fill.

Polymarket liquidity: Cancellation leaves completed fills intact - diagram

View image file

Maker fees and rebates depend on different conditions

Makers don’t pay trading fees, while taker fees apply in fee-enabled markets. The maker role comes from adding liquidity that another order subsequently takes. A rejected post-only order produces no executed maker liquidity, and a resting quote that never fills doesn’t qualify for a fill-based maker rebate. Fee-free markets don’t create a taker-fee-funded rebate pool through those trades.

Maker rebates draw from a share of taker fees in eligible markets. Allocation uses each maker’s share of fee-curve-weighted executed liquidity within that same market, rather than a fixed return on posted capital. Payouts occur daily in pUSD once the accrued rebate reaches at least 1 pUSD. Category parameters can change, so a quoted rebate percentage describes the relevant fee allocation, not a promised percentage gain on the order’s value.

Liquidity rewards score qualifying quotes

Liquidity rewards evaluate eligible resting orders through a separate scoring system, using the market’s minimum qualifying size, maximum qualifying spread, required live duration, and configured reward allocation. The maximum qualifying spread measures distance from a size-adjusted midpoint. A quote can satisfy post-only and trading requirements while earning no reward because it falls outside the incentive settings. A tighter spread alone doesn’t establish eligibility when the size requirement is unmet.

Scoring accounts for the quantity and placement of qualifying orders, then compares each participant’s score with other makers in that market. Two-sided liquidity receives favorable treatment, with additional conditions governing single-sided quotes. An order-scoring response describes current qualification; moving prices can change it. An expired allocation doesn’t support future rewards. Liquidity rewards below the $1 minimum payout aren’t paid.

Visual outline: Polymarket liquidity: Liquidity rewards score qualifying quotes

View image file

The special Crypto TWAP Rewards allocation for 5-minute, 15-minute, and 4-hour crypto markets has ended. Other liquidity rewards depend on each market’s active allocation and quoting rules.

Filled inventory remains exposed to the market’s outcome

Once a maker buy settles, the wallet holds exposure to the selected outcome under its resolution rules. A settled maker sell reduces that outcome balance. Subsequent price changes alter the inventory’s value, and earning a rebate doesn’t remove that exposure. Entry prices also affect potential returns. Selling before resolution requires a compatible counterparty; merging a complete Yes/No set offers a separate route back to collateral. Canceling the remaining quotes stops their future fills, while any inventory still held follows the market’s recorded payout.

Good to know

Must I split pUSD before placing my first post-only buy?

A post-only buy doesn’t require a preparatory split of pUSD. Ordinary order-book trading can acquire the selected outcome position using collateral. Splitting is a separate operation that creates matching Yes and No inventory. The buy quote still requires sufficient pUSD and the permissions for the market’s settlement route.

How is a GTD post-only order’s expiry time calculated?

A GTD post-only quote uses a Unix expiration timestamp in seconds with a one-minute security offset. For an effective lifetime of N seconds, use now + 60 + N. The timestamp must be at least three minutes ahead, or the order is rejected, giving a minimum effective lifetime of about two minutes.

When does a single-sided liquidity quote stop scoring?

Single-sided liquidity can score only when the adjusted midpoint lies from 0.10 through 0.90, including both boundaries, and the quote meets the remaining reward conditions. Outside that interval, scoring requires two-sided liquidity. Those thresholds refer to the market midpoint, not your order’s own price; qualifying size, maximum spread, and required live duration still apply.

Will a resting sports quote survive the game’s start?

Outstanding sports limit orders are scheduled for automatic cancellation at the official game start. An earlier-than-scheduled start can leave orders uncleared when play begins. For a first post-only sports quote, inspect its current state to see whether automatic cancellation took effect.

Are unnamed outcomes suitable for a first negative-risk liquidity quote?

No. In augmented negative-risk events, quote only named outcomes and avoid trading Other directly. The interface hides unnamed placeholders, which can acquire names later. The definition of Other also changes as those placeholders become specific outcomes. These changes concern what the tokens represent; enabling post-only doesn’t stabilize that definition.

Where should a browser integration keep its Builder API credentials?

Builder API credentials belong on the server because they authorize sensitive integration operations. Remote builder signing lets the client receive only the headers for the request being authorized. Creating a quote through a browser doesn’t require exposing the Builder API key, secret, and passphrase in public client code.

What happens if the tick size changes after a quote is prepared?

A prepared quote must still conform to the active tick size when the CLOB validates it. An outdated price increment can cause rejection even when post-only is enabled. Integrations that cache this value can subscribe to tick_size_change events and replace it when the market updates.

Last updated: