GitHub - sterlingcrispin/nothing-ever-happens: Polymarket bot that buys "No" on all non-sports markets. For entertainment only, mostly a meme. · GitHub

Source: original

Nothing Ever Happens Polymarket Bot

Focused async Python bot for Polymarket that buys No on standalone non-sports yes/no markets.

FOR ENTERTAINMENT ONLY. PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. USE AT YOUR OWN RISK. THE AUTHORS ARE NOT LIABLE FOR ANY CLAIMS, LOSSES, OR DAMAGES.

Dashboard screenshot

Runtime

The bot scans standalone markets, looks for NO entries below a configured price cap, tracks open positions, exposes a dashboard, and persists live recovery state when order transmission is enabled.

The runtime is nothing_happens.

Safety Model

Real order transmission requires all three environment variables:

If any of those are missing, the bot uses PaperExchangeClient.

Additional live-mode requirements:

Setup

pip install -r requirements.txt cp config.example.json config.json cp .env.example .env

config.json is intentionally local and ignored by git.

Configuration

The runtime reads:

The runtime config lives under strategies.nothing_happens. See config.example.json and .env.example.

You can point the runtime at a different config file with CONFIG_PATH=/path/to/config.json.

Running Locally

python -m bot.main

The dashboard binds $PORT or DASHBOARD_PORT when one is set.

Heroku Workflow

The shell helpers use either an explicit app name argument or HEROKU_APP_NAME.

export HEROKU_APP_NAME= ./alive.sh ./logs.sh ./live_enabled.sh ./live_disabled.sh ./kill.sh

Generic deployment flow:

heroku config:set BOT_MODE=live DRY_RUN=false LIVE_TRADING_ENABLED=true -a "$HEROKU_APP_NAME" heroku config:set PRIVATE_KEY= FUNDER_ADDRESS= POLYGON_RPC_URL= DATABASE_URL= -a "$HEROKU_APP_NAME" git push heroku :main heroku ps:scale web=1 worker=0 -a "$HEROKU_APP_NAME"

Only run the web dyno. The worker entry exists only to fail fast if it is started accidentally.

Tests

python -m pytest -q

Included Scripts

Script | Purpose

scripts/db_stats.py | Inspect live database table counts and recent activity scripts/export_db.py | Export live tables from DATABASE_URL or a Heroku app scripts/wallet_history.py | Pull positions, trades, and balances for the configured wallet scripts/parse_logs.py | Convert Heroku JSON logs into readable terminal or HTML output

Repository Hygiene

Local config, ledgers, exports, reports, and deployment artifacts are ignored by default.