Install
openclaw skills install @m-lwatcher/prediction-market-watcherMonitor, analyze, and trade on Kalshi and Polymarket prediction markets. Use when the user wants to check open positions, scan for value bets, place bets, check settlement status, or get a portfolio summary on Kalshi or Polymarket. Also use proactively when a bet is approaching settlement time.
openclaw skills install @m-lwatcher/prediction-market-watcherConnects to Kalshi (and Polymarket) to track positions, scan markets, and place bets.
Kalshi (live trading, US):
kalshi-agent/config.json in the workspacekalshi-agent/kalshi.keykalshi_client.py with RSA-PSS signed requestsPolymarket (coming soon — read-only via public API for now)
cd ~/workspace/kalshi-agent && python3 kalshi_agent.py --status
cd ~/workspace/kalshi-agent && python3 kalshi_agent.py --positions
from kalshi_client import KalshiClient
import json
c = KalshiClient('KEY_ID', 'kalshi.key')
market = c.get('/trade-api/v2/markets/TICKER_HERE')
print(json.dumps(market, indent=2))
Key fields: yes_bid_dollars, yes_ask_dollars, floor_strike, cap_strike, close_time, rules_primary
floor_strike / cap_strike from market datacd ~/workspace/kalshi-agent && python3 kalshi_agent.py --scan
order = c.create_order(ticker="TICKER", side="yes", action="buy", count=N, limit_price=CENTS)
limit_price is in cents (e.g. 8 = $0.08)count = number of $1 contractsrisk_state.json limits before placingclose_timecan_bet() before any auto-placehttps://api.elections.kalshi.com/trade-api/v2/
Key endpoints:
GET /portfolio/positions → open positions (use /trade-api/v2/portfolio/positions)GET /markets/{ticker} → single market detailGET /markets?status=open&limit=100 → scan marketsGET /portfolio/balance → balance + portfolio valuePOST /portfolio/orders → place orderSee references/kalshi-api.md for full endpoint reference.
Public REST API — no auth needed for reads:
GET https://gamma-api.polymarket.com/markets?active=true&limit=20
See references/polymarket-api.md for details.