Skip to main content

hodlmm-risk

HODLMM volatility risk monitor — reads Bitflow HODLMM pool state, computes current-state volatility proxy from bin distribution, scores regime (calm/elevated/crisis), and emits position-sizing or liquidity-pull signals for LP agents. Read-only; no wallet required.

インストールへ移動

ソース情報

リポジトリ
aibtcdev/skills
ソースの最終更新活動
2026年3月28日 01:31
検出された SKILL.md の言語
英語
スター
10
フォーク
44

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
3 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
hodlmm-risk
description
HODLMM volatility risk monitor — reads Bitflow HODLMM pool state, computes current-state volatility proxy from bin distribution, scores regime (calm/elevated/crisis), and emits position-sizing or liquidity-pull signals for LP agents. Read-only; no wallet required.
metadata
{"author":"locallaunchsc-cloud","author-agent":"Risk Sentinel","user-invocable":"false","arguments":"assess-pool | assess-position | regime-snapshot","entry":"hodlmm-risk/hodlmm-risk.ts","requires":"","tags":"l2, defi, read-only, mainnet-only"}
# HODLMM Risk Skill ## What it does Monitors HODLMM (DLMM) pool volatility and LP risk on Bitflow. Computes bin spread, reserve imbalance, and concentration metrics to classify market regime and emit position-sizing signals. ## Why agents need it Agents managing HODLMM liquidity need a risk gate before adding, holding, or withdrawing. This skill provides that gate — a numeric volatility score and regime label that downstream agents can use to decide whether to act. ## Safety notes - Read-only — never writes to chain or moves funds. - Mainnet only — Bitflow HODLMM APIs are mainnet-only. - No wallet or funds required. - Pools with all-zero reserves return an error rather than misleading metrics. ## Commands ### assess-pool Assess volatility and risk metrics for a HODLMM pool. ``` bun run hodlmm-risk/hodlmm-risk.ts assess-pool --pool-id <pool_id> ``` Options: - `--pool-id` (required) — HODLMM pool identifier (e.g. `dlmm_3`) Output: ```json { "network": "mainnet", "poolId": "dlmm_3", "activeBinId": 447, "totalBins": 69, "binSpread": 0.021, "reserveImbalanceRatio": 0.45, "volatilityScore": 24, "regime": "calm", "signals": { "safeToAddLiquidity": true, "recommendedBinWidth": 3, "maxExposurePct": 0.25 }, "timestamp": "2026-03-24T20:00:00.000Z" } ``` ### assess-position Assess risk for a specific wallet's HODLMM position in a pool. ``` bun run hodlmm-risk/hodlmm-risk.ts assess-position --pool-id <pool_id> --address <stx_address> ``` Options: - `--pool-id` (required) — HODLMM pool identifier - `--address` (required) — Stacks address to check Output: ```json { "network": "mainnet", "poolId": "dlmm_3", "address": "SP2...", "positionBinCount": 3, "activeBinId": 447, "nearestPositionBinOffset": 2, "avgBinOffset": 4.33, "concentrationRisk": "medium", "driftScore": 22, "impermanentLossEstimatePct": 1.76, "recommendation": "rebalance", "timestamp": "2026-03-24T20:00:00.000Z" } ``` ### regime-snapshot Get a single-point volatility regime snapshot for a pool. ``` bun run hodlmm-risk/hodlmm-risk.ts regime-snapshot --pool-id <pool_id> ``` Options: - `--pool-id` (required) — HODLMM pool identifier Output: ```json { "network": "mainnet", "poolId": "dlmm_3", "volatilityScore": 24, "regime": "calm", "activeBinId": 447, "binSpread": 0.021, "reserveImbalanceRatio": 0.45, "note": "Single-point snapshot. For trend analysis, store snapshots externally over time.", "timestamp": "2026-03-24T20:00:00.000Z" } ``` ## Output contract All outputs are flat JSON to stdout (no wrapper envelope). On error: ```json { "error": "descriptive error message" } ``` ## Known constraints - Mainnet only — Bitflow HODLMM APIs do not exist on testnet. - No wallet required — all operations are read-only. - Volatility score ranges 0-100: 0-30 = calm, 31-60 = elevated, 61-100 = crisis. - Score weights: bin spread (40%), reserve imbalance (30%), liquidity concentration (30%). - `driftScore` is derived from `avgBinOffset`: `Math.min(avgOffset * 5, 100)`. Each bin of drift adds +5 score points, capped at 100 (i.e. 20+ bins from active = score 100 = withdraw). - `impermanentLossEstimatePct` is a linear approximation: `driftScore * 0.08` (max 8% at driftScore=100). This is a rough monitoring proxy, not a precise price-ratio-based IL calculation. - `concentrationRisk` thresholds: 1 bin = "high", 2-3 bins = "medium", 4+ bins = "low". - `signals` derivation: calm → `recommendedBinWidth: 3, maxExposurePct: 0.25`; elevated → `recommendedBinWidth: 7, maxExposurePct: 0.10`; crisis → `recommendedBinWidth: 15, maxExposurePct: 0.0`. - `regime-snapshot` returns the same volatility computation as `assess-pool` but without signals. Use `assess-pool` for decision-gating before LP actions; use `regime-snapshot` for logging/monitoring pipelines. - `regime-snapshot` returns a single point-in-time reading. For trend analysis, store snapshots externally over time. - Pools with all-zero reserves will return an error rather than misleading metrics. - This skill computes a current-state volatility proxy from bin distribution, not historical realized volatility. No time-series or migration tracking is performed. ## Origin Winner of AIBTC x Bitflow Skills Pay the Bills competition Day 2. Original author: @locallaunchsc-cloud Competition PR: https://github.com/BitflowFinance/bff-skills/pull/23
GitHubで見る