yield-hunter について
yield-hunter は、sBTC ウォレット残高を監視し、条件を満たす資金を Zest Protocol のレンディングプールに預けるコマンドラインスキルです。最低残高、手元に残す額、確認間隔を設定して定期運用したいウォレット保有者向けです。
主な機能
- 01Zest Protocol への sBTC 自動預け入れ
- 02預け入れしきい値と予備額の設定
- 03残高確認間隔の調整
- 04状態・履歴の確認とプロセス制御
- 05設定と状態の永続化
活用シーン
- 01残高がしきい値に達した際の sBTC 預け入れ
- 02指定額の sBTC を流動資金として確保
- 03預け入れ履歴と現在の Zest ポジションの確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ aibtcdev/ skills --skill yield-hunterインストール後、Claude Code で/yield-hunterを入力して読み込まれたか確認します。
同梱ファイルAGENT.mdyield-hunter.ts
詳細
Yield Hunter Skill
ウォレットの sBTC 残高を監視し、Zest Protocol のレンディングプールに自動で預け入れて利回りを得る、自律型の利回り獲得デーモンを提供します。デーモンはフォアグラウンドで実行され、Ctrl+C または stop サブコマンドで停止できます。
状態は実行間で ~/.aibtc/yield-hunter-state.json に保存されます。
要件:
- メインネットのみ(Zest Protocol はメインネット専用です)
- sBTC 残高のあるロック解除済みウォレット
- トランザクション手数料用の STX 残高(Stacks のガス代は sBTC ではなく STX で支払います)
使用方法
bun run yield-hunter/yield-hunter.ts <subcommand> [options]
サブコマンド
start
自律型の利回り獲得を開始します。停止するまでフォアグラウンドで実行されます。
bun run yield-hunter/yield-hunter.ts start [--threshold 10000] [--reserve 0] [--interval 600]
オプション:
--threshold <sats>(任意)— 預け入れ前の sBTC の最小残高(satoshi 単位。デフォルト:10000 = 0.0001 sBTC)--reserve <sats>(任意)— 預け入れずに流動性を保つ sBTC の金額(satoshi 単位。デフォルト:0 — すべて預け入れ)--interval <seconds>(任意)— チェック間隔(秒。デフォルト:600 = 10 分)
実行内容:
- ウォレットがロック解除済みで、メインネット上にあることを確認します
- Zest Protocol の現在の APY を取得します
- 直ちに残高を確認します
- 設定された間隔で定期的に確認するようスケジュールします
- ウォレットの sBTC が threshold + reserve 以上の場合、reserve を差し引いた残高を Zest に預け入れます
出力:
{
"success": true,
"message": "Yield hunter started",
"pid": 12345,
"config": {
"minDepositThreshold": "10000",
"minDepositThresholdFormatted": "0.00010000 sBTC",
"reserve": "0",
"reserveFormatted": "0.00000000 sBTC",
"checkIntervalSeconds": 600,
"asset": "sBTC"
},
"note": "Running in foreground. Press Ctrl+C to stop."
}
stop
実行中の利回り獲得プロセスを停止します。
bun run yield-hunter/yield-hunter.ts stop
実行中のデーモンに SIGTERM を送信します。既存の Zest ポジションには影響しません。
出力:
{
"success": true,
"message": "Yield hunter stopped (PID: 12345)",
"stats": {
"checksRun": 24,
"depositsExecuted": 3,
"totalDeposited": "300000",
"totalDepositedFormatted": "0.00300000 sBTC"
}
}
status
現在の利回り獲得の状態、設定、最近のアクティビティを取得します。
bun run yield-hunter/yield-hunter.ts status
ウォレットがアクティブでメインネット上にある場合は、現在のウォレット残高と Zest のポジションも取得します。
出力:
{
"running": true,
"pid": 12345,
"network": "mainnet",
"config": {
"minDepositThreshold": "10000",
"minDepositThresholdFormatted": "0.00010000 sBTC",
"reserve": "0",
"reserveFormatted": "0.00000000 sBTC",
"effectiveThreshold": "10000",
"checkIntervalMs": 600000,
"checkIntervalSeconds": 600,
"asset": "sBTC"
},
"stats": {
"lastCheck": "2024-01-01T12:00:00.000Z",
"totalDeposited": "300000",
"totalDepositedFormatted": "0.00300000 sBTC",
"checksRun": 24,
"depositsExecuted": 3,
"lastError": null,
"currentApy": "5.00%"
},
"currentPosition": {
"walletSbtc": "150000",
"walletSbtcFormatted": "0.00150000 sBTC",
"availableToDeposit": "150000",
"availableToDepositFormatted": "0.00150000 sBTC",
"zestSupplied": "300000",
"zestSuppliedFormatted": "0.00300000 sBTC",
"zestBorrowed": "0"
},
"recentLogs": [
{ "timestamp": "2024-01-01T12:00:00.000Z", "type": "info", "message": "Wallet sBTC: 0.00150000 sBTC" }
]
}
configure
利回り獲得の設定を更新します。変更は直ちに保存され、次のチェックサイクルから適用されます。
bun run yield-hunter/yield-hunter.ts configure [--threshold 20000] [--reserve 5000] [--interval 300]
オプション:
--threshold <sats>(任意)— 新しい預け入れ最小しきい値(satoshi 単位)--reserve <sats>(任意)— 新しい予備残高(satoshi 単位)--interval <seconds>(任意)— 新しいチェック間隔(秒。最小:10)
出力:
{
"success": true,
"changes": [
"Deposit threshold set to 0.00020000 sBTC",
"Reserve set to 0.00005000 sBTC"
],
"config": {
"minDepositThreshold": "20000",
"minDepositThresholdFormatted": "0.00020000 sBTC",
"reserve": "5000",
"reserveFormatted": "0.00005000 sBTC",
"checkIntervalMs": 600000,
"checkIntervalSeconds": 600,
"asset": "sBTC"
},
"note": "Changes saved. The running daemon will pick them up on the next check cycle."
}
注意事項
- 状態は
~/.aibtc/yield-hunter-state.jsonに保存されます - PID の追跡には
~/.aibtc/yield-hunter.pidを使用します - 預け入れには borrow-helper コントラクト経由で Zest Protocol の
supply関数を使用します - トランザクション手数料は STX で支払います。手数料用の STX 残高があることを確認してください
- デーモンはフォアグラウンドで実行されます。バックグラウンドで実行するには、プロセスマネージャー(例:
tmux、screen、pm2)を使用してください - デーモンが実行中でなくても
statusは動作します(保存された状態を読み込みます) - デーモンが実行中でなくても
configureは動作します(変更は次回のstart時に適用されます)
コメント
Markdown 対応