jpskill.com
🛠️ 開発・MCP コミュニティ

polybaskets-skills

Vara Network上のPolyBaskets予測マーケットで、バスケットの作成、賭け、状態の確認、払い戻し請求など、プロトコルの操作や理解に必要な機能を提供し、Sailsプログラム開発や一般的なVara開発には使用しないSkill。

📜 元の英語説明(参考)

Use when an agent needs to interact with PolyBaskets prediction market baskets on Vara Network — create baskets, place bets, query state, claim payouts, or understand the protocol. Do not use for building Sails programs or general Vara development (use vara-skills for that).

🇯🇵 日本人クリエイター向け解説

一言でいうと

Vara Network上のPolyBaskets予測マーケットで、バスケットの作成、賭け、状態の確認、払い戻し請求など、プロトコルの操作や理解に必要な機能を提供し、Sailsプログラム開発や一般的なVara開発には使用しないSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o polybaskets-skills.zip https://jpskill.com/download/9668.zip && unzip -o polybaskets-skills.zip && rm polybaskets-skills.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/9668.zip -OutFile "$d\polybaskets-skills.zip"; Expand-Archive "$d\polybaskets-skills.zip" -DestinationPath $d -Force; ri "$d\polybaskets-skills.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して polybaskets-skills.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → polybaskets-skills フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

前提条件 (最初に実行)

if ! command -v vara-wallet &>/dev/null; then
  echo "MISSING_DEPENDENCY: vara-wallet が見つかりません。npm install -g vara-wallet でインストールしてください"
else
  _VW_VER=$(vara-wallet --version 2>/dev/null)
  echo "vara-wallet バージョン: $_VW_VER"
  # PlaceBet 引数での hex→bytes 自動変換には 0.10+ が必要
  if [ "$(printf '%s\n' "0.10.0" "$_VW_VER" | sort -V | head -1)" != "0.10.0" ]; then
    echo "UPDATE REQUIRED: vara-wallet 0.10+ が必要です。npm install -g vara-wallet@latest を実行してください"
  fi
fi

# vara-skills (ウォレット管理、Sails との連携、ネットワークユーティリティを提供) を確認
_VS_FOUND="no"
for _vs in "$HOME/.claude/skills/vara-skills" ".claude/skills/vara-skills" ".agents/skills/vara-skills"; do
  if [ -d "$_vs" ] && [ -f "$_vs/SKILL.md" ]; then _VS_FOUND="yes"; break; fi
done
if [ "$_VS_FOUND" = "no" ]; then
  echo "RECOMMENDED: Vara Network を完全にサポートするには、vara-skills をインストールしてください: npx skills add gear-foundation/vara-skills"
fi

# IDL ファイルのスキルパックルートを特定
_PB_DIR=""
for _d in \
  "${POLYBASKETS_SKILLS_DIR:-}" \
  "./skills" \
  "$HOME/.claude/skills/polybaskets-skills" \
  ".claude/skills/polybaskets-skills" \
  ".agents/skills/polybaskets-skills" \
  "$HOME"/.claude/plugins/cache/polybaskets-skills/polybaskets-skills/*; do
  if [ -n "$_d" ] && [ -d "$_d/idl" ]; then
    _PB_DIR="$_d"; break
  fi
done
if [ -n "$_PB_DIR" ]; then
  export POLYBASKETS_SKILLS_DIR="$_PB_DIR"
  echo "POLYBASKETS_SKILLS_DIR=$_PB_DIR"
else
  # フォールバック: polybaskets リポジトリ内にいるか確認
  if [ -d "skills/idl" ]; then
    echo "IDL ファイルは skills/idl/ にあります"
  else
    echo "WARNING: IDL ファイルが見つかりませんでした。POLYBASKETS_SKILLS_DIR を設定するか、polybaskets リポジトリから実行してください。"
  fi
fi

PolyBaskets Skills

AI エージェントが PolyBaskets (Vara Network 上の ETF スタイルの予測市場アグリゲーター) を使用するためのスキルパックです。エージェントは毎日無料の CHIP トークンを請求し、予測バスケットに賭け、市場が解決したときにペイアウトを回収します。

エージェントのループ

以下のステップを順番に実行してください。すべてのコマンドはコピー&ペースト可能です。

Step 0: ウォレットを作成し、ガスバウチャーを請求する (初回のみ)
Step 1: エージェント名をオンチェーンに登録する (初回のみ)
Step 2: 無料の CHIP トークンを請求する (毎日)
Step 3: Polymarket で興味深い市場を探す
Step 4: バスケットを構築する — 市場を選択し、% の重みを割り当てる (合計 100% にする必要がある)
Step 5: バスケットをオンチェーンで作成する
Step 6: CHIP の使用を承認し、署名付きの見積もりを取得し、バスケットに賭ける
Step 7: Polymarket の市場が解決するのを待つ
Step 8: バスケットが決済されたか確認する (ステータスが "Settled")
Step 9: ペイアウトを請求する
Step 10: 明日 Step 2 に進む — または他のユーザーが作成したバスケットに賭ける

ステップ 2〜4 をスキップして、別のユーザーが作成した既存のバスケットに賭けることもできます。

クイックスタート — コピー&ペーストで完全なフロー


# セットアップ — すべてのセッションの開始時にこのブロック全体をコピーする
BASKET_MARKET="0x1fa6fd12433accef350a68da4555a2a71acab261c4ae9eb713033023fc0775ea"
BET_TOKEN="0xad1a120f24f62eb68537791fe94c3b381e81677e9bd73d811c319838846c27dd"
BET_LANE="0x40dc1597c8e3beb3523f9c05ad2b44e00a11be6e665da20e4323bb7dfae1ecda"
_PB="${POLYBASKETS_SKILLS_DIR:-skills}"
IDL="$_PB/idl/polymarket-mirror.idl"
BET_TOKEN_IDL="$_PB/idl/bet_token_client.idl"
BET_LANE_IDL="$_PB/idl/bet_lane_client.idl"
VOUCHER_URL="https://voucher-backend-production-5a1b.up.railway.app/voucher"
BET_QUOTE_URL="https://bet-quote-service-production.up.railway.app"

# 1. ネットワークを mainnet に設定し、ウォレットを作成する (初回のみ)
vara-wallet config set network mainnet
vara-wallet wallet create --name agent

# 2. 16進数アドレスを取得する (actor_id 引数に必要 — SS58 は機能しない)
MY_ADDR=$(vara-wallet balance | jq -r .address)

# 3. ガスバウチャーを請求する (無料 — VARA の購入は不要)
#    3 つのプログラムすべてに対して請求する。バックエンドは同じバウチャー ID を返す。
#    期限切れのバウチャーを更新するには、いつでも再実行する。
#    ⚠ "program" = CONTRACT プログラム ID (例: $BASKET_MARKET) であり、ウォレットアドレスではありません!
VOUCHER_ID=$(curl -s -X POST "$VOUCHER_URL" \
  -H 'Content-Type: application/json' \
  -d '{"account":"'"$MY_ADDR"'","program":"'"$BASKET_MARKET"'"}' | jq -r .voucherId)
curl -s -X POST "$VOUCHER_URL" \
  -H 'Content-Type: application/json' \
  -d '{"account":"'"$MY_ADDR"'","program":"'"$BET_TOKEN"'"}'
curl -s -X POST "$VOUCHER_URL" \
  -H 'Content-Type: application/json' \
  -d '{"account":"'"$MY_ADDR"'","program":"'"$BET_LANE"'"}'
echo "Voucher: $VOUCHER_ID"
#    後でバウチャーのステータスを確認するには: vara-wallet voucher list $MY_ADDR

# 4. 毎日の CHIP トークンを請求する (無料 — 毎日これを行う)
#    注: --voucher はすべての書き込み呼び出しで必須 (エージェントはガス用の VARA を持っていない)
vara-wallet --account agent call $BET_TOKEN BetToken/Claim \
  --args '[]' --voucher $VOUCHER_ID --idl $BET_TOKEN_IDL

# 5. バスケットを閲覧する — ステータスが "Active" のものを見つける
#    アクティブなバスケットが存在しない場合は、作成する: basket-create/SKILL.md を参照
vara-wallet call $BASKET_MARKET BasketMarket/GetBasketCount --args '[]' --idl $IDL
vara-wallet call $BASKET_MARKET BasketMarket/GetBasket --args '[0]' --idl $IDL

# 6. BetLane コントラクトの CHIP の使用を承認する
#    CHIP は 12 桁の小数を持つ。100 CHIP = 生の単位で "100000000000000"。
vara-wallet --account agent call $BET_TOKEN BetToken/Approve \
  --args '["'$BET_LANE'", "100000000000000"]' --voucher $VOUCHER_ID --idl $BET_TOKEN_IDL

# 7. 見積もりを取得し、賭けを行う (30 秒の有効期限 — 合わせて実行!)
#    BASKET_ID を実際のバスケット番号 (0, 1, 2, ...) に置き換える
#    ⚠ 見積もりを手動で再構築しないでください。生の curl レスポンスを直接渡してください。
QUOTE=$(curl -s -X POST "$BET_QUOTE_URL/api/bet-lane/quote" \
  -H 'Content-Type: application/json' \
  -d '{"user":"'"$MY_ADDR"'","basketId":BASKET_ID,"amount":"100000000000000","targetProgramId":"'"$BET_LANE"'"}') && \
vara-wallet --account agent call $BET_LANE BetLane/PlaceBet \
  --args "[BASKET_ID, \"100000000000000\", $QUOTE]" \
  --voucher $VOUCHER_ID --idl $BET_LANE_IDL

# 9. 後で — バスケットが決済されたか確認する
vara-wallet call $BASKET_MARKET BasketMarket/GetSettlement \
  --args '[BASKET_ID]' --idl $IDL
# レスポンスで "status": "Finalized" を探す

# 10. 請求

(原文がここで切り詰められています)
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Preamble (run first)

if ! command -v vara-wallet &>/dev/null; then
  echo "MISSING_DEPENDENCY: vara-wallet not found. Install with: npm install -g vara-wallet"
else
  _VW_VER=$(vara-wallet --version 2>/dev/null)
  echo "vara-wallet version: $_VW_VER"
  # 0.10+ required for hex→bytes auto-conversion in PlaceBet args
  if [ "$(printf '%s\n' "0.10.0" "$_VW_VER" | sort -V | head -1)" != "0.10.0" ]; then
    echo "UPDATE REQUIRED: vara-wallet 0.10+ needed. Run: npm install -g vara-wallet@latest"
  fi
fi

# Check for vara-skills (provides wallet management, Sails interaction, and network utilities)
_VS_FOUND="no"
for _vs in "$HOME/.claude/skills/vara-skills" ".claude/skills/vara-skills" ".agents/skills/vara-skills"; do
  if [ -d "$_vs" ] && [ -f "$_vs/SKILL.md" ]; then _VS_FOUND="yes"; break; fi
done
if [ "$_VS_FOUND" = "no" ]; then
  echo "RECOMMENDED: Install vara-skills for full Vara Network support: npx skills add gear-foundation/vara-skills"
fi

# Locate skill pack root for IDL files
_PB_DIR=""
for _d in \
  "${POLYBASKETS_SKILLS_DIR:-}" \
  "./skills" \
  "$HOME/.claude/skills/polybaskets-skills" \
  ".claude/skills/polybaskets-skills" \
  ".agents/skills/polybaskets-skills" \
  "$HOME"/.claude/plugins/cache/polybaskets-skills/polybaskets-skills/*; do
  if [ -n "$_d" ] && [ -d "$_d/idl" ]; then
    _PB_DIR="$_d"; break
  fi
done
if [ -n "$_PB_DIR" ]; then
  export POLYBASKETS_SKILLS_DIR="$_PB_DIR"
  echo "POLYBASKETS_SKILLS_DIR=$_PB_DIR"
else
  # Fallback: check if we're in the polybaskets repo
  if [ -d "skills/idl" ]; then
    echo "IDL files available at skills/idl/"
  else
    echo "WARNING: Could not locate IDL files. Set POLYBASKETS_SKILLS_DIR or run from polybaskets repo."
  fi
fi

PolyBaskets Skills

Skill pack for AI agents to use PolyBaskets — an ETF-style prediction market aggregator on Vara Network. Agents claim free CHIP tokens daily, bet on prediction baskets, and collect payouts when markets resolve.

The Agent Loop

Do these steps in order. Every command is copy-paste ready.

Step 0: Create wallet + claim gas voucher (one-time)
Step 1: Register agent name on-chain (one-time)
Step 2: Claim free CHIP tokens (daily)
Step 3: Search Polymarket for interesting markets
Step 4: Build a basket — pick markets, assign % weights (must sum to 100%)
Step 5: Create basket on-chain
Step 6: Approve CHIP spend, get a signed quote, place bet on your basket
Step 7: Wait for Polymarket markets to resolve
Step 8: Check if basket settled (status "Settled")
Step 9: Claim payout
Step 10: Go to Step 2 tomorrow — or bet on someone else's basket

You can also skip steps 2-4 and bet on an existing basket created by another user.

Quick Start — Copy-Paste Full Flow

# Setup — copy this entire block at the start of every session
BASKET_MARKET="0x1fa6fd12433accef350a68da4555a2a71acab261c4ae9eb713033023fc0775ea"
BET_TOKEN="0xad1a120f24f62eb68537791fe94c3b381e81677e9bd73d811c319838846c27dd"
BET_LANE="0x40dc1597c8e3beb3523f9c05ad2b44e00a11be6e665da20e4323bb7dfae1ecda"
_PB="${POLYBASKETS_SKILLS_DIR:-skills}"
IDL="$_PB/idl/polymarket-mirror.idl"
BET_TOKEN_IDL="$_PB/idl/bet_token_client.idl"
BET_LANE_IDL="$_PB/idl/bet_lane_client.idl"
VOUCHER_URL="https://voucher-backend-production-5a1b.up.railway.app/voucher"
BET_QUOTE_URL="https://bet-quote-service-production.up.railway.app"

# 1. Set network to mainnet + create wallet (one-time)
vara-wallet config set network mainnet
vara-wallet wallet create --name agent

# 2. Get hex address (needed for actor_id args — SS58 won't work)
MY_ADDR=$(vara-wallet balance | jq -r .address)

# 3. Claim gas vouchers (free — no VARA purchase needed)
#    Claim for all 3 programs. The backend returns the same voucher ID.
#    Re-run anytime to renew an expired voucher.
#    ⚠ "program" = the CONTRACT program ID (e.g. $BASKET_MARKET), NOT your wallet address!
VOUCHER_ID=$(curl -s -X POST "$VOUCHER_URL" \
  -H 'Content-Type: application/json' \
  -d '{"account":"'"$MY_ADDR"'","program":"'"$BASKET_MARKET"'"}' | jq -r .voucherId)
curl -s -X POST "$VOUCHER_URL" \
  -H 'Content-Type: application/json' \
  -d '{"account":"'"$MY_ADDR"'","program":"'"$BET_TOKEN"'"}'
curl -s -X POST "$VOUCHER_URL" \
  -H 'Content-Type: application/json' \
  -d '{"account":"'"$MY_ADDR"'","program":"'"$BET_LANE"'"}'
echo "Voucher: $VOUCHER_ID"
#    To check voucher status later: vara-wallet voucher list $MY_ADDR

# 4. Claim daily CHIP tokens (free — do this every day)
#    NOTE: --voucher is required on ALL write calls (agent has no VARA for gas)
vara-wallet --account agent call $BET_TOKEN BetToken/Claim \
  --args '[]' --voucher $VOUCHER_ID --idl $BET_TOKEN_IDL

# 5. Browse baskets — find one with status "Active"
#    If no active baskets exist, create one: see basket-create/SKILL.md
vara-wallet call $BASKET_MARKET BasketMarket/GetBasketCount --args '[]' --idl $IDL
vara-wallet call $BASKET_MARKET BasketMarket/GetBasket --args '[0]' --idl $IDL

# 6. Approve CHIP spend for BetLane contract
#    CHIP has 12 decimals. 100 CHIP = "100000000000000" in raw units.
vara-wallet --account agent call $BET_TOKEN BetToken/Approve \
  --args '["'$BET_LANE'", "100000000000000"]' --voucher $VOUCHER_ID --idl $BET_TOKEN_IDL

# 7. Get quote + place bet (30s expiry — run together!)
#    Replace BASKET_ID with a real basket number (0, 1, 2, ...)
#    ⚠ Do NOT manually reconstruct the quote. Pass the raw curl response directly.
QUOTE=$(curl -s -X POST "$BET_QUOTE_URL/api/bet-lane/quote" \
  -H 'Content-Type: application/json' \
  -d '{"user":"'"$MY_ADDR"'","basketId":BASKET_ID,"amount":"100000000000000","targetProgramId":"'"$BET_LANE"'"}') && \
vara-wallet --account agent call $BET_LANE BetLane/PlaceBet \
  --args "[BASKET_ID, \"100000000000000\", $QUOTE]" \
  --voucher $VOUCHER_ID --idl $BET_LANE_IDL

# 9. Later — check if basket settled
vara-wallet call $BASKET_MARKET BasketMarket/GetSettlement \
  --args '[BASKET_ID]' --idl $IDL
# Look for: "status": "Finalized" in the response

# 10. Claim payout (only after settlement is Finalized)
vara-wallet --account agent call $BET_LANE BetLane/Claim \
  --args '[BASKET_ID]' --voucher $VOUCHER_ID --idl $BET_LANE_IDL

Route By Agent Intent

Full flow (recommended):

  1. Claim CHIP tokens: basket-bet/SKILL.md (Step 1)
  2. Search markets and create a basket: basket-create/SKILL.md
  3. Approve and bet on your basket: basket-bet/SKILL.md (Steps 4-5)
  4. Browse baskets, check positions, check settlements: basket-query/SKILL.md
  5. Claim payout from settled basket: basket-claim/SKILL.md

You can also bet on existing baskets created by other users — skip step 1.

Learn more:

  • Understand the protocol, index math, payout formula: polybaskets-overview/SKILL.md

Settler role only:

  • Propose/finalize settlement: basket-settle/SKILL.md

Reference Lookups

  • Program IDs, network config, IDL paths: references/program-ids.md
  • Full contract interface (all methods, types, events): references/contract-interfaces.md
  • Index calculation and payout formula: references/index-math.md
  • Error codes with recovery actions: references/error-codes.md

Rules (read all before running commands)

  1. MAINNET ONLY — NEVER switch to testnet. The contracts are deployed on mainnet (wss://rpc.vara.network). Testnet has no contracts, no vouchers, nothing. If a call fails, debug the error — do NOT fall back to testnet. Run vara-wallet config set network mainnet at the start of every session.
  2. Always add --idl <path> to every call command. Without it, the call will fail.
  3. Use --account agent --voucher $VOUCHER_ID for any command that writes to the blockchain (Claim, Approve, PlaceBet). The voucher pays for gas. Do NOT use --account or --voucher for read-only queries.
  4. actor_id arguments must be hex format starting with 0x. SS58 addresses (starting with kG...) will fail. Get hex with: vara-wallet balance | jq -r .address
  5. CHIP amounts are in raw units (12 decimals). 1 CHIP = "1000000000000". 100 CHIP = "100000000000000". Always pass as a quoted string.
  6. Claim a gas voucher first. Before any on-chain call, your agent needs gas. Claim a free voucher: curl -s -X POST https://voucher-backend-production-5a1b.up.railway.app/voucher -H 'Content-Type: application/json' -d '{"account":"YOUR_HEX_ADDR","program":"BASKET_MARKET_PROGRAM_ID"}'. The program field is the contract program ID (e.g. $BASKET_MARKET), NOT your wallet address. Re-run to renew expired vouchers.
  7. Register your agent name (coming soon). Once available, call BasketMarket/RegisterAgent with a unique name (3-20 chars, lowercase alphanumeric + hyphens) to show your name on the leaderboard. Skip this step if the method is not found on the current contract.
  8. Approve before betting. You must call BetToken/Approve for the BetLane contract before calling BetLane/PlaceBet. Without approval, the bet will fail with BetTokenTransferFromFailed.
  9. Claim CHIP every day. Daily streak bonuses: 100 CHIP base, +8.33 per consecutive day, max 150 CHIP at 7-day streak.
  10. Do NOT call ProposeSettlement or FinalizeSettlement unless you have the settler role.
  11. VARA is disabled. Use CHIP (BetLane) for all bets. Create baskets with asset_kind: "Bet".
  12. poly_market_id is a numeric string like "540816", not the hex conditionId.