Neg-Risk Sum Arb
Neg-Risk Sum Arb exploits pricing dislocations on Polymarket’s negative-risk (multi-outcome) markets, where the sum of YES token prices across N outco
What it does
Neg-Risk Sum Arb exploits pricing dislocations on Polymarket’s negative-risk (multi-outcome) markets, where the sum of YES token prices across N outcomes must equal $1.00 at resolution. When sum(YES asks across outcomes) < $1.00 net of fees, the bot buys the underpriced YES tokens and — where profitable — routes the position through the NegRiskAdapter on Polygon to convert NO tokens across the set into pUSD. The 'Other' outcome is always excluded from the conversion path. This is a user-controlled execution tool that targets a structural pricing constraint specific to negative-risk event design on Polymarket. It is the multi-outcome counterpart to sum-to-one-arb.
Pipeline placement
Applies to: Negative-risk (multi-outcome) markets where the sum of YES token best asks across all outcomes (excluding 'Other') falls
Why it matters
| If this fails | Consequence |
|---|---|
| Sum computed without excluding 'Other' outcome | The 'Other' token is illiquid and reprices discontinuously. Including it in the sum produces false edge signals that cannot be closed via the NegRiskAdapter path. |
| NegRiskAdapter path not available (market not on negRisk contract) | Buying all YES tokens across N outcomes without a conversion path leaves open positions on all legs; settlement risk is uncapped until individual markets resolve. |
| feeRateBps hardcoded on signed order (V1 pattern) | CLOB V2 rejects orders with feeRateBps. Fees are operator-set at match time. All signed orders must omit this field. |
| Partial fill on one outcome leg leaves unbalanced multi-leg exposure | In a 4-outcome event, buying 3 of 4 YES tokens does not produce a guaranteed $1 settlement and creates directional risk on the unfilled outcome. |
Inputs
Polymarket inputs
| Input | Source | Required | Use |
|---|---|---|---|
| Outcome token list and YES token IDs for the neg-risk event | gamma (Gamma API — negRisk/enableNegRisk flag + condition ID) | required | Enumerate all N outcome tokens; identify and exclude the 'Other' outcome token. |
| Best ask for each YES outcome token | ws_market (CLOB WebSocket book stream) | required | Compute sum(YES asks) across N-1 outcomes (excluding Other) and measure edge against 1.00 pUSD. |
| Top-of-book depth per outcome | clob_public | required | Size each leg to the minimum available depth across all outcomes up to max_leg_size_usd. |
| NegRiskAdapter contract availability and condition ID | onchain (NegRiskAdapter on Polygon) | required | Verify the NegRiskAdapter conversion path is live for this event before committing to the arb. |
| Platform fee rate per market category | onchain (CTFExchangeV2 fee config) | required | Estimate per-leg fee drag; crypto ≤1.80%, sports 0.75%, geopolitical free. |
Internal inputs
| Input | Source | Required | Use |
|---|---|---|---|
| KillSwitch active flag | KillSwitch | required | Abort all intent emission if KillSwitch is active. |
| Builder code bytes32 | internal config | required | Injected into builder field on every signed V2 order for attribution. |
Authority
What this bot is permitted to do
State
Readiness
General live
Status
live
Class
Alpha Strategy
Default mode
general_live
Developer owner
Polytraders core — Strategy pod
Capital impact
Direct
Reason codes emitted
| Code | Severity | Meaning | Action |
|---|---|---|---|
| NEG_RISK_SUM_ARB_EDGE_PRESENT | INFO | Net edge across all N non-Other outcome YES legs meets or exceeds min_edge_bps. N OrderIntents emitted. | Emit N OrderIntents and optional NegRiskConvertRoute. |
| NEG_RISK_SUM_ARB_NO_EDGE | INFO | Net edge across outcome legs is below the 8 bps hard floor after multi-leg fees. No trade. | Skip; emit DecisionReport intent_emitted=false. |
| NEG_RISK_SUM_ARB_EDGE_MARGINAL | WARN | Edge is between 8 and 20 bps. Trade is entered at 50% leg size. | Emit N OrderIntents at 50% leg size; log warning. |
| NEG_RISK_SUM_ARB_NO_CONVERSION_PATH | WARN | NegRiskAdapter is unavailable or not registered for this condition ID. Positions will be held to resolution. | Emit OrderIntents if edge is present; log warning; do not emit NegRiskConvertRoute. |
| NEG_RISK_SUM_ARB_HIGH_OUTCOME_COUNT | WARN | Outcome count is between max_outcomes_per_trade warning (8) and hard limit (12). | Emit at 50% leg size with warning. |
| STALE_MARKET_DATA | HARD_REJECT | Book snapshot older than 5 seconds or Gamma API data is stale. | Skip; emit DecisionReport intent_emitted=false. |
| MARKET_CLOSED | HARD_REJECT | Event is closed or resolved. | Skip immediately; no OrderIntents. |
| KILL_SWITCH_ACTIVE | HARD_REJECT | Global kill switch is active. | Skip all events; no OrderIntents. |
Related bots in Strategy
Used by
Reverse index — strategies that currently reference strat.neg-risk-sum-arb. If you change this bot's authority or reason codes, these strategies must re-pass shadow.
| Strategy | State | Activity |
|---|---|---|
| AI Frontier — release-day taker | frozen | last triggered 37m ago |
| NBA props — line-shop | demo-wired | last triggered 44m ago |
Showing 2 of 2 · demo-wired ≠ production-live
Why this matters
Strategy bots does NOT sign, route, or directly submit orders to the chain. Understanding the authority boundary prevents misuse and makes promotion-gate reviews faster and more reliable. View raw spec JSON →