mcpField
P
polyclaw

polyclaw

github.com/chainstacklabsその他359101 回インストール26 週間前に更新
リポジトリ

polyclaw について

polyclaw は OpenClaw 向けの Polymarket 取引スキルで、市場の検索、ウォレット管理、取引、ポジション追跡に対応します。LLM と論理的含意を使い、ヘッジ可能な市場の組み合わせも探します。

主な機能

  1. 01予測市場の検索と閲覧
  2. 02ウォレット設定と残高確認
  3. 03YES または NO ポジションの購入
  4. 04約定価格・現在価格・損益の追跡
  5. 05論理関係に基づくヘッジ候補の発見

活用シーン

  1. 01条件を指定して予測市場を検索
  2. 02ウォレットの状態と残高を確認
  3. 03YES または NO の市場ポジションを購入
  4. 04市場をスキャンしてヘッジ候補を探す

インストール

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

$npx skills add https://github.com/chainstacklabs/polyclaw --skill polyclaw

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
.gitignore
LICENSE
pyproject.toml
lib/
contracts.py
llm_client.py
clob_client.py
__init__.py
position_storage.py
coverage.py
gamma_client.py
wallet_manager.py
scripts/
hedge.py
markets.py
polyclaw.py
wallet.py
positions.py
redeem.py
trade.py

詳細

PolyClaw

OpenClaw 向けの取引機能を備えた Polymarket スキルです。マーケットの閲覧、ウォレットの管理、取引の実行、ポジションの追跡ができます。

機能

  • マーケットの閲覧 - Polymarket の予測マーケットを検索・閲覧します
  • ウォレットの管理 - 環境変数を使ってウォレットを設定します
  • 取引 - 分割と CLOB での執行を通じて YES/NO ポジションを購入します
  • ポジションの追跡 - エントリー価格、現在価格、損益を追跡します
  • ヘッジの発見 - LLM を活用し、論理的な含意に基づいてポートフォリオをカバーする組み合わせを見つけます

クイックスタート

まず、スキルのディレクトリから依存関係をインストールします。

cd {baseDir}
uv sync
初回セットアップ(取引に必須)

初めて取引する前に、Polymarket のコントラクト承認を設定してください(初回のみ。ガス代として約 0.01 POL が必要です)。

uv run python scripts/polyclaw.py wallet approve

この操作により、Polygon 上で 6 件の承認トランザクションが送信されます。ウォレットごとに一度だけ実行してください。

マーケットの閲覧
# Trending markets by volume
uv run python scripts/polyclaw.py markets trending

# Search markets
uv run python scripts/polyclaw.py markets search "election"

# Market details (returns full JSON with all fields)
uv run python scripts/polyclaw.py market <market_id>

出力オプション:

  • デフォルトでは、整形されたテーブル形式で出力されます(表示に適しています)
  • --full フラグを使うと、省略されていない質問全文が表示されます
  • scripts/markets.py --json trending を使い、--json フラグを指定すると、構造化された JSON 形式で出力されます
ウォレットの管理
# Check wallet status (address, balances)
uv run python scripts/polyclaw.py wallet status

# Set contract approvals (one-time)
uv run python scripts/polyclaw.py wallet approve

ウォレットは POLYCLAW_PRIVATE_KEY 環境変数で設定します。

取引
# Buy YES position for $50
uv run python scripts/polyclaw.py buy <market_id> YES 50

# Buy NO position for $25
uv run python scripts/polyclaw.py buy <market_id> NO 25
ポジション
# List all positions with P&L
uv run python scripts/polyclaw.py positions
ヘッジの発見

対偶論理を用いて互いにヘッジするマーケットポジションのペア、つまりポートフォリオをカバーする組み合わせを見つけます。

# Scan trending markets for hedges
uv run python scripts/polyclaw.py hedge scan

# Scan markets matching a query
uv run python scripts/polyclaw.py hedge scan --query "election"

# Analyze specific markets for hedging relationship
uv run python scripts/polyclaw.py hedge analyze <market_id_1> <market_id_2>

出力オプション:

  • デフォルトでは、Tier、カバー率、コスト、ターゲット、カバーを表示する整形されたテーブル形式で出力されます
  • --json フラグを使うと、構造化された JSON 形式で出力されます
  • --min-coverage 0.90 を使うと、カバー率の最小値でフィルタリングできます(デフォルトは 0.85)
  • --tier 1 を使うと、Tier でフィルタリングできます(1 が最良、デフォルトは 2)

カバー率の Tier:

  • Tier 1(高): カバー率 95% 以上 — 裁定取引に近い機会です
  • Tier 2(良): 90〜95% — 強力なヘッジです
  • Tier 3(中): 85〜90% — まずまずですが、無視できないリスクがあります
  • Tier 4(低): 85% 未満 — 投機的です(デフォルトでは除外されます)

LLM モデル: OpenRouter 経由で nvidia/nemotron-nano-9b-v2:free を使用します。モデルの選択は重要です。一部のモデルは根拠のない相関を見つける一方、DeepSeek R1 などは出力形式に問題があります。必要に応じて --model <model_id> で変更できます。

セキュリティ

MVP では、簡便さと Claude Code との互換性を優先し、秘密鍵を環境変数に保存します。

セキュリティに関する警告: このウォレットには少額のみを保管してください。定期的に安全なウォレットへ出金してください。

環境変数

変数必須説明
CHAINSTACK_NODEはい(取引)Polygon RPC URL
OPENROUTER_API_KEYはい(ヘッジ)LLM によるヘッジの発見に使用する OpenRouter API キー
POLYCLAW_PRIVATE_KEYはい(取引)EVM 秘密鍵(16 進数。0x プレフィックスの有無は問いません)
HTTPS_PROXY推奨CLOB 用のローテーションする住宅用プロキシ(例:IPRoyal)
CLOB_MAX_RETRIESいいえIP ローテーションを伴う CLOB の最大再試行回数(デフォルト:5)
POLY_BUILDER_CODEいいえ帰属表示用の Bytes32 ビルダーコード(polymarket.com/settings?tab=builder から取得)。設定するとすべての注文に付加されます。

セキュリティに関する警告: このウォレットには少額のみを保管してください。定期的に安全なウォレットへ出金してください。環境変数に秘密鍵を設定すると自動化には便利ですが、暗号化ストレージより安全性が低くなります。

取引の流れ

  1. ポジションを分割 - CTF コントラクトを通じて pUSD を YES トークンと NO トークンに分割します
  2. 不要な側を売却 - 不要な側を CLOB の注文板(V2)で売却します
  3. 結果 - 不要な側を売却してコストの一部を回収し、希望するポジションを保有します

例:0.70 ドルで YES を購入する場合

  • 100 pUSD を分割 → YES トークン 100 枚 + NO トークン 100 枚
  • NO トークン 100 枚を約 0.30 ドルで売却 → 約 27 pUSD を回収
  • 実質コスト:YES トークン 100 枚で約 73 ドル(エントリー価格:0.73 ドル)

USDC.e のみを保有している場合は、取引前に Collateral Onramp の wrap() 関数を使って 1:1 で pUSD にラップしてください。

Polymarket コントラクト(Polygon メインネット、CLOB V2)

  • pUSD(担保): 0xC011a7E12a19f7B1f670d46F03B03f3342E82DFB
  • USDC.e(オンランプ入力): 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174
  • 担保オンランプ: 0x93070a847efEf7F70739046A929D47a521F5B8ee
  • CTF(条件付きトークン): 0x4D97DCd97eC945f40cF65F87097ACe5EA0476045
  • CTF Exchange(V2): 0xE111180000d2663C0091e4f400237545B87B996B
  • Neg Risk CTF Exchange(V2): 0xe2222d279d744050d28e00520010520000310F59

依存関係

uv でインストールします(スキルのディレクトリから):

cd {baseDir}
uv sync

制限事項

  • 取引にはウォレットの承認設定が必要です(初回のみ)。
  • 流動性が不十分な場合、CLOB での売却に失敗することがあります。
CLOB の Cloudflare によるブロック

Polymarket の CLOB API は Cloudflare の保護機能を使用しており、データセンターの IP や一部の家庭用 ISP の IP を含む、多くの IP からの POST リクエストをブロックします。これは「不要なトークンを売却する」手順に影響します。

解決策:リトライロジック付きのレジデンシャルプロキシ

推奨される設定では、ローテーションするレジデンシャルプロキシ(例:IPRoyal、BrightData)を使用します。CLOB クライアントは、成功するまで新しい IP で自動的にリトライします。

export HTTPS_PROXY="http://user:[email protected]:12321"
export CLOB_MAX_RETRIES=10  # Default is 5

この設定では、プロキシが IP を切り替えてブロックされていない IP を見つけるため、CLOB 注文は通常 5~10 回のリトライ以内に成功します。

代替の回避策:

  1. --skip-sell を使用する — YES トークンと NO トークンの両方を保持し、polymarket.com で手動で売却します。
  2. プロキシを使用しない — スプリットは引き続き機能します。影響を受けるのは CLOB での売却のみです。

すべてのリトライ後に CLOB が失敗しても、スプリットは成功しています。出力に、手動で売却するトークンの数が表示されます。

トラブルシューティング

「利用可能なウォレットがありません」

POLYCLAW_PRIVATE_KEY 環境変数を設定してください。

export POLYCLAW_PRIVATE_KEY="0x..."
「pUSD が不足しています」

uv run python scripts/polyclaw.py wallet status で残高を確認してください。取引には pUSD(Polymarket USD)が必要です。USDC.e を保有している場合は、担保オンランプ(0x9307...B8ee)を介して 1:1 でラップしてください。polymarket.com の UI では自動的に行われますが、API ユーザーは手動でラップする必要があります。

「CLOB 注文に失敗しました」

CLOB での売却は、次の理由で失敗することがあります。

  • 売却価格で流動性が不足している
  • IP が Cloudflare にブロックされている(プロキシをお試しください)

スプリットは成功しています。トークンは保有していますが、不要な側を売却できなかっただけです。

「承認が設定されていません」

初回の取引にはコントラクトの承認が必要です。次を実行してください。

uv run python scripts/polyclaw.py wallet approve

ライセンス

Apache 2.0

コメント