hodlmm-pulse/SKILL.md
Fee velocity and volume momentum tracker for Bitflow HODLMM pools — detects entry windows by comparing today's fee capture against the 7-day baseline, building a local time-series to surface trend direction (accelerating, stable, cooling).
npx skillsauth add aibtcdev/skills hodlmm-pulseInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Fee velocity and volume momentum tracker for Bitflow HODLMM (DLMM) concentrated liquidity pools.
Answers the question "is now a good time to deploy liquidity?" by tracking how fast fees are being generated relative to the 7-day rolling baseline. A pool earning 3× its daily average in fees is in an active volume spike — the prime window to enter, capture fees, and exit before volume normalises.
Two modes of operation:
scan) — instant momentum ranking across all pools from a single API call. Useful for quick triage.track + report) — run track on a cron (e.g. every 5 min) to build a local snapshot history. The more data collected, the more accurate the trend direction (accelerating / stable / cooling). report surfaces the full picture.hodlmm-advisor tells you where to deploy (which pool has the best risk-adjusted yield). hodlmm-pulse tells you when — detecting fee spikes and volume acceleration before they appear in slow-moving APR averages. Together they form a complete LP entry decision loop:
hodlmm-pulse scan → identify pools with active momentumhodlmm-pulse track --pool-id <id> → confirm trend direction over multiple pollshodlmm-advisor entry-plan --pool-id <id> → get exact bin range + strategyspike/elevated and advisor returns "Deploy now"~/.hodlmm-pulse-state.json (local disk only, no network writes)Checks all data sources and state file readiness.
bun run hodlmm-pulse/hodlmm-pulse.ts doctor
Fetches all pools in one call, computes momentum scores, ranks by fee velocity. Use for quick triage without needing prior tracking history.
bun run hodlmm-pulse/hodlmm-pulse.ts scan
bun run hodlmm-pulse/hodlmm-pulse.ts scan --min-tvl 10000
Options:
--min-tvl <usd> — exclude pools below this TVL (default: 500)Appends a timestamped snapshot for a single pool to local state, then outputs the current signal and trend direction. Trend accuracy improves with each successive call.
bun run hodlmm-pulse/hodlmm-pulse.ts track --pool-id dlmm_1
Options:
--pool-id (required) — pool identifier (e.g. dlmm_1, dlmm_3)Recommended: run via cron every 5 minutes for each pool of interest.
Reads all stored snapshots and outputs a trend summary per pool: current signal, trend over the full tracking window, peak momentum seen. Prioritises pools with active signals at the top.
bun run hodlmm-pulse/hodlmm-pulse.ts report
bun run hodlmm-pulse/hodlmm-pulse.ts report --pool-id dlmm_1
Options:
--pool-id (optional) — limit output to one poolPrimary signal. Ratio of today's fees to the 7-day daily average:
feeVelocity = feesUsd1d / (feesUsd7d / 7)
1.0 = average day. 3.0 = earning 3× the daily average.
Secondary signal. Same ratio applied to volume:
volumeVelocity = volumeUsd1d / (volumeUsd7d / 7)
Tertiary signal. How much today's realized APR exceeds the long-run average:
aprSpike = apr24h / apr
momentumScore = feeVelocity × 0.6 × 50 + volumeVelocity × 0.3 × 50 + aprSpike × 0.1 × 50
50 = average day. Higher = more active than usual.
| Signal | Condition | Meaning |
|---|---|---|
| 🔥 spike | feeVelocity ≥ 3× | Exceptional activity — prime entry window |
| 📈 elevated | feeVelocity ≥ 1.5× | Above average — monitor closely |
| 〰️ normal | 0.5× ≤ feeVelocity < 1.5× | Within baseline — no special action |
| 📉 cooling | feeVelocity < 0.5× | Below baseline — not an entry window |
| ⬜ flat | Fees + volume near zero | Inactive pool — skip |
| Trend | Meaning |
|---|---|
| ⬆️ accelerating | Fee velocity rising across recent snapshots |
| ↔️ stable | Fee velocity flat — activity sustained |
| ⬇️ cooling | Fee velocity declining — window closing |
| 🆕 new | Insufficient history (< 2 snapshots) |
| — flat | Pool is inactive |
All outputs are JSON to stdout.
Success:
{ "status": "success", "network": "mainnet", "timestamp": "...", ... }
Error:
{ "error": "descriptive message" }
| Source | Data | Endpoint |
|---|---|---|
| Bitflow App API (pools list) | All pools: feesUsd1d, feesUsd7d, volumeUsd1d, volumeUsd7d, apr, apr24h, tvlUsd | bff.bitflowapis.finance/api/app/v1/pools |
| Bitflow App API (pool detail) | Single pool detail (used by track) | bff.bitflowapis.finance/api/app/v1/pools/{id} |
| Bitflow Quotes API | Pool list sanity check | bff.bitflowapis.finance/api/quotes/v1/pools |
| Local state file | Snapshot history for trend computation | ~/.hodlmm-pulse-state.json |
feesUsd1d and volumeUsd1d are 24h rolling windows from Bitflow's API — they update in near-real-time but are not per-minute granularityspike signal is actionable from a single scanWinner of AIBTC x Bitflow Skills Pay the Bills competition. Original author: @ghislo749 Competition PR: https://github.com/BitflowFinance/bff-skills/pull/94
development
Web of Trust operations for Nostr pubkeys — trust scoring, sybil detection, trust path analysis, neighbor discovery, follow recommendations, and network health. Free tier (wot.klabo.world, 50 req/day) with paid fallback (maximumsats.com, 100 sats via L402). Covers 52K+ pubkeys and 2.4M+ zap-weighted trust edges. Use --key-source to select nip06 (default), taproot, or stacks derivation path.
data-ai
BTC ordinals marketplace operations via Magic Eden — browse active listings, list inscriptions for sale via PSBT flow, submit signed listings, buy inscriptions, and cancel active listings. BTC ordinals only (not Solana). Mainnet-only.
testing
Pay-per-call access to LunarCrush social and market intelligence (Galaxy Score, AltRank, market cap rank, price, 24h change) via x402 on Stacks. USD-pegged pricing recomputed hourly from live STX/USD. Mainnet endpoint live; testnet supported.
devops
Detects HODLMM LP inventory drift (token-ratio imbalance from one-sided swap flow) and restores the target ratio via a corrective Bitflow swap plus a hodlmm-move-liquidity redeploy, gated by the 4h per-pool cooldown.