/prediction-markets
Use when the user asks about event probabilities, prediction market odds, what people are betting on, Polymarket/Kalshi prices, sports markets — or about the things you CANNOT get from a public API: historical price/volume/orderbook time series, smart-money positioning, whale
$ npx -y skills add BlockRunAI/blockrun-mcp --skill prediction-markets --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/prediction-markets
Context preview
The summary Claude sees to decide when to auto-load this skill.
Use when the user asks about event probabilities, prediction market odds, what people are betting on, Polymarket/Kalshi prices, sports markets — or about the things you CANNOT get from a public API: historical price/volume/orderbook time series, smart-money positioning, whale
SKILL.md
prediction-markets.SKILL.mdname: prediction-markets
description: "Use when the user asks about event probabilities, prediction market odds, what people are betting on, Polymarket/Kalshi prices, sports markets — or about the things you CANNOT get from a public API: historical price/volume/orderbook time series, smart-money positioning, whale leaderboards, wallet P&L, wallet identity and on-chain clustering, and canonical IDs matching the same question across venues. 55 endpoints over Polymarket, Kalshi, Limitless, Opinion, Predict.Fun, Binance Futures, sports, and the UMA oracle. Pay-per-call in USDC via x402 — no Predexon account, no API key."
triggers:
- "polymarket"
- "kalshi"
- "limitless"
- "predict.fun"
- "predexon"
- "prediction market"
- "event probability"
- "betting odds"
- "implied probability"
- "what are people betting on"
- "election odds"
- "crypto market odds"
- "binance futures"
- "yes/no market"
- "sports markets"
- "smart money"
- "smart wallet"
- "whale"
- "top traders"
- "top holders"
- "who is winning"
- "best traders"
- "copy trade"
- "leaderboard"
- "wallet pnl"
- "wallet profit"
- "trader performance"
- "wallet identity"
- "wallet cluster"
- "price history"
- "candles"
- "candlestick"
- "ohlcv"
- "orderbook"
- "order book history"
- "open interest"
- "volume history"
- "trade history"
- "cross-venue markets"
- "arbitrage"
- "uma oracle"
Prediction Markets (Predexon)
55 endpoints across Polymarket, Kalshi, Limitless, Opinion, Predict.Fun, Binance Futures, sports, and the UMA oracle — one x402 gateway, no Predexon account or API key.
**What is worth paying for.** Current market lists are free from public APIs. These are not, and cannot be backfilled after the fact:
- **History** — candlesticks, orderbook snapshots, volume charts, open interest, trade history. Built from continuous ingestion; nobody can reconstruct it retroactively.
- **Smart money** — leaderboards, cohort stats, top holders, which wallets are positioned where, and which markets high-performing wallets just entered.
- **Wallet intelligence** — profiles, P&L time series, identity metadata, and on-chain clustering (find the other wallets behind one address).
- **Cross-venue canonical IDs** — one question, matched across five venues. The basis for arbitrage and consensus.
How to Call from MCP
One tool, three params. Method auto-routes: POST when `body` is set, GET otherwise.
blockrun_markets({ path: "polymarket/events", params: { limit: "10" } })
blockrun_markets({ path: "polymarket/candlesticks/0xCONDITION_ID", params: { interval: "1440" } })
blockrun_markets({ path: "polymarket/wallet/identities", body: {
addresses: ["0xabc...", "0xdef..."]
}})Paths are relative — no `/api/v1/pm/` prefix. Use `agent_id` to bill a child agent's budget.
Paid calls can run in parallel **on Base**: each EIP-3009 authorization carries its own random nonce, so concurrent calls from one wallet cannot collide. The Solana payload has no nonce field — distinctness comes from the SDK (`@blockrun/llm` >= 3.8.4), so keep that floor if you fan out on Solana.
Current parameter contracts that prevent paid 4xx responses:
- Discover with `markets/search` (its search term is `q`), then resolve the
selected market with `polymarket/markets/keyset` + `condition_id`.
- On `polymarket/markets{,/keyset}` the free-text filter is `search`, **not**
`q`. Use `status:"open"` rather than Gamma's `active`/`closed`, and `sort` rather than `order`/`ascending`. `end_after`/`end_before` are supported (Unix seconds).
- Candlestick `interval` is integer minutes (`1440`, not `1h`) and is
**optional** — the server has a default. Which intervals a market can serve varies: `1440` may work where `60` returns a paid 400. Optional `start_time`/`end_time` are Unix seconds.
- `polymarket/orderbooks` requires `token_id`, `start_time`, and `end_time`; the
times are Unix milliseconds.
- Smart-money needs a smart-wallet **criterion**: `min_trades`, `min_volume`,
`min_roi`, `min_realized_pnl`, `min_total_pnl`, `min_win_rate`, or `min_profit_factor`. `window` only scopes the time range and is **not** sufficient alone (verified: window-only returns a paid 400). Use `{ window: "30d", min_trades: "100" }`; narrower cohorts are fine.
- `markets/listings` is retired upstream (410 Gone) — the MCP blocks it before payment.
Two Pricing Tiers
| Tier | Price | What | |---|---|---| | **All endpoints** | $0.0085 | Market data, events, history, candles, orderbooks, trades, leaderboard, sports, UMA, wallet analytics, smart money, identity + clustering, cross-venue matching, Binance |
Pass-through pricing, 0% BlockRun margin — settles straight to Predexon's Base treasury.
Quick Decision Table — "User asks about X"
| User wants… | path | Tier | |---|---|---| | **Same question across venues** | `markets` | 1 | | **Search every venue at once** | `markets/search` | 2 | | Resolve a canonical outcome ID | `outcomes/{predexon_id}` | 1 | | **Equivalent markets (arbitrage)** | `matching-markets` | 2 | | Active matched pairs | `matching-markets/pairs` | 2 | | Active Polymarket events | `polymarket/events` | 1 | | Polymarket markets | `polymarket/markets` | 1 | | Large result sets (stable paging) | `polymarket/markets/keyset` | 1 | | Crypto up/down markets | `polymarket/crypto-updown` | 1 | | Current/historical price of a token | `polymarket/market-price/{token_id}` | 1 | | **Price history (OHLCV)** | `polymarket/candlesticks/{condition_id}` | 1 | | **OHLCV for one outcome** | `polymarket/candlesticks/token/{token_id}` | 1 | | **Volume over time (YES/NO split)** | `polymarket/volume-chart/{condition_id}` | 1 | | **Historical orderbook snapshots** | `polymarket/orderbooks` | 1 | | **Historical trades** | `polymarket/trades` | 1 | | Merges / splits / redeems for a user | `polymarket/activity` | 1 | | Cumulative volume for a market | `polymarket/markets/{token_id}/volume`
Read more
name: prediction-markets description: "Use when the user asks about event probabilities, prediction market odds, what people are betting on, Polymarket/Kalshi prices, sports markets — or about the things you CANNOT get from a public API: historical price/volume/orderbook time series, smart-money positioning, whale leaderboards, wallet P&L, wallet identity and on-chain clustering, and canonical IDs matching the same question across venues. 55 endpoints over Polymarket, Kalshi, Limitless, Opinion, Predict.Fun, Binance Futures, sports, and the UMA oracle. Pay-per-call in USDC via x402 — no Predexon account, no API key." triggers: - "polymarket" - "kalshi" - "limitless" - "predict.fun" - "predexon" - "prediction market" - "event probability" - "betting odds" - "implied probability" - "what are people betting on" - "election odds" - "crypto market odds" - "binance futures" - "yes/no market" - "sports markets" - "smart money" - "smart wallet" - "whale" - "top traders" - "top holders" - "who is winning" - "best traders" - "copy trade" - "leaderboard" - "wallet pnl" - "wallet profit" - "trader performance" - "wallet identity" - "wallet cluster" - "price history" - "candles" - "candlestick" - "ohlcv" - "orderbook" - "order book history" - "open interest" - "volume history" - "trade history" - "cross-venue markets" - "arbitrage" - "uma oracle"
Prediction Markets (Predexon)
55 endpoints across Polymarket, Kalshi, Limitless, Opinion, Predict.Fun, Binance Futures, sports, and the UMA oracle — one x402 gateway, no Predexon account or API key.
**What is worth paying for.** Current market lists are free from public APIs. These are not, and cannot be backfilled after the fact:
- **History** — candlesticks, orderbook snapshots, volume charts, open interest, trade history. Built from continuous ingestion; nobody can reconstruct it retroactively.
- **Smart money** — leaderboards, cohort stats, top holders, which wallets are positioned where, and which markets high-performing wallets just entered.
- **Wallet intelligence** — profiles, P&L time series, identity metadata, and on-chain clustering (find the other wallets behind one address).
- **Cross-venue canonical IDs** — one question, matched across five venues. The basis for arbitrage and consensus.
How to Call from MCP
One tool, three params. Method auto-routes: POST when `body` is set, GET otherwise.
blockrun_markets({ path: "polymarket/events", params: { limit: "10" } })
blockrun_markets({ path: "polymarket/candlesticks/0xCONDITION_ID", params: { interval: "1440" } })
blockrun_markets({ path: "polymarket/wallet/identities", body: {
addresses: ["0xabc...", "0xdef..."]
}})Paths are relative — no `/api/v1/pm/` prefix. Use `agent_id` to bill a child agent's budget.
Paid calls can run in parallel **on Base**: each EIP-3009 authorization carries its own random nonce, so concurrent calls from one wallet cannot collide. The Solana payload has no nonce field — distinctness comes from the SDK (`@blockrun/llm` >= 3.8.4), so keep that floor if you fan out on Solana.
Current parameter contracts that prevent paid 4xx responses:
- Discover with `markets/search` (its search term is `q`), then resolve the
selected market with `polymarket/markets/keyset` + `condition_id`.
- On `polymarket/markets{,/keyset}` the free-text filter is `search`, **not**
`q`. Use `status:"open"` rather than Gamma's `active`/`closed`, and `sort` rather than `order`/`ascending`. `end_after`/`end_before` are supported (Unix seconds).
- Candlestick `interval` is integer minutes (`1440`, not `1h`) and is
**optional** — the server has a default. Which intervals a market can serve varies: `1440` may work where `60` returns a paid 400. Optional `start_time`/`end_time` are Unix seconds.
- `polymarket/orderbooks` requires `token_id`, `start_time`, and `end_time`; the
times are Unix milliseconds.
- Smart-money needs a smart-wallet **criterion**: `min_trades`, `min_volume`,
`min_roi`, `min_realized_pnl`, `min_total_pnl`, `min_win_rate`, or `min_profit_factor`. `window` only scopes the time range and is **not** sufficient alone (verified: window-only returns a paid 400). Use `{ window: "30d", min_trades: "100" }`; narrower cohorts are fine.
- `markets/listings` is retired upstream (410 Gone) — the MCP blocks it before payment.
Two Pricing Tiers
| Tier | Price | What | |---|---|---| | **All endpoints** | $0.0085 | Market data, events, history, candles, orderbooks, trades, leaderboard, sports, UMA, wallet analytics, smart money, identity + clustering, cross-venue matching, Binance |
Pass-through pricing, 0% BlockRun margin — settles straight to Predexon's Base treasury.
Quick Decision Table — "User asks about X"
| User wants… | path | Tier | |---|---|---| | **Same question across venues** | `markets` | 1 | | **Search every venue at once** | `markets/search` | 2 | | Resolve a canonical outcome ID | `outcomes/{predexon_id}` | 1 | | **Equivalent markets (arbitrage)** | `matching-markets` | 2 | | Active matched pairs | `matching-markets/pairs` | 2 | | Active Polymarket events | `polymarket/events` | 1 | | Polymarket markets | `polymarket/markets` | 1 | | Large result sets (stable paging) | `polymarket/markets/keyset` | 1 | | Crypto up/down markets | `polymarket/crypto-updown` | 1 | | Current/historical price of a token | `polymarket/market-price/{token_id}` | 1 | | **Price history (OHLCV)** | `polymarket/candlesticks/{condition_id}` | 1 | | **OHLCV for one outcome** | `polymarket/candlesticks/token/{token_id}` | 1 | | **Volume over time (YES/NO split)** | `polymarket/volume-chart/{condition_id}` | 1 | | **Historical orderbook snapshots** | `polymarket/orderbooks` | 1 | | **Historical trades** | `polymarket/trades` | 1 | | Merges / splits / redeems for a user | `polymarket/activity` | 1 | | Cumulative volume for a market | `polymarket/markets/{token_id}/volume`
Live data for AI agents — search, research, markets, crypto, X/Twitter. Pay-per-call via x402 micropayments.
Repo: BlockRunAI/blockrun-mcp
Other skills on blockrun-mcp.
- /blockrun
Pay-per-call access to AI models, real-time data, media generation and multi-chain RPC over x402 micropayments (USDC on Base or Solana). No API keys, no accounts, no subscriptions. Start here when you have the BlockRun MCP installed and need to know WHICH tool answers a
Open skill - /crypto-data
Use for any crypto data question — token/coin prices, FX, commodities, stocks, OHLC history, DEX pairs and liquidity, DeFi TVL, yield/APY pools, on-chain SQL, wallet labels and net worth, social mindshare, news, or raw JSON-RPC against a chain. Routes across five tools that
Open skill - /exa-research
Use when researching products, finding academic papers, discovering competitors, reading webpage content, or getting cited answers grounded in real web sources. Use over generic search when semantic relevance matters.
Open skill - /gentech-blockrun
GenTech Labs' integration patterns for BlockRun MCP from Hermes Agent. Covers daily usage patterns, cost-optimized workflows, multi-tool pipelines, and reliable error handling for BlockRun's full toolset.
Open skill - /image-prompting
Use when generating or editing images via `blockrun_image` — especially with GPT Image 2, Nano Banana, or Grok Imagine for posters, UI mockups, marketing assets, product shots, or anything with on-image text. Turns vague user requests ("make me a cool poster") into structured,
Open skill - /modal
Use when the user needs to run isolated code remotely — a disposable container, optional GPU access (T4 → H100), or a safer place for untrusted / heavy code. Prefer local execution for normal repo work; use Modal sandboxes for isolation, hardware access, or one-shot heavy
Open skill

