Install
openclaw skills install polymarket-nothing-ever-happensBuy NO on standalone non-sports yes/no Polymarket markets priced below a configurable cap. Based on the "nothing-ever-happens" thesis — binary markets often resolve NO, and cheap NO shares offer asymmetric value. Scans for candidates via Gamma API, filters out sports and grouped markets, checks fees, and executes.
openclaw skills install polymarket-nothing-ever-happensBuy NO on standalone yes/no Polymarket markets priced below a configurable cap.
This is a template. The default logic buys NO on any non-sports standalone market where NO costs ≤5¢. Remix it with custom filters (minimum volume thresholds, specific categories, date ranges) or pair it with a signal to skip markets where YES might actually happen. The skill handles plumbing (discovery, import, fee checks, execution). You define which markets to trade.
Based on: sterlingcrispin/nothing-ever-happens
On most standalone binary prediction markets, the event resolves NO — nothing dramatic happens. Markets systematically overprice dramatic YES outcomes. When NO is trading at 3¢–5¢, you're getting 20–33x payout if you're right, and the base rate of "nothing happens" is often much higher than the implied 3–5%.
max_bet_usdWhen user asks to install or configure this skill:
Install the Simmer SDK
pip install simmer-sdk
Ask for Simmer API key
SIMMER_API_KEYAsk for wallet private key (required for live trading)
WALLET_PRIVATE_KEY# Scan for candidates (no trades)
python nothing_ever_happens.py --scan
# Dry run — show what would trade
python nothing_ever_happens.py
# Execute real trades
python nothing_ever_happens.py --live
# Quiet mode (for cron — only prints on trades/errors)
python nothing_ever_happens.py --live --quiet
# Show config
python nothing_ever_happens.py --config
# Update config
python nothing_ever_happens.py --set price_cap=0.03
| Key | Env Var | Default | Description |
|---|---|---|---|
price_cap | SIMMER_NEH_PRICE_CAP | 0.05 | Max NO price to buy (0.05 = 5¢) |
max_bet_usd | SIMMER_NEH_MAX_BET_USD | 5.0 | USDC per trade |
max_trades_per_run | SIMMER_NEH_MAX_TRADES_PER_RUN | 3 | Max trades per execution |
daily_budget | SIMMER_NEH_DAILY_BUDGET_USD | 15.0 | Daily spend limit |
min_liquidity | SIMMER_NEH_MIN_LIQUIDITY | 500.0 | Min market liquidity (USDC) |
min_volume_24h | SIMMER_NEH_MIN_VOLUME_24H | 100.0 | Min 24h volume (USDC) |
candidate_pages | SIMMER_NEH_CANDIDATE_PAGES | 3 | Gamma API pages to scan |
Update via CLI: python nothing_ever_happens.py --set price_cap=0.03
The skill fetches active Polymarket events via the Gamma API, sorted by 24h volume. It only considers standalone events — events with exactly one market. Grouped events (e.g. "Who wins Iowa?" alongside "Who wins Florida?" in a presidential election group) are excluded because:
["Yes", "No"]For each candidate, the skill:
client.trade(side="no", amount=max_bet_usd)/events — Discover active Polymarket eventsPOST /api/sdk/import — Import market to Simmer (via client.import_market())GET /api/sdk/context/{market_id} — Fee rate and safeguardsPOST /api/sdk/trade — Trade executionGET /api/sdk/positions — Current positions (avoid doubling up)"No candidates below price cap"
→ All standalone non-sports markets have NO > cap. Lower price_cap (e.g. --set price_cap=0.08) or wait — cheap NO opportunities appear sporadically.
"Daily budget exhausted"
→ Hit daily limit. Adjust with --set daily_budget=30.
"Import failed" → The market may have already resolved, or the slug is incorrect. The skill skips and continues.
All candidates have fees → The fee filter is intentional — 10% fee on a 5¢ NO position eliminates most of the edge. By design.
"gamma_api.py not found"
→ Copy gamma_api.py from the polymarket-ai-divergence skill into this skill's directory, or install both skills together.