Skip to content
Back to skills

Monitor Polymarket

BSecurity

Monitor specific prediction markets for 24h price moves, volume changes, and fresh comments

  • 6 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added June 6, 2026
documentationpythonbashreactapi

Works with

  • api

Security analysis

B75/100
  • criticalSends environment variables or credentials to an external URL
  • criticalDownloads and executes remote scripts — classic supply chain attack

Pro scans all 2 files and shows the line behind each finding

Scanned June 6, 2026

npx -y skills add anajuliabit/aeon --skill monitor-polymarket --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Monitor Polymarket?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Monitor Polymarket
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/anajuliabit-monitor-polymarket/badge)](https://www.skillsdirectory.com/skills/anajuliabit-monitor-polymarket)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: Monitor Polymarket
description: Monitor specific prediction markets for 24h price moves, volume changes, and fresh comments
var: ""
tags: [crypto]
---
> **${var}** — Event slug to monitor (e.g. "us-x-iran-ceasefire-by"). If empty, reads the watchlist from `skills/monitor-polymarket/watchlist.md`.

Read `memory/MEMORY.md` for context.
Read the last 2 days of `memory/logs/` to compare against previous readings and flag changes.

## Watchlist

The default watchlist lives at `skills/monitor-polymarket/watchlist.md`. Each line is an event slug. Add or remove slugs to change what gets monitored.

If `${var}` is set, monitor only that single event (useful for ad-hoc checks).

## Steps

### 1. Load watchlist

```bash
if [ -n "${var}" ]; then
  SLUGS="${var}"
else
  # Read watchlist file, one slug per line, skip comments and blanks
  SLUGS=$(grep -v '^#' skills/monitor-polymarket/watchlist.md | grep -v '^$')
fi
```

### 2. For each event, fetch markets and price history

For each event slug in the watchlist:

**a) Get the event and its markets:**
```bash
curl -s "https://gamma-api.polymarket.com/events?slug=$SLUG&limit=1"
```

The response contains the event `id`, `title`, and a `markets` array. Each market has:
- `id`, `question`, `slug`, `closed`
- `outcomePrices` — JSON array, index 0 = YES price (0.0–1.0)
- `volume24hr`, `volumeNum`, `liquidityNum`
- `clobTokenIds` — JSON array, index 0 = YES token, index 1 = NO token

**Skip closed markets** — they've already resolved.

**b) Get 24h price history for each open market:**
```bash
# YES token is index 0 of clobTokenIds
TOKEN_ID=$(echo "$CLOB_TOKEN_IDS" | python3 -c "import json,sys; print(json.loads(sys.stdin.read())[0])")
curl -s "https://clob.polymarket.com/prices-history?market=$TOKEN_ID&interval=1d&fidelity=60"
```

Response: `{ "history": [{ "t": unix_timestamp, "p": "price_string" }, ...] }`

**c) Calculate 24h stats for each market:**
- **Open / Close** — first and last price in the history
- **Change** — close minus open, in percentage points (e.g. +4.0pp)
- **High / Low** — intraday range
- **Volume** — `volume24hr` from the market data
- **Direction** — classify as: surging (>+5pp), rising (+2 to +5pp), stable (-2 to +2pp), falling (-5 to -2pp), crashing (<-5pp)

### 3. Fetch comments

For each event, get top comments and latest comments:

```bash
EVENT_ID=... # from step 2a

# Top comments by reactions
curl -s "https://gamma-api.polymarket.com/comments?parent_entity_type=Event&parent_entity_id=$EVENT_ID&limit=10&order=reactionCount&ascending=false"

# Latest comments (last 24h chatter)
curl -s "https://gamma-api.polymarket.com/comments?parent_entity_type=Event&parent_entity_id=$EVENT_ID&limit=10&order=createdAt&ascending=false"
```

**Important:** `parent_entity_type` must be `Event` (capital E).

Each comment has: `body`, `profile.username` (often null → use "anon"), `reactionCount`, `createdAt`.

From the combined results, pick the **3 most interesting comments** per event:
- New comments from the last 24h get priority (they react to recent moves)
- High-reaction comments that are still relevant
- Contrarian takes, insider-sounding analysis, whale callouts, humor

### 4. Build the report

For each event, produce a summary block:

```
**[Event Title]** (event_id: N)

| Market | YES | 24h Chg | High/Low | 24h Vol |
|--------|-----|---------|----------|---------|
| [question] | XX.X% | +X.Xpp ▲ | XX–XX% | $X.Xm |
| [question] | XX.X% | -X.Xpp ▼ | XX–XX% | $X.Xm |
...

Biggest mover: "[question]" — [direction] from X% to Y%

Comments:
- [user/anon]: "[comment excerpt]" (X upvotes)
- [user/anon]: "[comment excerpt]"
- [user/anon]: "[comment excerpt]"
```

Flag any market that moved more than **5 percentage points** in 24h — these are the ones worth paying attention to.

### 5. Notify

Send via `./notify` (under 4000 chars):
```
polymarket monitor — ${today}

[Event Title]
[market] YES X% (chg pp) $Xm vol
[market] YES X% (chg pp) $Xm vol
biggest mover: [market] — [direction]
top comment: "[excerpt]"

[next event...]

alerts: [list any markets that moved >5pp]
```

If no markets moved significantly, say so — "all quiet" is useful signal too.

### 6. Log

Append to `memory/logs/${today}.md`:
```
## Monitor Polymarket
- **Events monitored:** N
- **Markets tracked:** N (M open, K closed)
- **Biggest mover:** "[question]" — X% → Y% (+/-Zpp)
- **Alert markets (>5pp move):** [list or "none"]
- **Top comment:** "[excerpt]"
- **Notification sent:** yes
```

If a market has moved dramatically or a new trend is forming, also note it in `memory/MEMORY.md` for future reference.

## Sandbox note

The sandbox may block outbound curl. Use **WebFetch** as a fallback for any URL fetch. For auth-required APIs, use the pre-fetch/post-process pattern (see CLAUDE.md).

Files in this skill

  • SKILL.md4.7 KB
  • watchlist.md93 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…