[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-80288":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":16,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":17,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":40,"readmeContent":41,"aiSummary":42,"trendingCount":15,"starSnapshotCount":15,"syncStatus":43,"lastSyncTime":44,"discoverSource":45},80288,"polymarket-kalshi-arbitrage-bot","Composio-HQ\u002Fpolymarket-kalshi-arbitrage-bot","Composio-HQ","Polymarket Kalshi arbitrage prediction-markets trading-bot TypeScript Node.js CLOB Polygon ethers automated-trading spread-trading DeFi crypto algorithmic-trading market-making Kalshi-API Polymarket-CLOB express axios dotenv","https:\u002F\u002Fgithub.com\u002FComposio-HQ\u002Fpolymarket-kalshi-arbitrage-bot",null,"TypeScript",67,2970,79,0,3,9,10,false,"main",true,[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"algorithmic-trading","arbitrage","automated-trading","clob","crypto-trading","defi","ethers","express","fintech","kalshi","market-making","nodejs","polygon","polymarket","prediction-markets","trading-bot","typescript","2026-06-12 02:04:00","# Polymarket–Kalshi Arbitrage Bot\n\n**Repository:** [https:\u002F\u002Fgithub.com\u002FComposio-HQ\u002Fpolymarket-kalshi-arbitrage-bot](https:\u002F\u002Fgithub.com\u002FComposio-HQ\u002Fpolymarket-kalshi-arbitrage-bot)\n\n15-minute market trading bot that detects price differences between **Polymarket** and **Kalshi** and decides **when to buy on Polymarket** based on configurable rules. \n\n## This is 90% profitable logic, 100% profitable logic version 2 in sale! 🤞\n\n## How it works\n\n- **Real-time detection**: Fetches UP\u002FDOWN (Yes\u002FNo) token prices from both Polymarket (CLOB) and Kalshi (orderbook + market status) on a configurable interval.\n- **Start window**: The bot only evaluates buy signals **after 8 minutes** (configurable) from market start time.\n- **Buy rules**:\n  1. **Spread rule**: When Kalshi’s YES price is in the **93–96¢** range and Polymarket’s UP token is **at least 10¢ cheaper** (or equal), the bot signals **buy on Polymarket**.\n  2. **Late resolution**: If Kalshi has **finished** (closed\u002Fsettled) but Polymarket is **still open** and has liquidity, the bot signals **buy on Polymarket** (arbitrage on timing difference).\n\n\u003Cimg width=\"1452\" height=\"887\" alt=\"polymarket-kalshi-arbitrge\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Ff4d9a074-2b2a-4c0c-a78c-562fb14d6b77\" \u002F>\n\u003Cimg width=\"1073\" height=\"290\" alt=\"image\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F920668cb-5ee2-48ec-b91d-d39420bc3443\" \u002F>\n\n## Stack\n\n- **Express** + **TypeScript**\n- **Axios** for Polymarket and Kalshi HTTP APIs\n- **@polymarket\u002Fclob-client** + **ethers** for placing Polymarket orders (when trading enabled)\n- **dotenv** for configuration\n\n## Setup\n\n```bash\nnpm install\ncp .env.example .env\n# Edit .env: set MARKET_START_TIME, KALSHI_TICKER, POLYMARKET_TOKEN_UP, POLYMARKET_TOKEN_DOWN, POLYMARKET_PRIVATE_KEY, POLYMARKET_PROXY_WALLET_ADDRESS\nnpm run build\nnpm start\n```\n\nFor development with auto-reload:\n\n```bash\nnpm run dev\n```\n\n## Configuration (.env)\n\n| Variable | Description | Example |\n|----------|-------------|---------|\n| `PORT` | Server port | `3000` |\n| `POLL_INTERVAL_MS` | How often to fetch prices (ms) | `5000` |\n| `MARKET_START_TIME` | Market start (ISO 8601); used for “after 8 min” window | `2025-02-19T15:00:00.000Z` |\n| `START_DELAY_MINS` | Minutes after start before evaluating | `8` |\n| `KALSHI_API_BASE` | Kalshi API base URL | `https:\u002F\u002Fapi.elections.kalshi.com\u002Ftrade-api\u002Fv2` |\n| `KALSHI_TICKER` | Kalshi market ticker for this 15-min market | `KXHIGHNY-24JAN01-T60` |\n| `POLYMARKET_CLOB_BASE` | Polymarket CLOB base | `https:\u002F\u002Fclob.polymarket.com` |\n| `POLYMARKET_TOKEN_UP` | Polymarket token ID for UP (Yes) | (from Polymarket market page) |\n| `POLYMARKET_TOKEN_DOWN` | Polymarket token ID for DOWN (No) | (from Polymarket market page) |\n| `KALSHI_MIN_CENTS` | Min Kalshi YES price for spread rule | `93` |\n| `KALSHI_MAX_CENTS` | Max Kalshi YES price for spread rule | `96` |\n| `MIN_SPREAD_CENTS` | Min spread (Kalshi − Polymarket) to signal buy | `10` |\n| `POLYMARKET_PRIVATE_KEY` | EOA private key | `0x...` |\n| `POLYMARKET_PROXY_WALLET_ADDRESS` | Gnosis Safe \u002F proxy wallet address | `0x...` |\n| `POLYMARKET_CHAIN_ID` | CLOB chain (Polygon = 137) | `137` |\n| `POLYMARKET_TRADE_USD` | USD amount per buy order | `10` |\n| `POLYMARKET_BUY_COOLDOWN_SECONDS` | Min seconds between buy orders | `60` |\n\n## API\n\n- **GET \u002Fhealth** – Health check.\n- **GET \u002Fstatus** – Last Polymarket and Kalshi prices, current arbitrage signal, whether trading is enabled, and whether the start window has passed.\n- **POST \u002Fpoll\u002Fstart** – Start the price polling loop (default: starts automatically).\n- **POST \u002Fpoll\u002Fstop** – Stop the polling loop.\n\n## Signal format\n\n- `action: \"buy_polymarket\"` – Buy on Polymarket (spread rule); includes `kalshiYesCents`, `polymarketUpCents`, `spreadCents`.\n- `action: \"buy_polymarket_late\"` – Buy on Polymarket (Kalshi finished, Polymarket still open); includes `kalshiStatus`.\n","该项目是一个用于Polymarket和Kalshi平台之间进行套利交易的自动化机器人。它通过实时检测两个市场上的价格差异，并根据预设规则决定何时在Polymarket上买入。该机器人使用TypeScript编写，基于Node.js运行环境，利用Express框架处理HTTP请求，Axios库与外部API交互，以及Ethers库来执行链上操作。其核心功能包括实时价格抓取、自定义时间窗口内的买卖决策逻辑等。适用于对加密货币预测市场感兴趣并希望实现自动套利策略的用户或开发者。",2,"2026-06-11 04:00:10","CREATED_QUERY"]