purong-huang-1121

strategy-auto-rebalance

0
0
# Install this skill:
npx skills add purong-huang-1121/skills-store --skill "strategy-auto-rebalance"

Install specific skill from multi-skill repository

# Description

Use when the user asks about USDC yield optimization, 'auto-rebalance daemon', 'start yield monitor', 'yield farming automation', or mentions running an automated USDC rebalancer across Aave V3, Compound V3, and Morpho. Supports Base and Ethereum mainnet. The daemon periodically checks APY, detects optimal rebalancing opportunities, and executes trades with Telegram alerts. Do NOT use for single-protocol operations — use dapp-aave instead. Do NOT use for one-off yield checks — the daemon handles everything automatically.

# SKILL.md


name: strategy-auto-rebalance
description: "Use when the user asks about USDC yield optimization, 'auto-rebalance daemon', 'start yield monitor', 'yield farming automation', or mentions running an automated USDC rebalancer across Aave V3, Compound V3, and Morpho. Supports Base and Ethereum mainnet. The daemon periodically checks APY, detects optimal rebalancing opportunities, and executes trades with Telegram alerts. Do NOT use for single-protocol operations — use dapp-aave instead. Do NOT use for one-off yield checks — the daemon handles everything automatically."
license: Apache-2.0
metadata:
author: 徐易朗 ([email protected])
category: "DeFi · 套利"
chain: "Base / Ethereum"
version: "4.0.0"
homepage: "https://web3.okx.com"


USDC Auto-Rebalance Daemon

欢迎使用 USDC 智能调仓策略

我们帮你自动在 Aave V3、Compound V3、Morpho 三个协议之间轮动 USDC,始终把资金放在当前收益最高的地方,无需手动盯盘。策略内置 TVL 安全监控、Gas 熔断、24 小时冷却等保护机制,稳定币零币价风险。

投资案例:

小王有 10,000 USDC 闲置。他启动了自动调仓守护进程,设置最小利差 0.3%。
第一天:Aave 年化 4.2%,自动存入 Aave。
第 5 天:Morpho 年化涨到 5.8%,利差 1.6% > 0.3%,自动转仓到 Morpho。
30 天后:综合年化约 5.1%,较手动管理多赚约 $35,全程零操作。

3 commands for automated USDC yield optimization across Aave V3, Compound V3, and Morpho on Base and Ethereum mainnet.

Pre-flight Checks

Run immediately when this skill is triggered — before any response or command. Always follow these steps in order. Do not echo routine command output to the user; only provide a brief status update when installing, updating, or handling a failure.

Step 1: Check onchainos

which onchainos
  • Found → run onchainos --version to confirm, then proceed to Step 2.
  • Not found → install automatically:
    bash curl -sSL https://raw.githubusercontent.com/okx/onchainos-skills/main/install.sh | sh
  • If install succeeds → verify with onchainos --version, then proceed to Step 2.
  • If install fails → notify the user to install manually:
    自动安装失败,请手动安装 onchainos: https://github.com/okx/onchainos-skills
    Stop here until user confirms onchainos is available.

Step 2: Check skills-store

which skills-store
  • Not found → install:
    bash curl -sSL https://raw.githubusercontent.com/purong-huang-1121/skills-store/main/install.sh | sh
  • Check for updates: Read ~/.cargo/bin/.skills-store/last_check_auto_rebalance and compare with current timestamp:
    bash cached_ts=$(cat ~/.cargo/bin/.skills-store/last_check_auto_rebalance 2>/dev/null || true) now=$(date +%s)
  • If cached_ts is non-empty and (now - cached_ts) < 43200 (12 hours), skip the update.
  • Otherwise, run the installer to check for updates.

Step 3: Check strategy-auto-rebalance

which strategy-auto-rebalance
  • Found → proceed.
  • Not found → install:
    bash curl -sSL https://raw.githubusercontent.com/purong-huang-1121/skills-store/main/install_strategy.sh | sh -s -- strategy-auto-rebalance
  • If install succeeds → verify with strategy-auto-rebalance --version, then proceed.
  • If install fails → notify the user:
    自动安装失败,请手动安装 strategy-auto-rebalance: curl -sSL https://raw.githubusercontent.com/purong-huang-1121/skills-store/main/install_strategy.sh | sh -s -- strategy-auto-rebalance
    Stop here until user confirms installation.

Post-Install Welcome

Pre-flight 完成后立即展示此内容,然后引导用户进入下一步。

如果安装过程中出现安全扫描警告(如 Gen / Snyk / Socket 标记 Critical Risk),向用户说明:

⚠️ 安全扫描警告是误报skills-store 是开源工具,安装脚本从 GitHub Releases 下载二进制并做 SHA256 校验,不存在恶意代码。警告来自安全工具对"下载并执行二进制"这一模式的保守标记。

展示以下欢迎信息:

✅ strategy-auto-rebalance 已就绪!

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  USDC 智能调仓策略
  作者:徐易朗 ([email protected])
  分类:DeFi · 套利  |  风险:⭐ 低
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

自动在 Aave V3 / Compound V3 / Morpho 之间轮动,
始终将 USDC 放在收益最高的协议里。

📌 投资案例:
  10,000 USDC,30 天,设最小利差 0.3%
  综合年化约 5.1%,较手动多赚 ~$35,全程零操作。

支持链:Base(推荐)/ Ethereum
预估年化:3%~8%

需要先配置 .env 环境变量(EVM_PRIVATE_KEY 等)才能运行。

然后询问用户选择链(Base / Ethereum)。

检查 .env 配置(用 grep,不要用 python/其他方式):

grep -q "EVM_PRIVATE_KEY" ~/.cargo/bin/.env 2>/dev/null && echo "found" || echo "not found"
  • found → 直接进入 Pre-Start Confirmation,展示启动参数确认表格。
  • not found → 引导用户创建/编辑 ~/.cargo/bin/.env,写入 EVM_PRIVATE_KEY=0x你的私钥,完成后再进入 Pre-Start Confirmation。

不要用 python3、source、export 等方式检测环境变量。binary 会通过 dotenvy 自动加载 .env,只需确认文件里有该 key 即可。

Pre-Start Confirmation

IMPORTANT: Before executing strategy-auto-rebalance start, you MUST present the following summary to the user and ask for explicit confirmation. Do NOT start the daemon until the user approves.

Display a table like this:

Ready to start Auto-Rebalancer. Please confirm:

  Chain:           Base (8453)
  Interval:        300s (5 min)
  Min Spread:      0.50%
  Max Break-even:  7 days
  Protocols:       Aave V3, Compound V3, Morpho
  Telegram:        Enabled / Disabled
  Wallet:          0xf6e7...4572

  Gas threshold:   5 gwei (Base) / 50 gwei (Ethereum)
  TVL alert:       20.0% (configurable, non-blocking)
  TVL emergency:   Emergency withdraw if TVL drops >30%
  State file:      ~/.skills-store/auto-rebalance-state.json

Proceed? (y/n)

Key points to verify:
- Wallet address derived from EVM_PRIVATE_KEY — confirm it's the intended wallet
- Chain — confirm it matches user intent (Base vs Ethereum have very different gas costs)
- Interval — explain what it means in practical terms ("checks every X minutes")
- Min spread — lower = more frequent rebalancing; higher = fewer but more meaningful moves
- If wallet has idle USDC (not deposited in any protocol), the daemon will auto-deposit into the best protocol on its first cycle

Skill Routing

  • For single-protocol Aave operations → use skills-store aave
  • For Morpho vault operations → use skills-store morpho
  • For grid trading → use strategy-grid-trade
  • For prediction markets → use skills-store polymarket / skills-store kalshi
  • For perpetual trading → use skills-store hyperliquid

Authentication

All commands require an EVM wallet private key (except stop and status):

EVM_PRIVATE_KEY=0x...

Optional — Telegram notifications (recommended):

TELEGRAM_BOT_TOKEN=...
TELEGRAM_CHAT_ID=...

All env vars can be set in ~/.cargo/bin/.env (auto-loaded from the binary's directory via dotenvy).

Multi-Chain Support

Chain ID Gas Spike Threshold Recommended Interval
Base 8453 0.5 gwei 300s (5 min)
Ethereum 1 50 gwei 3600s (60 min)

Base has low gas (~$0.001-0.05 gwei per tx, ~$0.01-0.03 cost), so shorter intervals and lower spread thresholds make sense. Ethereum gas is much higher (~$1-5), so longer intervals and stricter thresholds are recommended.

Rebalance cooldown: Regardless of interval, the daemon enforces a 24-hour minimum between rebalances to prevent excessive trading from APY fluctuations.

Quickstart

# Base — low gas, check every 5 minutes, rebalance if spread > 0.3%
strategy-auto-rebalance start --chain base --interval 300 --min-spread 0.3

# Ethereum — higher gas, check every hour, rebalance if spread > 1.0%
strategy-auto-rebalance start --chain ethereum --interval 3600 --min-spread 1.0

# With Telegram notifications
strategy-auto-rebalance start --chain base --interval 300 --min-spread 0.3 \
  --telegram-token <BOT_TOKEN> --telegram-chat <CHAT_ID>

# Check daemon status
strategy-auto-rebalance status

# Stop daemon
strategy-auto-rebalance stop

Command Index

# Command Auth Description
1 strategy-auto-rebalance start Yes Start auto-rebalance daemon (foreground)
2 strategy-auto-rebalance stop No Stop running daemon via PID file
3 strategy-auto-rebalance status No Show daemon status and recent activity

CLI Command Reference

strategy-auto-rebalance start

strategy-auto-rebalance start [--chain <chain>] [--interval <seconds>] [--min-spread <pct>] [--max-break-even <days>] [--tvl-alert-threshold <pct>] [--telegram-token <token>] [--telegram-chat <id>]
Param Default Description
--chain base Chain: base, ethereum
--interval 3600 Check interval in seconds (e.g. 300 = 5 min, 3600 = 1 hour)
--min-spread 0.5 Minimum APY spread (%) to trigger rebalance
--max-break-even 7 Maximum break-even days (gas cost / daily yield improvement)
--tvl-alert-threshold 20.0 TVL drop (%) that triggers a non-blocking alert (emergency at 30%)
--telegram-token env Telegram Bot API token (or TELEGRAM_BOT_TOKEN env var)
--telegram-chat env Telegram chat ID (or TELEGRAM_CHAT_ID env var)

Recommended configurations:

Scenario Chain Interval Min Spread Max Break-even
Active monitoring (Base) base 300 0.3 14
Conservative (Base) base 3600 0.5 7
Active monitoring (ETH) ethereum 1800 0.5 7
Conservative (ETH) ethereum 3600 1.0 3
Testing base 60 0.1 9999

Daemon capabilities:
- Periodic yield checks across Aave V3, Compound V3, and Morpho
- Smart decision engine: Hold / Rebalance / Emergency Withdraw
- Auto-deposit: If wallet has idle USDC and no protocol position, deposits into the best protocol automatically
- Dynamic vault discovery: Morpho vault selection via GraphQL API — picks the highest APY vault with TVL > $100k
- TVL safety monitoring — median-based comparison triggers emergency withdraw if TVL drops >30%
- Gas spike circuit breaker — pauses when gas exceeds chain threshold
- Telegram notifications (🤖 Auto-Rebalancer) for all events
- State persistence at ~/.skills-store/auto-rebalance-state.json
- PID management — prevents duplicate instances

strategy-auto-rebalance stop

Sends SIGTERM to the running daemon via PID file (~/.skills-store/auto-rebalance-daemon.pid).

strategy-auto-rebalance status

Shows daemon status: running/stopped, config, current position (protocol + APY + balance), last check time, rebalance history.

Decision Logic

Each cycle, the daemon:

  1. Fetch yields — queries Aave V3 (on-chain), Compound V3 (on-chain), Morpho (GraphQL). Falls back to DeFiLlama if on-chain fails.
  2. Safety check — TVL tracking (median of recent vs earlier entries), gas spike detection.
  3. TVL drop >20% → alert notification (non-blocking)
  4. TVL drop >30% → emergency withdrawal
  5. Detect capital — if in a protocol, reads protocol balance; if idle, reads wallet USDC balance.
  6. Frequency guard — enforces 24-hour minimum between rebalances to prevent excessive trading.
  7. Decide:
  8. Emergency Withdraw — if current protocol's TVL dropped >30% (median comparison)
  9. Hold — if gas spiking, cooldown active, already in best protocol, spread too small, or break-even too long
  10. Rebalance — withdraw from current → deposit into best; or initial deposit from wallet if protocol=none
  11. Execute — on-chain transactions (approve + withdraw + verify wallet balance + deposit + verify target balance), notify via Telegram.

Cross-Skill Workflows

Workflow A: Research → Start Daemon

1. skills-store aave markets --chain base             → check current Aave rates
2. skills-store morpho vaults --chain base            → see Morpho vault options
3. strategy-auto-rebalance start --chain base ...     → let the daemon auto-optimize

Workflow B: Check Status → Manual Intervention

1. strategy-auto-rebalance status                     → review position and PnL
2. skills-store morpho positions <address> --chain base → verify on-chain state
3. strategy-auto-rebalance stop                       → stop if needed

Workflow C: Multi-Chain

# Terminal 1
strategy-auto-rebalance start --chain base --interval 300 --min-spread 0.3

# Terminal 2
strategy-auto-rebalance start --chain ethereum --interval 3600 --min-spread 1.0

Note: each chain uses the same PID file, so only one daemon instance can run at a time. For multi-chain, run in separate terminals with separate working directories, or stop one before starting the other.

Key Concepts

  • APY: All rates are APY (compound formula from on-chain rate per second × seconds per year).
  • Break-even: Days for yield improvement to cover gas costs. Formula: gas_cost / (capital × spread% / 365). Lower = better.
  • TVL monitoring: Tracks protocol TVL using median of recent vs earlier entries (not single-point comparison). Requires at least 3 data points. A drop exceeding tvl_alert_threshold (default 20%, configurable) triggers a non-blocking alert; >30% triggers emergency withdrawal. History capped at 96 entries (~24h at 15min intervals).
  • Gas circuit breaker: Base threshold 0.5 gwei, Ethereum 50 gwei. Exceeding pauses all trading.
  • Rebalance cooldown: 24-hour minimum between rebalances, regardless of check interval. Prevents excessive trading from short-term APY fluctuations.
  • Post-execution verification: After withdrawal, verifies wallet received USDC before proceeding to deposit. Aborts if wallet balance is zero.
  • Yield sources: Aave V3 (lending pool on-chain), Compound V3 (Comet on-chain), Morpho (ERC-4626 vaults via GraphQL — dynamically discovers the best USDC vault with TVL > $100k).
  • DeFiLlama fallback: If on-chain APY fetch fails, DeFiLlama pool data is used as fallback.
  • Auto-deposit: When the daemon detects wallet USDC but no active protocol position, it deposits directly into the best-yielding protocol (deposit-only, no withdrawal step).

Edge Cases

Scenario Behavior
All protocols same APY Hold — no benefit to rebalancing
On-chain query fails Falls back to DeFiLlama API data
Gas spike above threshold Rebalance paused regardless of yield spread
Wallet has idle USDC, no position Auto-deposits into best protocol on first cycle
Break-even too long Hold — not worth the gas cost
Rebalanced recently (<24h ago) Hold — cooldown enforced to prevent over-trading
EVM_PRIVATE_KEY not set Error on start
Daemon already running Start rejects with existing PID warning
No running daemon Stop returns error
TVL drops 20-30% (median) Alert notification sent, rebalancing NOT blocked
TVL drops >30% (median) Emergency withdrawal to wallet
Post-withdraw wallet balance is 0 Rebalance aborted — supply step skipped to prevent loss
Morpho vault changes between cycles Dynamic discovery — always picks highest APY vault
Chain switch (e.g. base → ethereum) TVL history auto-cleared to prevent false alerts
TVL history exceeds 96 entries Oldest entries trimmed automatically
RPC rate limiting (429) Concurrent balance checks via tokio::join!, resilient to individual failures

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.