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
1Moderate
5Routine
4Complex
1Work Types
Strategy
6Docs
3Bug Fix
1Feature
1Project 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