mcpField
P
polymarket-api

polymarket-api

github.com/agiprolabsその他456307 回インストール8 週間前に更新
リポジトリ

polymarket-api について

polymarket-apiは、Polymarketの予測市場を利用する開発者向けのスキルです。市場データの取得、更新の購読、注文に使うGamma、CLOB、Data、WebSocketの各インターフェースや認証、オンチェーン決済を解説し、最新ドキュメントと公式SDKの参照を勧めています。

主な機能

  1. 01市場、イベント、価格メタデータの取得
  2. 02CLOBでの板情報取得、注文、キャンセル
  3. 03過去の取引データへのアクセス
  4. 04板情報と取引更新のリアルタイム購読
  5. 05EIP-712認証とオンチェーン償還の解説

活用シーン

  1. 01市場やイベント情報の取得
  2. 02板を確認して注文やキャンセルを実行
  3. 03市場データやユーザー注文イベントを購読
  4. 04決着後に勝ちトークンをオンチェーンで償還

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/agiprolabs/claude-trading-skills --skill polymarket-api

インストール後、Claude Code で/polymarket-apiを入力して読み込まれたか確認します。

同梱ファイルreferences/clob-and-gamma-apis.mdreferences/settlement-and-ops.md

詳細

Polymarket API

Polymarket は、Polygon メインネット上の予測市場です。各市場は、Conditional Token Framework(CTF)が発行する YES/NO の ERC-1155 トークンのペアで構成され、USDC に対して 1:1 で担保されています。オフチェーンで CLOB マッチングを行い、オンチェーンで決済します。テイカー手数料は無料です。価格は [0.00, 1.00] USDC で、各市場の YES + NO ≈ 1.0 です。


API コードを書く前に、まず最新のドキュメントをお読みください。

Polymarket のエンドポイントや認証フローは、予告なく変更されています。EIP-712 の導出、API 認証情報の管理、注文の署名に対応しているため、独自に HTTP を実装するよりも公式の py-clob-client SDK を優先してください。SDK で必要な機能が提供されていない場合に限り、独自実装を行ってください。


識別子のモデル

4 種類の異なる ID を扱います。混同すると、クエリが誤ったデータを返しても気づかないことがあります。

ID内容
condition_id市場のオンチェーンの 16 進数 ID(CTF condition)
clob_token_idsYES/NO の ERC-1155 トークン ID のペア(2 要素のリスト)
token_id単一の結果トークン。板情報や WebSocket のクエリに渡します
event_id親グループ(例:「今日の NYC の最高気温」のすべての価格帯)

クイックスタート

1. 市場を読み取る — Gamma API(認証不要)
import httpx

# CRITICAL: default sort is OLDEST-first — always override or you silently get closed markets
events = httpx.get("https://gamma-api.polymarket.com/events", params={
    "tag_id": 103040,        # category tag (e.g. weather)
    "order": "endDate",
    "ascending": "false",    # must be string "false", not bool
    "closed": "false",
}).json()

# Each event → markets[], each market has:
#   condition_id, clob_token_ids (YES/NO pair), question, outcomes, outcomePrices
for event in events:
    for mkt in event.get("markets", []):
        yes_token, no_token = mkt["clobTokenIds"]  # split the pair here
        print(mkt["question"], mkt["outcomePrices"])

ページネーション: limit=100&offset=N を指定し、100 ずつ増やします。

2. 板情報と取引 — CLOB API(EIP-712 認証)
uv pip install py-clob-client
import os
from py_clob_client.client import ClobClient

client = ClobClient(
    "https://clob.polymarket.com",
    chain_id=137,                                     # Polygon mainnet
    key=os.environ["POLYMARKET_PRIVATE_KEY"],          # wallet private key — env only, NEVER hardcode
    signature_type=2,                                  # 2 = Gnosis Safe proxy (Polymarket UI accounts)
                                                       # 0 = direct EOA you fully control
)
# Derives API key/secret/passphrase from the wallet signature — call once per session
client.set_api_creds(client.create_or_derive_api_creds())

token_id = "<yes_token_from_clob_token_ids>"
book = client.get_order_book(token_id)     # bids/asks for one outcome token
price = client.get_price(token_id, side="BUY")

signature_type=2 は、Polymarket の Web UI が作成するプロキシ/Safe アカウント用です(funder アドレスは Safe です)。自分で直接管理する通常の EOA には signature_type=0 を使用してください。注文へのオンチェーン署名方法は、選択するタイプによって異なるため、最新の SDK ドキュメントをお読みください。

ウォレットの環境変数:POLYMARKET_PRIVATE_KEY、POLYMARKET_FUNDER。キーをコードに直接記述しないでください。


API の概要

APIホスト認証用途
Gammahttps://gamma-api.polymarket.comなしイベント/市場/condition/価格のメタデータ
CLOBhttps://clob.polymarket.comEIP-712板情報、注文の発注/キャンセル
Datahttps://data-api.polymarket.comなし過去の取引
WebSocketwss://ws-subscriptions-clob.polymarket.com/ws/なし(市場)/JWT(ユーザー)リアルタイムの板情報と取引ティック

チェーン:Polygon メインネット chain_id=137。担保:0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174 の USDC.e。


WebSocket

# Connect to: wss://ws-subscriptions-clob.polymarket.com/ws/market
# Subscribe message:
{"type": "market", "assets_ids": ["<token_id>", "<token_id2>"]}

イベントタイプ:book(購読時の完全なスナップショット)、price_change(差分更新)、last_trade_price。

ユーザーレベルの注文/約定イベントを受信するには、API 認証情報から生成した JWT を使って /ws/user に接続します。


オンチェーン決済と償還

Polymarket の気象市場は、対象都市圏の**現地時間(夏時間を含む)**における午前 0 時から翌午前 0 時までの Weather Underground の「History」タブに基づいて解決されます。LST(夏時間なし)と NWS CLI を使う Kalshi とは異なります。違いについては kalshi-weather-markets を参照してください。

解決後、勝利トークンは手動でオンチェーン償還する必要があります。

# Call CTF contract redeemPositions() — the SDK or direct web3.py call
# Winnings are NOT auto-swept to your wallet

国際市場での異議申し立ては、UMA optimistic oracle(トークン保有者による投票)にエスカレーションされます。Kalshi の CFTC-CCP 決済とは異なり、これは実際に結果が乖離するリスクです。複数の取引所を比較する際には、この点を考慮してください。


米国の地域制限/KYC 制約

米国居住者は Polymarket の利用をブロックされています。米国 IP アドレスからの API 呼び出しには、通常、許可された管轄区域の SOCKS5 プロキシが必要です(USE_PROXY 環境変数のフラグを使うパターンを採用し、プロキシアドレスをコードに直接記述しないでください)。この制約に加え、オンチェーン資金のロックアップや USDC と USD の交換に伴う摩擦があるため、個人規模で実行可能な Kalshi/Polymarket 裁定取引は限られます。


関連項目

  • 複数の取引所に適用できる戦略、ポジションサイズ、バックテストについては、prediction-market-strategy を参照してください
  • Kalshi の対応項目(RSA-PSS 認証、REST ホスト、ティッカー、注文スキーマ)については、kalshi-api を参照してください
  • 気象市場の決済の詳細(WU の現地時間+夏時間と Kalshi の LST、KLGA と KNYC の観測所)については、kalshi-weather-markets を参照してください

ファイル

参考資料
  • references/clob-and-gamma-apis.md — API の全容、すべてのエンドポイント、EIP-712 認証の詳細、ページネーション、注文スキーマ、取引パラメーターのデフォルト値
  • references/settlement-and-ops.md — WU/UMA による解決、redeemPositions、真実性の情報源の優先順位(IEM > WU > Open-Meteo)、問題があることが判明している日付、地域/KYC、ホストの分離、2 つの取引所を使うアーキテクチャに関する注記

コメント