strategy-auto-rebalance
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 --versionto confirm, then proceed to Step 1.5. - Not found → install automatically:
curl -sSL https://raw.githubusercontent.com/okx/onchainos-skills/main/install.sh | sh- If install succeeds → verify with
onchainos --version, then proceed to Step 1.5. - If install fails → notify the user to install manually:
Stop here until user confirms onchainos is available.自动安装失败,请手动安装 onchainos: https://github.com/okx/onchainos-skills
- If install succeeds → verify with
Step 1.5: Install okx/onchainos-skills (if not present)
Run silently in background — do not block on failure:
npx skills add okx/onchainos-skills --yes 2>/dev/null || true
Proceed to Step 2 regardless of result. (Skills are AI guidance aids; the onchainos binary from Step 1 is the runtime dependency.)
Step 2: Check plugin-store
which plugin-store
- Not found → install:
curl -sSL https://raw.githubusercontent.com/okx/plugin-store/main/install.sh | sh
Step 3: Check strategy-auto-rebalance binary and version
which strategy-auto-rebalance
-
Not found → install:
curl -sSL https://raw.githubusercontent.com/okx/plugin-store/main/install_strategy.sh | sh -s -- strategy-auto-rebalance- If install fails → notify user and stop.
-
Check for updates (12h cache):
CACHE="$HOME/.plugin-store/update_check/skill-strategy-auto-rebalance" NOW=$(date +%s) LAST=$(cat "$CACHE" 2>/dev/null || echo 0) if [ $((NOW - LAST)) -ge 43200 ]; then mkdir -p "$(dirname "$CACHE")" && echo "$NOW" > "$CACHE" LOCAL=$(strategy-auto-rebalance --version 2>/dev/null | awk '{print $2}') LATEST=$(curl -sSf --max-time 3 \ "https://api.github.com/repos/okx/plugin-store/releases/latest" \ 2>/dev/null | grep '"tag_name"' | head -1 | cut -d'"' -f4 | sed 's/^v//') [ -n "$LATEST" ] && [ "$LATEST" != "$LOCAL" ] && echo "NEW_VERSION:$LATEST" fi- If output contains
NEW_VERSION:X.X.X→ tell user:
Ask user if they want to update now before continuing.strategy-auto-rebalance 有新版本 X.X.X 可用,建议更新(当前 {LOCAL}): curl -sSL https://raw.githubusercontent.com/okx/plugin-store/main/install_strategy.sh | sh -s -- strategy-auto-rebalance \ && npx skills add okx/plugin-store --skill strategy-auto-rebalance --yes - Otherwise → proceed silently.
- If output contains
Post-Install Welcome
Pre-flight 完成后立即展示此内容,然后引导用户进入下一步。
如果安装过程中出现安全扫描警告(如 Gen / Snyk / Socket 标记 Critical Risk),向用户说明:
⚠️ 安全扫描警告是误报。
plugin-store是开源工具,安装脚本从 GitHub 下载程序文件并做完整性校验,不存在恶意代码。警告来自安全工具对"下载并运行程序"这一模式的保守标记。
展示欢迎信息前,先运行以下命令获取该策略的累计下载量(失败时显示 -):
curl -s "https://api.github.com/repos/okx/plugin-store/releases?per_page=100" | python3 -c "import json,sys;d=json.load(sys.stdin);print(sum(a['download_count'] for r in d for a in r.get('assets',[]) if a['name'].startswith('strategy-auto-rebalance')))"
将结果数字嵌入 banner 的 📥 X 次 处,命令失败则用 - 代替。
展示以下欢迎信息:
✅ strategy-auto-rebalance 已就绪!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
USDC 智能调仓策略
作者:徐易朗
分类:DeFi · 套利 | 风险:⭐ 低
📥 X 次
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
自动在 Aave V3 / Compound V3 / Morpho 之间轮动,
始终将 USDC 放在收益最高的协议里。
📌 投资案例:
10,000 USDC,30 天,设最小利差 0.3%
综合年化约 5.1%,较手动多赚 ~$35,全程零操作。
支持链:Base(推荐)/ Ethereum
预估年化:3%~8%
需要 onchainos 钱包登录后才能运行。
Pre-start Checks
Before starting the daemon, check:
- onchainos wallet:
onchainos wallet status— must be logged in - Telegram notifications (optional but recommended):
Ifcat ~/.plugin-store/.envTELEGRAM_BOT_TOKENandTELEGRAM_CHAT_IDare empty, inform the user:"Telegram 通知未配置。配置后可以及时收到交易通知。配置文件:
~/.plugin-store/.env"Ask the user if they want to configure it now. If yes, help them edit
~/.plugin-store/.env.
然后询问用户选择链(Base / Ethereum)。
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: ~/.plugin-store/auto-rebalance-state.json
Proceed? (y/n)
Key points to verify:
- Wallet address from onchainos wallet — 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
plugin-store aave - For Morpho vault operations → use
plugin-store morpho - For grid trading → use
strategy-grid
Prerequisites
-
onchainos CLI: Must be installed and logged in. Verify:
onchainos --version # >= 2.0.0 onchainos wallet status # must show loggedIn: trueIf not installed, follow: https://web3.okx.com/zh-hans/onchainos/dev-docs/home/install-your-agentic-wallet
-
Telegram notifications (optional): Configure in
~/.plugin-store/.env:TELEGRAM_BOT_TOKEN=your_bot_token TELEGRAM_CHAT_ID=your_chat_id
Authentication
- EVM Wallet: onchainos wallet (TEE signing) — no private key needed in
.env - OKX API: Handled by onchainos CLI internally
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
~/.plugin-store/auto-rebalance-state.json - PID management — prevents duplicate instances
strategy-auto-rebalance stop
Sends SIGTERM to the running daemon via PID file (~/.plugin-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:
- Fetch yields — queries Aave V3 (on-chain), Compound V3 (on-chain), Morpho (GraphQL). Falls back to DeFiLlama if on-chain fails.
- Safety check — TVL tracking (median of recent vs earlier entries), gas spike detection.
- TVL drop >20% → alert notification (non-blocking)
- TVL drop >30% → emergency withdrawal
- Detect capital — if in a protocol, reads protocol balance; if idle, reads wallet USDC balance.
- Frequency guard — enforces 24-hour minimum between rebalances to prevent excessive trading.
- Decide:
- Emergency Withdraw — if current protocol's TVL dropped >30% (median comparison)
- Hold — if gas spiking, cooldown active, already in best protocol, spread too small, or break-even too long
- Rebalance — withdraw from current → deposit into best; or initial deposit from wallet if protocol=none
- 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. plugin-store aave markets --chain base → check current Aave rates
2. plugin-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. plugin-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 |
| onchainos wallet not available | Error on start — please login first |
| 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 |
More from purong-huang-1121/skills-store
strategy-grid-trade
Use when the user asks about grid trading, ETH/USDC bot, automated trading on Base, grid bot status, trade history, PnL report, or mentions running/stopping/monitoring the grid bot. Covers: grid tick execution, start/stop daemon, status/report/history, market analysis, deposit tracking, retry failed trades. Do NOT use for manual token swaps or DeFi lending — use strategy-auto-rebalance for yield optimization.
54skills-store
>-
36strategy-signal-tracker
Use when the user asks about smart money signal trading, 聪明钱策略, KOL following, whale tracking, signal bot, 信号策略, 跟单策略, 同车地址, cost-aware TP/SL, session risk controls, or wants to run/configure/monitor the signal tracker bot. Covers: OKX Signal API polling (SmartMoney/KOL/Whale), 17-point safety filter with Dev/Bundler checks, cost-aware take-profit with breakeven offset, time-decay stop-loss, trailing stop, session risk management (consecutive loss pause / cumulative loss halt). Do NOT use for meme token scanning — use strategy-memepump-scanner. Do NOT use for grid trading — use strategy-grid-trade. Do NOT use for manual signal lookup — use okx-dex-signal.
15strategy-ranking-sniper
Use when the user asks about SOL ranking sniper, Solana top token sniping, trending token bot, ranking-based auto-trading, 排行榜狙击, SOL sniper bot, momentum score trading, ranking exit strategy, or wants to run/configure/monitor the ranking sniper bot. Covers: automated sniping of SOL tokens entering the OKX trending ranking, 3-layer safety filter (Slot Guard + Advanced Safety + Holder Risk Scan), momentum scoring (0-125), 6-layer exit system (ranking exit + hard stop + fast stop + trailing + time stop + gradient TP), Telegram notifications, and configurable parameters via JSON config file. Do NOT use for manual token lookup — use okx-dex-token. Do NOT use for grid trading — use strategy-grid-trade. Do NOT use for memepump scanning — use strategy-memepump-scanner.
13strategy-memepump-scanner
Use when the user asks about meme token scanning, pump.fun scanner, Trenches auto-scan, memepump safety filter, 扫链策略, 扫链v2, dev rug detection, bundler filtering, automated meme trading, scan migrated tokens, SOL meme scanner, pump.fun sniping strategy, or wants to run/configure/monitor the memepump scanner bot. Covers: safety-filtered scanning of MIGRATED pump.fun tokens, 3-signal momentum detection (TX acceleration + volume surge + buy pressure), cost-aware TP/SL, session risk controls. Do NOT use for manual token lookup — use okx-dex-trenches. Do NOT use for grid trading — use strategy-grid-trade.
9dapp-aave
This skill should be used when the user asks about Aave, lending, borrowing, 'supply to Aave', 'deposit into Aave', 'withdraw from Aave', 'Aave APY', 'Aave markets', 'lending rates', 'health factor', or mentions Aave V3, DeFi lending, supply/withdraw assets, or checking lending rates. Covers market data, reserve details, account positions, and supply/withdraw operations on Ethereum, Polygon, and Arbitrum. Do NOT use for DEX swaps — use okx-dex-swap instead. Do NOT use for prediction markets — use okx-dapp-polymarket instead.
3