blockrun_markets
Retrieve cross-venue prediction market and derivatives data including markets, outcomes, orders, and analytics. Search and filter across Polymarket, Kalshi, and more.
Instructions
Prediction market + derivatives data via Predexon aggregator. Flat $0.0095/call (every endpoint) — $0.0075 base + $0.002 tx fee.
CANONICAL CROSS-VENUE (Tier 1) — Predexon v2 unified data layer:
markets — list canonical market/question containers with cross-venue Predexon IDs
markets/listings — venue-native executable listings flattened across canonical markets
outcomes/:predexon_id — resolve a canonical outcome ID to its market context + venue listings Filter with ?venue=polymarket|kalshi|limitless|opinion|predictfun, ?status=, ?category=, ?league=, ?event_id=, ?pagination_key=
POLYMARKET (Tier 1):
polymarket/events, polymarket/markets — list events/markets (filter, sort, paginate)
polymarket/markets/keyset, polymarket/events/keyset — same data, cursor-based keyset pagination (use ?pagination_key=)
polymarket/crypto-updown — crypto up/down markets
polymarket/market-price/:token_id — current/historical price
polymarket/candlesticks/:condition_id — OHLCV by market
polymarket/candlesticks/token/:token_id — OHLCV by single outcome token
polymarket/volume-chart/:condition_id — volume w/ YES/NO split
polymarket/orderbooks, polymarket/trades, polymarket/activity
polymarket/markets/:token_id/volume, polymarket/markets/:condition_id/open_interest
polymarket/positions — user positions
polymarket/leaderboard, polymarket/leaderboard/market/:condition_id
polymarket/cohorts/stats, polymarket/market/:condition_id/top-holders
polymarket/uma/markets, polymarket/uma/market/:condition_id — UMA oracle questions/timeline
POLYMARKET (Tier 2 — wallet/smart-money analytics):
polymarket/wallet/:wallet — full smart-wallet profile
polymarket/wallet/:wallet/markets, .../similar
polymarket/wallet/pnl/:wallet, .../positions/:wallet, .../volume-chart/:wallet
polymarket/wallets/profiles, polymarket/wallets/filter — batch + AND/OR filter
polymarket/market/:condition_id/smart-money, polymarket/markets/smart-activity
WALLET IDENTITY & CLUSTERING (Tier 2) — cross-context labels + on-chain relationship graph:
polymarket/wallet/identity/:wallet — fetch identity + profile metadata for one wallet
polymarket/wallet/identities — POST { addresses: [...] } for bulk lookup (up to 200 wallets)
polymarket/wallet/:address/cluster — discover wallets connected via on-chain transfers + identity proofs
SPORTS (Tier 1):
sports/categories — list available sports categories
sports/markets — list sports markets grouped by game (filter ?league=, ?sport_type=, ?status=, ?venue=)
sports/markets/:game_id — single sports game with all venue outcomes
sports/outcomes/:predexon_id — equivalent sports outcomes across venues for a Predexon ID
KALSHI: kalshi/markets, kalshi/trades, kalshi/orderbooks LIMITLESS / OPINION / PREDICT.FUN: {platform}/markets, {platform}/orderbooks DFLOW: dflow/trades, dflow/wallet/positions/:wallet, dflow/wallet/pnl/:wallet BINANCE FUTURES: binance/candles/:symbol, binance/ticks/:symbol
CROSS-PLATFORM:
matching-markets, matching-markets/pairs — equivalent markets across Polymarket+Kalshi
markets/search — search across all platforms in one call
REQUEST CONTRACTS:
Discover current markets with markets/search (its search term is "q"), then resolve the chosen Polymarket market with polymarket/markets/keyset and condition_id.
On polymarket/markets{,/keyset} the free-text filter is "search" (NOT "q"), and status:"open"/"closed" replaces Gamma's active/closed. "sort", "end_after", and "end_before" are supported; "order"/"ascending" are not.
Candlesticks interval is integer minutes: 0|1|5|15|60|1440 (use "60", not "1h"); start_time/end_time are Unix seconds.
polymarket/orderbooks requires token_id plus start_time/end_time in Unix milliseconds.
Smart-money calls need at least one cohort filter (window, min_trades, min_volume, min_roi, min_*_pnl, min_win_rate, min_profit_factor); a good default is { window: "30d", min_trades: "100" }.
Issue paid calls sequentially. The MCP also serializes them to protect one wallet from concurrent x402 payment races.
Pass query params via 'params' (GET). Use 'body' only for POST endpoints (e.g. polymarket/wallet/identities).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | JSON body for POST queries (triggers pmQuery — most endpoints are GET) | |
| path | Yes | Endpoint path, e.g. 'polymarket/events', 'kalshi/markets/KXBTC-25MAR14', 'polymarket/wallet/0xabc...', 'markets/search' | |
| params | No | Query parameters for GET requests (e.g. markets/search uses { q: 'Bitcoin', status: 'open', venue: 'polymarket', limit: '20' }) | |
| agent_id | No | Agent identifier for budget tracking and enforcement. |