sbtc-auto-funnel について
sBTCを保有するエージェント向けの運用スキルです。準備金の基準と残高を照合してZest Protocolへの供給コマンドを作成し、実行はエージェントに委ねます。
主な機能
- 01オンチェーンのsBTC残高とZestポジションを確認
- 02準備金を超える供給可能額を計算
- 03ウォレット、プール、STXガスを確認
- 04実行せずにZest供給コマンドを作成
活用シーン
- 01準備金を超えるsBTCをZestへ回す
- 02実行前に残高、プール、ガスを確認
- 03取引を送信せず供給可能額を調べる
MCP 対応
残高確認にMCPツール` s btc_get_balance`ではなく` s btc_get_balance`?
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aibtcdev/ skills --skill sbtc-auto-funnelインストール後、Claude Code で/sbtc-auto-funnelを入力して読み込まれたか確認します。
同梱ファイルAGENT.mdsbtc-auto-funnel.ts
詳細
sBTC 自動ファネル
設定可能な準備金のしきい値と sBTC 残高を照合し、超過分を Zest Protocol の融資プールに振り向けて利回りを得ます。あらゆる収益のサトシをすぐに運用に回す、自律型 DeFi オペレーションを 1,400 サイクル以上実施した経験をもとに構築されています。
機能
エージェントは報奨金、受信した支払い、x402 サービス、取引から sBTC を獲得します。使われていないサトシは収益を生みません。このスキルは流動性のある sBTC 残高を確認し、準備金の下限と比較して、超過分を Zest に預け入れます。これにより、保有しているだけの資産を利回りのあるポジションに変えます。
エージェントに必要な理由
利回りの自動振り分けがないと、Zest の借り手から利息を得られるはずの sBTC が、エージェントの手元に使われないまま蓄積されます。この自動ファネルのパターンにより、収益が到着したのと同じサイクル内に運用へ回され、数百サイクルにわたって複利効果を得られます。
コマンド
doctor
事前チェックを行います。ウォレットの接続、sBTC 残高の読み取り、Zest プールへのアクセス、STX のガス代を確認します。
bun run sbtc-auto-funnel/sbtc-auto-funnel.ts doctor
run --action=check
読み取り専用の残高チェックです。流動性のある sBTC、Zest のポジション、準備金のしきい値、ファネルを実行できるかどうかを報告します。
bun run sbtc-auto-funnel/sbtc-auto-funnel.ts run --action=check
run --action=funnel
準備金を超える額を計算し、ガス代を検証して、Zest に預け入れる MCP コマンドを出力します。自動実行はしません。実行するかどうかはエージェントが判断します。
bun run sbtc-auto-funnel/sbtc-auto-funnel.ts run --action=funnel
install-packs
追加のパッケージは必要ありません。
安全性に関する注意
- 準備金の下限はコードで適用されます: デフォルトは 200,000 サトシです。ハードコードされた最小値は 50,000 サトシで、これより低く設定することはできません。
- ファネルの最小額: 10,000 サトシ未満は預け入れません(ガス代が利回りを上回るためです)。
- ガス代の検証: 続行には 150,000 uSTX が必要です。不足している場合は処理を中断します。
- 預け入れのみ: このスキルは借り入れを行いません。Zest への預け入れのみ行います。借り入れには別途、オペレーターの承認が必要です。
- 自動実行なし:
zest_supplyMCP コマンドのペイロードを出力します。ブロードキャストするかどうかはエージェントが判断します。 - 残高の検証: キャッシュされた値ではなく、API 経由でオンチェーン残高を読み取ります。古いデータによって預け入れが実行されることはありません。
出力仕様
{
"status": "success | error | blocked",
"action": "string",
"data": {
"balance": {
"sbtc_liquid": 271010,
"zest_position": 245000,
"reserve_threshold": 200000,
"excess": 71010,
"funnel_amount": 70000
},
"mcp_command": {
"tool": "zest_supply",
"params": { "asset": "sBTC", "amount": "70000" }
}
},
"error": null
}
オンチェーンでの証明
| 操作 | Txid | ブロック | 結果 |
|---|---|---|---|
| Zest に 70k サトシを預け入れ | aed49fc3... | 7377225 | (ok true) |
| Zest に 175k サトシを預け入れ | 以前の預け入れトランザクション | mainnet | (ok true) |
アーキテクチャ
[Agent earns sBTC] → [check balance] → [excess > reserve?]
↓ yes
[validate gas] → [output zest_supply command]
↓ no
[report: no action needed]
このスキルはステートレスであり、実行のたびに現在のオンチェーン残高を読み取ります。ローカルの状態ファイルは必要ありません。
制限事項
- 残高の読み取りには MCP ツール
sbtc_get_balanceを使用します。MCP サーバーに接続できない場合は、Hiro API にフォールバックします。 - Zest のポジションの読み取りには
zest_get_positionを使用します。ポジションデータは情報提供のみを目的としており、ファネルの判断には使用されません。 - 準備金のしきい値は実行ごとに設定できますが、誤って残高をすべて使い切らないよう、下限は 50k サトシに固定されています。
開発の経緯
AIBTC x Bitflow Skills Pay the Bills コンペティションの優勝作です。 原作者:@secret-mars コンペティションの PR:https://github.com/BitflowFinance/bff-skills/pull/83