Kalshi Arbitrage Bots: Locking the Spread, Not the Direction
Kalshi is the CFTC-regulated event exchange that brought prediction markets into the US mainstream. Polymarket is the on-chain heavyweight. They list many of the same events — elections, economic prints, sports, crypto price levels — and because they have different users, different liquidity, and different fee structures, they frequently price the same outcome differently.
That price gap is a Kalshi arbitrage opportunity, and it's one of the cleanest edges in the entire prediction-market space because you're not betting on the outcome at all. You're betting that two prices for the same thing should converge.
How cross-market arbitrage works
Say a contract resolves YES/NO on some event. Kalshi quotes YES at 58¢. Polymarket quotes the equivalent at 53¢. If you can buy the cheap side and sell (or take the opposing side of) the expensive one, you've locked a spread that pays out regardless of how the event actually resolves.
The mechanics:
- Monitor the same market on both venues in real time.
- When the price delta exceeds a configurable threshold (say ≥ 0.8¢ after fees), fire both legs — buy the underpriced side, hedge the overpriced side.
- Both legs are hedged, so your P&L is the spread itself. The event outcome is irrelevant to your return.
This is direction-agnostic income. You're harvesting market inefficiency, not making predictions.
Why you can't do this by hand
Cross-market spreads are small and they close fast — often within seconds of appearing, because you're not the only one watching. Doing this manually means:
- Watching two order books simultaneously, all day.
- Calculating fee-adjusted edge in your head.
- Placing two orders on two venues before the gap closes.
You will lose to anyone running a bot. A Kalshi arbitrage bot monitors both books continuously, computes the fee-adjusted edge instantly, and executes both hedged legs with low-latency order types the moment the threshold is hit. Sub-100ms execution isn't a nice-to-have here — it's the entire viability of the strategy.
What separates a profitable bot from a losing one
- Fee-aware thresholds. The edge has to clear both venues' fees and slippage. A naive bot that triggers on gross spread bleeds out on fees.
- Depth validation. A 5¢ gap on a market with $20 of depth is a mirage. The bot must validate liquidity on both sides before committing — otherwise one leg fills and the other doesn't, and you're suddenly directional.
- Atomic-ish execution. The longer the gap between leg one and leg two, the more leg risk you carry. Fast, concurrent execution minimizes the window where you're exposed.
- A circuit breaker. If something goes wrong — a venue API hiccups, a leg fails — you want execution to halt automatically rather than pile into a one-sided position.
Getting started
The open-source Prediction Market Toolkits ships cross-market arbitrage as one of ten strategies on a shared Rust engine, with hedged legs across Polymarket and Kalshi and full per-trade P&L logging. The Kalshi adapter repo covers the venue-specific setup. Start in dry-run, confirm the spreads your config catches are real and fee-positive, then size up.
If resolution-based edges interest you too, the related strategy is resolution sniping — high win-rate plays unique to prediction markets.
Disclaimer
Trading prediction markets involves real financial risk. Automated trading software is provided as-is, without warranty or guarantee of outcome, and nothing here is financial advice. Arbitrage carries execution and leg risk. Always test in dry-run before deploying real capital, and comply with each venue's terms of service and the regulations in your jurisdiction.