Documentation
The full documentation ships inside the package (bilingual EN/ES). This page covers what you need to decide whether it's for you, plus the quickstart.
Requirements
- Python 3.11+ on Windows, Linux or macOS. No Docker required.
- A network location where Polymarket is accessible (see geographic restrictions). Many users run a ~$5/month VPS.
- For dry-run: nothing else. No wallet, no funds, no account.
- For live trading: a dedicated Polymarket wallet with a small USDC balance on Polygon + ~$1–2 of POL for gas.
Quickstart (dry-run, no money)
cd uruguabot
pip install -r requirements.txt
cp .env.example .env # Windows: copy .env.example .env
python uruguabot.py
The bot discovers live 5-minute markets, applies the real entry gates, and simulates fills using slippage distributions measured from real trades. Every 30 seconds it prints a diagnostic "funnel" showing exactly which gate filtered which candidate — you always know why it is or isn't trading.
Optional monitor panel (measures the real accuracy of every signal, including your own manual picks):
python monitor_server.py # then open http://localhost:8770
The default configuration is the validated one
The shipped .env.example is exactly the configuration that was profitable in our live testing ("Hypothesis B"):
- Asymmetric exits: stop-loss at execution price −10¢; winners held to $1.00/$0.00 resolution. Profitable at a 40% win rate because average wins were ~3× average losses.
- BTC only (
ASSETS=btc): BTC outperformed ETH consistently in our measured data. ETH is opt-in. - SELL-consensus entries in the 0.55–0.70 price band — the tested band.
- Volatility guard on (
MAX_VOL_2MIN=0.0018): skips regimes where measured SL slippage exploded (median −2¢, worst decile −24¢). - Risk rails on: daily-loss %, consecutive-loss and unfilled-ratio circuit breakers.
Going live (only after dry-run convinces you)
- Create a dedicated Polymarket wallet. Never use your main wallet. Fund it small.
- Set
WALLET_ADDRESS,PRIVATE_KEYandPOLY_SIG_TYPEin.env(1 = email/proxy wallet, 0 = MetaMask/EOA). - Verify everything first:
python check_wallet.py - Set
DRY_RUN=falseandLIVE_CONFIRM=YES. The bot refuses to start live without both — that's deliberate. - Start at
BET_USD=2and watch the first hours against your Polymarket activity page.
What's included
~15 core Python files: trading engine, CLOB V2 execution layer with ghost-fill protection, multi-timeframe signals, Chainlink oracle feed, optional ML gate with retraining script, calibrated dry-run simulator, risk rails, monitor panel, and ops tooling (check_status.py, check_wallet.py, compare_dry_vs_live.py, diagnose_orphan_shares.py). Plus bilingual READMEs, a full strategy & results document, EULA and risk disclosure.
Support policy
One-time purchase, sold as-is: no support service, no update subscription, no server dependency. The code is deliberately small and heavily commented so you can own and maintain it. That policy is what keeps the price at $99 instead of $99/month.