journal
21 June 20269 min read

Is There Free Money Between Polymarket and Kalshi? I Built a Free Scanner to Find Out.

Same bet, two prediction markets, different prices. In theory that is free money. I built a scanner to check it across more than 70,000 markets on Polymarket and Kalshi. It found zero, and the three reasons why are the useful part. The whole scanner is a free download below.

Prefer to watch? The full video is on YouTube →

The idea: the oldest trick in finance

Arbitrage is the oldest trick there is. If gold is $1,000 in New York and $1,010 in London, you buy in New York, sell in London, and lock in $10 with no risk. Prediction markets should offer the same thing. Polymarket asks “will Bitcoin be up in the next fifteen minutes?” Kalshi asks almost exactly the same question. If Polymarket prices one side at 60 cents and Kalshi sells the opposite side cheaply enough that the two together cost less than a dollar, then no matter what happens, one side pays you a dollar. You put in less than a dollar and get a dollar back. Every time. That is not a bet, that is a machine.

So the plan was not to pick one market. It was to scan all of them and find every place where the two venues disagree enough to lock in a profit.

The build: a scanner across 75,000 markets

I am not a professional developer. I built the whole scanner pair-programming with AI. It pulls the entire universe of open markets off both sites, more than 70,000 of them, and checks for four different kinds of arbitrage: the same crypto window priced off different reference points, the same real-world event listed on both venues, and two kinds where a single venue contradicts itself. I described what I wanted in plain English and it wrote the code.

The first time I ran it, it lit up. Dozens of apparent arbitrages, some showing 40% guaranteed profit. For a moment I thought I had found a money printer. I had found three traps, and every one of them is a lesson.

Trap one: the price on the screen is a lie

The scanner pointed at a Bitcoin window and said: free money, the two sides together cost well under a dollar. So I pulled the actual order book, the live one. The price a prediction market shows you is cached, and underneath it there is often almost nothing to actually buy. When I pulled the real book, the cost to lock in that one-dollar payout was not 90 cents. It was $1.98. To win one dollar I would have to spend almost two. The gap was real. The liquidity was not.

Lesson one: never believe a price you have not tried to trade. The scanner now re-checks every single hit against the live order book before it believes it.

Trap two: the same question is not the same question

The second trap is sneakier. The scanner found a real, juicy gap: both venues had a market on a US-Iran nuclear deal, and the prices were 45 points apart. Polymarket had it at 64%, Kalshi at 19%. That looks like a fortune. Then I read the fine print, the part that says how each one actually pays out. Polymarket would resolve YES on a publicly announced agreement. Kalshi required a formal signed treaty, with verifiable enrichment limits and at least one sanction lifted. A handshake on stage settles Polymarket YES and Kalshi NO. They are two completely different questions wearing the same headline.

So if you “arbitrage” them, you do not lock in a profit. You can lose both sides at once. The 45-point gap was not a mistake, it was the market correctly pricing two different questions. Lesson two, and it applies far beyond trading: matching the headline is not the same as matching the meaning.

Trap three: the 41% that was never there

The biggest number the scanner ever showed me was a 41% guaranteed profit on Kalshi. The market was “who will the FTC investigate next?” with five options, and you could buy all five for 58 cents. One of them has to happen, right? Buy all five, one pays a dollar, you made 42 cents risk-free.

Except one of them does not have to happen. The real answer could be a company that is not on the list. Or nobody. That is exactly why all five together only cost 58 cents: the market was telling me, in plain numbers, that there is roughly a 40% chance it is none of these. Buy all five and the FTC goes after someone unlisted, and you lose everything. Lesson three: when a list of options adds up to far less than a dollar, the market is not being dumb. It is pricing the thing you forgot. “None of the above” is always an option.

The verdict: from 75,000 to zero

Here is the final tally. The scanner checked more than 70,000 markets across both sites and flagged almost 3,000 pairs that looked like free money. After I forced every one of them to prove itself against the live order book and the actual resolution rules, the number that survived was zero.

And honestly, that is the right answer. These are real markets with real people and bots in them. If there were dollar bills lying on the floor, someone faster and better-resourced than me would have grabbed them already. The free money is not there. What is there instead is a genuinely good education in how these markets work, and a tool that can tell you, in a few seconds, whether a real edge has opened up right now.

Why I’m giving the scanner away

So I packaged the whole thing. The download below is the complete scanner as a Claude skill: it pulls every open market on Polymarket and Kalshi, checks all four kinds of arbitrage, and, most importantly, does the part I learned the hard way, re-checking every hit against the live order book before it tells you anything is real. It never hands you a fake edge.

Last time I gave a bot away (a Polymarket trading bot), I held my strategy back because it did not work. This time there is nothing to hold back. The whole point of the tool is that it proves the easy money is not there, so you get all of it. Point it at the two markets, and if the day ever comes that a real, liquid, rules-matched arbitrage opens up, this is the thing that catches it while everyone staring at the cached price on the website misses it. It is read-only, it needs no account or API key to scan, and nothing here is financial advice.

FAQ

Can you arbitrage Polymarket and Kalshi? Almost never in practice. They do price the same questions differently, but once you pull the live books the apparent edge collapses. Across 70,000+ markets my scanner confirmed zero executable arbitrage after live books and fees.

Do they have public APIs? Yes. Both expose public, read-only market data. The scanner uses those APIs and needs no account or key to scan.

Why does an apparent arbitrage disappear when you check it? The on-screen price is cached while the live book is empty; the two venues often resolve the same headline under different rules; and a basket of options summing to far under a dollar is pricing a large “none of the above” chance, not free money.

Is the scanner really free? Yes, completely. It is a read-only Python tool packaged as a Claude skill, free in exchange for your email. It places no orders and needs no credentials. Nothing here is financial advice.

I write build logs like this one about every project I run: bots, AI personas, websites, the numbers included. The next ones are on the journal and the newsletter.