Polymarket Arbitrage Bot

11 deliverables · 134h

Internal project

Project Overview

Research and development of a cross-platform arbitrage trading bot for prediction markets. Designed to find and exploit price discrepancies between Polymarket and Kalshi exchanges.

Goal

Build a production-ready automated arbitrage bot with unified architecture, proper risk management, and documented API integrations for both platforms.

Started

March 10, 2026

Days Active

16 days

Client

Internal R&D

Status

Development

Key Highlights

  • Unified single-bot architecture for Polymarket + Kalshi
  • Comprehensive API research and integration docs
  • Scam analysis identifying fraudulent arbitrage schemes

Expertise Delivered

Complexity

Architectural
1
Moderate
5
Routine
4
Complex
1

Work Types

Strategy
6
Docs
3
Bug Fix
1
Feature
1

Project Timeline— Started Mar 10, 2026

Mar 10, 2026
71h7 sessions
12:00 PMStrategyRoutine
Polymarket Arbitrage Bot
-Analyzed second scam post claiming 'latency arbitrage' bot ($800→$5,000)
-Debunked the formula 'P = Σ(ΔOdds × Size) / Latency_gap' as mathematically incoherent
-Explained why real latency arbitrage requires co-located servers and proprietary data feeds
-Noted Polymarket's order book depth cannot sustain 57 trades/hour at meaningful size
-Reinforced legitimacy of our structural mispricing approach vs. fabricated speed-advantage claims
scam-analysislatency-arbitragemarket-microstructuredue-diligence
2h of Business Consultant work
12:00 PMBug FixRoutine
Polymarket Arbitrage Bot
-Troubleshot Polymarket website 'Page Unresponsive' error
-Diagnosed likely cause: high browser tab count + extension conflicts with Web3 injection
-Provided ordered fix checklist: close tabs, hard refresh, incognito mode, disable extensions, try different browser, check status page
-Answered macOS RAM monitoring question (Activity Monitor → Memory tab)
troubleshootingbrowsermacosweb3
1h of Junior Developer work
12:00 PMDocsModerate
Polymarket Arbitrage Bot
-Created 10-step setup walkthrough (SETUP_GUIDE.md) from zero to running bot
-Step 1: Polymarket account creation with login method implications for SIGNATURE_TYPE
-Step 2: USDC funding (3 methods: card/MoonPay, exchange transfer with Polygon network warning, Coinbase direct)
-Step 3: Proxy wallet address retrieval from Polymarket settings
-Step 4: Private key export via Magic.link (reveal.magic.link/polymarket) with security rules
-Step 5: Dependency installation
-Step 6: .env file configuration with all parameters explained
-Step 7: Credential verification test script (standalone Python script to validate setup)
-Step 8: MetaMask USDC allowance setup (for MetaMask users only)
-Step 9: Monitor mode first run with expected output examples
-Step 10: Going live checklist with conservative parameter recommendations
-Included troubleshooting section for common issues
setup-guideonboardingwallet-setuppolymarketusdcprivate-key
10h of Technical Writer work
12:00 PMDocsModerate
Polymarket Arbitrage Bot
-Created comprehensive Claude Project instruction file (POLYMARKET_BOT_INSTRUCTIONS.md)
-Documented full codebase architecture, file structure, and module responsibilities
-Detailed all three trading strategies with edge calculation formulas
-Documented all three Polymarket APIs (Gamma, CLOB, Data) with endpoints, auth requirements, and SDK usage
-Specified configuration system, database schema, safety guards, CLI usage
-Defined code conventions (type hints, dataclasses, logging, monetary formats, rate limiting)
-Listed known limitations and future work items
-Included collaboration guidelines for Claude (how to help, what to preserve)
documentationproject-instructionsapi-referencedeveloper-guide
8h of Technical Writer work
12:00 PMFeatureComplex
Polymarket Arbitrage Bot
-Built complete 11-file Python bot codebase from scratch
-core/config.py: Dataclass-based config loader from .env with WalletConfig, TradingConfig, ScannerConfig, BotConfig
-core/models.py: Data models (Market, Signal, Trade, PortfolioState) with enums for signal types, trade status, order types
-core/scanner.py: MarketScanner with Gamma API market discovery + CLOB API order book enrichment, rate limiting
-core/signals.py: SignalEngine with 3 strategies (cross-outcome arb, spread capture, multi-market arb), fee-adjusted edge calculations
-core/executor.py: TradeExecutor with safety guards, FOK/GTC order placement, portfolio state tracking
-core/database.py: SQLite logger with 4 tables (signals, trades, market_snapshots, daily_stats)
-bot.py: CLI entry point with argparse (--live, --once, --env), graceful shutdown handler, scan loop
-utils/display.py: Pretty console output formatters for signals, trades, portfolio
-.env.example: Complete config template with all parameters documented
-requirements.txt: py-clob-client, requests, python-dotenv
-README.md: Full documentation with architecture diagram, strategy explanations, setup guide, CLI usage
pythontrading-botpolymarketapi-integrationsqliteclifull-stack
40h of Senior Developer work
12:00 PMStrategyModerate
Polymarket Arbitrage Bot
-Researched Polymarket API ecosystem (Gamma API, CLOB API, Data API)
-Designed 3-module bot architecture: Market Scanner → Signal Engine → Trade Executor
-Defined three trading strategies: cross-outcome arbitrage, spread capture, multi-market arbitrage
-Specified safety guard system: max open positions, daily loss limits, trade size caps, edge minimums
-Conducted requirements gathering session (language preference, risk tolerance, strategy interests)
architecturesystem-designapi-researchtrading-strategiesrequirements
8h of Senior Developer work
12:00 PMStrategyRoutine
Polymarket Arbitrage Bot
-Identified and debunked viral X/Twitter scam post claiming $1,400→$238K returns from a Polymarket bot
-Analyzed red flags: fake copy-trade platform link, fabricated wallet address, unrealistic return claims
-Advised against clicking the link or connecting any wallet
-Redirected conversation toward building a legitimate prediction market trading bot
scam-analysisrisk-assessmentdue-diligenceprediction-markets
2h of Business Consultant work
Mar 11, 2026
63h4 sessions
12:00 PMDocsArchitectural
Polymarket Arbitrage Bot
-Conducted thorough research phase: Kalshi API docs, authentication examples, rate limits, fee formulas, order placement, market data structures
-Researched Polymarket fee structure updates for accurate cross-platform fee modeling
-Investigated existing open-source cross-platform arb bot approaches
-Created comprehensive 13-section architecture guide as formatted .docx document
-Section 1: Executive summary of the unified system redesign
-Section 2: Platform comparison table (API structure, auth, data models, SDKs, price formats)
-Section 3: Revised file structure with core/exchanges/ abstraction package, Protocol-based interfaces
-Section 4: Three-tier market matching system (curated JSON mappings, text similarity auto-discovery at 0.80+ threshold, resolution-date validation)
-Section 5: Fee structure formulas for both platforms (Kalshi quadratic: 0.07 × P × (1-P), Polymarket varying by market type) with minimum spread threshold table
-Section 6: Cross-platform arbitrage signal logic with net edge calculation incorporating per-platform fees
-Section 7: Two-leg execution coordination (FOK/IOC orders, less-liquid leg first, orphaned leg tracking)
-Section 8: Extended safety guards (per-exchange position limits, orphaned leg budget)
-Section 9: Database schema migrations (exchange column additions)
-Section 10: Four-phase implementation plan (abstraction refactor → Kalshi intra-platform → market matching + monitor → live cross-platform)
-Section 11: Configuration additions (KalshiConfig dataclass, cross-platform parameters)
-Section 12: Risk matrix (false matches, leg risk, settlement mismatches, capital lock-up, fee changes, regulatory)
-Section 13: Future enhancements (WebSocket-first architecture, AI fair value estimation, additional exchanges, backtesting engine)
architecture-guidecross-platformkalshipolymarketsystem-designfee-modelingmarket-matchingrisk-analysisimplementation-plandocx
48h of Senior Developer work
12:00 PMStrategyModerate
Polymarket Arbitrage Bot
-Designed unified single-bot architecture for cross-platform Polymarket + Kalshi trading
-Recommended single bot over two separate bots: captures intra-platform + cross-platform arb, one database, one portfolio view
-Defined exchange abstraction layer: ExchangeScanner, ExchangeExecutor, FeeCalculator protocols
-Specified price normalization boundary (Kalshi cents → internal 0.00-1.00 at scanner level)
-Outlined cross-platform arbitrage as fourth strategy type
-Identified market matching as hardest unsolved problem (no shared IDs between platforms)
architecturecross-platformkalshipolymarketsystem-design
6h of Senior Developer work
12:00 PMStrategyRoutine
Polymarket Arbitrage Bot
-Researched Kalshi API capabilities: REST API, WebSockets, Python SDK, FIX protocol, demo environment
-Documented authentication differences: RSA-PSS (Kalshi) vs. EIP-712 (Polymarket)
-Documented price format differences: integer cents (Kalshi) vs. 0.00-1.00 decimal (Polymarket)
-Identified available WebSocket channels: orderbook_delta, position updates, trade/fill updates
-Noted Kalshi ping/pong requirement (10-second interval) for connection keepalive
api-researchkalshiwebsocketsauthenticationplatform-comparison
3h of Senior Developer work
12:00 PMStrategyModerate
Polymarket Arbitrage Bot
-Analyzed tradeoffs of running separate bot instances vs. shared single instance
-Identified core self-competition problem: identical bots race for same fills, slower one gets nothing
-Explained why two identical bots is strictly worse than one bot with 2x capital
-Detailed strategies where self-competition is worst (cross-outcome arb, multi-market arb) vs. less harmful (spread capture)
-Outlined parameter diversification approach: vary MIN_EDGE_PCT, MAX_TRADE_SIZE, market liquidity focus, enabled strategies
-Proposed market partitioning by event slug hash to avoid direct competition
-Identified key decision factors: total capital, willingness to partition, shared-wallet accounting comfort
infrastructuremulti-instanceself-competitioncapital-allocationarchitecture
6h of Senior Developer work