Prediction market arbitrage bots
Prediction market arbitrage bots look for the same event priced differently, then buy YES on one side and NO on the other so the pair costs less than the $1 it pays out. This page compares the 10 public arbitrage bots in our directory, most of them Kalshi vs Polymarket scanners.
The short answer: open-source scanners are easy to find, but the spread has to beat both venues' fees, and the two markets must resolve the same way. Fees peak at a price of 50¢: Kalshi's general taker fee at 50¢ is 1.75¢ per contract, and Polymarket's crypto taker fee at 50¢ is also 1.75¢ per share, so a pair at 50¢ needs more than a 3.5¢ gap before anything else goes wrong.
Last updated .
Listed projects compared (10)
From this directory. GitHub stars and update dates as of Oct 23, 2026.
| Project | Platforms | Tools | Difficulty | GitHub stars | Repo updated |
|---|---|---|---|---|---|
| Rust Polymarket–Kalshi arbitrage engine | Kalshi & Polymarket | Rust | advanced | 445 | Dec 21, 2025 |
| Cross-venue arbitrage scanner | Kalshi & Polymarket | Python | advanced | 289 | Dec 9, 2025 |
| BTC hourly arbitrage detector | Kalshi & Polymarket | Python | advanced | 254 | May 9, 2026 |
| Polymarket–Kalshi synthetic arbitrage bot (pmxt) | Kalshi & Polymarket | JavaScript, pmxt | intermediate | 187 | Jan 16, 2026 |
| Cross-platform sports arbitrage bot | Kalshi & Polymarket | Rust | advanced | 143 | Jan 18, 2026 |
| Single and multi-market arbitrage finder | Polymarket | — | intermediate | 61 | Dec 24, 2025 |
| Arbiter: Polymarket YES+NO under $1 arbitrage scanner (paper only) | Polymarket | Python, WebSocket order books, LightGBM, Streamlit, FastAPI | advanced | 1 | Oct 20, 2026 |
| Polymarket multi-outcome bundle arbitrage scanner with paper trader | Polymarket | Python (standard library only), Polymarket Gamma and CLOB public APIs | intermediate | 0 | Oct 17, 2026 |
| Pricing Uncertainty: Kalshi mispricing and arbitrage research | Kalshi | Python, Jupyter, linear programming, Kalshi API | advanced | 0 | Oct 18, 2026 |
| ABT: Kalshi and Polymarket arbitrage review tool | Kalshi & Polymarket | Python, FastAPI, Kalshi API, Polymarket API | intermediate | 0 | Oct 20, 2026 |
What decides whether a spread is real
- Fees on both legs: Kalshi: round up(0.07 × C × P × (1 − P)) (Kalshi fee schedule (PDF) ↗). Polymarket: C × feeRate × p × (1 − p), rate by category (Polymarket: Fees ↗). The taker fee calculator computes both.
- Resolution rules: two markets with similar titles can settle on different sources or times.
- Fill risk: if one leg fills and the other doesn't, you hold a one-sided bet.
- Access: Polymarket's docs list the US as close-only on the international exchange (Polymarket: Geographic restrictions ↗).
FAQ
Is Kalshi vs Polymarket arbitrage risk-free?
No. Fees on both legs, different resolution rules, partial fills and access limits can turn an apparent spread into a loss.
Is there a Polymarket arbitrage bot on GitHub?
Yes. The 10 projects above are public, mostly on GitHub, in Python, Rust and JavaScript.
What is a Kalshi arbitrage scanner?
A program that watches Kalshi prices, often next to Polymarket's, and flags pairs where buying YES on one and NO on the other costs less than $1 before fees.
How big does a spread need to be?
At least larger than both taker fees. At a 50¢ price, Kalshi's general fee and Polymarket's crypto fee are each 1.75¢ per contract.
Not financial advice. Listing is not an endorsement, and we have not checked any profit claims. Read the code before you give any tool an API key or wallet key.
Related: Kalshi trading bots · Polymarket trading bots · Kalshi vs Polymarket · Prediction market APIs · Bots on Reddit · All 66 projects
Get the weekly digest
New public Kalshi & Polymarket builds, each with a source. No spam.
Form not loading? Subscribe on beehiiv. Handled by beehiiv; see privacy. Unsubscribe any time.