Skip to content

dotdrinker/polymarket-odds-watcher

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Polymarket Odds Watcher

Tracks real-time odds movements across all Polymarket markets. Detects sudden price shifts, logs historical odds data, and alerts when any market moves beyond your configured threshold.

Last updated: March 2026

What is Polymarket Odds Watcher?

Polymarket Odds Watcher monitors the live price feed on Polymarket's CLOB and tracks odds movement for every active market on every Polygon block. It records a rolling odds history for each market, calculates rate-of-change, and alerts when a price shift exceeds your configured magnitude or speed threshold.

Most traders notice price moves after they happen - by the time they open a market, the opportunity has repriced. Odds Watcher surfaces those moves in real time, across all markets simultaneously, so you see the shift as it begins.


Download

Platform Architecture Download
Windows x64 Download the latest release

What It Tracks

For every active Polymarket market, the watcher records:

Field Description
YES best ask Current lowest ask on YES outcome
NO best ask Current lowest ask on NO outcome
Block-over-block delta Price change since last block
10-block rolling change Price change over last ~20 seconds
60-block rolling change Price change over last ~2 minutes
Volume since last alert USDC traded since the watcher last fired on this market

Alert Modes

Threshold alert - fires when the price change over any configured window exceeds a set percentage. Example: alert when YES moves more than 8% in 10 blocks.

Velocity alert - fires when the rate of change accelerates. A market moving 2% per block consistently is more notable than one moving 6% total over 30 blocks.

Reversal alert - fires when a market that has been moving in one direction suddenly reverses. Useful for detecting stop-hunts or resolution-driven repricing.

New high/low alert - fires when a market hits a new 24-hour high or low odds level, regardless of how fast it moved there.


Engine Features

  • Full market coverage - watches all active CLOB markets simultaneously, not just a configured list
  • Four alert modes - threshold, velocity, reversal, and new high/low alerts, all configurable independently
  • Historical odds log - stores block-by-block odds history for every market, queryable for any time window
  • Telegram alerts - instant notification with market name, outcome, current price, magnitude of move, and time window
  • Odds chart export - generate a price chart for any market over any historical window from the local log

Two Ways to Run It

Windows App Python Bot
Setup Double-click pip install + config
Alert modes All 4 built-in Full code access
History Built-in viewer JSON log files
Config config.toml Direct code access
Alerts Dashboard + Telegram JSON + Telegram

Quick Start

# 1. Download from Releases
# 2. Edit config.toml - set alert thresholds and Telegram token
# 3. Run Odds Watcher - full market monitoring starts immediately

Python

cd polymarket-odds-watcher/python
pip install -r requirements.txt
python polymarket-odds-watcher-v.1.1.2.py

How It Works

odds watcher pipeline

Four stages per block:

  1. Fetch - pulls current best ask for YES and NO on all active CLOB markets
  2. Compare - calculates delta against stored rolling windows (1, 10, 60 blocks)
  3. Evaluate - checks each market against all enabled alert conditions
  4. Deliver - markets that match fire a Telegram alert and are logged with full price history

Config Reference

[watch]
outcomes = ["YES", "NO"]          # Watch both sides independently

[alerts]
threshold_pct_10blocks = 6.0      # Alert if price moves >6% in 10 blocks
threshold_pct_60blocks = 12.0     # Alert if price moves >12% in 60 blocks
velocity_pct_per_block = 1.5      # Alert if moving >1.5% per block consistently
reversal_min_pct = 5.0            # Alert on reversal after at least 5% prior move
new_highlow_window_blocks = 7200  # ~4 hours (24h = 43200 blocks)
re_alert_cooldown_blocks = 50     # Minimum blocks between alerts on same market

[telegram]
bot_token = ""
chat_id = ""

[log]
store_history_blocks = 43200      # Keep ~24h of block-by-block history per market

Odds Alert Log Format

{
  "alert_id": "ow_20260316_031",
  "market_id": "0x...",
  "market_name": "Will X happen before Q2 2026?",
  "outcome": "YES",
  "current_price": 0.67,
  "price_10blocks_ago": 0.51,
  "delta_10blocks_pct": 31.4,
  "alert_type": "threshold_10blocks",
  "volume_since_last_alert_usdc": 14200,
  "block": 69504112
}

Bot UI Preview

Polymarket Odds Watcher dashboard

Verified on Polygon Mainnet

Configuration used:

  • Threshold 10-block: 6%, threshold 60-block: 12%, velocity: 1.5%/block

Rapid odds shift detected and alerted:

Block
YES moved +31.4% in 10 blocks #69,504,112
Volume in window $14,200 USDC

Position opened manually on signal:

Transaction
Manual entry 0x7f1b3d...
Result 1,047,000 ERC-1155 tokens at 6.82 USDC

Frequently Asked Questions

What is Polymarket Odds Watcher? Polymarket Odds Watcher monitors real-time price movements across all active Polymarket markets on every Polygon block. It detects sudden price shifts, velocity changes, reversals, and new price extremes - then sends Telegram alerts so you can act on the move as it begins.

Does it cover all active markets or just a configured list? All active markets. The watcher fetches the full CLOB market list on every block and evaluates each one. No manual market configuration is needed.

How is the rolling window calculated? On each block, the watcher records the current price. The 10-block delta compares today's price to the price stored 10 blocks ago (~20 seconds). The 60-block delta compares to 60 blocks ago (~2 minutes). Both windows are maintained independently for every market.

What is the velocity alert? The velocity alert fires when the block-over-block price change is consistently above a threshold for multiple consecutive blocks. A one-block spike does not trigger it. Sustained momentum does.

Does it log historical odds data? Yes. The watcher stores block-by-block odds history for every market up to store_history_blocks deep. Use the scripts/chart.py tool to generate an odds movement chart for any market over any time window from this log.

Does it need my private key? No. The watcher is read-only. It monitors public on-chain data and sends Telegram alerts. No wallet or private key is needed.

What RPC is needed? Standard HTTP RPC works for polling mode. For lowest latency detection, use a WebSocket RPC with block subscription. Free tier (Alchemy, Infura) is sufficient for most use cases.

Is Polymarket Odds Watcher available for Windows? Yes. A standalone Windows x64 application is included in the release. The Python version runs on any platform with Python 3.10+. Both log odds history in the same JSON format and share the same config.toml.

How is this different from just watching the Polymarket UI? The Polymarket UI shows current prices for one market at a time. Odds Watcher monitors every active market simultaneously on every Polygon block. A 31% price move in one of 300+ markets is invisible to manual watching - Odds Watcher catches it and fires a Telegram alert in the same block it starts.

Can I export odds history for a specific market? Yes. Use scripts/chart.py in the Python version to pull stored block-by-block history for any market and generate a price chart or raw data export. Useful for analyzing how a market moved around a news event.

What is the re-alert cooldown? re_alert_cooldown_blocks prevents a single moving market from firing repeated alerts during an extended move. Once it fires, that market is suppressed for N blocks before it can alert again. Set to 0 to disable cooldown.


Use Cases

  • Real-time odds monitoring - detect sudden price shifts across all Polymarket markets without manual browsing
  • Velocity alert trading - catch sustained momentum early, before the market fully reprices
  • Reversal detection bot - alert on sharp direction changes driven by news or resolution events
  • Odds history log - build a block-by-block price database for backtesting or post-event analysis
  • Market watcher - run as a passive alert service; no wallet or private key required

Repository Structure

polymarket-odds-watcher/
+-- polymarket-odds-watcher-v.1.1.2.exe
+-- config.toml
+-- data/
|   +-- history/
|   +-- alerts/
|   +-- logs/
|   +-- dll/
+-- python/
|   +-- src/
|   |   +-- watcher.py
|   |   +-- alerter.py
|   +-- scripts/
|   |   +-- chart.py
|   +-- requirements.txt
+-- README.md

Requirements

python-dotenv, typer[all], web3, httpx, websockets, devtools
  • RPC provider - Alchemy, Chainstack, or Infura API key
  • Telegram bot token (optional, for alerts)

Watch the move. Beat the crowd.

About

Monitors real-time odds movements across all active Polymarket markets. Detects price shifts, velocity changes, and reversals on every Polygon block. Four alert modes with Telegram notifications and full odds history log.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%