Deep research report — 2026-08-01. Sources: Polymarket docs/APIs, Kalshi trade API, arXiv primary literature, official repos, verified press. Every claim carries its source in parentheses; items that failed or escaped verification are flagged inline and collected at the end. Verification verdicts (CONFIRMED / PARTLY / REFUTED / unconfirmed) from the independent verify pass are weighed throughout; refuted details are corrected in place.
The implementation sequence from today to a possible Nov 3 live pilot is: August — upgrade maker_arb_sim from touch-based fills to a calibrated probability-queue fill model with per-fill markout logging, and extend the websocket book recorder to both venues' full midterm ladders (Polymarket balance-of-power 5-outcome negRisk, seat ladder, top-5 state races; Kalshi KXBALANCEPOWERCOMBO + control series) at 1s cadence. September — replay Nov 5 2024 from Dune's decoded CTF-Exchange/NegRisk Polygon tables to measure how much negRisk coherence-violation supply actually survives bots, and live-fire the paper maker through 2026 primary result-drops (Maine Dem senate primary vote-share ladder, MI/WI/MN governor primaries are live now — gamma-api pulls, Aug 1 2026) to calibrate markout versus time-to-call. October — produce the calibration sheet (fill rate, markout by time-to-call, minimum quoted edge per ladder leg net of the 4% politics taker fee the counterparty pays), resolve the compliant account path, and run an operational dry run. November 3 — live pilot only if every gate passed. Gates: G1 (Aug 31) sim fills validated against recorded books, recorder capturing both venues ≥2 weeks clean; G2 (Sep 30) paper P&L through ≥2 live primary/debate events shows rewards + realized spread > cumulative 5-min markout bleed, and the 2024 replay shows harvestable ladder supply at the desk's latency; G3 (Oct 17) calibration sheet complete, compliance path settled (which venue, whose account, approvals done), capital sized to survive a 2020-style weeks-long resolution lockup (Forbes 2020-11-30; Asterisk Mag issue 05); G4 (Oct 30) dead-man heartbeat, cancel-all kill switch, and reconnect-resync all pass a kill-test. Any gate failure ⇒ Nov 3 runs paper-only; the structural edges (negRisk rebalancing, post-call convergence harvest, containment spreads) don't expire with the election and can go live later. Note the desk's standing constraints: no live order is placed without the user's explicit go, and the pilot itself is the user's decision — this report specifies the machinery, not authorization.
The plumbing is fully specified in primary sources and mostly verified. Auth is two-layer: L1 EIP-712 ClobAuth signature mints L2 HMAC creds; every private call carries the 5 POLY_ headers with URL-safe base64 HMAC-SHA256 over timestamp+method+path+body (docs.polymarket.com/developers/CLOB/authentication; CONFIRMED). Orders are EIP-712-signed structs posted to POST /order or batched 1–15 via POST /orders, types GTC/GTD/FOK/FAK, with a postOnly flag that rejects rather than crosses — the key flag for the maker bot (docs /trading/orders/create; CONFIRMED). There is no amend: quoting is cancel+replace, with cancel by ID — maximum 1,000 per call, not the 3,000 in the research brief (REFUTED and corrected; CLOB OpenAPI spec and docs /api-reference/trade/cancel-multiple-orders)* — plus cancel-by-market/token and account-wide cancel-all (CONFIRMED).
Matching is price-time priority off-chain with atomic on-chain settlement; marketable orders on crypto/finance sit in a 250ms delay window (longer, configured, on sports) before matching — statuses live/matched/delayed/unmatched (docs /concepts/order-lifecycle; CONFIRMED — the "structural advantage for makers vs snipers" framing is desk interpretation, not doc text). Partial fills surface as sizeMatched and via the authenticated user websocket (PLACEMENT/UPDATE/CANCELLATION + trade messages); trades progress MATCHED→MINED→CONFIRMED with RETRYING/FAILED tails — treat MATCHED as economically filled, track to CONFIRMED (docs order-lifecycle + user-channel; CONFIRMED).
Migration facts that invalidate older tutorials: py-clob-client was archived May 25 2026 — build on Polymarket/py-sdk (GitHub archive banner; CONFIRMED). Collateral is now pUSD (0xC011a7…82DFB, migration Apr 28 2026 per help-center article 14762452), and current exchanges are 0xE1111800…996B (standard) / 0xe2222d27…0F59 (neg-risk); the widely cited USDC.e and 0x4bFb41d5… addresses are the legacy stack (docs /resources/contracts; CONFIRMED — re-verify addresses at build time). EOA (sig type 0) wallets need ERC-20 approval on pUSD plus ERC-1155 setApprovalForAll on CTF (0x4D97DC…76045) for each exchange; Polymarket-hosted proxies (types 1/2) get allowances handled automatically — the latter is implied rather than quoted verbatim in primary sources (py-clob-client README allowances; PARTLY, implication flagged).
Tick and min size are per-market and dynamic: tick_size/min_order_size from GET /book and /tick-size, Gamma orderPriceMinTickSize (0.01 typical, 0.001 on longshot legs, 0.0025 on some sports types) and orderMinSize (observed 5) — never cache tick size (py-clob-client issue #122, dynamic tick near extremes; CONFIRMED). Whether orderMinSize denominates shares or USDC notional is unverified — observed value 5 looks like shares.
Rewards and rebates, the maker revenue side: liquidity-reward scoring is quadratic in closeness to mid, S(v,s)=((v−s)/v)²·b from the size-cutoff-adjusted midpoint, sampled randomly once per minute, paid daily at midnight UTC, $1 minimum; single-sided liquidity scores at 1/3 (divisor c=3.0) for mid ∈ [0.10, 0.90] and scores zero outside that band — two-sided is mandatory in longshot territory (docs /market-makers/liquidity-rewards; CONFIRMED). The docs' "10,080 samples per epoch" (7 days of minutes) sits oddly against daily payouts — unconfirmed inconsistency, verify empirically via the rewards endpoint. Maker rebates are a share of taker fees pro-rata by fee-equivalent maker volume C·feeRate·p·(1−p), paid daily, $1 minimum: 20% crypto, 25% other charged categories — but official sources conflict on sports: help-center article 13364471 says 20%, docs /market-makers/maker-rebates says 15% (PARTLY — treat sports rebate as 15–20%, resolve before quoting sports). Geopolitics is fee-free, hence no rebate there. The "15–25% rebates" framing circulating in third-party guides is the wrong model and was refuted in research. Taker fee = Θ·C·p·(1−p), Θ=0.07 crypto / 0.05 sports (raised July 2026), 0.04 politics taker-only with 25% rebate on the midterm surface (gamma-api feeSchedule pulls; CONFIRMED for politics; crypto/sports Θ values probable, from secondary aggregators — re-verify at deployment). Standing qualification is monitorable at GET /rewards/user/markets (L2 auth, 100/page max 500, next_cursor "LTE=" terminal; CONFIRMED).
Safety rails: heartbeat mode mass-cancels all orders under the credentials if no heartbeat lands within 10 seconds; GTD orders expire ~1 minute early by design (docs orders pages; CONFIRMED). Order-placement rate limits are not published — unconfirmed; probe empirically before fixing quote-refresh frequency.
The academic anchor exists and is on-point: Feil & Nendel (arXiv 2607.17991) adapt Avellaneda-Stoikov to 0–1 bounded contracts — dp = p(1−p)σdW via a logit latent belief, running inventory penalty γq² plus a terminal settlement penalty γ_T·q²·p(1−p); no closed form (numerical HJB), quoting goes one-sided at inventory bounds (CONFIRMED). The practical closed-form baseline is therefore Guéant-Lehalle-Fernandez-Tapia (arXiv 1105.3115 / 1605.01862), with the binary adaptation — substitute p(1−p)σ local vol, add the terminal penalty as resolution nears — being the desk's own proposal, correctly labeled as such (CONFIRMED as sources; adaptation is design, not fact). hftbacktest ships a worked GLFT tutorial (hftbacktest docs; CONFIRMED).
The central tension is verified at both ends: quadratic reward scoring concentrates income exactly at the midpoint where adverse selection is worst, and the mandatory two-sided rule outside [0.10, 0.90] forces quoting the dangerous side in longshot markets (docs scoring formula; CONFIRMED). Empirically, fill probability and post-fill returns are strongly negatively coupled — "orders with negative subsequent five-second returns are highly likely to fill"; a naive imbalance-following maker lost ~60% in 3 days; 1s markouts differ 13× by queue position (−0.058bp front vs −0.775bp back) (arXiv 2502.18625; CONFIRMED — note the study is Binance BTC perps, not Polymarket; transfer is assumed). Consequence: any sim that fills resting orders on touch drastically overstates live P&L, which is the single most important upgrade to maker_arb_sim.
Templates: warproxxx/poly-maker is the best open-source scaffold — microprice + signed-flow fair value, reservation r = FV − skew(inventory), half-spread δ = base + c_vol·σ + c_tox·toxicity, two-sided quoting in complement space (BUY-YES at r−δ, BUY-NO at (1−r)−δ — USDC bids only, no share inventory), per-fill markout EWMAs widening spread and shrinking size, neg-risk worst-case caps, daily-loss kill switch; it makes no profitability claim (repo; CONFIRMED). The official Polymarket/poly-market-maker keeper is naive (30s cancel/replace bands, zero adverse-selection logic) — scaffolding only (repo; CONFIRMED). Practitioner ground truth: Terry Lee's clone-and-run ended ~zero net P&L; "a single adverse move of 30–40% can wipe out accumulated gains within minutes"; position-tracking bugs cost as much as strategy (tezlee.substack.com; CONFIRMED). This motivates the news-halt rule: pull quotes ahead of scheduled announcements/calls — the markout tail on slow political markets is event-driven, not latency-driven.
Markout methodology: compute per-fill, fill-to-mid, signed so negative = adversely selected, at a horizon grid, EWMA per market. The specific "5s/30s/5min professional standard" is not confirmed by any primary source — literature and TCA practice use grids from 1ms to 5min (Databento microstructure guide; QuestDB finance cookbook; Traders Magazine); for slow prediction markets a 1s/5s/30s/5min/30min grid is a defensible convention, adopted here as convention, not standard. Toxicity thresholds from Vertox Quant are paywalled/unconfirmable; poly-maker's simpler markout-EWMA-into-spread mechanism is sufficient for the pilot (probable).
2024 ground truth, verified: by election night the headline Polymarket market was efficient at the top of book — arb-deviation half-life under a minute (0.74 min Oct, 0.67 min Nov), Kyle's λ down to 0.01 — intra-market taker sniping was a pure speed game the desk already ruled out (Tsang & Yang, arXiv 2603.03136; CONFIRMED). But cross-venue divergence stayed wide and slow: execution-adjusted Polymarket–Kalshi spreads averaged ~$0.03 and held ~$0.07 for sustained intervals pre-call (Gebele & Matthes, arXiv 2601.01706 Fig. 9; CONFIRMED), and much of that gap was semantic non-fungibility (media-call vs inauguration/stricter conditions) plus lockup and segmented pools, not free money (same paper; CONFIRMED). Realized arb Apr 2024–Apr 2025 totaled $39.59M — corrected per full-text verification: rebalancing bucket ≈ $29.0M (not the $23.28M/$28.4M variants in the brief), single-condition $10.58M, combinatorial only $95.2K across 4 of 11 executed-arb pairs; top wallet $2.01M over 4,049 txns; top-10 sums $8.18M (not ~$9.1M) (Saguillo et al., arXiv 2508.03474; PARTLY — figures corrected here). The exploitable residual is multi-outcome negRisk rebalancing and cross-venue basis, not single-market taking. The desk-context figure "only ~1% of mispricing supply was harvested in 2024" is unconfirmed — no primary source gives an available-vs-captured ratio; do not use it in sizing.
2026 inventory, verified live Aug 1 (gamma-api and Kalshi trade-api direct pulls): Polymarket balance-of-power-2026-midterms is a 5-outcome negRisk ladder, $9.08M vol, $12.08M OI, ~$1.08M liquidity, DD 44.5c / RD 42.5c / RR 13.5c / DR 1.25c / Other 0.55c, resolving on AP+Fox+NBC, tick 0.01 on main legs and 0.001 on the two longshots (CONFIRMED). House control $8.9M, Senate $3.6M, republican-senate-seats 11-bucket ladder $2.7M, ME senate $1.07M, AK governor $1.10M all re-verified; smaller state lines ($90–635k) spot-checked by pattern (CONFIRMED/spot-check). All sampled midterm markets carry politics_fees: 4% taker-only, makers pay zero and receive 25% of taker fees, plus $5–10/day liquidity rewards at max spread 4.5c / min size 50 (gamma feeSchedule fields; CONFIRMED) — the maker thesis applies directly to this surface. Kalshi: KXBALANCEPOWERCOMBO-27FEB, 4 combos, DD 44/45c, ~$1.93M vol, with an early-close rule — a combo resolves No immediately when any component becomes impossible, freeing capital overnight on Nov 3–4 (Kalshi API; CONFIRMED). Critical semantic trap, verified in rules_primary: the Kalshi combo resolves on who holds control ON FEB 1 2027 (close 2027-02-01, expiration to 2027-02-08), not the election call — any cross-venue basis trade carries ~3 months extra lockup plus party-switch/special-election risk (Kalshi API direct pull; CONFIRMED). Kalshi taker fee 0.07·p·(1−p), maker usually 0, tapered_deci_cent ticks (0.1c below 10c/above 90c — fine-grained tail-leg quoting) (API price_ranges; fee formula probable, from secondary aggregators — official fee PDF not fetched).
Resolution-window regimes, both verified: 2024 fast — AP/Fox/NBC all called by Nov 6 (Fox first 06:46 UTC), UMA propose + 2-hr dispute window, settled within hours; ~99% of UMA assertions undisputed (arXiv 2603.03136; startpolymarket.com; UMA ecosystem reporting; CONFIRMED). 2020 slow — Biden at 89c on PredictIt ~4 weeks post-election, swing-state markets ~90c into December despite ratification (Forbes 2020-11-30; Asterisk Mag; CONFIRMED). Sizing rule follows: every position must survive the 2020 regime. The main planned harvest is post-call convergence — Nov 6 2024 morning saw Polymarket 98c / Kalshi 95c / PredictIt 94c / IBKR 97c converging at different speeds for hours (Fortune 2024-11-06; probable) — entered only with capital reserved for that phase. These capital-rotation rules are desk synthesis on verified inputs (PARTLY by construction — judgment, flagged as such).
No public minute-level tick narrative of 2024 election night exists; the desk builds its own from Dune's decoded CTF-Exchange/NegRisk tables (dune.com/lindyhan dashboard; docs.dune.com prediction-markets catalog; CONFIRMED feasible). Adjacent structural-relation markets live now — which-senate-races-within-5, republican-trifecta-with-supermajority ($166k), house-popular-vote-margin ladder ($113k) — are the 2026 analogue of the under-arbed 2024 relation pairs (gamma pulls; CONFIRMED).
Fee-free geopolitics. Verified: geopolitics/world-events is the only fee-exempt category on the international venue — "Polymarket does not charge fees or profit from trading activity on these markets" — hence also no maker rebate there; the edge must come entirely from spread/mispricing (docs /trading/fees and /polymarket-learn/trading/fees; CONFIRMED). The surface is large: Netanyahu-out ladder $123.9M/6 deadline legs, Venezuela leader $94.9M/57 outcomes, Kharg Island $69.0M/10, US-invade-Iran $51.5M, Taiwan $39.3M, Iran leader $37.4M/123 — every figure re-pulled and matched (gamma-api tag_slug=geopolitics; CONFIRMED). Two ladder shapes: independent-binary deadline chains (negRisk=false, dead legs at 0.001, containment is cross-market not enforced) and negRisk mutually-exclusive leader ladders where sum-to-one rebalancing applies (gamma negRisk fields; CONFIRMED). The exemption is policy-fragile — fees rolled out to crypto Jan 5, sports Feb 18, nearly all categories Mar 30 2026 with geopolitics the deliberate carve-out (pineanalytics.substack; CONFIRMED) — but the "~2 weeks notice" precedent is approximate, not explicitly confirmed. The separate Polymarket US exchange has no geopolitics exemption (docs.polymarket.us/fees; CONFIRMED): the fee-free surface exists only on the international CLOB.
Deadline containment. The MSTR incident is fully confirmed and is the design lesson: "Strategy sells BTC by May 31 2026" ($79M market) resolved NO via UMA despite the 8-K showing 32 BTC sold May 26–31, because disclosure came June 1; the June 30 and Dec 31 legs of the same ladder resolved YES off the same filing (CoinDesk 2026-06-02; Benzinga; CONFIRMED — the final vote after multiple dispute rounds is consistent with coverage but was not independently re-verified). Rule for the executor: the binding deadline is announcement-observability, not event occurrence — verify nesting in announcement-space. This is the desk's inference from a verified case (PARTLY — the generalized "1–30 day haircut" range is judgment). Verification is programmatic: Gamma's description field carries full resolution text; require identical wording across legs except the date, identical resolution-source clause, and matching announcement-acceleration clauses (Netanyahu legs resolve YES immediately on a resignation announcement) (gamma description pulls, exact text; CONFIRMED). Tail risk on any containment trade is a UMA vote, not the event: the Zelensky-suit market flipped YES→NO after disputes with whale-manipulation allegations from Polymarket users (CoinDesk 2025-07-07; core CONFIRMED — but the $240M volume, "nine days," and 6.5M-UMA/30%-of-participation voter stats did not appear in fetched sources; unconfirmed, dropped from sizing). Carry cost: both legs fully collateralized, Polymarket pays 0% on collateral, so lockup cost ≈ foregone ~4–5% T-bill rate × locked notional × months; Kalshi pays 3.75–4% APY on idle balances, though whether collateral inside open positions earns it is unconfirmed (secondary sources; probable).
Cross-venue basis. The one clean documented settlement divergence: Cardi B Super Bowl halftime (Feb 2026) — Kalshi invoked Rulebook 6.3(c) and settled at last traded price ($0.26/$0.74) on $47.3M volume while Polymarket resolved YES at $1.00 on >$10M via "consensus of credible reporting" (defirate.com; predictionhunt; CONFIRMED via journalistic secondaries — Kalshi's own settlement notice not fetched). Structural root: CFTC rulebook adjudication with a last-price escape hatch vs UMA optimistic oracle with token-holder votes (CONFIRMED). Sizing rule: cross-venue "locked" spreads carry a small probability of losing on both legs; run the wording/rulebook diff before entry; Kalshi 6.3(c) means even identical wording can settle at market price. Capital requirement ≈ 2× notional — no cross-margin, USD (Kalshi) vs USDC/pUSD (Polygon) in unlinked systems (both venues' docs; probable). No credible public writeup of realized cross-venue Polymarket–Kalshi arb P&L was found; all "2–8% spread" claims trace to marketing-grade guides — unverifiable, excluded from expected-value estimates.
GET /rewards/user/markets once live-adjacent.Venue and account decisions precede any code going live; these are user decisions, listed here as prerequisites, not recommendations to proceed.