stacking-lottery について
stacking-lottery は、stackspot.app のスタッキング抽選ポットを管理するコマンドラインスキルです。ポットの検索と状態照会、STX の拠出、スタッキング周期の開始、報酬請求に対応し、メインネット専用で書き込み操作にはアンロック済みウォレットが必要です。
主な機能
- 01ポット一覧とオンチェーン状態の確認
- 02ポットへの STX 拠出
- 03満額ポットのスタッキング開始
- 04当選者として sBTC 報酬を請求
- 05条件を満たすポットを解約して STX を回収
活用シーン
- 01ポットの価値、設定、ロック状態を確認
- 02定員に達する前にポットへ参加
- 03当選後に報酬を請求
- 04スタッキング開始前に解約して拠出分を回収
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aibtcdev/ skills --skill stacking-lotteryインストール後、Claude Code で/stacking-lotteryを入力して読み込まれたか確認します。
同梱ファイルAGENT.mdstacking-lottery.ts
詳細
スタッキング宝くじスキル
stackspot.appでスタッキング宝くじのポットを操作できます。
- ポットの検出 — 現在の価値とロック状態を含む、既知のポットコントラクトをすべて一覧表示します。
- ポットの状態 — ポットのオンチェーン状態をすべて照会します。価値、参加者数、ロック状態、設定、プール設定、詳細を確認できます。
- ポットへの参加 — ポットが満員になってスタッキングを開始する前に、STXを拠出します。
- ポットの開始 — 満員になったポットのスタッキングを、プラットフォームコントラクト経由で開始します。
- 報酬の請求 — VRFの当選者としてアドレスが選ばれた場合、sBTC報酬を請求します。
- ポットのキャンセル — ポットの開始前にキャンセルし、拠出したSTXを回収します。
仕組み: 参加者はSTXを拠出してポットに参加します。ポットが最大参加者数に達すると、プラットフォームコントラクトがProof of Transfer(PoX)を介して、1回の完全なサイクルでスタッキングを開始します。ロック解除時に、VRFで選ばれた当選者がスタッキングの利回りをsBTCで受け取ります。当選者を含むすべての参加者に、拠出したSTXが返却されます。
スタッキング宝くじの操作はすべてメインネット専用です。書き込み操作(join-pot、start-pot、claim-rewards、cancel-pot)には、ウォレットのロック解除が必要です(最初にbun run wallet/wallet.ts unlockを実行してください)。
使用方法
bun run stacking-lottery/stacking-lottery.ts <subcommand> [options]
サブコマンド
list-pots
現在のオンチェーン価値とロック状態を含む、既知のスタッキング宝くじのポットコントラクトをすべて一覧表示します。
bun run stacking-lottery/stacking-lottery.ts list-pots
出力:
{
"network": "mainnet",
"potCount": 3,
"pots": [
{
"name": "Genesis",
"contract": "SPT4SQP5RC1BFAJEQKBHZMXQ8NQ7G118F335BD85.Genesis",
"maxParticipants": 2,
"minAmountStx": 20,
"currentValueUstx": "40000000",
"isLocked": false
}
]
}
get-pot-state
指定したポットのオンチェーン状態をすべて取得します。読み取り専用関数をすべて照会します。価値、参加者数、ロック状態、設定、プール設定、詳細を確認できます。
bun run stacking-lottery/stacking-lottery.ts get-pot-state --contract-name <name>
オプション:
--contract-name(必須)— ポットのコントラクト名または完全な識別子(例:SPT4SQP5RC1BFAJEQKBHZMXQ8NQ7G118F335BD85.STXLFGまたはSTXLFG)
join-pot
ポットにSTXを拠出します。金額はポットの最低額以上である必要があります。ポットのスタッキングサイクルが完了し、すべての参加者が引き出せるようになるまで、STXはコントラクト内にロックされます。ウォレットのロック解除が必要です。
bun run stacking-lottery/stacking-lottery.ts join-pot --contract-name <name> --amount <microStx>
オプション:
--contract-name(必須)— ポットのコントラクト名(例:STXLFG)--amount(必須)— 拠出する金額(マイクロSTX単位。1 STX = 1,000,000マイクロSTX)
start-pot
満員になったポットのスタッキングを開始します。プラットフォームコントラクトを呼び出し、ポットのPoXスタッキングサイクルを開始します。ポットが最大参加者数に達している必要があります。ウォレットのロック解除が必要です。
bun run stacking-lottery/stacking-lottery.ts start-pot --contract-name <name>
オプション:
--contract-name(必須)— スタッキングを開始するポットのコントラクト名
claim-rewards
完了したポットのVRF当選者としてアクティブなウォレットが選ばれた場合、sBTC報酬を請求します。当選しなかった参加者はsBTCを受け取りませんが、同じ仕組みでSTXを受け取れます。ウォレットのロック解除が必要です。
bun run stacking-lottery/stacking-lottery.ts claim-rewards --contract-name <name>
オプション:
--contract-name(必須)— 報酬を請求するポットのコントラクト名
cancel-pot
ポットのスタッキング開始前にキャンセルします。参加者は拠出したSTXを回収できます。ポットがまだロックされていない(スタッキングが開始されていない)必要があります。ウォレットのロック解除が必要です。
bun run stacking-lottery/stacking-lottery.ts cancel-pot --contract-name <name>
オプション:
--contract-name(必須)— キャンセルするポットのコントラクト名
注意事項
- すべてのスタッキングくじ操作はメインネット専用です。テストネットでの呼び出しはエラーになります。
- 書き込み操作には、ウォレットのロック解除が必要です(先に
bun run wallet/wallet.ts unlockを実行してください)。 - STX のロックアップ: ポットに参加すると、STX は PoX スタッキングサイクル 1 周分(約 2 週間)ロックされます。短期間で使用する必要がある STX でポットに参加しないでください。
- VRF による当選者の選出: ロック解除時に参加者の中からランダムに 1 人が選ばれます。当選者はスタッキング報酬のすべてを sBTC で受け取ります。当選者を含むすべての参加者に、元の STX が返却されます。
- タイミングの制限: ポットを開始できるのは、PoX サイクルの準備フェーズ中のみです。start-pot が失敗した場合は、
bun run stacking/stacking.ts get-pox-infoを使って現在の PoX サイクルのフェーズを確認してください。 - コントラクトのアーキテクチャ: 個々のポットコントラクトは
SPT4SQP5RC1BFAJEQKBHZMXQ8NQ7G118F335BD85によってデプロイされます。プラットフォームコントラクトSP7FSE31MWSJJFTQBEQ1TT6TF3G4J6GDKE81SWD9.stackspotsは、ポットの開始と報酬の分配を調整します。 - 既知のポット: Genesis(参加者上限 2 人、最低 20 STX)、BuildOnBitcoin(上限 10 人、最低 100 STX)、STXLFG(上限 100 人、最低 21 STX)。