mcpField
P
polymarket-prediction-market

polymarket-prediction-market

github.com/axwelbrand-byteその他384 回インストール
リポジトリ

polymarket-prediction-market について

Polymarketの市場、取引の仕組み、APIを解説するリファレンススキルです。市場データや取引に関する質問に答えるエージェント向けに、CLOBの価格形成からトークン決済、スポーツ市場の照合まで扱います。

主な機能

  1. 01YES/NO契約と推定確率の解説
  2. 02CLOBの注文板と注文タイプの説明
  3. 03トークン、担保、手数料、決済の説明
  4. 04公開・認証済みAPIエンドポイントの紹介
  5. 05スポーツ市場の命名と照合方法

活用シーン

  1. 01市場価格が示す確率の説明
  2. 02注文板データと取引用語の解釈
  3. 03スポーツ・eスポーツ市場の検索や比較
  4. 04APIアクセスと決済フローの理解

インストール

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

$npx skills add https://github.com/axwelbrand-byte/arbibot --skill polymarket-prediction-market

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

詳細

polymarket-prediction-market

Polymarketの予測市場(バイナリーイベント契約、CLOBの価格設定、注文板、条件付きトークン、API連携)を理解します。

使用可能なツール

  • 読み取り
  • 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のアウトカムを持つ、具体的な取引可能な契約
  • Tokens:各アウトカムは、固有のtoken_idを持つ個別のERC-1155トークンです

市場オブジェクト

Polymarketの市場データに含まれる主なフィールド:

フィールド説明
condition_id条件/イベントの一意の識別子
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
  • Bid:買い手が支払う最高価格
  • Ask:売り手が受け入れる最低価格
  • スプレッド:最良買値と最良売値の差
  • ミッド価格:(最良買値+最良売値)/ 2

取引の仕組み

注文タイプ
タイプ説明
GTCGood-Til-Cancelled(取消まで有効)—約定または取消まで有効です
GTDGood-Til-Date(指定日時まで有効)—指定した時刻に期限切れになります
FOKFill-Or-Kill(全量約定または取消)—全量約定するか、取り消されます
ポジション管理
  • YESを購入:アウトカムが真の場合に利益を得ます($1.00で決済)
  • NOを購入:アウトカムが偽の場合に利益を得ます($1.00で決済)
  • 売却:トークンを注文板に売り戻してポジションを解消します
  • マージ:YESトークンとNOトークンを組み合わせて、$1.00のUSDCと交換します
手数料
  • メイカー手数料:約0%(流動性を提供)
  • テイカー手数料:約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"}
  ]
}

スポーツ&eスポーツマーケット

Polymarket では、さまざまなスポーツやeスポーツのベッティングマーケットを提供しています。プラットフォーム間でマーケットを照合するには、命名規則とマーケット構造を理解することが重要です。

対応カテゴリー
カテゴリー例
eスポーツ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都市名の略称
eスポーツ特有のパターン
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. 類似度で照合する

    • あいまい照合にはレーベンシュタイン距離を使用する
    • 複数語の名前にはトークンの重複を使用する
    • 同じ対戦カードかどうかは日付の近さで判断する
  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 SignaturesRSA Signatures
手数料テイカー手数料 約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)

例

価格の説明

「$0.72 で取引されている YES トークンは、市場全体がこの結果の発生確率を 72%と見積もっていることを意味します。」

注文執行の説明

「$0.65 で YES を 100 株購入する指値注文は、その価格以下で誰かが売るまでオーダーブックに残ります。」

決済の説明

「Team Liquidが勝利した場合、YESトークンは1トークンあたり$1.00で決済されます。敗北した場合、YESトークンは無価値になりますが、NOトークンがあれば1トークンあたり$1.00が支払われます。」


参考資料

コメント