TypeScript bot for Polymarket 5-minute BTC Up/Down markets using the new-member strategy (time + price bands). Uses live Polymarket prices for entry/exit. Logs to console and logs.txt. No wallet or API keys required (read-only price/market APIs).
Example results from running the bot with different sizes (your own strategy and config):
| Starting balance | Per-trade size | Profit (example run) |
|---|---|---|
| $100 | $10 | ~$40 |
| $500 | $50 | ~$300 |
| $1,000 | $100 | ~$500 |
Results depend on market conditions, strategy, and config; the bot often logs “Entry window passed, no position” when it doesn’t find a trade in that 5m window.
| Balance $1517 (e.g. $1k + profit) | Balance $817 (example run) |
|---|---|
![]() |
![]() |
- Entry: time 25–71s, price 0.14–0.26
- Exit: time 47–267s, min 3s hold; defer sell if bid < 85% entry; force exit after 5 retries or by t=265s
- 1% fee and 0.5% slippage applied
- Output: console +
logs.txt. Press Ctrl+C to stop and see final balance, P/L, trades, duration. - No wallet or API keys needed (read-only price/market APIs).
npm install- Copy
.env.exampleto.envand set:POLYMARKET_PRIVATE_KEY— your wallet private key for signing tradesPROXY_WALLET_ADDRESS(optional) — only if you use a proxy wallet
Live trading (recommended for development):
npm startThis runs the bot with tsx so you see logs in real time. You’ll see lines like:
Up=X.XX Down=Y.YY— current market probabilitiesBalance: $X.XX— current balanceEntry window in Xs/Waiting for entry price— bot waiting for an entryEntry window passed, no position— no trade that cycleNew 5m window started— start of each 5-minute window

