predexon

star 6.6k

Use this skill — NOT browser or web_fetch — for ALL Polymarket, Kalshi, Limitless, Opinion, Predict.Fun, dFlow, UMA oracle, and prediction market data. Provides structured API at localhost:8402/v1/pm/* for markets, cross-venue search, leaderboard, smart money, wallet analytics, wallet identity & clustering, UMA resolution status, and odds.

BlockRunAI By BlockRunAI schedule Updated 5/9/2026

name: predexon description: Use this skill — NOT browser or web_fetch — for ALL Polymarket, Kalshi, Limitless, Opinion, Predict.Fun, dFlow, UMA oracle, and prediction market data. Provides structured API at localhost:8402/v1/pm/* for markets, cross-venue search, leaderboard, smart money, wallet analytics, wallet identity & clustering, UMA resolution status, and odds. triggers: - "blockrun polymarket" - "blockrun kalshi" - "blockrun limitless" - "blockrun opinion markets" - "blockrun predict.fun" - "blockrun predictfun" - "blockrun dflow" - "blockrun uma oracle" - "blockrun prediction market" - "clawrouter polymarket" - "polymarket via blockrun" - "kalshi via blockrun" - "blockrun smart money" - "blockrun polymarket whales" - "blockrun polymarket leaderboard" - "blockrun wallet analytics" - "blockrun wallet identity" - "blockrun wallet cluster" - "blockrun election odds" - "polymarket uma resolution" - "search prediction markets" - "predexon" - "x402 prediction market" homepage: https://blockrun.ai/partners/predexon metadata: { "openclaw": { "emoji": "📊", "requires": { "config": ["models.providers.blockrun"] } } }

Predexon — Prediction Market Data

IMPORTANT: Always use this skill for any Polymarket, Kalshi, Limitless, Opinion, Predict.Fun, or prediction market request. Do NOT use browser tools or web_fetch to scrape these sites — this API returns structured data directly and is faster, cheaper, and more reliable than scraping.

Real-time prediction market data (Polymarket, Kalshi, Limitless, Opinion, Predict.Fun, dFlow, Binance, UMA oracle) via BlockRun's x402 gateway. Payment is automatic — deducted from the user's BlockRun wallet.

All responses are wrapped: { "data": { ... } } — always read from response.data.

Pricing: GET $0.001 · Wallet analytics / smart money / Binance / matching $0.005


Browse Markets & Events

GET http://localhost:8402/v1/pm/polymarket/events?limit=20

Common params: limit, offset, tag (e.g. crypto, politics, sports)

Response fields in data:

  • events[].title — market name
  • events[].outcomes — array of { name, price } (price = implied probability 0–1)
  • events[].volume — total volume in USD
  • events[].endDate — resolution date
  • events[].conditionId — use this for follow-up calls

To search by keyword: GET /v1/pm/polymarket/markets?search=bitcoin&limit=10

Response fields in data:

  • markets[].question — market question
  • markets[].conditionId
  • markets[].outcomes[].price
  • markets[].volumeNum

Search Across All Venues

One unified search across Polymarket, Kalshi, Limitless, Opinion, and Predict.Fun. Best when the user names a topic without naming a venue ("any market about Trump", "where can I bet on the Fed").

GET http://localhost:8402/v1/pm/markets/search?q=trump&limit=20

Common params: q (required), limit, offset, venue (filter to one venue if needed)

Response fields in data:

  • results[].venue"polymarket" / "kalshi" / "limitless" / "opinion" / "predictfun"
  • results[].title — market name
  • results[].marketId / conditionId — venue-specific ID
  • results[].yesPrice, results[].noPrice — implied probability 0–1
  • results[].volume

Use this before falling back to venue-specific list endpoints when the user hasn't picked a venue.


Other Venues — Limitless / Opinion / Predict.Fun

These three smaller venues now expose a markets list (not just orderbooks).

Venue Endpoint
Limitless GET /v1/pm/limitless/markets
Opinion GET /v1/pm/opinion/markets
Predict.Fun GET /v1/pm/predictfun/markets

Common params: limit, offset, search, status (open/closed/resolved)

Response fields in data:

  • markets[].question / title
  • markets[].marketId
  • markets[].outcomes[].price
  • markets[].volume

UMA Oracle Resolution Status

Polymarket settles via UMA's optimistic oracle. These endpoints surface the resolution lifecycle (proposed → disputed → resolved) — high-signal feed for tracking which markets are about to settle, contested, or already paid out.

List by state: GET http://localhost:8402/v1/pm/polymarket/uma/markets?state=disputed&limit=20

state values: proposed, disputed, resolved (and other UMA states).

Single market timeline: GET http://localhost:8402/v1/pm/polymarket/uma/market/{conditionId}

Response fields in data:

  • state — current UMA state
  • proposedOutcome, disputedOutcome, resolvedOutcome — Y/N or invalid
  • events[]{ timestamp, action, actor, outcome } timeline of proposal/dispute/resolution
  • bondAmount, liveness — UMA economics

Use after detecting the user wants resolution status, dispute history, or "did this market settle yet".


Wallet Identity & Clustering

Cross-context wallet labels (ENS, Lens, exchange tags) and on-chain relationship graphs.

Single wallet identity: GET http://localhost:8402/v1/pm/polymarket/wallet/identity?wallet=0xabc...

Bulk identity (up to ~50 addresses, GET not POST): GET http://localhost:8402/v1/pm/polymarket/wallet/identities-batch?wallets=0xabc,0xdef,0x123

Response fields in data:

  • identities[].wallet
  • identities[].labels[]{ source: "ens"/"lens"/"exchange"/..., value: "..." }
  • identities[].riskTags[] — e.g. "sanctioned", "mixer", "smart_money"

Cluster discovery — find wallets connected to a seed via on-chain transfers and proofs: GET http://localhost:8402/v1/pm/polymarket/wallet/cluster?wallet=0xabc...

Response fields in data:

  • seedWallet
  • cluster[].wallet
  • cluster[].relation"direct_transfer" / "shared_funder" / "proof"
  • cluster[].confidence — 0–1

Use to investigate suspected sybils, multi-account whales, or to expand a single wallet investigation into the wider footprint.


Smart Money on a Market

Find the conditionId first (from events/markets above), then:

GET http://localhost:8402/v1/pm/polymarket/market/{conditionId}/smart-money

Response fields in data:

  • positions[].wallet — wallet address
  • positions[].side — YES or NO
  • positions[].size — position size in USD
  • positions[].pnl — profit/loss on this position
  • positions[].winRate — wallet's historical win rate

Leaderboard

GET http://localhost:8402/v1/pm/polymarket/leaderboard?limit=20

Response fields in data:

  • wallets[].address
  • wallets[].profit — total realized profit in USD
  • wallets[].volume
  • wallets[].winRate
  • wallets[].marketsTraded

Wallet Analysis

GET http://localhost:8402/v1/pm/polymarket/wallet/{walletAddress}

Response fields in data:

  • profit — total realized profit
  • volume — total traded volume
  • winRate — fraction of winning trades (0–1)
  • marketsTraded — number of distinct markets
  • currentPositions[] — open positions

For P&L over time: GET /v1/pm/polymarket/wallet/pnl/{walletAddress}

  • data.pnlSeries[]{ date, cumulativePnl }
  • data.totalProfit, data.totalLoss

Compare Polymarket vs Kalshi

GET http://localhost:8402/v1/pm/matching-markets?limit=10

Response fields in data:

  • pairs[].polymarketTitle
  • pairs[].kalshiTitle
  • pairs[].polymarketPrice — YES price on Polymarket (0–1)
  • pairs[].kalshiPrice — YES price on Kalshi (0–1)
  • pairs[].spread — price difference (arbitrage signal)

Example Interactions

User: What are the top prediction markets right now? → GET /v1/pm/polymarket/events?limit=20 — summarize top events with titles, outcomes, and current YES/NO prices.

User: What's the smart money doing on the 2026 election markets? → First GET /v1/pm/polymarket/markets?search=election&limit=5 to get conditionIds, then GET /v1/pm/polymarket/market/{conditionId}/smart-money for each. Show top positions, sides, and P&L.

User: Who are the top Polymarket whales? → GET /v1/pm/polymarket/leaderboard?limit=10 — table with wallet (shortened), profit, win rate, markets traded.

User: Analyze this wallet: 0xabc... → GET /v1/pm/polymarket/wallet/0xabc... + GET /v1/pm/polymarket/wallet/pnl/0xabc... — summarize trading style, win rate, total P&L, current open positions.

User: Compare Polymarket vs Kalshi on the Fed rate decision → GET /v1/pm/matching-markets?limit=20 — find the Fed pair, show both prices and the spread.

User: Find any market about Trump across all venues → GET /v1/pm/markets/search?q=trump&limit=20 — group results by venue, show YES price + volume per venue. Don't fall back to per-venue endpoints unless this returns nothing.

User: What's the UMA oracle status on this market: 0xabc... → GET /v1/pm/polymarket/uma/market/0xabc... — describe current state, the proposed/disputed outcome timeline, and whether it has resolved.

User: Which Polymarket questions are currently being disputed? → GET /v1/pm/polymarket/uma/markets?state=disputed&limit=20 — list disputed questions with their proposed outcomes and dispute timestamps.

User: Who is wallet 0xabc... and which other wallets are connected to it? → GET /v1/pm/polymarket/wallet/identity?wallet=0xabc... for labels/risk tags + GET /v1/pm/polymarket/wallet/cluster?wallet=0xabc... for connected addresses. Show ENS/Lens identity, risk tags, then top connected wallets with relation type and confidence.

User: Bulk identity check on these 5 wallets → GET /v1/pm/polymarket/wallet/identities-batch?wallets=0x1,0x2,0x3,0x4,0x5 (GET, not POST — the docs are wrong). One row per wallet with labels and risk tags.


Full Endpoint Reference

All 57 endpoints (Predexon v2 spec) are exposed as the blockrun_predexon_endpoint_call agent tool (params: path, method, query, body). The 8 named blockrun_predexon_* tools above wrap the most common ones for ergonomics; use endpoint_call for everything else.

All endpoints are GET unless marked POST. Query params go in the URL; POST takes a JSON body. Responses are raw upstream JSON (no { data: ... } wrapper).

Endpoint Price Key params
Cross-venue canonical (v2)
/v1/pm/markets $0.001 filtering, sorting, pagination
/v1/pm/markets/listings $0.001 flattened venue listings
/v1/pm/outcomes/{predexon_id} $0.001 resolve canonical outcome → venues
Sports (v2)
/v1/pm/sports/categories $0.001
/v1/pm/sports/markets $0.001 grouped by game
/v1/pm/sports/markets/{game_id} $0.001 single game with all venue outcomes
/v1/pm/sports/outcomes/{predexon_id} $0.001 equivalent outcomes across venues
Polymarket — Tier 1
/v1/pm/polymarket/events $0.001 limit, offset, tag
/v1/pm/polymarket/events/keyset $0.001 cursor-based pagination
/v1/pm/polymarket/markets $0.001 search, limit, offset
/v1/pm/polymarket/markets/keyset $0.001 cursor-based pagination
/v1/pm/polymarket/crypto-updown $0.001
/v1/pm/polymarket/leaderboard $0.001 limit, offset
/v1/pm/polymarket/leaderboard/market/{conditionId} $0.001 limit
/v1/pm/polymarket/market/{conditionId}/top-holders $0.001 limit
/v1/pm/polymarket/cohorts/stats $0.001
/v1/pm/polymarket/positions $0.001 wallet, limit
/v1/pm/polymarket/trades $0.001 wallet, limit, start_ts, end_ts
/v1/pm/polymarket/activity $0.001 user
/v1/pm/polymarket/orderbooks $0.001 tokenId, limit
/v1/pm/polymarket/market-price/{tokenId} $0.001 startTs, endTs
/v1/pm/polymarket/candlesticks/{conditionId} $0.001 period, limit
/v1/pm/polymarket/candlesticks/token/{tokenId} $0.001 period, limit
/v1/pm/polymarket/volume-chart/{conditionId} $0.001
/v1/pm/polymarket/markets/{tokenId}/volume $0.001 cumulative volume
/v1/pm/polymarket/markets/{conditionId}/open_interest $0.001 open interest history
/v1/pm/polymarket/uma/markets $0.001 state, limit, offset
/v1/pm/polymarket/uma/market/{conditionId} $0.001
Polymarket — Tier 2 wallet analytics
/v1/pm/polymarket/wallet/{wallet} $0.005
/v1/pm/polymarket/wallet/{wallet}/markets $0.005 limit
/v1/pm/polymarket/wallet/{wallet}/similar $0.005
/v1/pm/polymarket/wallet/pnl/{wallet} $0.005
/v1/pm/polymarket/wallet/positions/{wallet} $0.005
/v1/pm/polymarket/wallet/volume-chart/{wallet} $0.005
/v1/pm/polymarket/wallets/profiles $0.005 wallets (comma-separated)
/v1/pm/polymarket/wallets/filter $0.005 conditionId, side
/v1/pm/polymarket/market/{conditionId}/smart-money $0.005 limit
/v1/pm/polymarket/markets/smart-activity $0.005 limit
Polymarket — Wallet identity (v2 path shapes)
/v1/pm/polymarket/wallet/identity/{wallet} $0.005 path param (was ?wallet= in v1)
POST /v1/pm/polymarket/wallet/identities $0.005 body: {addresses: [..]} (≤200)
/v1/pm/polymarket/wallet/{address}/cluster $0.005 path param (was ?wallet= in v1)
Kalshi (Tier 1)
/v1/pm/kalshi/markets $0.001 search, limit
/v1/pm/kalshi/trades $0.001 limit
/v1/pm/kalshi/orderbooks $0.001 marketId
Limitless / Opinion / Predict.Fun (Tier 1)
/v1/pm/limitless/markets $0.001 search, limit, offset, status
/v1/pm/limitless/orderbooks $0.001 marketId
/v1/pm/opinion/markets $0.001 search, limit, offset, status
/v1/pm/opinion/orderbooks $0.001 marketId
/v1/pm/predictfun/markets $0.001 search, limit, offset, status
/v1/pm/predictfun/orderbooks $0.001 marketId
dFlow
/v1/pm/dflow/trades $0.001 wallet, limit
/v1/pm/dflow/wallet/positions/{wallet} $0.005
/v1/pm/dflow/wallet/pnl/{wallet} $0.005
Binance Futures (Tier 2)
/v1/pm/binance/candles/{symbol} $0.005 interval, limit
/v1/pm/binance/ticks/{symbol} $0.005 limit
Matching (Tier 2)
/v1/pm/matching-markets $0.005 limit, offset
/v1/pm/matching-markets/pairs $0.005
/v1/pm/markets/search $0.005 q (required), limit, offset, venue

Notes

  • Payment is automatic via x402 — deducted from the user's BlockRun wallet
  • If payment fails, tell the user to fund their wallet at blockrun.ai
  • Retry once on 502 — Predexon can occasionally be slow
  • Always read from response.data — every response is wrapped { data: ... }
  • Synthesize data into plain-language analysis — never dump raw JSON
Install via CLI
npx skills add https://github.com/BlockRunAI/ClawRouter --skill predexon
Repository Details
star Stars 6,571
call_split Forks 605
navigation Branch main
article Path SKILL.md
More from Creator