mcpField
P
polymarket-api

polymarket-api

github.com/agiprolabs其他495307 次安装8 周前更新
代码仓库

关于 polymarket-api

polymarket-api 是一项面向 Polymarket 预测市场的开发技能,供需要读取市场数据、订阅行情或下单的开发者参考。它梳理 Gamma、CLOB、Data 和 WebSocket 接口、身份验证与链上结算注意事项,并建议优先查阅实时文档和官方 SDK。

主要功能

  1. 01查询市场、事件和价格元数据
  2. 02通过 CLOB 查看订单簿并下单或撤单
  3. 03读取历史交易数据
  4. 04订阅实时订单簿和交易更新
  5. 05说明 EIP-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 的端点和身份验证流程可能会在不另行通知的情况下变更。优先使用官方 py-clob-client SDK,而不是手动编写 HTTP 请求;它会处理 EIP-712 派生、API 凭据管理和订单签名。只有在 SDK 未提供所需功能时,才手动编写。


标识符模型

你会用到四种不同的 ID——如果混淆它们,查询可能会悄无声息地返回错误数据。

ID含义
condition_id市场的链上十六进制 ID(CTF 条件)
clob_token_idsYES/NO ERC-1155 代币 ID 对——由两个元素组成的列表
token_id单个结果代币——用于订单簿和 WebSocket 查询
event_id父级分组(例如“今天纽约市最高气温”的所有区间)

快速开始

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 网页界面创建的代理/Safe 账户(出资方地址是 Safe)。如果直接使用你控制的普通 EOA,请使用 signature_type=0。请阅读最新 SDK 文档——所选类型会影响订单在链上的签名方式。

钱包环境变量:POLYMARKET_PRIVATE_KEY、POLYMARKET_FUNDER。切勿将密钥硬编码。


API 概览

API主机身份验证用途
Gammahttps://gamma-api.polymarket.com无事件/市场/条件/价格元数据
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 天气市场通过 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 乐观预言机(代币持有者投票)。与 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、主机隔离、双交易所架构说明

评论

支持 Markdown