关于 polymarket-prediction-market
用于理解 Polymarket 市场、交易机制和 API 的参考技能,面向需要回答相关问题的 Agent。内容涵盖 CLOB 定价、代币结算及体育市场匹配。
主要功能
- 01说明 YES/NO 合约与隐含概率
- 02介绍 CLOB 订单簿和订单类型
- 03涵盖代币、抵押品、费用与结算
- 04列出公开及认证 API 端点
- 05说明体育市场命名与匹配
适用场景
- 01解释市场价格代表的概率
- 02解读订单簿数据和交易术语
- 03查找或比较体育及电竞市场
- 04了解 API 访问和结算流程
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ axwelbrand-byte/ arbibot --skill polymarket-prediction-market安装后在 Claude Code 中输入/polymarket-prediction-market确认已加载。
详细介绍
polymarket-prediction-market
了解 Polymarket 预测市场:二元事件合约、CLOB 定价、订单簿、条件代币和 API 集成。
允许使用的工具
- Read
- Grep
- Glob
- WebFetch
核心概念
Polymarket 使用 USDC 在 Polygon 上运营一个去中心化预测市场:
- 二元结果:每个市场都有 YES 和 NO 代币,结算价格为 $1.00 或 $0.00
- 价格 = 概率:YES 代币价格为 $0.65,意味着该结果的概率为 65%
- CLOB(中央限价订单簿):价格由限价订单决定,而非 AMM
- 条件代币框架(CTF):结果以 ERC-1155 代币表示
- USDC 抵押品:所有交易都使用 Polygon 网络上的 USDC
数据层级
Condition (Event)
└── Market
├── YES Token (token_id)
└── NO Token (token_id)
- Condition:概括性问题/事件(例如,“Team Liquid 会获胜吗?”)
- Market:具有 YES/NO 结果的特定可交易合约
- 代币:每种结果都对应一个独立的 ERC-1155 代币,并拥有唯一的 token_id
市场对象
Polymarket 市场数据中的关键字段:
| 字段 | 说明 |
|---|---|
condition_id | Condition/事件的唯一标识符 |
question | 市场问题文本 |
tokens | 结果代币数组(YES/NO) |
token_id | 每种结果代币的唯一 ID |
outcome | 代币结果名称("Yes" 或 "No") |
price | 当前市场中间价($0.00-$1.00) |
volume | USDC 计价的总交易量 |
liquidity | 订单簿中的可用流动性 |
end_date_iso | 市场停止交易的时间 |
active | 市场当前是否可交易 |
closed | 市场是否已结算 |
resolved | 结算状态 |
resolution | 已结算时的最终结果 |
订单簿结构
Polymarket 使用中央限价订单簿(CLOB):
Order Book for "YES" Token
--------------------------
BIDS (Buy Orders) | ASKS (Sell Orders)
$0.62 - 500 shares | $0.64 - 300 shares
$0.61 - 1000 shares | $0.65 - 800 shares
$0.60 - 2000 shares | $0.66 - 1500 shares
- 买价:买方愿意支付的最高价格
- 卖价:卖方愿意接受的最低价格
- 价差:最佳买价与最佳卖价之差
- 中间价:(最佳买价 + 最佳卖价)/ 2
交易机制
订单类型
| 类型 | 说明 |
|---|---|
| GTC | 撤销前有效——持续有效,直到成交或撤销 |
| GTD | 指定日期前有效——在指定时间到期 |
| FOK | 全部成交或取消——必须全部成交,否则取消 |
仓位管理
- 买入 YES:如果结果为真则获利(结算价为 $1.00)
- 买入 NO:如果结果为假则获利(结算价为 $1.00)
- 卖出:将代币卖回订单簿以平仓
- 合并:合并 YES + NO 代币,兑换 $1.00 USDC
费用
- Maker 费用:约 0%(提供流动性)
- Taker 费用:约 1-2%(获取流动性)
- 费用可能会变动;请查看当前费率表
结算与结果确认
- 交易关闭:市场在
end_date_iso停止接受订单 - 结果确认:预言机确定结果
- 结算:
- 获胜代币可兑换 $1.00 USDC
- 失败代币变得一文不值($0.00)
- 赎回:用户通过智能合约领取收益
API 约定
基础 URL
| 环境 | URL |
|---|---|
| CLOB API | https://clob.polymarket.com |
| Gamma API | https://gamma-api.polymarket.com |
公开端点(无需身份验证)
| 端点 | 说明 |
|---|---|
GET /markets | 列出所有市场 |
GET /markets/{condition_id} | 获取指定市场 |
GET /book | 获取某个代币的订单簿 |
GET /price | 获取当前价格 |
GET /midpoint | 获取市场中间价 |
需要身份验证的端点
| 端点 | 说明 |
|---|---|
POST /order | 下新订单 |
DELETE /order/{order_id} | 撤销订单 |
GET /orders | 获取用户的未结订单 |
GET /trades | 获取用户的交易历史 |
身份验证
Polymarket 使用 EIP-712 签名进行身份验证:
Headers:
POLY_ADDRESS: <wallet_address>
POLY_SIGNATURE: <eip712_signature>
POLY_TIMESTAMP: <unix_timestamp>
POLY_NONCE: <random_nonce>
WebSocket(实时更新)
连接到 wss://ws-subscriptions-clob.polymarket.com/ws/,获取:
price- 实时价格更新book- 订单簿变动trades- 交易执行通知
API 响应示例
市场对象
{
"condition_id": "0x1234...",
"question": "Will Team Liquid win the CS2 Major?",
"tokens": [
{
"token_id": "12345",
"outcome": "Yes",
"price": 0.65
},
{
"token_id": "12346",
"outcome": "No",
"price": 0.35
}
],
"volume": "150000.00",
"liquidity": "25000.00",
"end_date_iso": "2024-03-15T00:00:00Z",
"active": true,
"closed": false
}
订单簿响应
{
"token_id": "12345",
"bids": [
{"price": "0.64", "size": "500"},
{"price": "0.63", "size": "1000"}
],
"asks": [
{"price": "0.66", "size": "300"},
{"price": "0.67", "size": "800"}
]
}
体育与电竞市场
Polymarket 提供各种体育和电竞投注市场。了解命名惯例和市场结构,对于在不同平台间匹配市场至关重要。
支持的类别
| 类别 | 示例 |
|---|---|
| 电竞 | CS2、League of Legends、Valorant、Dota 2、Call of Duty |
| 篮球 | NBA 比赛、季后赛、锦标赛 |
| 足球 | Premier League、UEFA、Champions League、World Cup |
| 美式橄榄球 | NFL 比赛、Super Bowl |
| 网球 | ATP、WTA、大满贯赛事(Wimbledon、US Open 等) |
| MMA/格斗 | UFC 赛事、Bellator |
市场命名惯例
Polymarket 体育市场通常遵循以下模式:
Match Winner:
"Will [Team A] beat [Team B]?"
"Will [Team A] win against [Team B]?"
"[Team A] vs [Team B] - Winner"
Tournament Winner:
"Will [Team/Player] win [Tournament]?"
"[Tournament] Winner: [Team/Player]"
Player Props:
"Will [Player] score [X] points?"
"Will [Player] get [X] kills?"
常见名称变体
在不同平台间匹配市场时,请留意以下变体:
| Polymarket | Kalshi | 说明 |
|---|---|---|
| Team Liquid | Team Liquid、TL | 缩写 |
| G2 Esports | G2、G2 eSports | 空格/大小写 |
| FaZe Clan | FaZe、Faze Clan | 大小写敏感 |
| Natus Vincere | NaVi、Na'Vi | 常见昵称 |
| Manchester United | Man United、Man U | 简称 |
| Los Angeles Lakers | LA Lakers、Lakers | 城市简称 |
电竞专属模式
CS2(Counter-Strike 2)
Market formats:
"Will Team Liquid win vs FaZe Clan?"
"Team Liquid vs FaZe - CS2 Major"
"CS2 Major Champion: Team Liquid"
Common tournaments:
- Major Championships (Copenhagen, Shanghai)
- ESL Pro League
- BLAST Premier
- IEM (Intel Extreme Masters)
League of Legends
Market formats:
"Will T1 win Worlds 2024?"
"T1 vs Gen.G - LCK Finals"
"League of Legends World Champion"
Common tournaments:
- Worlds (World Championship)
- MSI (Mid-Season Invitational)
- LCK, LEC, LCS (Regional leagues)
Valorant
Market formats:
"Will Sentinels win VCT Champions?"
"Sentinels vs LOUD - VCT Finals"
Common tournaments:
- VCT Champions
- VCT Masters
- Regional Challengers
Call of Duty
Market formats:
"Will OpTic win CDL Championship?"
"OpTic vs FaZe - CDL Major"
Common tournaments:
- CDL (Call of Duty League) Majors
- CDL Championship
- Warzone events
传统体育模式
NBA 篮球
Market formats:
"Will the Lakers beat the Celtics?"
"Lakers vs Celtics - NBA Finals Game 1"
"NBA Champion 2024"
Identifiers:
- Team city + name (Los Angeles Lakers)
- Just team name (Lakers)
- Abbreviations (LAL)
足球
Market formats:
"Will Manchester City beat Arsenal?"
"Man City vs Arsenal - Premier League"
"Champions League Winner 2024"
Leagues/Tournaments:
- Premier League (England)
- La Liga (Spain)
- Serie A (Italy)
- Bundesliga (Germany)
- UEFA Champions League
- UEFA Europa League
- World Cup
NFL 美式橄榄球
Market formats:
"Will the Chiefs beat the Eagles?"
"Chiefs vs Eagles - Super Bowl"
"Super Bowl LVIII Winner"
Identifiers:
- City + name (Kansas City Chiefs)
- Just name (Chiefs)
- Abbreviations (KC)
网球
Market formats:
"Will Djokovic win Wimbledon?"
"Djokovic vs Alcaraz - Wimbledon Final"
"US Open Men's Singles Winner"
Tournaments:
- Grand Slams: Australian Open, French Open, Wimbledon, US Open
- ATP/WTA Masters events
MMA/UFC
Market formats:
"Will Jon Jones beat Stipe Miocic?"
"Jones vs Miocic - UFC 309"
"UFC Heavyweight Champion after UFC 309"
Identifiers:
- Fighter full name
- Last name only
- Nickname ("Bones" for Jon Jones)
体育市场的 API 筛选
以编程方式查找体育市场:
// Filter by tags/categories
GET /markets?tag=sports
GET /markets?tag=esports
GET /markets?tag=nba
GET /markets?tag=cs2
// Search by keywords in question
GET /markets?search=NBA
GET /markets?search=Team%20Liquid
GET /markets?search=UFC
// Filter active sports markets
GET /markets?active=true&tag=sports
市场匹配策略
进行跨平台套利时,请采用以下匹配方法:
-
规范化队伍/选手名称
- 移除特殊字符:
FaZe Clan→faze clan - 处理缩写:
TL→team liquid - 映射昵称:
NaVi→natus vincere
- 移除特殊字符:
-
提取关键实体
- 队伍 A 名称
- 队伍 B 名称
- 锦标赛/联赛名称
- 比赛日期/时间
-
按相似度匹配
- 使用 Levenshtein 距离进行模糊匹配
- 使用词元重叠匹配多词名称
- 使用日期接近程度匹配同一场对决
-
验证市场类型
- 两个市场都必须是“比赛获胜者”类型
- 涉及相同的队伍/选手
- 事件时间范围相同
示例:跨平台匹配
Polymarket Market:
Question: "Will Team Liquid beat G2 Esports?"
YES price: $0.55
End date: 2024-03-15
Kalshi Market:
Title: "Team Liquid vs G2 - CS2 Major Semifinal"
YES price: $0.52
NO price: $0.51
Matching confidence: HIGH
- Same teams (Team Liquid, G2)
- Similar timeframe
- Both match-winner markets
Arbitrage check:
Polymarket NO: $0.45
Kalshi YES: $0.52
Total: $0.97 → $0.03 profit potential
应用指南
回答有关 Polymarket 的问题时:
- 澄清术语:说明价格代表隐含概率
- 强调 CLOB:与 AMM 不同,Polymarket 使用限价单
- 解释代币:YES/NO 是可分别交易的 ERC-1155 代币
- 说明费用:吃单手续费会降低利润率
- 说明结算:获胜代币可按恰好 $1.00 赎回
- 保持中立:不要提供财务建议或预测
套利背景(ArbiBot)
与 Kalshi 进行跨平台套利时:
| 概念 | Polymarket | Kalshi |
|---|---|---|
| 结算 | $1.00 USDC | $1.00 USD |
| 订单类型 | CLOB | CLOB |
| 货币 | USDC(Polygon) | USD |
| 身份验证 | EIP-712 签名 | RSA 签名 |
| 费用 | 约 1-2% 吃单费 | 可变/二次费用 |
有效的套利策略
当总成本 < $1.00 时,在不同平台买入相反结果:
Example:
Polymarket YES @ $0.45
Kalshi NO @ $0.48
Total Cost: $0.93
Guaranteed Profit: $0.07 (one side pays $1.00)
示例
解释价格
“YES 代币以 $0.72 交易,意味着市场整体估计该结果发生的概率为 72%。”
描述订单执行
“你的限价单以 $0.65 买入 100 股 YES,将留在订单簿中,直到有人以该价格或更低价格卖出。”
结算说明
“如果 Team Liquid 获胜,你的 YES 代币将按每枚 $1.00 结算。如果他们落败,这些代币将变得一文不值,但任何 NO 代币都将获得 $1.00 的赔付。”