mcpField
D
defi-portfolio-scanner

defi-portfolio-scanner

github.com/aibtcdevその他1140 回インストール1 日前に更新
リポジトリ

defi-portfolio-scanner について

defi-portfolio-scannerは、StacksウォレットのDeFiポジションを集約する読み取り専用スキルです。4つのプロトコルとウォレット残高を調べ、合計額やリスク指標を出力します。

主な機能

  1. 014つのDeFiプロトコルを並列スキャン
  2. 02Hiro API経由のウォレット残高取得
  3. 03USD推定額とプロトコル別内訳
  4. 04リスクスコア、要因、主要保有資産
  5. 05稼働確認と障害時の部分結果

活用シーン

  1. 01新規ポジション前の既存エクスポージャー確認
  2. 02Zestの融資LTV比率の監視
  3. 03集中度スコアに基づくリバランス判断
  4. 04ダッシュボードや通知向けスナップショット作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aibtcdev/skills --skill defi-portfolio-scanner

インストール後、Claude Code で/defi-portfolio-scannerを入力して読み込まれたか確認します。

同梱ファイルAGENT.mddefi-portfolio-scanner.ts

詳細

defi-portfolio-scanner

Stacks ウォレット向けの、複数プロトコルにまたがる DeFi ポジション集約ツールです。Stacks の主要な DeFi プロトコル 4 つをスキャンし、集計値とリスクスコアを含む統合ポートフォリオビューを生成します。

機能

defi-portfolio-scanner は、Stacks DeFi プロトコル 4 つに並列で問い合わせ、指定された STX アドレスの正規化された単一の JSON レポートを返します。

プロトコルスキャン対象
Bitflow HODLMM稼働中のすべての HODLMM プールにおける LP ポジション — トークンペア、シェア数量、推定 USD 価値
Zest Protocolレンディング預入(供給した担保)と有効な借入 — 資産、元本、LTV 比率
ALEX DEXALEX 流動性プールの LP シェアを表すプールトークン残高
Styx BridgeBitcoin L1 と Stacks 間の保留中および完了済みのブリッジ預入

このスキルは Hiro API にも問い合わせて基本のトークン残高を取得するため、ポートフォリオビューにはアクティブな DeFi ポジションに加えて、ウォレット内の未使用残高も含まれます。

エージェントが必要とする理由

DeFi 戦略を管理する自律型エージェントは、資産配分を決める前に、資本の運用先をまとめて把握する必要があります。このスキルがなければ、エージェントは各プロトコルに個別に問い合わせ、異なるレスポンススキーマを正規化し、集中度指標を手動で計算しなければなりません。このスキルはこれらを 1 回の呼び出しで行い、後続のスキルが直接利用できる、型が定義された予測可能な JSON コントラクトを返します。

一般的なエージェントのワークフロー:

  • 取引前チェック:新しい HODLMM ポジションに入る前に既存のエクスポージャーをスキャンし、過度な集中を避けます。
  • リスク監視:定期的なスキャンにより、Zest の LTV 比率が清算しきい値に近づいたときに検出します。
  • リバランスのトリガー:集中度が目標範囲を超えた場合、概要のリスクスコアをリバランスのロジックに利用できます。
  • レポート作成:ダッシュボードや Discord アラート向けに、人が読みやすいポートフォリオのスナップショットを生成します。

安全性に関する注意事項

  • 読み取り専用 — このスキルはオンチェーントランザクションを一切実行しません。各呼び出しは HTTP GET または Hiro API 経由の Clarity call-read です。
  • 秘密鍵不要 — このスキルは秘密鍵やシードフレーズを要求、受け入れ、保存することはありません。
  • ウォレットの変更なし — トークン残高とポジションを参照するだけで、変更することはありません。
  • レート制限を考慮 — リクエストにはタイムアウトが設定されています。また、いずれか 1 つのプロトコル API が利用できない場合は、明確なエラーフラグを付けた部分的な結果を返し、適切に縮退動作します。
  • メインネットのみ — すべてのエンドポイントは Stacks メインネットを対象とします。テストネットのアドレスではエラーにならず、空の結果が返されます。

コマンド

doctor

すべての上流依存関係のヘルスチェックを行います。エンドポイントごとのレイテンシと到達可能性の状態を返します。

bun run defi-portfolio-scanner.ts doctor

出力:エンドポイントごとの status: "ok" | "degraded" | "down" と、システム全体の状態を含む JSON オブジェクト。

scan --address <stx-address>

4 つすべてのプロトコルに加え、Hiro のトークン残高も対象にしたポジションの全件スキャンを行います。

bun run defi-portfolio-scanner.ts scan --address SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KR9

出力:以下を含む JSON オブジェクト:

  • wallet — 基本トークン残高(STX、sBTC、ステーブルコイン)
  • protocols.bitflow — HODLMM の LP ポジション配列
  • protocols.zest — LTV を含むレンディング/借入ポジション
  • protocols.alex — プールトークン残高と推定原資産
  • protocols.styx — ブリッジの預入記録
  • totals — すべてのプロトコルにわたる推定 USD 価値の合計
  • scannedAt — ISO-8601 タイムスタンプ
summary --address <stx-address>

計算済みのリスクスコアを含む、簡潔なポートフォリオ概要を返します。

bun run defi-portfolio-scanner.ts summary --address SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KR9

出力:以下を含む JSON オブジェクト:

  • address — スキャンしたアドレス
  • totalEstimatedUsd — ポートフォリオ価値の合計
  • protocolBreakdown — プロトコルごとの USD 配分と割合
  • riskScore — 0~100 の数値スコア(高いほどリスクが高い)
  • riskFactors — 人が読みやすいリスク所見の配列
  • topHoldings — 価値順の上位 5 ポジション
  • scannedAt — ISO-8601 タイムスタンプ

出力コントラクト

すべてのコマンドは、次のエンベロープに一致する JSON を返します。

{
  "success": true,
  "skill": "defi-portfolio-scanner",
  "command": "<command-name>",
  "data": { ... },
  "timestamp": "2026-03-31T12:00:00.000Z"
}

エラー時:

{
  "success": false,
  "skill": "defi-portfolio-scanner",
  "command": "<command-name>",
  "error": "Human-readable error message",
  "details": { ... },
  "timestamp": "2026-03-31T12:00:00.000Z"
}

データソース

ソースエンドポイント用途
Bitflow APIhttps://bff.bitflowapis.finance/api/app/v1/poolsHODLMM のプール一覧とポジションデータ
Zest ProtocolSP2VCQJGH7PHP2DJK7Z0V48AGBHQAW3R3ZW1QF4N.pool-borrow-v2-3 に対する Hiro call-readget-user-reserve-data による貸し出し/借り入れユーザーデータ
ALEX DEXhttps://api.alexlab.co/v1/pool_tokens/balances/<address>プールトークン残高
Styx Bridgehttps://app.styxfinance.com/apiブリッジの入金記録
Hiro APIhttps://api.hiro.so/extended/v1/address/<addr>/balancesトークン残高、コントラクトの読み取り

プロトコル横断型 DeFi ポートフォリオスキャナー

このスキルは、以下のプロトコル専用スキャナーからポジションを集約します。

#プロトコルスキャナー検出内容
1Bitflow HODLMMscanBitflow()/users/{addr}/positions/{pool}/bins を通じて、アクティブなすべての HODLMM プールにおける LP ビンポジションを検出します。LP 領収トークンについては Hiro をフォールバックとして使用します
2Zest ProtocolscanZest()pool-borrow-v2-3.get-user-reserve-data に対する Hiro call-read を通じて、供給担保と借り入れ残高を検出します。また、Hiro の残高から Zest 領収トークンも検出します
3ALEX DEXscanAlex()ALEX の /pool_tokens/balances API からプールトークン残高を取得します。ウォレット内の ALEX LP トークンについては Hiro をフォールバックとして使用します
4Styx BridgescanStyx()Styx の /deposits API から、保留中および完了済みの BTC→sBTC ブリッジ入金を検出します
5ウォレットの基本残高scanWalletBalances()Hiro API から STX、sBTC、およびすべての代替性トークン残高を取得し、遊休資本の基準値を提供します

5 つのスキャナーはすべて、Promise.all を使用して並列実行されます。各スキャナーは、status、positions、estimatedUsd を含む型付きの ProtocolResult<T> を返します。USD 推定額には、CoinGecko の STX および BTC の現物価格を使用します。

既知の制約

  1. USD 推定額は概算です。 このスキルは、プロトコル API のプール比率と最終確認価格を使用します。専用の価格オラクルには問い合わせません。価格変動が大きいときは、実際の市場価格から乖離する場合があります。
  2. Zest のユーザーデータにはアクティブなポジションが必要です。 Zest を利用したことのないアドレスでは、エラーではなく空の Zest セクションが返されます。
  3. ALEX のプールトークンのマッピングはベストエフォートです。 ALEX の公開 API を使用して、ALEX のプールトークンを基礎となるペアにマッピングします。新しくローンチされたプールは、ALEX API が更新されるまでマッピングされない場合があります。
  4. Styx API の可用性。 Styx ブリッジ API は、これまで他の 3 つの API より不安定でした。このスキルはタイムアウトを短く設定し、スキャン全体を失敗させるのではなく、Styx を "status": "unavailable" として報告します。
  5. レート制限。 頻繁なポーリング(1 分あたり約 10 回を超えるスキャン)により、Hiro API のレート制限に達する可能性があります。エージェントは結果をキャッシュし、同じアドレスのスキャン間隔を最低 30 秒にしてください。
  6. 履歴データはありません。 各スキャンは特定時点のスナップショットです。このスキルは以前のスキャンを保存したり比較したりしません。トレンドデータが必要なエージェントは、結果を外部に保存してください。

起源

AIBTC x Bitflow Skills Pay the Bills コンペティションの優勝者。 オリジナルの作者:@azagh72-creator コンペティション PR:https://github.com/BitflowFinance/bff-skills/pull/121

コメント