Languages: English · 中文 · Русский
Automated Polymarket copy trading bot that mirrors active traders in real time
Predictions & Perps • Multi-wallet • Web dashboard • Live tested • Real on-chain execution
Need help or an updated build?
📱 Telegram: t.me/dexoryn | 🎮 Discord:dexoryn_
These sessions were recorded while @gabagool22 was actively trading. They show the bot executing real copy trades on-chain-not a simulation.
Wallet (historical target): 0x6031b6eed1c97e853c6e0f03ad3ce3529351f96d
Note: Gabagool22 is no longer a reliable copy target. The videos remain proof of live production use-see Story 3 for how we switched to active leaders.
1.Dexoryn.Labs.Crypto.casino.Trading.bot.development.mp4
- +$80 profit in ~15 minutes
- Bot ran unattended during this session
- Real on-chain execution, not simulation
2.Dexoryn.Labs.Crypto.casino.+.Trading.bot.development.2.mp4
- Additional +$230 profit in the next ~15 minutes
- Same bot, same logic, separate run
- Fully automated copy trading
After updating the bot, I ran it to test the new logic and left it running while I went out to play billiards with friends.
About one hour later, when I returned:
- ✅ The bot was running normally
- ✅ It was copy trading accurately
- ✅ Trades matched the target trader's transactions
- ✅ The bot had already generated profit
This was a fully unattended live run, not a simulation or backtest.
The two videos above are from separate live sessions on different days. Same codebase, same monitoring and execution pipeline-no manual clicking through Polymarket. That repeatability is what we optimize for: stable automation, not a one-off lucky trade.
Gabagool22 eventually slowed down and stopped being a practical copy target-fewer trades, different behavior, or simply going inactive. A lot of copy traders hit the same wall: the wallet that worked last month goes quiet, and their bot looks "broken" when the real issue is an empty signal, not broken software.
What we did:
- Kept the same bot running-no rewrite, no new product
- Added new active wallets as targets in the dashboard (saved to
targets.yaml) - Confirmed the full pipeline still works: trade detection → sizing → order posting → logging
What we saw:
- ✅ Process stayed up and healthy
- ✅ New target trades were detected and mirrored correctly
- ✅ Activity history and
state.jsonupdated as expected - ✅ Failures were isolated to market/order edge cases, not "bot died when Gabagool22 left"
After switching targets, we copied securebet and captured this side-by-side:
This is what ideal copy trading looks like. Your bot wallet (left) and the target trader (right) show the same PnL chart shape for the day-the same flat period, dip, and recovery spike at the end. Dollar amounts differ because of your sizing settings and balance, but the curve tracks the leader, which means trades are being detected and mirrored in sync-not lagging behind or fighting the strategy.
Same session, same markets in the activity/history tabs (e.g. the temperature markets visible in the screenshot). That alignment is the proof traders care about: follow the wallet, get the same equity curve pattern.
Takeaway for traders: This bot is built to follow whoever you configure, not one celebrity wallet. When a trader stops working for you, change the target-not the bot. Past Gabagool22 results do not guarantee future results on any target.
The videos and stories above are predictions runs. This build adds a full platform on top of that core pipeline:
- Multi-wallet copy - several leaders, each with its own sizing and cap
- Web dashboard at
http://127.0.0.1:8787- targets, activity, positions, settings - Predictions + Perps - one active venue at a time; switch from the dashboard
- WebSocket detection, share batching, optional exit mirroring (
copy_closes), Telegram alerts - Dry-run mode and persistent state (
state.json,history.db)
| Feature | This Bot | Typical alternatives |
|---|---|---|
| Live execution proof | ✅ Videos + stories above | ❌ Claims only |
| Multi-wallet + dashboard | ✅ | ❌ Single address / CLI |
| Perps + exit mirroring | ✅ | ❌ Predictions / entry only |
| Swap target when leader goes quiet | ✅ In UI | |
| WebSocket + dry-run | ✅ |
Good fit: passive copy traders on Python 3.10+ who will monitor Activity. Not a fit: guaranteed profits, simultaneous predictions + perps, or a public dashboard without web.token.
Jump to: Quick Start · Dashboard · Configuration · FAQ
- Python 3.10+
- Polygon wallet - USDC for predictions, POL/MATIC for gas (
mode: real) - Polymarket CLOB API credentials - for live prediction-market orders
- Funded Perps account - only when copying Perps in
realmode - Node.js 18+ - only if you rebuild the dashboard UI yourself
git clone https://github.com/dexorynlabs/polymarket-trading-bot-python.git
cd polymarket-trading-bot-python
pip install -r requirements.txt
cp config.yaml.example config.yaml
# Edit config.yaml: mode, web settings, polymarket secrets (real mode)
python -m app.main- Keep
mode: dry_runinconfig.yaml - Open http://127.0.0.1:8787 → Targets → add wallet, venue, sizing → Start
- Confirm fills in Activity, then set
mode: real, restart, and Start with small size
Build the UI from source (optional): cd ui && npm install && npm run build · see ui/README.md
Help: @dexoryn on Telegram.
Run the bot from the dashboard after the one-time config.yaml setup. Target edits save to targets.yaml; tuning saves to settings.yaml. Legacy single target_wallet configs auto-migrate on first launch.
| Page | What you do there |
|---|---|
| Overview | Copy status, active venue, latency snapshot |
| Targets | Add, edit, enable, or pause leader wallets |
| Activity | Live feed of detected fills and copy results |
| Positions | Open exposure and remaining headroom |
| Settings | Sizing, slippage, notifications |
Perps: set target venue: perps, fund on polymarket.com. Portfolio changes are polled from the leader's public profile; orders are IOC limits at mark ± slippage.
One venue at a time - predictions or perps, not both. Keep
web.host: 127.0.0.1unless you setweb.token.
| Layer | File | Use for |
|---|---|---|
| Bootstrap | config.yaml |
mode, API secrets, web/Telegram, global defaults |
| Runtime | targets.yaml |
Leader wallets (managed in Targets) |
| Runtime | settings.yaml |
Trading tuning (managed in Settings) |
Dashboard values override matching keys in config.yaml.
| Setting | Description | Example |
|---|---|---|
mode |
dry_run simulates; real posts orders |
dry_run |
copy.venue |
Initial venue when copying starts | predictions |
web.enabled |
Serve the dashboard | true |
web.host / web.port |
Bind address | 127.0.0.1 / 8787 |
web.token |
Optional dashboard auth | "" |
risk.max_open_usd_total |
Optional cap across prediction targets | null |
execution.order_type |
taker (FAK) or maker (GTC) |
taker |
slippage.entry_bps_max |
Max slippage on BUY copies (bps) | 1000 |
For mode: real, fill polymarket: (private_key, wallet_address, api_key, api_secret, passphrase). Per-target fields (wallet, venue, enabled, copy_closes, sizing.*) are set in the dashboard. Full reference: config.yaml.example.
mode: real uses real funds. Use a dedicated wallet with limited balance, set conservative per-target caps, check logs/copybot.log, never commit secrets, and remember past performance does not guarantee future results.
Do I still need config.yaml if I use the dashboard?
Yes - for mode, API secrets, and web/Telegram. Targets and day-to-day tuning live in the dashboard.
Where are logs and state stored?
logs/copybot.log, history.db, state.json, and settings.yaml (gitignored except the example config).
Is this open source?
Yes. A maintained premium build with extra support is also available via Telegram.
Dexoryn Labs - Polymarket copy-trading automation
- Telegram: @dexoryn (fastest)
- Discord:
dexoryn_ - Twitter: @dexoryn
- GitHub: @dexorynLabs
- WeChat: scan to add DexorynWe
See CONTRIBUTING.md. Quick start: fork → branch → pytest → PR.
Community: Code of Conduct · Security · MIT License
Trading on Polymarket involves substantial risk of loss. Dexoryn is not responsible for losses from using this software. You are solely responsible for wallet security, target selection, and capital at risk.
Only trade with funds you can afford to lose.
Questions: @dexoryn · ⭐ star the repo if it helps.


