All articles
Polymarket·April 2, 2026·6 min read

Negative-Risk Positions on Polymarket: A Practical Explainer

Negative-risk arises when a trader holds enough complementary shares that their net exposure is positive regardless of outcome. Learn how to construct and manage these positions programmatically using Polymarket's conditional token framework.

Negative-risk positions on Polymarket are not a theoretical curiosity — they are a repeatable structural edge that shows up daily across liquid books, and once you understand the mechanics, writing code to harvest them is straightforward. The core idea is simple: buy enough YES and NO shares in the same market, or across tightly related markets, so that your total cost basis falls below $1.00, guaranteeing a profit on resolution regardless of the outcome.

What "Negative Risk" Actually Means

Polymarket markets resolve to either $1.00 (winner) or $0.00 (loser). Every valid order book has YES + NO summing to a price near 1.00 — in an efficient, zero-fee world the sum would be exactly 1.00.

A negative-risk position is constructed when the sum of what you pay for YES and NO shares is strictly less than 1.00. If you buy YES at $0.54 and NO at $0.43, your combined cost is $0.97 per share. At resolution you collect $1.00 on whichever side wins — a locked $0.03 profit per share pair with zero directional exposure.

In practice this manifests in two flavours:

  • Intra-market: YES + NO quotes on the same market sum below 1.00 after fees, usually on illiquid or newly created markets.
  • Cross-market: two markets covering complementary, mutually exclusive outcomes (e.g. "Candidate A wins" and "Candidate A does not win") misprice against each other.

The key variable is Polymarket's maker/taker fee structure (currently 0% maker, 2% taker on most markets). Your negative-risk threshold is therefore not $1.00 but $1.00 minus your blended fee cost.

The Conditional Token Framework

Under the hood, Polymarket positions are ERC-1155 conditional tokens issued by UMA's Conditional Token Framework on Polygon. Each YES token is a claim on $1.00 USDC collateral if the condition resolves true; NO tokens are the complement.

This is mechanically relevant because:

  1. Merging: holding exactly one YES and one NO token in the same condition set lets you call the CTF's mergePositions() function to redeem the pair for $1.00 USDC immediately — you do not need to wait for resolution.
  2. Splitting: depositing $1.00 USDC mints one YES and one NO token simultaneously via splitPosition().
  3. Collateral accounting: your P&L is deterministic the moment both legs fill. There is no mark-to-market uncertainty once the position is matched.

A bot exploiting negative risk should call mergePositions() as soon as both legs are filled — this converts the locked profit to USDC instantly rather than leaving capital tied up until resolution.

Constructing the Position Programmatically

The Polymarket CLOB API exposes a REST/WebSocket interface for order placement. A production implementation looks roughly like this:

  1. Scan phase: subscribe to order-book updates for all active markets. Compute best_ask_yes + best_ask_no for each market after accounting for taker fees on both sides.
  2. Threshold check: flag any market where yes_ask + no_ask < 1.0 - (2 * fee_rate). At 2% taker on both legs, your break-even combined cost is $0.96 per pair.
  3. Sizing: calculate how many shares fit within your per-market exposure cap. Because the net risk is negative, position limits here are about capital efficiency and counterparty fill risk, not loss prevention.
  4. Execution: place the more advantageous leg first (the larger gap from 0.50), then immediately place the second leg. Use the CLOB's post_only flag on the first leg if liquidity allows — a filled maker order locks your cost basis before you chase the second leg at taker.
  5. Merge: once both legs confirm, call mergePositions() on the CTF contract. On Polygon with reasonable gas, this settles in seconds.

The failure mode to guard against is partial fill on leg two after leg one lands. If you hold YES at $0.54 and cannot fill NO below $0.47, you are now a directional YES holder, not a negative-risk position. Your bot must have a defined rollback — either posting a limit order to offload leg one at break-even, or accepting the directional exposure with a stop.

Real Numbers from Live Books

Here is what these opportunities look like in practice on markets with moderate liquidity (order sizes of $200–$2,000):

Market type Typical combined ask Net edge (2% fee) Frequency
Newly listed, thin book $0.91 – $0.95 $0.01 – $0.05 High, brief
Stale quote after news $0.93 – $0.97 $0.01 – $0.03 Episodic
Cross-market complement $0.94 – $0.98 Varies Low, larger size

Edges collapse fast — a $0.03 gap at $500/leg is $15 gross, minus gas ($0.05 on Polygon) and a 2% fee round-trip ($20). At that size, thin-book edges are often uneconomical. The math starts working reliably at $1,000+ per leg, which is why sizing discipline matters as much as detection speed.

Risk Factors That Are Not Obvious

Negative-risk sounds risk-free but there are real operational risks:

  • Resolution disputes: UMA's optimistic oracle allows proposals to be disputed. In contested resolutions, capital is locked for days. Size accordingly.
  • Smart contract risk: you are holding CTF tokens and calling on-chain functions. An exploit in the CTF or the USDC bridge on Polygon is non-zero risk.
  • Leg execution slippage: in thin markets, your own order moves the book. Model the order impact before sizing up.
  • API rate limits and downtime: Polymarket's CLOB API has rate limits. A missed book update during a period of rapid repricing means a stale scan — your "negative risk" check fires on data that is already gone.

The Polymarket Arbitrage Bot we build at TierZero incorporates all of these guards: fee-aware pricing, partial-fill rollback logic, on-chain merge automation and position-limit enforcement — the same engine described here running against live books across 100+ markets simultaneously. If you want to understand how Polymarket market-making slots alongside arbitrage in a unified book-scanning system, that is a natural companion read.

Automating the Full Loop

The complete automated loop — scan, detect, size, execute, merge — can run in under 500ms on a well-tuned Polygon node. Key architectural choices:

  • WebSocket over REST for book updates: polling introduces latency that kills thin edges.
  • Pre-funded Polygon wallet with enough MATIC for gas bursts; the merge transaction must not fail on gas.
  • Idempotent order tracking: every order gets an internal ID. If a network hiccup means you receive no fill confirmation, your system must query the CLOB for order status before assuming failure and re-submitting.
  • Merge queue: batch merge calls when multiple pairs resolve in the same block — saves gas.

The cross-market arbitrage case study in our portfolio shows a 12-venue engine built on the same detection-and-execution pattern, adapted for prediction markets rather than perps.


If you want a production negative-risk scanner and executor built and running on your infrastructure, reach out at /contact — we scope, build and hand over the full system including CLOB integration, on-chain merge automation and a monitoring dashboard.

Need a bot like this built?

We design, build and run trading bots on Solana, Hyperliquid and Polymarket.

Start a project
#Polymarket#prediction markets#trading#arbitrage#conditional tokens#risk management#automated trading