zest-auto-repay について
zest-auto-repay は、Stacks 上の Zest Protocol v2 の借入ポジションを監視し、LTV リスクを分析して返済額を計算または実行するスキルです。返済コマンドはエージェントフレームワークが実行し、支出上限、ウォレット準備金、クールダウンが適用されます。
主な機能
- 01対応資産の借入 LTV を監視
- 02リスク分類と清算までの距離を表示
- 03目標 LTV に向けた返済額を計算
- 04通常返済または緊急返済を実行
- 05支出上限とウォレット準備金を適用
活用シーン
- 01借入ポジションの LTV 変化を追跡
- 02LTV が清算基準に近づいた際のリスク評価
- 03目標 LTV に合わせた安全な返済額の算出
- 04高リスクポジションの債務を削減
MCP 対応
`zest_repay` MCP ツールを使い、エージェントフレームワークが実行する構造化 MCP コマンドオブジェクトを生成します。スキル自体はトランザクションを直接ブロードキャストしません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aibtcdev/ skills --skill zest-auto-repayインストール後、Claude Code で/zest-auto-repayを入力して読み込まれたか確認します。
同梱ファイルAGENT.mdzest-auto-repay.ts
詳細
できること
Stacks 上の Zest Protocol v2 の借入ポジションを守る、自律型の LTV ガーディアンです。対応するすべての資産(sBTC、wSTX、stSTX、USDC、USDH、stSTXbtc)のローン・トゥ・バリュー比率を継続的に監視し、ポジションが清算しきい値に近づいたことを検知すると、安全な一部返済を実行して健全な LTV に戻します。これは 書き込みを行うスキル であり、Zest Protocol 向けの初の自律型清算保護システムです。
エージェントに必要な理由
Zest Protocol では、LTV が約 85%(一部清算)または約 95%(全額清算)を超えると、借り手が清算されます。清算ペナルティによって担保価値が損なわれます。手動での監視は信頼性に欠け、時間外の価格変動が 10%に達すると、借り手が対応する前に清算が発生する可能性があります。このスキルにより、エージェントは次のことができるようになります。
- リスクを検知 — Zest のすべてのポジションの LTV を継続的に監視します
- 緊急度を分類 — ポジションを健全、警告、危険、緊急に分類します
- 安全な返済額を算出 — 目標 LTV に戻すために必要な最小返済額を計算します
- 保護を実行 — 適用される支出上限のもとで、負債を自動返済します
- 準備金を維持 — ウォレットの最低準備金しきい値を下回る返済は行いません
このスキルがない場合、レバレッジをかけた Zest のポジションは、24 時間 365 日、監視されない清算リスクにさらされます。
Zest Protocol との統合
Stacks メインネット上の Zest Protocol v2 と直接統合します。
SP1A27KFY4XERQCCRCARCYD1CC5N7M6688BSYADJ7.v0-4-marketからポジションデータを読み取ります- 対応する 6 つの資産すべてを監視します:sBTC、wSTX、stSTX、USDC、USDH、stSTXbtc
zest_repayMCP ツールを介して返済を実行します- オンチェーンのボールトコントラクトから最新の金利を取得します
- 自己返済と代理返済の両方に対応します
コマンド
doctor
ウォレット、残高、Zest API への接続、アクティブなポジション、現在の LTV など、環境の準備状況を確認します。
bun run zest-auto-repay/zest-auto-repay.ts doctor
run --action=status
LTV スコア、清算までの距離、リスク分類を含む、ポジションの詳細分析を行います。
bun run zest-auto-repay/zest-auto-repay.ts run --action=status
run --action=monitor
継続監視モードです。指定間隔ごとにポジションを確認し、LTV の変化を記録して、しきい値を超えた場合に警告します。読み取り専用のため、返済は実行しません。
bun run zest-auto-repay/zest-auto-repay.ts run --action=monitor --interval=300
run --action=repay
目標 LTV に戻すための安全な返済額を計算し、返済を実行します。すべての安全制限が適用されます。
bun run zest-auto-repay/zest-auto-repay.ts run --action=repay --asset=sBTC --target-ltv=60 --max-repay=50000
run --action=emergency-repay
LTV が危険な水準(>85%)に達した場合に、直ちに最大額の返済を行います。変動チェックを省略し、より高い支出上限を使用して、速度を優先します。
bun run zest-auto-repay/zest-auto-repay.ts run --action=emergency-repay --asset=sBTC
安全性に関する注意
すべての制限は、文書に記載されているだけではなく、TypeScript ファイル内で実装され、適用されています。
| 制御項目 | デフォルト | 適用内容 |
|---|---|---|
| 1 回の操作あたりの最大返済額 | 50,000 sats(0.0005 BTC) | --max-repay フラグで指定、ハード上限は 500,000 sats |
| 返済後の目標 LTV | 60% | --target-ltv フラグで指定、範囲は 30~75% |
| LTV の警告しきい値 | 70% | 警告を発します。自動アクションは行いません |
| LTV の危険しきい値 | 80% | 有効な場合、自動返済を実行します |
| LTV の緊急しきい値 | 85% | 緊急返済を実行します |
| ウォレットの最低準備金 | 5,000 sats | 常に適用され、この額を下回る返済は行いません |
| 返済間のクールダウン | 600 秒 | セッションごとに追跡します |
| 1 回の返済あたりの絶対的なハード上限 | 500,000 sats(0.005 BTC) | どのフラグでも上書きできません |
| 1 日あたりの絶対的なハード上限 | 1,000,000 sats(0.01 BTC) | どのフラグでも上書きできません |
出力仕様
すべてのコマンドは、構造化された JSON を出力します。
{
"status": "success | error | blocked",
"action": "Human-readable next step",
"data": { },
"error": { "code": "...", "message": "...", "next": "..." } | null
}
エラーコード
| コード | 意味 |
|---|---|
no_wallet | ウォレットがロック解除されていないか、STACKS_ADDRESS が設定されていません |
insufficient_balance | 返済に必要なトークンが不足しています(準備金を差し引いた後) |
no_position | アクティブな Zest の借入ポジションが見つかりません |
healthy_ltv | LTV が警告しきい値を下回っているため、対応は不要です |
exceeds_hard_cap | 要求された返済額が絶対的な安全上限を超えています |
exceeds_daily_cap | 1 日あたりの返済上限にすでに達しています |
cooldown_active | 次の返済操作まで待機する必要があります |
api_unreachable | Zest Protocol API から応答がありません |
repay_failed | オンチェーン返済トランザクションに失敗しました |
オンチェーン証明
| 証拠 | 詳細 |
|---|---|
| ウォレット | SP322ZK4VXT3KGDT9YQANN9R28SCT02MZ97Y24BRW |
| BTC アドレス | bc1qdfm56pmmq40me84aau2fts3725ghzqlwf6ys7p |
| sBTC 残高 | Zest で利用可能なウォレットで有効な 28,306 sats |
| DLMM NFT | Bitflow プール全体で 387 NFT(プロトコルをまたぐ DeFi 活動) |
| Stableswap LP | USDH-USDCx プールに 771M トークン |
| エージェント | Flying Whale — Genesis L2、aibtc.com 上の ERC-8004 #54 |
| エクスプローラー | Hiro で表示 |
アーキテクチャ
Agent invokes skill
-> doctor: pre-flight checks (wallet, gas, API, position, LTV)
-> status: fetch all Zest positions -> LTV scoring -> risk classification
-> monitor: continuous polling -> LTV tracking -> alert on threshold crossing
-> repay: pre-flight -> LTV check -> compute safe amount -> enforce caps -> emit repay tx
-> emergency-repay: minimal checks -> max safe repayment -> immediate execution
このスキルはトランザクションを直接ブロードキャストしません。パラメーターを計算し、エージェントフレームワークが実行する構造化された MCP コマンドオブジェクトを出力します。この分離により、オンチェーンへの書き込みを行う前に、常にエージェントが最終承認を行えるようになります。
既知の制約
- Zest Protocol v2 のメインネットのみ対応 — テストネットには対応していません
- 返済額は借入資産の最小単位で指定します
- zToken のシェアは時間とともに増加するため、引き出し額が供給額と異なる場合があります
- 利息は継続的に発生するため、確認の合間に LTV が上昇する可能性があります
- 極端なボラティリティが発生した場合、監視間隔の合間に清算される可能性があります
- 取引手数料には STX が必要です(返済額とは別です)
- 借入者に代わって返済するには、借入者のアドレスが必要です