yield-hunter/SKILL.md
Autonomous sBTC yield hunting daemon — monitors wallet sBTC balance and automatically deposits to Zest Protocol when balance exceeds a configurable threshold. Only works on mainnet. Requires an unlocked wallet with sBTC balance and STX for transaction fees.
npx skillsauth add aibtcdev/skills yield-hunterInstall 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.
Provides an autonomous yield hunting daemon that monitors your wallet's sBTC balance and automatically deposits to Zest Protocol's lending pool to earn yield. The daemon runs in the foreground and can be stopped with Ctrl+C or the stop subcommand.
State is persisted to ~/.aibtc/yield-hunter-state.json between runs.
Requirements:
bun run yield-hunter/yield-hunter.ts <subcommand> [options]
Start autonomous yield hunting. Runs in the foreground until stopped.
bun run yield-hunter/yield-hunter.ts start [--threshold 10000] [--reserve 0] [--interval 600]
Options:
--threshold <sats> (optional) — Minimum sBTC balance in satoshis before depositing (default: 10000 = 0.0001 sBTC)--reserve <sats> (optional) — sBTC in satoshis to keep liquid, never deposited (default: 0 — deposit all)--interval <seconds> (optional) — Check interval in seconds (default: 600 = 10 minutes)What it does:
Output:
{
"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 the running yield hunter process.
bun run yield-hunter/yield-hunter.ts stop
Sends SIGTERM to the running daemon. Your existing Zest positions remain untouched.
Output:
{
"success": true,
"message": "Yield hunter stopped (PID: 12345)",
"stats": {
"checksRun": 24,
"depositsExecuted": 3,
"totalDeposited": "300000",
"totalDepositedFormatted": "0.00300000 sBTC"
}
}
Get the current yield hunter status, configuration, and recent activity.
bun run yield-hunter/yield-hunter.ts status
When a wallet is active and on mainnet, also fetches current wallet balance and Zest position.
Output:
{
"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" }
]
}
Update yield hunter configuration. Changes are saved immediately and take effect on the next check cycle.
bun run yield-hunter/yield-hunter.ts configure [--threshold 20000] [--reserve 5000] [--interval 300]
Options:
--threshold <sats> (optional) — New minimum deposit threshold in satoshis--reserve <sats> (optional) — New reserve amount in satoshis--interval <seconds> (optional) — New check interval in seconds (minimum: 10)Output:
{
"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~/.aibtc/yield-hunter.pidsupply function via the borrow-helper contracttmux, screen, or pm2) to run it in the backgroundstatus works even when the daemon is not running (reads persisted state)configure works when the daemon is not running (changes take effect on next start)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.