web3-polymarket について
PolymarketのAPIやSDKを使う開発者向けのリファレンススキルです。取引、市場データ、WebSocketチャンネル、CTF操作と関連機能を、TypeScriptおよびPythonの例とともに扱います。
主な機能
- 01API認証と設定の説明
- 02注文の発注、管理、キャンセル
- 03市場データとオーダーブックの取得
- 04WebSocketチャンネルの購読
- 05CTFとブリッジ操作の参照
活用シーン
- 01Polymarket取引クライアントの構築
- 02オーダーブックと市場データの参照
- 03市場やユーザーのリアルタイム更新処理
- 04CTFポジションとブリッジ送金の操作
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ polymarket/ agent-skills --skill web3-polymarketインストール後、Claude Code で/web3-polymarketを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
authentication.mdREADME.mdgasless.mdwebsocket.mdctf-operations.mdorder-patterns.mdbridge.mdmarket-data.md詳細
Polymarket スキル
このスキルを使用するタイミング
ユーザーから次の内容について質問された場合、または構築する必要がある場合に、このスキルを使用します。
- Polymarket API 認証(L1/L2、API キー、HMAC 署名)
- 注文の発注または管理(指値、成行、GTC、GTD、FOK、FAK、一括、キャンセル)
- 板データの読み取り(価格、スプレッド、ミッドポイント、深度)
- 市場データの取得(イベント、市場、スラッグ別、タグ別、ページネーション)
- WebSocket サブスクリプション(市場チャンネル、ユーザーチャンネル、スポーツ)
- CTF 操作(ポジションの分割、統合、償還)
- ネガティブリスク市場(複数アウトカム、変換、拡張ネガティブリスク)
- ブリッジ操作(入金、出金、マルチチェーン)
- ガスレス取引(リレーヤークライアント、注文の帰属情報)
- Builder プログラム連携(注文の帰属情報、API キー、ティア)
- Polymarket SDK の使用(TypeScript @polymarket/clob-client、Python py-clob-client)
API 設定
| API | ベース URL | 認証 | 用途 |
|---|---|---|---|
| CLOB | https://clob.polymarket.com | 取引エンドポイントには L2 | 板、価格、注文送信 |
| Gamma / Data | https://gamma-api.polymarket.com | なし | イベント、市場、検索 |
| Data API | https://data-api.polymarket.com | なし | 取引、ポジション、ユーザーデータ |
| WebSocket(市場) | wss://ws-subscriptions-clob.polymarket.com/ws/market | なし | リアルタイムの板 |
| WebSocket(ユーザー) | wss://ws-subscriptions-clob.polymarket.com/ws/user | メッセージ内の API 認証情報 | 取引/注文の更新 |
| WebSocket(スポーツ) | wss://sports-api.polymarket.com/ws | なし | ライブスコア |
| リレーヤー | https://relayer-v2.polymarket.com/ | Builder ヘッダー | ガスレス取引 |
| ブリッジ | https://bridge.polymarket.com | なし | 入金/出金 |
コントラクトアドレス(Polygon)
| コントラクト | アドレス |
|---|---|
| USDC (USDC.e) | 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174 |
| CTF(条件付きトークン) | 0x4D97DCd97eC945f40cF65F87097ACe5EA0476045 |
| CTF Exchange | 0x4bFb41d5B3570DeFd03C39a9A4D8dE6Bd8B8982E |
| ネガティブリスク CTF Exchange | 0xC5d563A36AE78145C45a50134d48A1215220f80a |
| ネガティブリスクアダプター | 0xd91E80cF2E7be2e162c6513ceD06f1dD0dA35296 |
クライアントのセットアップ
TypeScript
import { ClobClient, Side, OrderType } from "@polymarket/clob-client";
import { Wallet } from "ethers"; // v5.8.0
const HOST = "https://clob.polymarket.com";
const CHAIN_ID = 137;
const signer = new Wallet(process.env.PRIVATE_KEY);
// Step 1: L1 — derive API credentials
const tempClient = new ClobClient(HOST, CHAIN_ID, signer);
const apiCreds = await tempClient.createOrDeriveApiKey();
// Step 2: L2 — init trading client
const client = new ClobClient(
HOST,
CHAIN_ID,
signer,
apiCreds,
2, // signatureType: 0=EOA, 1=POLY_PROXY, 2=GNOSIS_SAFE
"FUNDER_ADDRESS" // proxy wallet address from polymarket.com/settings
);
Python
from py_clob_client.client import ClobClient
import os
host = "https://clob.polymarket.com"
chain_id = 137
pk = os.getenv("PRIVATE_KEY")
# Step 1: L1 — derive API credentials
temp_client = ClobClient(host, key=pk, chain_id=chain_id)
api_creds = temp_client.create_or_derive_api_creds()
# Step 2: L2 — init trading client
client = ClobClient(
host,
key=pk,
chain_id=chain_id,
creds=api_creds,
signature_type=2, # 0=EOA, 1=POLY_PROXY, 2=GNOSIS_SAFE
funder="FUNDER_ADDRESS",
)
クイックリファレンス:注文タイプ
| タイプ | 動作 | 用途 |
|---|---|---|
| GTC | 約定またはキャンセルされるまで板に残ります | デフォルトの指値注文 |
| GTD | 有効期限(UTC 秒)まで有効です。最小値 = now + 60 + N | イベント前に自動失効させる |
| FOK | 直ちに全量約定するか、キャンセルします | 全量約定またはキャンセルの成行注文 |
| FAK | 約定可能な分を約定し、残りをキャンセルします | 部分約定する成行注文 |
- FOK/FAK の BUY:
amount= 支出する金額(ドル) - FOK/FAK の SELL:
amount= 売却する株数 - Post-only:GTC/GTD のみ — スプレッドをまたぐ場合は拒否されます
クイックリファレンス:署名タイプ
| タイプ | 値 | 説明 |
|---|---|---|
| EOA | 0 | 標準的な Ethereum ウォレット(MetaMask)。ファンダーは EOA アドレスで、ガス代用の POL が必要です。 |
| POLY_PROXY | 1 | Polymarket.com から PK をエクスポートした Magic Link メール/Google ユーザー向けのカスタムプロキシウォレットです。 |
| GNOSIS_SAFE | 2 | Gnosis Safe マルチシグプロキシウォレット(最も一般的)。新規ユーザーにも再訪ユーザーにも使用します。 |
基本パターン:注文を発注する
TypeScript
const response = await client.createAndPostOrder(
{
tokenID: "TOKEN_ID",
price: 0.50,
size: 10,
side: Side.BUY,
},
{
tickSize: "0.01", // from client.getTickSize(tokenID) or market object
negRisk: false, // from client.getNegRisk(tokenID) or market object
},
OrderType.GTC
);
console.log(response.orderID, response.status);
Python
from py_clob_client.clob_types import OrderArgs, OrderType
from py_clob_client.order_builder.constants import BUY
response = client.create_and_post_order(
OrderArgs(token_id="TOKEN_ID", price=0.50, size=10, side=BUY),
options={"tick_size": "0.01", "neg_risk": False},
order_type=OrderType.GTC,
)
print(response["orderID"], response["status"])
基本パターン:板を読み取る
TypeScript
// No auth needed
const readClient = new ClobClient("https://clob.polymarket.com", 137);
const book = await readClient.getOrderBook("TOKEN_ID");
console.log("Best bid:", book.bids[0], "Best ask:", book.asks[0]);
const mid = await readClient.getMidpoint("TOKEN_ID");
const spread = await readClient.getSpread("TOKEN_ID");
Python
read_client = ClobClient("https://clob.polymarket.com", chain_id=137)
book = read_client.get_order_book("TOKEN_ID")
mid = read_client.get_midpoint("TOKEN_ID")
spread = read_client.get_spread("TOKEN_ID")
基本パターン:WebSocket をサブスクライブする
const ws = new WebSocket("wss://ws-subscriptions-clob.polymarket.com/ws/market");
ws.onopen = () => {
ws.send(JSON.stringify({
type: "market",
assets_ids: ["TOKEN_ID"],
custom_feature_enabled: true,
}));
// Send PING every 10s to keep alive
setInterval(() => ws.send("PING"), 10_000);
};
ws.onmessage = (event) => {
if (event.data === "PONG") return;
const msg = JSON.parse(event.data);
// msg.event_type: "book" | "price_change" | "last_trade_price" | "tick_size_change" | "best_bid_ask" | "new_market" | "market_resolved"
};
参照ファイル(必要に応じて読み込んでください)
特定のトピックについて詳しい情報が必要な場合にのみ、以下をお読みください。
- 認証(L1/L2、ビルダーヘッダー、認証情報のライフサイクル):authentication.md
- 注文パターン(GTC/GTD/FOK/FAK、ティックサイズ、キャンセル、ハートビート、エラー):order-patterns.md
- マーケットデータ(Gamma API、Data API、CLOB オーダーブック、サブグラフ):market-data.md
- WebSocket(マーケット/ユーザー/スポーツのチャンネル、購読、ハートビート):websocket.md
- CTF 操作(分割、統合、償還、ネガティブリスク、トークン ID):ctf-operations.md
- ブリッジ(入金、出金、対応チェーン/トークン、ステータス):bridge.md
- ガスレス取引(リレイヤークライアント、ウォレットのデプロイ、ビルダーのセットアップ):gasless.md
コメント
Markdown 対応