mcpField
P
polymarket-prediction-market

polymarket-prediction-market

github.com/axwelbrand-byte其他384 次安装
代码仓库

关于 polymarket-prediction-market

用于理解 Polymarket 市场、交易机制和 API 的参考技能,面向需要回答相关问题的 Agent。内容涵盖 CLOB 定价、代币结算及体育市场匹配。

主要功能

  1. 01说明 YES/NO 合约与隐含概率
  2. 02介绍 CLOB 订单簿和订单类型
  3. 03涵盖代币、抵押品、费用与结算
  4. 04列出公开及认证 API 端点
  5. 05说明体育市场命名与匹配

适用场景

  1. 01解释市场价格代表的概率
  2. 02解读订单簿数据和交易术语
  3. 03查找或比较体育及电竞市场
  4. 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_idCondition/事件的唯一标识符
question市场问题文本
tokens结果代币数组(YES/NO)
token_id每种结果代币的唯一 ID
outcome代币结果名称("Yes" 或 "No")
price当前市场中间价($0.00-$1.00)
volumeUSDC 计价的总交易量
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%(获取流动性)
  • 费用可能会变动;请查看当前费率表

结算与结果确认

  1. 交易关闭:市场在 end_date_iso 停止接受订单
  2. 结果确认:预言机确定结果
  3. 结算:
    • 获胜代币可兑换 $1.00 USDC
    • 失败代币变得一文不值($0.00)
  4. 赎回:用户通过智能合约领取收益

API 约定

基础 URL
环境URL
CLOB APIhttps://clob.polymarket.com
Gamma APIhttps://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?"
常见名称变体

在不同平台间匹配市场时,请留意以下变体:

PolymarketKalshi说明
Team LiquidTeam Liquid、TL缩写
G2 EsportsG2、G2 eSports空格/大小写
FaZe ClanFaZe、Faze Clan大小写敏感
Natus VincereNaVi、Na'Vi常见昵称
Manchester UnitedMan United、Man U简称
Los Angeles LakersLA 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
市场匹配策略

进行跨平台套利时,请采用以下匹配方法:

  1. 规范化队伍/选手名称

    • 移除特殊字符:FaZe Clan → faze clan
    • 处理缩写:TL → team liquid
    • 映射昵称:NaVi → natus vincere
  2. 提取关键实体

    • 队伍 A 名称
    • 队伍 B 名称
    • 锦标赛/联赛名称
    • 比赛日期/时间
  3. 按相似度匹配

    • 使用 Levenshtein 距离进行模糊匹配
    • 使用词元重叠匹配多词名称
    • 使用日期接近程度匹配同一场对决
  4. 验证市场类型

    • 两个市场都必须是“比赛获胜者”类型
    • 涉及相同的队伍/选手
    • 事件时间范围相同
示例:跨平台匹配
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 的问题时:

  1. 澄清术语:说明价格代表隐含概率
  2. 强调 CLOB:与 AMM 不同,Polymarket 使用限价单
  3. 解释代币:YES/NO 是可分别交易的 ERC-1155 代币
  4. 说明费用:吃单手续费会降低利润率
  5. 说明结算:获胜代币可按恰好 $1.00 赎回
  6. 保持中立:不要提供财务建议或预测

套利背景(ArbiBot)

与 Kalshi 进行跨平台套利时:

概念PolymarketKalshi
结算$1.00 USDC$1.00 USD
订单类型CLOBCLOB
货币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 的赔付。”


参考资料

评论

支持 Markdown