Polymarket Arbitrage Bot: Automate Cross-Platform Arbitrage in 2026
Polymarket prices the same events as Kalshi, Pinnacle, and dozens of sportsbooks. When those prices disagree, a Polymarket arbitrage bot can lock in guaranteed profit on both sides. Here's exactly how it works.
A Polymarket arbitrage bot does something simple: it watches the same event on Polymarket and at least one other venue, waits for the prices to disagree, then buys the cheap side on one platform and sells on the other. The combined cost is less than $1.00, but the guaranteed payout is exactly $1.00. That difference is your profit.
Sounds easy. It's not.
The edges are real, but they're small (typically 2-5%) and they close fast (15-30 seconds on sports markets). You can't capture them manually. By the time you open two browser tabs and place both orders, the gap is gone. That's why a Polymarket arbitrage bot exists: to spot and execute these trades faster than any human can.
This guide covers exactly how cross-platform arbitrage works on Polymarket, where the opportunities come from, what can go wrong, and what separates a profitable bot from an expensive dashboard. If you're new to the concept of sports arbitrage betting, start there first. You can also browse our full prediction markets guide to see how the Polymarket pieces slot into the wider Kalshi and Polymarket strategy stack.
How Polymarket's CLOB Creates Arbitrage Opportunities
Polymarket runs a Central Limit Order Book (CLOB) on Polygon L2. Every trade is peer-to-peer. There's no bookmaker setting a line. Prices come from the balance of buy and sell orders sitting in the order book at any given moment.
This matters for arbitrage because Polymarket's prices are set by its own user base, which skews crypto-native and younger. Kalshi's prices are set by a different user base: US-regulated, more institutional. Sportsbooks like Pinnacle are set by professional sharp bettors with decades of experience pricing sports.
These different user bases don't agree on probability. They disagree constantly.
When Polymarket's crowd thinks the Lakers have a 42% chance of winning and Kalshi's crowd thinks the Lakers have a 47% chance, that 5-cent gap is an arbitrage opportunity. A Polymarket arbitrage bot buys Lakers YES at 42 cents on Polymarket and Lakers NO at 53 cents on Kalshi. Total cost: 95 cents. Payout: $1.00 no matter who wins. That's a 5.26% return before fees.
Key technical details about Polymarket's CLOB that affect how a bot operates:
- WebSocket feeds push order book updates in real time. REST polling is too slow for arb detection.
- 250ms taker delay on sports and short-term crypto markets. This intentional delay prevents pure latency arb within Polymarket itself, but cross-venue arbs against Kalshi or sportsbooks are unaffected.
- USDC settlement on Polygon L2. Gas costs are fractions of a cent per trade, but over 500+ trades per month they become a real line item.
- No account limits. Polymarket never restricts winning traders. This is the single biggest reason to build an arb bot here versus traditional sportsbooks, which will limit you after a few weeks of winning.
- Order book depth varies wildly. NBA and MLB games might have $50,000+ at the best price. A niche politics market might have $200. Your bot needs to check depth before sizing orders.
Cross-Platform Arbs: Polymarket vs Kalshi
The Polymarket-Kalshi pair is the most consistent source of cross-venue arbitrage in prediction markets right now. Both platforms list the same sports events (NBA, MLB, NHL, soccer), the same political markets, and many of the same crypto/macro events. But their prices diverge for structural reasons.
Why Prices Diverge
Different user bases. Kalshi is US-regulated and attracts more traditional finance and sports betting users. Polymarket is crypto-native and attracts DeFi traders and international users. These populations have different information, different biases, and different reaction speeds to news.
Different fee structures. Kalshi charges a percentage fee on winnings (varies by tier, typically 3-7%). Polymarket has no exchange fees but traders pay Polygon gas costs. These different cost structures mean the "fair price" on each platform is actually slightly different, and that difference creates persistent small edges.
Different liquidity profiles. A high-profile NBA game might be heavily traded on Polymarket but thinly traded on Kalshi, or vice versa. Thin books reprice slowly, which widens gaps.
For a detailed breakdown of how these two platforms compare, see our Kalshi vs Polymarket arbitrage guide.
A Real Example
Celtics vs Nuggets, April 2026. Polymarket has Celtics moneyline YES at 0.58. Kalshi has Celtics NO at 0.39. Total cost: 0.97 per contract pair. Guaranteed payout: $1.00. Gross edge: 3.09%. After Kalshi's 7% fee tier on the winning leg and Polygon gas, net profit is roughly 1.8% per pair. At $500 per side, that's $9.00 risk-free.
$9 doesn't sound like much. But when your bot executes 8-12 of these per day across NBA, MLB, and NHL, it compounds. The math works because you're not predicting anything. You're capturing a pricing error. Use our prediction market calculator to model these edges with your exact fee tier.
Cross-Platform Arbs: Polymarket vs Sportsbooks
Polymarket doesn't just compete with Kalshi. It prices many of the same events as sharp sportsbooks like Pinnacle (PS3838), BetInAsia, and crypto sportsbooks like Cloudbet and Stake.
The arb mechanics are different here because sportsbooks use decimal odds, not binary contracts. A Pinnacle line of 2.10 on the Lakers implies a 47.6% probability. If Polymarket has Lakers YES at 0.44 (44%), that's a potential value edge, not a clean two-leg arb.
True cross-platform arb between Polymarket and sportsbooks requires converting everything to the same probability space. A Polymarket arbitrage bot that handles this needs to:
- Strip the vig from sportsbook odds to get a clean no-vig probability
- Convert Polymarket's 0-1 pricing to the same probability format
- Account for Polymarket gas costs, sportsbook margins, and any deposit/withdrawal fees
- Check that the event definitions match (same team, same game, same market type)
The edges here tend to be larger than Polymarket-Kalshi arbs (3-8% is common on less-liquid Polymarket sports markets), but execution is harder. Sportsbooks are slower to fill, more likely to reject orders, and will eventually limit your account if you win consistently. Prediction markets won't.
The Execution Problem: Why Detection Alone Doesn't Work
Here's where most "arbitrage tools" fail. They detect edges. They show you a dashboard with flashing green numbers. But they don't place the trades.
That's a problem because Polymarket arb edges close in 15-30 seconds on popular sports markets. The manual execution timeline looks like this:
- You see the alert: +3 seconds
- You open Polymarket, find the contract: +10 seconds
- You place leg 1: +5 seconds
- You switch to Kalshi, find the matching contract: +10 seconds
- You place leg 2: +5 seconds
Total: 33 seconds. The edge closed 15 seconds ago. You just bought one leg of an arb with no hedge.
A Polymarket arbitrage bot with direct API access to both venues executes both legs in under one second. It places leg 1 on Polymarket via the CLOB WebSocket and fires leg 2 on Kalshi via the REST API simultaneously. The difference between "detected" and "captured" is the difference between reading about profits and actually making them.
Naked Leg Risk: The Biggest Danger in Polymarket Arbitrage
Even with a fast bot, things go wrong. The most dangerous failure mode is a naked leg.
Your bot places two orders at the same time. Leg 1 on Polymarket fills instantly. Leg 2 on Kalshi gets rejected because someone else took that price 200ms before you. Now you're holding an unhedged position. You thought you had a risk-free arb. Instead, you have a directional bet on the Celtics.
Naked legs happen. A good Polymarket arbitrage bot needs to handle them:
- Immediate detection. The bot must know within milliseconds that leg 2 failed.
- Retry logic. Can the bot find a new price on the hedge venue and attempt again? Sometimes the edge is still there at a slightly worse price.
- Halt mechanism. If the retry fails, the bot should stop trading that specific match to prevent stacking multiple naked positions on the same event.
- Position tracking. The bot should log every naked leg and expose it in the UI so you can manually close the position or let it ride if you want.
Claw Arbs tracks naked legs across all its arb engines. When any engine has a leg 1 fill without a hedge, the system marks that match and both the WebSocket arb engine and the cross-book engine halt new trades on it until the position is resolved.
What to Look for in a Polymarket Arbitrage Bot
Not all bots are equal. Here's what actually matters when you're evaluating a Polymarket arbitrage bot:
1. Execution Speed
The bot must connect to Polymarket's WebSocket feed and the hedge venue's API simultaneously. REST polling every 5 seconds won't cut it. You need real-time order book data with sub-second execution on both sides.
2. Accurate Fee Modeling
A 4% gross edge means nothing if fees eat 3.5% of it. Your bot needs to know your exact Kalshi fee tier (which changes based on volume), current Polygon gas prices, and any slippage from walking the order book. Without accurate fee modeling, you'll execute trades that look profitable but actually lose money. Our arbitrage calculator guide explains how to model fees correctly.
3. Event Matching
This is the hardest engineering problem in cross-venue arbitrage. Polymarket identifies contracts by token ID. Kalshi uses tickers like 26APR08LALNBA. Matching "Lakers vs Celtics" on Polymarket to the right Kalshi ticker requires fuzzy matching on team names, dates, and market types.
Get the matching wrong and you'll arb two contracts that look identical but have different resolution criteria. That's not a risk-free trade. That's two unrelated bets.
4. Order Book Depth Awareness
Your bot sees a 4% edge on a Polymarket contract. Great. But there's only $150 at that price. If the bot tries to place a $2,000 order, it will fill $150 at the expected price and the remaining $1,850 will walk the book into worse levels, destroying the edge.
A good bot checks depth on both sides before placing orders and sizes positions to match the available liquidity.
5. Paper Trading Mode
You don't want to risk real money while tuning parameters. A proper Polymarket arbitrage bot should have a paper trading mode that simulates execution against real order book data so you can validate your edge before going live.
How Claw Arbs Handles Polymarket Arbitrage
Claw Arbs is a cross-venue arbitrage system that connects to Polymarket, Kalshi, Pinnacle, and BetInAsia simultaneously. Here's how it handles the specific challenges of Polymarket arb:
- Real-time WebSocket feeds from both Polymarket's CLOB and Kalshi's order book. Price updates trigger arb checks within 25ms.
- Dual-leg execution places both sides of the arb in under one second. Leg 1 and leg 2 fire near-simultaneously.
- Sports matcher automatically maps Polymarket token IDs to Kalshi tickers using fuzzy team-name matching, game dates, and market types.
- Fee-aware edge calculation factors in your exact Kalshi fee tier, Polygon gas costs, and a configurable slippage buffer. Edges below your minimum threshold are ignored.
- Naked leg tracking across all engines. If leg 1 fills and leg 2 fails, the match is flagged and both engines stop trading it.
- Paper trading + live execution modes. You can run both simultaneously to compare simulated vs actual fills.
- Cross-book engine also finds edges between Polymarket and sharp sportsbooks (Pinnacle, BetInAsia), not just Kalshi.
The system runs as a single async Python process with around 15 concurrent tasks handling feeds, arb detection, and execution. It's not a cloud service that sends you alerts. It runs on your machine and places orders through your own API keys.
Fee Modeling: The Math That Makes or Breaks Your Edge
Let's walk through a real fee calculation for a Polymarket-Kalshi arb.
Setup: Polymarket YES at 0.42. Kalshi NO at 55 cents (0.55). Total cost: 0.97. Gross edge: 3.09%.
Now subtract fees:
- Kalshi fee (7% tier): If Kalshi NO wins, you get $1.00 minus your 55-cent cost = 45 cents profit. Kalshi takes 7% of 45 cents = 3.15 cents. If Kalshi NO loses, Kalshi takes 0.
- Polymarket gas: Roughly 0.1 cents per trade on Polygon L2. Call it 0.2 cents for the round trip (buy + eventual settlement).
- Slippage: If you're taking liquidity, the actual fill price might be 0.5-1 cent worse than the displayed best price.
In the worst case (Kalshi side wins, maximum fees), your 3.09 cent edge shrinks to about 1.5 cents net. In the best case (Polymarket side wins), fees are minimal and you keep most of the 3 cents.
Expected net profit across outcomes: roughly 1.8-2.2 cents per contract pair. At $500 per side, that's $9-$11 per trade. Small but consistent and risk-free.
The point is: you can't eyeball this. Your bot needs to compute the exact expected profit after all fees for each specific edge, using your actual fee tier. A 2% gross edge might be profitable at a 3% Kalshi fee tier but unprofitable at 7%.
Gas Costs and Polygon L2 Specifics
Polymarket settles on Polygon, which keeps gas costs low. But "low" isn't "zero."
Each trade requires signing an EIP-712 typed data message and submitting it to the CLOB exchange. The exchange handles matching, and settlement happens on-chain. Your costs include:
- USDC approval (one-time, negligible)
- Order settlement gas (fractions of a cent per trade)
- Position redemption gas when the market resolves
At low volume (5-10 trades per day), gas is irrelevant. At high volume (100+ trades per day), it can total $1-2 daily. Factor it in, but don't let it scare you away from an otherwise profitable edge.
The bigger Polygon-specific risk is bridge risk. Your USDC sits in a smart contract on an L2 chain. Polymarket has been reliable, but any bridge carries non-zero risk. Diversifying capital across Polymarket (crypto-native) and Kalshi (CFTC-regulated, funds held in regulated accounts) is a natural hedge against platform risk.
Polymarket Arbitrage vs Sportsbook Arbitrage
If you've done traditional sports arbitrage betting across sportsbooks, Polymarket arb feels different in a few important ways:
| Factor | Sportsbook Arb | Polymarket Arb |
|---|---|---|
| Account limits | Limited within weeks | No limits ever |
| Execution method | Place bet against the house | Trade on an order book (peer-to-peer) |
| Edge size | 1-3% typical | 2-5% typical |
| Edge duration | Seconds to minutes | 15-30 seconds on sports |
| Naked leg risk | Low (bets fill instantly) | Medium (order book, can be sniped) |
| Settlement | Cash in sportsbook account | USDC on Polygon + cash on Kalshi |
| Market coverage | Sports only | Sports + politics + crypto + macro |
The no-limits advantage is massive. Traditional sportsbook arbers spend half their time opening new accounts and managing limited ones. On Polymarket, you'll never get restricted. Your bot can run indefinitely without operational overhead.
Common Mistakes with Polymarket Arbitrage Bots
Ignoring Settlement Rules
Kalshi and Polymarket can define the same event with different resolution criteria. "Will the US send troops to Taiwan?" might resolve based on different definitions of "troops" or "send." If your bot matches these as identical markets and one resolves YES while the other resolves NO, you lose on both sides. Always verify resolution criteria match.
Oversizing Relative to Book Depth
Polymarket's displayed best price might have $200 behind it. If your bot fires a $5,000 order, only $200 fills at the expected price. The rest eats into worse levels. A 4% edge becomes a 1% edge or worse. Check depth, size accordingly.
Running Without Paper Trading First
Deploying a bot with real money before validating against live data is asking for trouble. Run paper mode for at least a week. Compare detected edges against actual order book movement. Make sure your fee modeling is accurate. Then go live with small sizes.
Not Tracking CLV
Closing line value (CLV) is the only metric that proves your bot has real edge over a meaningful sample. Win rate on arbs should be near 100% if both legs fill, but your CLV tells you whether you're consistently capturing edges that the market later confirms as real. If your CLV is negative, something is wrong with your matching or fee model.
Getting Started with Polymarket Arbitrage
- Fund both venues. You need USDC on Polymarket (bridge from Ethereum or buy directly) and USD on Kalshi (bank transfer, 1-3 day wire). Split your bankroll roughly 50/50.
- Start with detection only. Watch edges for a few days before executing. Learn what 2% edges look like, how long they last, and which markets have them most often.
- Paper trade first. Run your bot in simulation mode against live data. This surfaces matching errors, fee miscalculations, and order book depth issues before they cost you money.
- Go live with small sizes. Start with $50-$100 per leg. Verify that your actual fills match your paper fills. Scale up slowly.
- Focus on sports. NBA, MLB, and NHL have the deepest liquidity and most frequent cross-venue gaps. Politics and crypto markets have wider edges but lower liquidity and higher settlement risk.
- Track everything. Log every trade, every naked leg, every fee. You can't optimize what you don't measure. Calculate your true return per trade after all costs.
Is Polymarket Arbitrage Still Profitable in 2026?
Yes. But the edges are smaller than they were in 2024.
Polymarket crossed $35 billion in Q1 2026 trading volume. More liquidity means tighter spreads and faster price convergence. The 8-10% edges that existed in 2024 on political markets are rare now. Sports edges of 2-5% are still common, especially during live games when prices move fast and the two platforms reprice at different speeds.
The window is still open for a few reasons:
- Structural fee differences between Kalshi and Polymarket create permanent small gaps that can't be arbed to zero.
- Geographic user base differences mean the two crowds weight information differently, especially on live sports.
- New markets launch constantly. When Polymarket adds a new sport or event category, the early pricing is inefficient until enough volume arrives to tighten things up.
- Most participants aren't arbing. The majority of Polymarket volume is directional bets, not cross-venue arb. There's room for arb bots to operate without overcrowding.
That said, as more capital targets these edges, they'll continue to shrink. The bots that survive will be the ones with the best execution speed, the most accurate fee modeling, and the lowest operational costs.
The Bottom Line
A Polymarket arbitrage bot isn't about predicting who wins the Lakers game. It's about buying "yes" at 42 cents on one platform and "no" at 55 cents on another, guaranteeing a profit regardless of outcome. The strategy is simple. The execution is hard.
You need sub-second execution across two venues. You need accurate fee modeling that accounts for your exact Kalshi tier, Polygon gas, and order book slippage. You need event matching that doesn't accidentally pair two contracts with different settlement rules. And you need naked leg handling that protects you when one side fills and the other doesn't.
Detection tools will show you the edges. But showing isn't capturing. If you want to actually profit from Polymarket arbitrage, you need a bot that executes both legs before the gap closes. Check out our Kalshi trading bot guide for the other side of the cross-venue equation, or explore our free calculators to start modeling edges with your own numbers.
Related: the new CFTC-regulated Polymarket US exchange opens fresh cross-venue edges against Kalshi, our free arbitrage calculator sizes them after fees, and the live arbitrage finder streams real ones as they appear.