Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Predexon

ASecurity

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.

17 stars
0 votes
0 copies
2 views
Added 9/4/2026
datagoapi

Works with

cursorapi

Security Analysis

A100/100

Scanned 9/21/2026

Install to Claude Code

$npx -y skills add gabrielmoreira/agent-skills-mirror --skill predexon --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Predexon?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Predexon
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gabrielmoreira-predexon/badge)](https://www.skillsdirectory.com/skills/gabrielmoreira-predexon)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
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 gateway. Payment is automatic — an x402 USDC micropayment from the user's wallet, or a draw on BlockRun account credit if an API key is configured (both verified 2026-09-05).

**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 `conditionId`s, 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](https://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

Attribution

gabrielmoreiragabrielmoreira
View sourceMore from gabrielmoreira →
SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Related Skills

Rank Tracker

This skill helps you track, analyze, and report on keyword ranking positions over time. It monitors both traditional SERP rankings and AI/GEO visibility to provide comprehensive search performance insights.

1821 votes

Youtube Competitor Analyzer

Find and analyze YouTube competitor channels using YouTube Data API v3. Discover competitors through keyword search, category matching, content similarity, and related channel discovery. Compare metrics, content strategies, and market positioning. Use when users want to (1) Find competitors for their YouTube channel, (2) Analyze competitor performance metrics, (3) Compare their channel against competitors, (4) Identify content gaps and opportunities, (5) Benchmark against similar creators, (6...

31 votes

Twitter Algorithm Optimizer

Analyze and optimize tweets for maximum reach using Twitter's open-source algorithm insights. Rewrite and edit user tweets to improve engagement and visibility based on how the recommendation system ranks content.

742580 votes

Weather Fetcher

Instructions for fetching current weather temperature data for Karachi, Pakistan from wttr.in API

662660 votes

Weather

Get current weather and forecasts (no API key required).

480640 votes
View all in data →