What Is Polymarket-Kalshi Arbitrage Bot?
Polymarket-Kalshi Arbitrage Bot is a TypeScript trading bot built by Longbridges for developers who want to monitor short-duration prediction-market spreads between Kalshi and Polymarket without writing the polling and execution layer from scratch. Polymarket-Kalshi Arbitrage Bot is one of the best Trading Bot tools for Dev because it focuses on 15-minute markets, compares Kalshi YES against Polymarket UP, and can fire automated Polymarket buys when a configurable spread rule is satisfied. The default loop is tuned for 5-second polling and exposes live runtime status through an Express API.
The design is intentionally narrow. It is not a generic market maker, and it is not trying to hide the trading logic behind a black box. Instead, it gives you a small service with explicit thresholds, start-delay gating, and order cooldowns so the behavior stays inspectable under live market conditions.
Quick Overview
| Attribute | Details |
|---|---|
| Type | Trading Bot |
| Best For | Dev |
| Language/Stack | Node.js 18+, TypeScript, Express, Axios, @polymarket/clob-client, ethers.js, dotenv |
| License | N/A |
| GitHub Stars | N/A as of Feb 2026 |
| Pricing | Open-Source |
| Last Release | N/A |
Who Should Use Polymarket-Kalshi Arbitrage Bot?
- Quant-minded developers who want a small, readable service for testing cross-venue pricing rules on short-duration markets.
- Indie hackers building prediction-market automation who need a fast path from idea to live polling without assembling every API client themselves.
- Automation engineers running on a VPS or container who need an HTTP service, env-based config, and explicit execution guards.
- Risk-aware operators who care about start windows, cooldowns, and structured status output instead of blind order spam.
Not ideal for:
- Teams that need full venue-agnostic execution on both Kalshi and Polymarket, because this repo only places orders on Polymarket.
- Traders expecting sub-second or colocated execution, because the architecture is HTTP polling, not low-latency market infrastructure.
- Users who cannot manage wallet custody, API keys, and market risk, because the bot does not remove execution or liquidity risk.
Key Features of Polymarket-Kalshi Arbitrage Bot
- Dual-venue polling — The bot pulls Kalshi YES/NO pricing and market status from the Kalshi trade API, then pulls Polymarket UP/DOWN token pricing from the Polymarket CLOB. That gives you a single decision loop over two independent data sources.
- Spread-based entry logic — The default rule checks whether Kalshi YES is between 93 and 96 cents and whether Polymarket UP is at least 10 cents cheaper. This makes the signal deterministic instead of heuristic.
- Late-resolution entries — If Kalshi is settled or closed while Polymarket still has liquidity, the bot can emit a late-entry signal. That matters for short-duration markets where one venue may resolve faster than the other.
- Authenticated Polymarket execution — When trading credentials are configured, the service uses
@polymarket/clob-clientplusethersto initialize an order client and place buy orders on Polymarket. - Cooldown protection — The bot applies a buy cooldown so repeated polling cycles do not trigger duplicate orders during the same signal window. That is important when the same spread persists for multiple intervals.
- Start-delay gating — The engine waits until a configurable delay after market start before evaluating entries. This avoids early noise, stale prices, and bad fills right after the market opens.
- Express status surface — The service runs as a lightweight Express app and exposes
/statusfor structured monitoring. That makes it easy to inspect the current market state from a browser, a reverse proxy, or another internal service.
Polymarket-Kalshi Arbitrage Bot vs Alternatives
| Tool | Best For | Key Differentiator | Pricing |
|---|---|---|---|
| Polymarket-Kalshi Arbitrage Bot | Cross-venue prediction-market spread trading | Rule-based Kalshi vs Polymarket monitoring plus optional execution | Open-Source |
| OpenTrace | Observing runtime decisions and traces | Better for instrumentation than trade execution | Open-Source |
| DataHaven | Storing market snapshots and historical signals | Durable data retention instead of live order placement | Open-Source |
| djevops | Deploying and operating the service | Release and environment automation around the bot | Open-Source |
Pick Polymarket-Kalshi Arbitrage Bot when you need direct price-gap execution rather than a logging or deployment layer. Pick OpenTrace when your real problem is understanding why a signal fired, not placing the trade itself. Pick DataHaven when you want to archive price snapshots and decisions for later analysis, and pick djevops when the bottleneck is shipping the service to a VPS or container fleet.
If you are building the surrounding ops stack, also browse all DevOps Automation tools. This repo becomes more useful when the deployment, tracing, and persistence layers are handled by separate tools instead of being mixed into the execution loop.
How Polymarket-Kalshi Arbitrage Bot Works
The architecture is deliberately small: one polling loop, one decision engine, one optional execution path, and one HTTP status endpoint. The core data model is cents-based, so the bot compares Kalshi YES cents, Polymarket UP cents, spread cents, and market status without converting through floating-point price math. That keeps thresholds easy to reason about and reduces ambiguity when you are debugging live decisions.
The protocol layer is plain HTTP against Kalshi trade API v2 and the Polymarket CLOB endpoints. The runtime choice is Node.js 18 with TypeScript, which makes the service easy to run in containers, easy to validate with .env, and easy to wrap behind a reverse proxy or health check. There is no queue, no WebSocket dependency, and no hidden scheduler, so the operational model stays predictable.
The decision engine gates all trading on start time, configured delay, and spread thresholds before it reaches the order client. When a valid setup appears, the Polymarket execution module can create a buy order with the configured wallet, chain ID, and trade size. That means the bot is useful even without trading keys, because monitoring and signal generation still work when execution is disabled.
npm install
cp .env.example .env
npm run dev
curl http://localhost:3000/status
The first command installs the TypeScript dependencies, the second creates your local runtime configuration, and the third starts the Express service plus the polling loop. The final command checks that the status endpoint is live and returning the current signal state. Expect the bot to stay idle until the market start window and spread rules both line up.
Pros and Cons of Polymarket-Kalshi Arbitrage Bot
Pros:
- Simple decision logic — The bot uses explicit cent-based thresholds, so you can audit why a trade fired without reverse-engineering a model.
- Dual-source market view — It compares Kalshi and Polymarket directly, which is the right abstraction for cross-venue spread trading.
- Optional execution — You can run it as a monitor-only service or enable Polymarket order placement when credentials are present.
- Operationally light — Express, Axios, dotenv, and a handful of service modules keep the runtime footprint small.
- Good fit for short-duration markets — The start-delay and cooldown settings are tailored for fast-moving 15-minute contracts.
Cons:
- Polymarket-only execution — The bot monitors both venues but only places orders on Polymarket, so it is not a full two-sided arbitrage engine.
- Polling latency — Five-second intervals are fine for short-duration monitoring, but they are not enough for aggressive low-latency execution.
- Wallet and API risk — You still need to secure private keys, proxy wallet addresses, and market credentials.
- Strategy scope is narrow — It is built for one spread model, not a general-purpose research framework.
- Market liquidity matters — If either venue is thin, the signal may be technically valid but practically unfillable.
Getting Started with Polymarket-Kalshi Arbitrage Bot
git clone https://github.com/Longbridges/polymarket-kalshi-arbitrage-bot.git
cd polymarket-kalshi-arbitrage-bot
npm install
cp .env.example .env
npm run dev
After the first run, configure MARKET_START_TIME, KALSHI_TICKER, the Polymarket token IDs, and your wallet variables in .env. If trading keys are missing, Polymarket-Kalshi Arbitrage Bot still polls and serves status, but it will not place orders. Set POLL_INTERVAL_MS, MIN_SPREAD_CENTS, and the Kalshi price band to match the market you are tracking.
Verdict
Polymarket-Kalshi Arbitrage Bot is the strongest option for developers building short-duration prediction-market spread traders when they want explicit rules and optional Polymarket execution. Its main strength is transparent, code-first control over the decision path. The caveat is that it depends on liquid markets and disciplined wallet management. Use it if you want inspectable automation, not a black box.



