{"id":36933600,"url":"https://github.com/vladmeer/polymarket-arbitrage-bot","last_synced_at":"2026-01-24T17:32:14.056Z","repository":{"id":251212643,"uuid":"834702488","full_name":"vladmeer/polymarket-arbitrage-bot","owner":"vladmeer","description":"Polymarket Arbitrage Bot. Polymarket trading bot. Polymarket Arbitrage Bot. Polymarket trading bot. Polymarket Arbitrage Bot. Polymarket trading bot. Polymarket Arbitrage Bot. Polymarket trading bot. Polymarket Arbitrage Bot. Polymarket trading bot. ","archived":false,"fork":false,"pushed_at":"2026-01-12T08:30:48.000Z","size":5467,"stargazers_count":324,"open_issues_count":0,"forks_count":168,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-01-12T17:56:43.279Z","etag":null,"topics":["arb-bot","arbitrage","arbitragebot","bot","polymarket","polymarket-arbitr","polymarket-arbitrage","polymarket-arbitrage-bot","polymarket-bot","polymarket-trading","polymarket-trading-bot"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vladmeer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-07-28T05:15:48.000Z","updated_at":"2026-01-12T16:17:07.000Z","dependencies_parsed_at":"2026-01-12T18:02:41.578Z","dependency_job_id":null,"html_url":"https://github.com/vladmeer/polymarket-arbitrage-bot","commit_stats":null,"previous_names":["bambi-bf/pumpfun-bundler","vladmeer/pumpfun-bundler","vladmeer/fourmeme-sniper","vladmeer/polymarket-arbitrage-bot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vladmeer/polymarket-arbitrage-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladmeer%2Fpolymarket-arbitrage-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladmeer%2Fpolymarket-arbitrage-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladmeer%2Fpolymarket-arbitrage-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladmeer%2Fpolymarket-arbitrage-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vladmeer","download_url":"https://codeload.github.com/vladmeer/polymarket-arbitrage-bot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vladmeer%2Fpolymarket-arbitrage-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28598874,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T02:08:49.799Z","status":"ssl_error","status_checked_at":"2026-01-20T02:08:44.148Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arb-bot","arbitrage","arbitragebot","bot","polymarket","polymarket-arbitr","polymarket-arbitrage","polymarket-arbitrage-bot","polymarket-bot","polymarket-trading","polymarket-trading-bot"],"created_at":"2026-01-13T09:00:28.190Z","updated_at":"2026-01-20T08:01:05.775Z","avatar_url":"https://github.com/vladmeer.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# Polymarket Arbitrage Bot\n\nProduction-ready Python trading bot for Polymarket with gasless transactions and real-time WebSocket orderbook streaming.\n\n## Features\n\n- **Gasless Trading** - Builder Program integration for zero gas fees\n- **Real-time WebSocket** - Live orderbook updates and market data\n- **15-Minute Markets** - Built-in support for BTC/ETH/SOL/XRP markets\n- **Flash Crash Strategy** - Pre-built volatility trading strategy\n- **Secure Storage** - PBKDF2 + Fernet encrypted private key storage\n- **Simple API** - Clean, intuitive Python interface\n\n## Quick Start\n\n### Installation\n\n```bash\ngit clone https://github.com/vladmeer/polymarket-arbitrage-bot.git\ncd polymarket-arbitrage-bot\npip install -r requirements.txt\n```\n\n### Configuration\n\nSet environment variables:\n\n```bash\nexport POLY_PRIVATE_KEY=your_private_key\nexport POLY_PROXY_WALLET=0xYourPolymarketProxyWallet\n```\n\n\u003e **PROXY WALLET**: Find at [polymarket.com/settings](https://polymarket.com/settings)\n\n### Quick Start - Orderbook Viewer\n\nView real-time orderbook data (read-only, no trading):\n\n```bash\n# View ETH market orderbook\npython apps/orderbook_viewer.py --coin ETH\n\n```\n\u003cimg width=\"690\" height=\"476\" alt=\"image (1)\" src=\"https://github.com/user-attachments/assets/83621505-41e7-4b5a-90fd-3c84d1610291\" /\u003e\n\n**Note:** Orderbook viewer doesn't require credentials - it's a read-only monitoring tool.\n\n### Quick Start - Flash Crash Strategy\n\nRun the automated trading strategy:\n\n```bash\n# Run with default settings (ETH, $5 size, 30% drop threshold)\npython apps/flash_crash_runner.py --coin ETH\n\n```\n\u003cimg width=\"693\" height=\"401\" alt=\"image (2)\" src=\"https://github.com/user-attachments/assets/d5ccffc8-20c5-4cd1-9c3b-679099b22899\" /\u003e\n\n**Note:** Flash crash strategy requires `POLY_PRIVATE_KEY` and `POLY_PROXY_WALLET` environment variables.\n\n## Trading Strategies\n\n### Flash Crash Strategy\n\nMonitors 15-minute markets for sudden probability drops and executes trades automatically.\n\n```bash\n# Default settings\npython apps/flash_crash_runner.py --coin BTC\n\n```\n\n**Parameters:**\n- `--coin` - BTC, ETH, SOL, XRP (default: ETH)\n- `--drop` - Drop threshold (default: 0.30)\n- `--size` - Trade size in USDC (default: 5.0)\n- `--lookback` - Detection window in seconds (default: 10)\n- `--take-profit` - Take profit in dollars (default: 0.10)\n- `--stop-loss` - Stop loss in dollars (default: 0.05)\n\n### Orderbook Viewer\n\nReal-time orderbook visualization:\n\n```bash\npython apps/orderbook_viewer.py --coin BTC\n```\n\n## Usage Examples\n\n### Basic Usage\n\n```python\nfrom src import create_bot_from_env\nimport asyncio\n\nasync def main():\n    bot = create_bot_from_env()\n    orders = await bot.get_open_orders()\n    print(f\"Open orders: {len(orders)}\")\n\nasyncio.run(main())\n```\n\n### Place Order\n\n```python\nfrom src import TradingBot, Config\n\nbot = TradingBot(config=Config(safe_address=\"0x...\"), private_key=\"0x...\")\nresult = await bot.place_order(token_id=\"...\", price=0.65, size=10.0, side=\"BUY\")\n```\n\n### WebSocket Streaming\n\n```python\nfrom src.websocket_client import MarketWebSocket\n\nws = MarketWebSocket()\nws.on_book = lambda s: print(f\"Price: {s.mid_price:.4f}\")\nawait ws.subscribe([\"token_id\"])\nawait ws.run()\n```\n\n## Configuration\n\n### Environment Variables\n\n| Variable | Required | Description |\n|----------|----------|-------------|\n| `POLY_PRIVATE_KEY` | Yes | Wallet private key |\n| `POLY_PROXY_WALLET` | Yes | Polymarket Proxy wallet address |\n| `POLY_BUILDER_API_KEY` | Optional | Builder Program API key (gasless) |\n| `POLY_BUILDER_API_SECRET` | Optional | Builder Program API secret |\n| `POLY_BUILDER_API_PASSPHRASE` | Optional | Builder Program passphrase |\n\n## Gasless Trading\n\nEnable gasless trading via Builder Program:\n\n1. Apply at [polymarket.com/settings?tab=builder](https://polymarket.com/settings?tab=builder)\n2. Set environment variables: `POLY_BUILDER_API_KEY`, `POLY_BUILDER_API_SECRET`, `POLY_BUILDER_API_PASSPHRASE`\n\nThe bot automatically uses gasless mode when credentials are present.\n\n## Security\n\nPrivate keys are encrypted using PBKDF2 (480,000 iterations) + Fernet symmetric encryption. Best practices:\n\n- Never commit `.env` files\n- Use a dedicated trading wallet\n- Keep encrypted key files secure (permissions: 0600)\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## Trading tool\n\nI've also developed a trading bot for Polymarket built with **Rust**.\n\n\u003cimg width=\"1917\" height=\"942\" alt=\"image (21)\" src=\"https://github.com/user-attachments/assets/08a5c962-7f8b-4097-98b6-7a457daa37c9\" /\u003e\nhttps://www.youtube.com/watch?v=4f6jHT4-DQs\n\n## Recommend VPS\n\nVps: [@TradingVps](https://app.tradingvps.io/aff.php?aff=57)\n\u003cimg width=\"890\" height=\"595\" alt=\"534038982-fb311b59-05a6-477a-a8f0-5e8291acf1eb\" src=\"https://github.com/user-attachments/assets/72966dac-3faa-4e93-941e-a34026d59822\" /\u003e\n\n## Version 2 - Dutch Book Arbitrage Tool\n\nI built **Polymarket Dutch Book Arbitrage Bot** - An automated trading system that detects guaranteed-profit opportunities in Polymarket's binary markets. When UP + DOWN token prices sum to less than 1.0, the bot simultaneously buys both, locking in a risk-free profit. Real-time WebSocket monitoring with 5-40ms detection latency.\n\u003cimg width=\"932\" height=\"389\" alt=\"image (3)\" src=\"https://github.com/user-attachments/assets/c2858820-d61c-4568-8e9f-6784ffbcc7df\" /\u003e\n\u003cimg width=\"1083\" height=\"647\" alt=\"image (4)\" src=\"https://github.com/user-attachments/assets/a1eb3b45-9d3a-4715-b815-a337cc62ad50\" /\u003e\n\u003cimg width=\"1274\" height=\"600\" alt=\"image (3)\" src=\"https://github.com/user-attachments/assets/dd54e771-8df7-4c59-83cd-752732a0c15d\" /\u003e\n\nIf you need this tool, contact me.\n\n**Disclaimer:** This software is for educational purposes only. Trading involves risk of loss. The developers are not responsible for any financial losses incurred while using this bot.\n\n**Support:** For questions or issues, contact via Telegram: [@Vladmeer](https://t.me/vladmeer67) | Twitter: [@Vladmeer](https://x.com/vladmeer67)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvladmeer%2Fpolymarket-arbitrage-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvladmeer%2Fpolymarket-arbitrage-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvladmeer%2Fpolymarket-arbitrage-bot/lists"}