polymarket-prediction-market について
Polymarketの市場、取引の仕組み、APIを解説するリファレンススキルです。市場データや取引に関する質問に答えるエージェント向けに、CLOBの価格形成からトークン決済、スポーツ市場の照合まで扱います。
主な機能
- 01YES/NO契約と推定確率の解説
- 02CLOBの注文板と注文タイプの説明
- 03トークン、担保、手数料、決済の説明
- 04公開・認証済みAPIエンドポイントの紹介
- 05スポーツ市場の命名と照合方法
活用シーン
- 01市場価格が示す確率の説明
- 02注文板データと取引用語の解釈
- 03スポーツ・eスポーツ市場の検索や比較
- 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) |
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
- Bid:買い手が支払う最高価格
- Ask:売り手が受け入れる最低価格
- スプレッド:最良買値と最良売値の差
- ミッド価格:(最良買値+最良売値)/ 2
取引の仕組み
注文タイプ
| タイプ | 説明 |
|---|---|
| GTC | Good-Til-Cancelled(取消まで有効)—約定または取消まで有効です |
| GTD | Good-Til-Date(指定日時まで有効)—指定した時刻に期限切れになります |
| FOK | Fill-Or-Kill(全量約定または取消)—全量約定するか、取り消されます |
ポジション管理
- YESを購入:アウトカムが真の場合に利益を得ます($1.00で決済)
- NOを購入:アウトカムが偽の場合に利益を得ます($1.00で決済)
- 売却:トークンを注文板に売り戻してポジションを解消します
- マージ:YESトークンとNOトークンを組み合わせて、$1.00のUSDCと交換します
手数料
- メイカー手数料:約0%(流動性を提供)
- テイカー手数料:約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"}
]
}
スポーツ&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?"
よくある名称のバリエーション
プラットフォーム間でマーケットを照合する際は、次のような表記の違いに注意してください。
| 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 | 都市名の略称 |
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
マーケット照合の戦略
プラットフォーム間の裁定取引では、次の方法で照合してください。
-
チーム名/選手名を正規化する
- 特殊文字を削除する:
FaZe Clan→faze clan - 略称に対応する:
TL→team liquid - 愛称を対応付ける:
NaVi→natus vincere
- 特殊文字を削除する:
-
主要なエンティティを抽出する
- チーム A の名前
- チーム B の名前
- トーナメント/リーグ名
- 試合の日時
-
類似度で照合する
- あいまい照合にはレーベンシュタイン距離を使用する
- 複数語の名前にはトークンの重複を使用する
- 同じ対戦カードかどうかは日付の近さで判断する
-
マーケットの種類を確認する
- 両方のマーケットが「試合の勝者」タイプであること
- 同じチーム/選手が関与していること
- 同じイベントの時間枠であること
例:プラットフォーム間の試合照合
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 Signatures | RSA 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が支払われます。」