Polymarket-Kalshi Arbitrage Bot — Prediction Market Trading Bots tool screenshot
Prediction Market Trading Bots

Polymarket-Kalshi Arbitrage Bot: Prediction Market Arbitrage

7 min read·

It continuously compares Kalshi YES and Polymarket UP prices, flags 10-cent spreads, and can auto-place Polymarket buys from a single TypeScript service.

Pricing

Open-Source

Tech Stack

Node.js 18+, TypeScript, Express, Axios, @polymarket/clob-client, ethers, dotenv

Target

quant traders and indie hackers

Category

Prediction Market Trading Bots

What Is Polymarket-Kalshi Arbitrage Bot?

Polymarket-Kalshi Arbitrage Bot is a TypeScript prediction market trading bot built by sanzoI-tech for quant traders and indie hackers watching short-duration Polymarket and Kalshi contracts. It is one of the best Prediction Market Trading Bots tools for quant traders and indie hackers; the strategy is tuned for 15-minute markets, uses a 10-cent spread threshold, and exposes a /status endpoint for live monitoring and execution control.

The repo does one job: compare Kalshi YES against Polymarket UP, decide whether the gap is large enough to trade, and optionally place a Polymarket buy order when the rule set says the edge is real. The design favors a small runtime footprint, clear rule evaluation, and operational visibility over model complexity or portfolio abstraction.

Quick Overview

AttributeDetails
TypePrediction Market Trading Bots
Best Forquant traders and indie hackers
Language/StackNode.js 18+, TypeScript, Express, Axios, @polymarket/clob-client, ethers, dotenv
LicenseN/A
GitHub StarsN/A as of Feb 2026
PricingOpen-Source
Last ReleaseN/A

Who Should Use Polymarket-Kalshi Arbitrage Bot?

  • Short-duration market traders who watch 15-minute prediction markets and need a machine to watch both books faster than manual refreshes.
  • Indie hackers building a small, production-style service in TypeScript who want a clear separation between polling, strategy, and execution.
  • Automation-first operators who prefer explicit rules, cooldowns, and structured signals instead of opaque model outputs.
  • VPS deployers who want a lightweight Express service that can run in a container, on a cheap instance, or alongside other market-monitoring jobs.

Not ideal for:

  • Traders expecting guaranteed profit or protection from slippage, latency, and liquidity risk.
  • Teams that need full portfolio management, hedging across multiple venues, or backtesting across years of historical data.
  • Users who do not want to manage wallet credentials, API access, or the operational risk of live order placement.

Key Features of Polymarket-Kalshi Arbitrage Bot

  • Cross-venue price polling — The bot continuously pulls Kalshi YES/NO pricing from the Kalshi trade API and Polymarket UP/DOWN token pricing from the Polymarket CLOB. That gives it a live two-book view instead of relying on one market’s quote stream.
  • Spread-based entry rules — The default strategy checks whether Kalshi YES sits inside a configured confidence band and whether Polymarket UP is at least 10 cents cheaper. That makes the trigger deterministic and easy to audit from logs.
  • Late-resolution detection — If Kalshi has already closed or settled while Polymarket still has liquidity, the bot emits a late-entry signal. This matters in short-duration markets where one venue can finish earlier than the other.
  • Optional automated execution — When trading credentials are configured, the bot initializes an authenticated Polymarket order client and places buy orders through @polymarket/clob-client. If credentials are absent, it still functions as a monitor.
  • Structured /status API — The service exposes runtime state through an HTTP endpoint, which makes it easy to scrape, alert on, or forward into a dashboard. That is the right shape for pairing this bot with OpenTrace if you want request-level observability.
  • Cooldown protection — Order cooldowns reduce duplicate execution when the same arbitrage condition persists across multiple polling cycles. That is important when market quotes flicker around the entry threshold.
  • Small, modular codebase — The repo splits config, market fetchers, strategy evaluation, and order placement into separate services. That makes it easier to reason about failures, test one component at a time, and swap integrations without rewriting the whole bot.

Polymarket-Kalshi Arbitrage Bot vs Alternatives

ToolBest ForKey DifferentiatorPricing
Polymarket-Kalshi Arbitrage BotKalshi/Polymarket spread monitoringPurpose-built for short-duration prediction market mispricing and Polymarket executionOpen-Source
HummingbotCrypto market making and arbitrageBroad exchange connector ecosystem for CEX strategiesOpen-Source
FreqtradeCrypto strategy research and executionStrong backtesting and hyperopt workflow for spot/futuresOpen-Source
Hand-rolled Node.js scriptTotal control over a custom workflowYou own every parser, retry path, and auth edge caseFree / N/A

Pick Hummingbot if you care about exchange breadth more than prediction-market specificity. Pick Freqtrade if your main problem is research, backtesting, and parameter tuning on crypto markets rather than Kalshi/Polymarket gaps.

Pick a hand-rolled script only if your integration surface is tiny and you are willing to own every operational detail. For production monitoring, the bot pairs well with DataHaven for durable event storage and MachineAuth for tighter credential handling around wallet-based execution.

How Polymarket-Kalshi Arbitrage Bot Works

The architecture is intentionally simple: a polling loop collects prices, a decision engine evaluates the spread, and an execution layer places orders when the decision is buy_polymarket. The core abstraction is a structured arbitrage signal with fields like action, reason, kalshiYesCents, polymarketUpCents, and spreadCents, which makes the system easy to inspect from logs or a /status response.

The design philosophy is explicit rules over inference. Instead of guessing fair value, the bot waits for a configured start delay, checks whether Kalshi sits in a target band, and only acts when the Polymarket quote is materially cheaper. That means the behavior is predictable, but it also means the edge depends on market liquidity, latency, and whether the spread survives long enough for execution.

npm install
cp .env.example .env
npm run build
npm start
curl http://localhost:3000/status

After startup, the service begins polling automatically and serves its control API on the configured port, defaulting to 3000. If trading is enabled, you still need to provide the market identifiers, wallet settings, and execution thresholds in .env; without that configuration, the bot acts as a monitor only.

Pros and Cons of Polymarket-Kalshi Arbitrage Bot

Pros:

  • Explicit decision rules make the trade trigger easy to reason about and easy to audit after the fact.
  • Dual-venue monitoring catches gaps between Kalshi and Polymarket instead of treating either book as ground truth.
  • Optional trading mode lets you run the bot as a monitor first and enable execution only when you are ready.
  • Lightweight runtime fits a VPS, container, or small cloud instance without a heavy service mesh.
  • Structured runtime status is useful for alerting, dashboards, and post-trade debugging.
  • Cooldown logic reduces duplicate order spam when the spread persists across several polls.

Cons:

  • No profit guarantee; short-duration prediction markets can move faster than your polling interval or fill quality.
  • One-sided execution means the current strategy buys Polymarket rather than managing a full two-legged hedge.
  • Manual credential setup is required for live execution, which adds operational risk and wallet management overhead.
  • No built-in backtester is exposed in the repo text, so strategy validation appears to be live-first.
  • Short-market focus limits usefulness if you trade longer-duration contracts or need more complex entry logic.

Getting Started with Polymarket-Kalshi Arbitrage Bot

npm install
cp .env.example .env
npm run dev

Then fill in the environment file with your polling interval, market pair identifiers, and any wallet or execution settings needed for live orders. The bot starts its monitor loop automatically, so the next step is to watch the status endpoint and confirm the spread rules fire only when the target bands are satisfied.

If you plan to run live, start with monitoring only and confirm the Kalshi and Polymarket feeds line up on your chosen market. Once the /status output looks sane, enable execution and keep the cooldown window conservative until you know your fill behavior.

Verdict

Polymarket-Kalshi Arbitrage Bot is the strongest option for short-duration prediction-market spread monitoring when you want a single TypeScript service that can both watch and act. Its biggest strength is the clean, rule-based pipeline from Kalshi and Polymarket pricing into optional execution, and its main caveat is live trading risk. Use it if you want a focused arbitrage monitor, not a full trading suite.

Frequently Asked Questions

Looking for alternatives?

Compare Polymarket-Kalshi Arbitrage Bot with other Prediction Market Trading Bots tools.

See Alternatives →

Related Tools