Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run Scan×
Skip to content
The Finance Base
The Money Desk · Blog
Re:

How I Built a “Risk-Free” Arbitrage Bot for Polymarket and Kalshi (and Why It Isn’t Risk-Free)

A YES-plus-NO spread can look risk-free, but independent venues make execution and settlement uncertain. Here is the architecture, math, controls, and testing plan for a defensible Polymarket–Kalshi arbitrage bot.
From TheFinanceBase Team9 min to read
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A YES contract and a complementary NO contract can appear to lock in a dollar payoff for less than a dollar. If the Polymarket YES ask is $0.43 and the Kalshi NO ask is $0.51, the combined cost is $0.94 and the theoretical spread is $0.06. That arithmetic is real—but only if the contracts are identical, both quantities fill, all costs are included, and settlement follows the assumed rules.

The practical project is therefore not a “guaranteed profit” machine. It is a system for finding deterministic payoff discrepancies, proving that markets are equivalent, executing two independent orders, and reconciling the result. The difficult parts are contract interpretation and one-sided execution.

The payoff identity behind prediction-market arbitrage

A binary contract settles at either $1 or $0. Buying YES on one venue and NO on another creates a deterministic $1 payoff only when both contracts describe exactly the same event and outcome.

gross_cost = YES ask + NO ask
gross_profit_per_pair = $1.00 - gross_cost

For example:

Leg Price
Polymarket YES $0.43
Kalshi NO $0.51
Combined cost $0.94
Theoretical spread $0.06

The trade is worth considering only when:

YES cost + NO cost + fees + slippage + funding costs + operational-loss reserve < $1.00

The CFTC’s prediction-market guidance and Kalshi’s market-rules guidance both make the same practical point: each contract has its own terms, verification source, and settlement conditions.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Three strategies that are often confused

Cross-venue complementary arbitrage

Buy YES on one platform and NO on another when the executable combined cost is below $1. This is the strategy that creates the largest matching problem because the venues use separate rulebooks and order systems.

Same-venue binary arbitrage

If YES ask plus NO ask is below $1 on one venue, both legs share a settlement process. Validation is simpler, but fees, depth, stale quotes, and partial fills still apply.

Multi-outcome or negative-risk arbitrage

For mutually exclusive outcomes, the cheapest executable YES positions may total less than $1. This is valid only when outcomes are collectively exhaustive, no “other” outcome is missing, and the venue’s settlement rules treat the set consistently.

A similar headline is not proof of arbitrage. A price difference can reflect different deadlines, data sources, definitions, or trader populations.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What “locked in” means

Stage What it proves
Theoretical arbitrage The payoff is deterministic if the contracts are held to settlement and all assumptions are correct.
Quote arbitrage Displayed prices imply a spread, but available quantity may be tiny or disappear.
Executable arbitrage The intended size is available after walking both books, fees, and slippage.
Operationally hedged arbitrage Both legs filled, positions are recorded, and settlement logic has been verified.

Reserve “locked-in” for the last state. A scanner alert is only a candidate.

Why matching Polymarket and Kalshi markets is the hard part

A string matcher can pair two markets about the same broad subject while missing a decisive contractual difference. The matcher must compare:

  • event identity and outcome wording;
  • threshold, unit, and rounding convention;
  • location and time zone;
  • observation window and cutoff;
  • settlement source and revision policy;
  • whether settlement depends on occurrence, announcement, certification, vote count, or another milestone;
  • early-close, cancellation, voiding, and missing-data provisions;
  • the exact meaning of YES and NO on each venue.

Kalshi’s market API exposes fields such as contract terms, strike information, status, and settlement-related metadata in its Get Market response. Polymarket provides programmatic market and trading access through its API, but availability and account restrictions must be checked at publication time.

Rank #2
Sale
KAIU Sports Betting Log Book – 124 Pages 6''x9'',
  • MORE SPACE FOR REAL TRACKING: Designed with extra writing space compared to typical betting trackers—log bets, strategies, and insights instead of just numbers
  • DISCIPLINED BETTING SYSTEM: Set limits, track units, and stay consistent. Build smarter habits and eliminate emotional betting with structured logging pages
  • BUILT-IN WEEKLY & MONTHLY PROFIT CALCULATOR: Quickly see your performance with dedicated profit tracking pages. Analyze wins, losses, and trends to make smarter bets over time
  • PROFESSIONAL LOGGING STRUCTURE: Organized pages feature betting summary, notes, and detailed logs—ideal for serious sports bettors and data-driven users
  • PREMIUM QUALITY YOU CAN FEEL: Compact 6x9 size, 124 pages, smooth 120gsm paper, durable thick cover, and strong double metal coil—perfect for daily use anywhere

A practical equivalence checklist

  • Copy the full rule text from both venues.
  • Identify the authoritative data source and whether revisions count.
  • Normalize every timestamp to UTC, then verify the venue’s stated local-time wording.
  • Check “greater than” versus “greater than or equal to,” and rounded versus unrounded measurements.
  • Confirm that both contracts settle on the same event milestone.
  • Check early-close, pause, cancellation, and dispute provisions.
  • Store a rules hash and invalidate approval if either contract changes.

The safest first release trades only a manually approved allowlist. Automated matching can generate candidates; it should not grant trading permission by itself.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Architecture for a defensible bot

A complete system is more than a price scanner:

Market feeds
   ↓
Normalizer
   ↓
Candidate matcher
   ↓
Rules validator
   ↓
Fee and slippage calculator
   ↓
Risk engine
   ↓
Polymarket and Kalshi adapters
   ↓
Order state machine
   ↓
Settlement reconciler

Data ingestion and normalization

Use separate adapters and one internal schema:

Market(
  venue, market_id, canonical_event_id, outcome, side,
  close_time, settlement_source, settlement_rules_hash, status
)

Quote(venue, market_id, side, price, quantity, timestamp)

Kalshi’s documented production REST base is https://external-api.kalshi.com/trade-api/v2. Its public order-book route is:

GET /markets/{ticker}/orderbook

An illustrative request is:

curl "https://external-api.kalshi.com/trade-api/v2/markets/$TICKER/orderbook"

Kalshi returns YES bids and NO bids rather than conventional asks. A YES bid at x is economically equivalent to a NO ask at 1 - x. The documented response uses fixed-point fields such as yes_dollars and no_dollars; see the order-book endpoint and response format.

Use event-driven updates where available, with REST confirmation. Every quote needs a timestamp and a maximum age. Public market-data access does not imply unrestricted high-frequency order access.

Depth-aware pricing

Arbitrage uses the price at which the intended quantity can actually be bought, not a midpoint or last trade. Walk each book and calculate a volume-weighted cost:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
available_size = min(size_on_leg_A, size_on_leg_B)
gross_edge = 1.00 - yes_cost - no_cost
net_edge = gross_edge - fees - slippage_buffer - transfer_buffer

Reject a candidate when size is below your minimum, the quote is stale, either market is not open, rules are unverified, or net edge is below your threshold.

Authentication and order controls

Authenticated Kalshi requests require an API key ID, an RSA-PSS signature, and a millisecond timestamp, as described in API environments and request signing. New integrations should use the documented POST /portfolio/events/orders V2 endpoint and check the API changelog; the legacy portfolio-order path is being deprecated no earlier than May 6, 2026.

V2 supports client order IDs, fill-or-kill, immediate-or-cancel, good-till-canceled, post-only, self-trade prevention, cancellation on exchange pause, and fixed-point prices. An illustrative request is:

{
  "ticker": "MARKET-TICKER",
  "client_order_id": "unique-id",
  "side": "bid",
  "count": "10.00",
  "price": "0.5600",
  "time_in_force": "fill_or_kill",
  "cancel_order_on_pause": true
}

Verify field meanings against the live documentation before sending production orders.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Fees can consume a small spread

Kalshi’s February 5, 2026 fee schedule gives the general immediately matched formula as:

fee = round_up(0.07 × C × P × (1 − P))

It lists a maker formula of:

maker_fee = round_up(0.0175 × C × P × (1 − P))

Fees vary by market and execution type; recheck the fee schedule and fee explanation before trading. At $0.50, the general formula is approximately $0.0175 per contract before rounding. Polymarket charges and fee treatment must be taken from its current trading documentation rather than assumed.

Best quote, executable quote, and realized result

Suppose the displayed prices are YES at $0.44 and NO at $0.51. The displayed cost is $0.95 and the gross spread is $0.05. For 100 pairs:

gross spread = 100 × $0.05 = $5.00

The three calculations your ledger should show are:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Displayed: the best visible quotes at detection time.
  2. Executable: volume-weighted prices for the intended quantity, including estimated fees and slippage.
  3. Realized: actual fills, fees, failed-leg losses, and final settlement records.

An illustrative scenario—not a current Polymarket fee claim—might subtract $0.80 in Polymarket charges, $1.70 in Kalshi charges, $1.20 in slippage, and a $0.75 operational reserve from the $5.00 gross spread, leaving $0.55 expected net. The reserve is not a fee; it recognizes that independent venues can create losses when one leg fails.

Execution is not atomic across two venues

Independent exchanges cannot guarantee that both legs execute as one transaction. Keep capital pre-funded on both venues; a transfer after the first fill is usually too slow for a short-lived spread.

Order sequencing

  • Send the more liquid or reliable leg first, accepting temporary directional exposure.
  • Use a strict limit price; never turn an alert into an unbounded market order.
  • Use fill-or-kill when avoiding residual exposure is more important than participation.
  • Use immediate-or-cancel when partial execution can be managed explicitly.

Kalshi documents both instructions in Create Order V2.

Partial-fill state machine

DISCOVERED → VALIDATED → LEG_A_SUBMITTED → LEG_A_PARTIAL
→ LEG_A_FILLED → LEG_B_SUBMITTED → BOTH_FILLED
→ HEDGE_REQUIRED → CANCELLED → RECONCILIATION_PENDING → SETTLED

If leg A fills and leg B does not:

  1. Cancel every unfilled order.
  2. Recheck both books and market status.
  3. Attempt leg B only within a bounded price tolerance.
  4. If the edge has vanished, choose a documented response: hold, cross the spread to hedge, close leg A, or send the position for manual review.
  5. Record the outcome as execution loss or exposure—not arbitrage profit.

Risk controls that belong in the first version

  • Maximum dollar exposure per event and maximum unhedged duration.
  • Maximum concurrent trades and venue-specific balance reserves.
  • Quote-age and slippage limits.
  • Minimum order-book depth.
  • API-error circuit breaker, duplicate-order prevention, and idempotent client IDs.
  • Clock synchronization, remote kill switch, and daily loss limit.
  • Automatic pause near market close, settlement, or a venue outage.
  • Manual review for every ambiguous contract.

Protect credentials with scoped keys and secure secret storage. A cheap server does not replace persistent order state, monitoring, or recovery logic.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Settlement and accounting

Reconcile fills and final settlement records rather than inferring profit from acknowledgements or displayed balances. Kalshi’s settlements endpoint returns ticker, event, result, YES and NO counts, costs, revenue, settlement time, fee cost, and settlement value.

Store, for every order:

  • venue and market identifiers;
  • canonical event ID and side;
  • requested and actual prices;
  • requested and filled quantities;
  • fees, timestamps, API responses, and status transitions;
  • settlement result and expected versus realized P&L.

Your final report should separate gross spread, slippage, trading fees, funding or conversion costs, failed-leg losses, infrastructure costs, and net realized P&L.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Failure modes a scanner will not show

Rule mismatch

“Above 2.0%” may differ from “2.0% or higher”; one venue may use preliminary data while another waits for a revised release. Closing price, intraday price, announcement, and certification are not interchangeable.

Early close, cancellation, or voiding

Markets can close before the expected event date or settle under special clauses. Monitor status and early-close fields in Kalshi’s market metadata.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Sports Betting Logbook Sports, 100 Pages with Monthly P&L & Odds Converter
  • CONVENIENT SIZE - Medium size (8.25" x 5.83")
  • RECORDING AND PLANNING - Ideal for recording all your bets with a handy note section on each day page. Ideal for looking back when planning future bets
  • SUITABLE FOR ALL SPORTS - Perfect for horse racing, football, tennis, cricket, baseball, basketball, ice hockey, etc
  • CONVENIENT AND EASY TO USE - Convenient headlines to record all your betting activities
  • Lying Flat The sturdy spiral binding allows the notebook to rotate 360 degrees, making it very convenient to complete the log

Outages and stale data

A venue may serve market data while rejecting orders, or accept an order while delaying its status response. REST polling can display a quote that has already disappeared. Rate limits, repeated cancellations, and unusual activity can also trigger throttling or review.

Funding and eligibility

Capital can be trapped in different currencies or settlement systems. Check each venue’s current account, geographic, identity, and wallet requirements. Kalshi is a CFTC-regulated designated contract market; the market-integrity materials and CFTC guidance explain exchange rules and surveillance. The CFTC’s February 25, 2026 advisory addresses misuse of nonpublic information and fraud in prediction markets (advisory). Polymarket’s integrity policies are at Polymarket Market Integrity.

How to test without risking meaningful capital

  1. Run a read-only scanner against live feeds.
  2. Use a manually approved market allowlist.
  3. Replay historical books and simulate latency, depth, and disappearing quotes.
  4. Mock accepted, rejected, duplicated, delayed, and partially filled orders.
  5. Test rule changes, venue pauses, API outages, and settlement discrepancies.
  6. Paper-trade the complete lifecycle from discovery through settlement.
  7. Enable tiny live orders only after reconciliation is correct.
  8. Increase size only when an auditable ledger shows fee-adjusted results and bounded unhedged exposure.

Report candidate count, semantically validated count, quoted and executable edges, fill and partial-fill rates, fee-adjusted net P&L, capital utilization, holding time, and worst unhedged exposure. Do not claim profitability from alerts alone.

Where commercial tools fit

Official access starts with Kalshi and its developer documentation, plus Polymarket’s documentation. An open-source TypeScript example is available at this GitHub repository; inspect its current license and treat it as reference code, not audited production software. Third-party scanners such as KalshiArb should be evaluated alongside their risk disclosure; no scanner can prove cross-venue equivalence for every contract.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The practical verdict

The $1 payoff identity is sound under explicit assumptions. A live cross-venue trade is not risk-free because execution is non-atomic, contracts may not be equivalent, fees and slippage reduce the edge, and settlement or infrastructure failures can create losses. Build the scanner as a validation and control system first, then add small, recoverable execution. If the bot cannot explain exactly why two contracts settle identically and cannot reconcile every fill to final settlement, it is not an arbitrage system yet.

Frequently Asked Questions

Can a Polymarket–Kalshi spread be guaranteed profit?

Only the theoretical payoff is deterministic when contracts, settlement rules, quantities, and costs are identical and both legs fill. Independent execution means a displayed spread is not a guarantee.

Should I transfer funds after the first leg fills?

No. Cross-venue transfers are generally too slow for short-lived opportunities; pre-fund both venues and enforce a maximum unhedged exposure.

What is the safest first deployment?

Use a read-only scanner, a manually approved market allowlist, paper trading with failure simulations, then tiny live orders with a kill switch and settlement reconciliation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More post from the Money Desk

  1. The Money DeskBlogTheFinanceBase07 MAR 2625 minWhat Is a 457 Plan?
  2. The Money DeskBlogTheFinanceBase07 MAR 2621 minTime Value of Money: What It Is and How It Works
  3. The Money DeskBlogTheFinanceBase07 MAR 2627 minAre You Living in One of These Top 10 Most Expensive Cities to Retire?
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.