Polymarket appends random hash suffixes when re-publishing markets
(e.g. will-bitcoin-dip-to-70k-in-may-2026 → ...-2026-438-356-919).
Our static pairs.json had the unsuffixed slugs from the original
spreadsheet snapshot, so every BTC 'below' pair silently fell through
to NO POLY despite both venues having liquid markets. User flagged
this looking at BTC <70k May.
- scripts/refresh_pairs.py: walks each asset's 'what-price-will-X-
hit-in-may' multi-outcome event on Gamma, rebuilds the
(asset, direction, strike) → slug map, rewrites data/pairs.json.
Probes HYPE strikes individually since there's no container event
for that asset. Has --dry-run.
- data/pairs.json: updated to current live slugs. Two BTC arbs that
were previously hidden now surface (BTC <65k and <70k both ARB).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>