agentleFS
baofeng-techbaofeng-tech/agent-skills-so/prediction-market-data/SKILL.md

prediction-market-data

Skill0 starsChanged 7 months agoMITView on GitHub

Access prediction market data from Polymarket and Kalshi, including markets, prices, trades, orderbooks, positions, and cross-platform market matching. Use when you need current odds, historical market data, or wallet-level prediction market analysis.

  • Reads credentials

1 other project uses a version of this, 1 of them edited.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

4 rules. About 0 are common, 4 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈4

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use this skill when you need to:

    line 21
  2. Distinctive:

    check current implied odds for an event

    line 23
  3. Distinctive:

    search open or resolved markets

    line 24
  4. Distinctive:

    Always query markets first.

    line 97

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Prediction Market Data 📈

Access Polymarket and Kalshi market data through AIsa.

Use this skill when you need to:

  • check current implied odds for an event
  • search open or resolved markets
  • inspect trade history, orderbooks, or candlesticks
  • review wallet activity, positions, or P&L
  • compare equivalent sports markets across platforms

Compatibility

Works with any agentskills.io-compatible harness, including:

  • Claude Code and Claude
  • OpenAI Codex
  • Cursor
  • Gemini CLI
  • OpenCode, Goose, OpenClaw, Hermes
  • and other harnesses that implement the Agent Skills specification

Requires Python 3, a POSIX shell, and AISA_API_KEY (available from aisa.one).

Quick Start

export AISA_API_KEY="your-key"

Common Requests

Probability Checks

"What are the odds of [event] happening?"

Market Sentiment

"Research the current market sentiment on the upcoming election."

Trading Analysis

"Analyze historical prices and orderbooks for this market."

Portfolio Tracking

"Track portfolio positions and P&L for wallet address X."

Arbitrage Detection

"Find arbitrage opportunities across Polymarket and Kalshi."

How to Look Up IDs

Most downstream endpoints require an ID returned by a market search. In practice, start with /markets, inspect the response, then pass the relevant identifier to the next endpoint.

  1. Polymarket token_id: Query /polymarket/markets, then use side_a.id or side_b.id with /polymarket/market-price/{token_id}.
  2. Polymarket condition_id: Query /polymarket/markets, then use condition_id with /polymarket/candlesticks/{condition_id}.
  3. Kalshi market_ticker: Query /kalshi/markets, then use market_ticker with /kalshi/market-price/{market_ticker}.

End-to-End Examples

Get the current price of a Polymarket market

Prices require a token_id, which comes from the /markets response. Always query markets first.

Step 1: Find a market and extract the token_id:

# Search for open election markets and grab a token_id
python scripts/prediction_market_client.py polymarket markets --search "election" --status open --limit 5

The response includes a side_a.id and side_b.id for each market; these are the token IDs for the Yes and No sides respectively:

{
  "markets": [
    {
      "title": "Will Trump nationalize elections?",
      "market_slug": "will-trump-nationalize-elections",
      "condition_id": "0xe6522d64f35a6843ebdbccab2e3d4a1385350be6d40a3de766330e207b71a8ba",
      "side_a": {
        "id": "44482086252598348208660011972852804909957485351743405768768577675743702971026",
        "label": "Yes"
      },
      "side_b": {
        "id": "68987475491741167427045844503509447338405188188495224371188027929166363674438",
        "label": "No"
      }
    }
  ]
}

Step 2: Fetch the current price using the token_id:

# Use side_a.id (Yes) or side_b.id (No) from Step 1
python scripts/prediction_market_client.py polymarket price 44482086252598348208660011972852804909957485351743405768768577675743702971026

The price is a decimal between 0 and 1 representing probability (for example, 0.20 means a 20% chance of Yes).


Get the current price of a Kalshi market

Step 1: Find a market and extract the market_ticker:

python scripts/prediction_market_client.py kalshi markets --search "fed rate" --status open --limit 5
{
  "markets": [
    {
      "title": "Will the federal funds rate be above 3.75% after the Mar 2026 meeting?",
      "market_ticker": "KXFED-26MAR-T3.75",
      "last_price": 6
    }
  ]
}

Step 2: Fetch the price using the market_ticker:

python scripts/prediction_market_client.py kalshi price KXFED-26MAR-T3.75

Core Capabilities

Polymarket

Markets

# Find markets on Polymarket
curl -X GET "https://api.aisa.one/apis/v1/polymarket/markets?search=election&status=open" \
  -H "Authorization: Bearer $AISA_API_KEY"

Market Price

# Step 1: query /polymarket/markets to get a token_id from side_a.id or side_b.id
# Step 2: pass that token_id here to get the current price
curl -X GET "https://api.aisa.one/apis/v1/polymarket/market-price/{token_id}" \
  -H "Authorization: Bearer $AISA_API_KEY"

Activity

# Fetch activity data for a specific user
curl -X GET "https://api.aisa.one/apis/v1/polymarket/activity?user={wallet_address}" \
  -H "Authorization: Bearer $AISA_API_KEY"

Trade History

# Fetch historical trade data
curl -X GET "https://api.aisa.one/apis/v1/polymarket/orders?market_slug={market_slug}" \
  -H "Authorization: Bearer $AISA_API_KEY"

Orderbook History

# Fetch historical orderbook snapshots for a specific asset
# token_id comes from side_a.id or side_b.id in /polymarket/markets response
curl -X GET "https://api.aisa.one/apis/v1/polymarket/orderbooks?token_id={token_id}" \
  -H "Authorization: Bearer $AISA_API_KEY"

Candlesticks

# Fetch historical candlestick data for a market
# condition_id comes from /polymarket/markets response
curl -X GET "https://api.aisa.one/apis/v1/polymarket/candlesticks/{condition_id}?interval=60" \
  -H "Authorization: Bearer $AISA_API_KEY"

Positions

# Fetch all Polymarket positions for a proxy wallet address
curl -X GET "https://api.aisa.one/apis/v1/polymarket/positions/wallet/{wallet_address}" \
  -H "Authorization: Bearer $AISA_API_KEY"

Wallet

# Fetch wallet information
curl -X GET "https://api.aisa.one/apis/v1/polymarket/wallet?eoa={wallet_address}" \
  -H "Authorization: Bearer $AISA_API_KEY"

Wallet Profit-and-Loss

# Fetch realized profit and loss (PnL) for a specific wallet address
curl -X GET "https://api.aisa.one/apis/v1/polymarket/wallet/pnl/{wallet_address}?granularity=day" \
  -H "Authorization: Bearer $AISA_API_KEY"

Kalshi

Markets

# Find markets on Kalshi
curl -X GET "https://api.aisa.one/apis/v1/kalshi/markets?search=fed%20rate" \
  -H "Authorization: Bearer $AISA_API_KEY"

Market Price

# Fetch the current market price for a Kalshi market
# market_ticker comes from /kalshi/markets response
curl -X GET "https://api.aisa.one/apis/v1/kalshi/market-price/{market_ticker}" \
  -H "Authorization: Bearer $AISA_API_KEY"

Trade History

# Fetch historical trade data for Kalshi markets
# ticker (market_ticker) comes from /kalshi/markets response
curl -X GET "https://api.aisa.one/apis/v1/kalshi/trades?ticker={ticker}" \
  -H "Authorization: Bearer $AISA_API_KEY"

Orderbook History

# Fetch historical orderbook snapshots for a specific Kalshi market
# ticker (market_ticker) comes from /kalshi/markets response
curl -X GET "https://api.aisa.one/apis/v1/kalshi/orderbooks?ticker={ticker}" \
  -H "Authorization: Bearer $AISA_API_KEY"

Cross-Platform

Sports Markets

# Find equivalent markets across platforms for sports events
curl -X GET "https://api.aisa.one/apis/v1/matching-markets/sports" \
  -H "Authorization: Bearer $AISA_API_KEY"

Sports Markets by Date

# Find equivalent markets across platforms for a sport on a given date
# sport options: nfl, mlb, cfb, nba, nhl, cbb, pga, tennis
# date format: YYYY-MM-DD
curl -X GET "https://api.aisa.one/apis/v1/matching-markets/sports/nba?date=2025-08-16" \
  -H "Authorization: Bearer $AISA_API_KEY"

Sport abbreviations:

AbbreviationSport
nflFootball
mlbBaseball
cfbCollege Football
nbaBasketball
nhlHockey
cbbCollege Basketball
pgaGolf
tennisTennis

API Endpoints Reference

Polymarket Endpoints (GET)

EndpointDescriptionKey Params
/polymarket/marketsFind marketssearch, status, market_slug, limit
/polymarket/market-price/{token_id}Get market pricetoken_id, at_time
/polymarket/activityGet user activityuser, start_time, end_time
/polymarket/ordersGet trade historymarket_slug, token_id, user
/polymarket/orderbooksGet orderbook historytoken_id, start_time, end_time
/polymarket/candlesticks/{condition_id}Get candlestick datacondition_id, start_time, end_time, interval
/polymarket/positions/wallet/{wallet_address}Get wallet positionswallet_address, limit
/polymarket/walletGet wallet infoeoa or proxy, with_metrics
/polymarket/wallet/pnl/{wallet_address}Get wallet PnLwallet_address, granularity

Kalshi Endpoints (GET)

EndpointDescriptionKey Params
/kalshi/marketsFind marketssearch, status, market_ticker
/kalshi/market-price/{market_ticker}Get market pricemarket_ticker, at_time
/kalshi/tradesGet trade historyticker, start_time, end_time
/kalshi/orderbooksGet orderbook historyticker, start_time, end_time

Cross-Platform Endpoints (GET)

EndpointDescriptionKey Params
/matching-markets/sportsFind matching sports marketspolymarket_market_slug or kalshi_event_ticker
/matching-markets/sports/{sport}Find sports markets by datesport (nfl|mlb|cfb|nba|nhl|cbb|pga|tennis), date (YYYY-MM-DD)

Response Schemas

Markets Response

Returns markets array:

  • title (string) - Market question (e.g., "Will Trump nationalize elections?")
  • market_slug (string) - URL-friendly identifier
  • condition_id (string) - Blockchain condition ID
  • start_time / end_time (integer) - Unix timestamps
  • completed_time (integer|null) - Null if still open
  • tags (array) - Category tags (e.g., ["politics", "us election"])
  • volume_1_week / volume_1_month / volume_1_year / volume_total (number) - Trading volume in USD
  • side_a / side_b (object) - id and label (typically "Yes"/"No")
  • winning_side (object|null) - Null if unresolved
  • image (string) - Market thumbnail URL

Activity Response

Returns activities array:

  • title (string) - Market title
  • market_slug (string) - Market identifier
  • side (string) - Trade side: BUY, SELL, or MERGE
  • shares (integer) - Raw share amount
  • shares_normalized (number) - Human-readable share amount
  • price (number) - Trade price (0-1, represents probability)
  • timestamp (integer) - Unix timestamp of the trade
  • user (string) - Wallet address of the trader
  • tx_hash (string) - Blockchain transaction hash

Understanding Odds

  • Prices are shown as decimals (0.65 = 65% probability)
  • "Yes" price represents the market-implied probability that the event happens
  • Higher volume can indicate deeper liquidity and stronger participation
  • Prices change as traders buy and sell shares

Pricing

APICost
Prediction market read query$0.01

Get Started

  1. Sign up at aisa.one
  2. Get your API key
  3. Add credits (pay-as-you-go)
  4. Set environment variable: export AISA_API_KEY="your-key"

Full API Reference

See API Reference for complete endpoint documentation.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.