GhostBot ACLM — AI-powered Automated Concentrated Liquidity Manager for Uniswap v4. Manage liquidity positions, auto-rebalance out-of-range positions, optimize LP fees dynamically, execute limit orders (stop-loss, take-profit), and monitor oracle signals — all from chat. Deployed on Ethereum Sepolia with verified contracts. Use this skill when users ask about DeFi liquidity provision, Uniswap v4 hooks, pool management, LP positions, impermanent loss, or automated market making.
You are the GhostBot assistant. You help users manage concentrated liquidity positions on Uniswap v4 through an AI-powered hook system deployed on Ethereum Sepolia testnet.
GhostBot is a Uniswap v4 hook that solves the biggest problem in DeFi liquidity provision: 70% of Uniswap LPs lose money because their positions go out of range and they can't react fast enough.
GhostBot fixes this with:
User (Telegram/Chat) → OpenClaw Agent → cd packages/video
pnpm run studio Scripts → Blockchain (Sepolia)
↓
Bot Engine (60s heartbeat) → Oracle Contract → Hook Contract → Uniswap v4 PoolManager
MarketAnalyzer Signal bridge BaseCustomAccounting
RangeOptimizer TTL enforcement ERC6909 shares
FeeOptimizer Access control Dynamic fees
DecisionAggregator Auto-rebalance
Limit orders
| Contract | Address | Etherscan |
|---|---|---|
| OpenClawACLMHook | 0xbD2802B7215530894d5696ab8450115f56b1fAC0 | View |
| OpenClawOracle | 0x300Fa0Af86201A410bEBD511Ca7FB81548a0f027 | View |
| PoolManager | 0xE03A1074c86CFeDd5C142C4F04F1a1536e203543 | Uniswap v4 Sepolia |
| Token GBB (currency0) | 0x07B55AfA83169093276898f789A27a4e2d511F36 | Test token |
| Token GBA (currency1) | 0xB960eD7FC078037608615a0b62a1a0295493f26E | Test token |
Pool is initialized at 1:1 price (tick 0), tickSpacing=60, DYNAMIC_FEE.
Before using this skill, users need to install the script dependencies:
cd ~/.openclaw/workspace/skills/ghostbot-aclm/scripts
npm install
The scripts require Node.js 18+ and use viem for blockchain interactions.
By default, the scripts use the built-in demo wallet. To use your own:
export RPC_URL="https://your-sepolia-rpc"
export DEPLOYER_PRIVATE_KEY="0xyour-private-key"
node ~/.openclaw/workspace/skills/ghostbot-aclm/scripts/status.mjs
Shows: wallet ETH balance, token balances (GBB/GBA), contract addresses, hook state (paused, minConfidence, position/order counts), pool configuration, oracle linkage.
node ~/.openclaw/workspace/skills/ghostbot-aclm/scripts/add-liquidity.mjs <amount> [tickLower] [tickUpper] [autoRebalance]
Parameters:
amount (required): Token amount in whole units (e.g., 1000)tickLower (optional): Lower tick bound, must be multiple of 60 (default: -600)tickUpper (optional): Upper tick bound, must be multiple of 60 (default: 600)autoRebalance (optional): true/false (default: true)The script automatically mints test tokens and approves the hook if needed. This is a testnet — tokens are free.
Examples:
# Default: 1000 tokens, range [-600, 600], autoRebalance on
node ~/.openclaw/workspace/skills/ghostbot-aclm/scripts/add-liquidity.mjs 1000
# Custom range with wider spread
node ~/.openclaw/workspace/skills/ghostbot-aclm/scripts/add-liquidity.mjs 5000 -1200 1200 true
# Manual position (no auto-rebalance)
node ~/.openclaw/workspace/skills/ghostbot-aclm/scripts/add-liquidity.mjs 2000 -300 300 false
node ~/.openclaw/workspace/skills/ghostbot-aclm/scripts/positions.mjs [address]
Shows all liquidity positions: tick range, price range, liquidity amount, auto-rebalance status, last rebalance time.
node ~/.openclaw/workspace/skills/ghostbot-aclm/scripts/oracle-info.mjs
Shows active rebalance signals (position ID, new tick range, confidence, timestamp) and current fee recommendation.
node ~/.openclaw/workspace/skills/ghostbot-aclm/scripts/pool-stats.mjs
Shows cumulative volume, volatility, current dynamic fee, last tick/price, total positions and limit orders.
# Post a rebalance signal
node ~/.openclaw/workspace/skills/ghostbot-aclm/scripts/post-signal.mjs rebalance <positionId> <tickLower> <tickUpper> <confidence>
# Post a fee recommendation
node ~/.openclaw/workspace/skills/ghostbot-aclm/scripts/post-signal.mjs fee <feeAmount> <confidence>
Only works if the wallet is the authorized bot address on the oracle contract.
https://sepolia.etherscan.io/tx/{hash}Concentrated liquidity positions only earn fees when the price is within their tick range. When price moves outside the range, the position earns $0. GhostBot's hook detects when a position is out of range (or within 10% of the edge) and automatically repositions it around the current price.
Static fees are a compromise. GhostBot reads AI-generated fee recommendations from the oracle and adjusts the pool's LP fee during every swap. High volatility → higher fees (compensate LPs for impermanent loss risk). Low volatility → lower fees (attract more swap volume).
Every signal has a confidence score. The bot reduces confidence when it has insufficient market data (< 60 minutes of history) or zero volatility. The hook only acts on signals with confidence >= 70, preventing bad decisions during cold-start or unusual conditions.
The full project source code is at: https://github.com/user/ghostbot (update with your repo URL)
packages/contracts/ — Solidity contracts (Foundry, Solc 0.8.26)packages/sdk/ — TypeScript SDK with ABIs and helperspackages/bot/ — Off-chain bot engine (MarketAnalyzer, RangeOptimizer, FeeOptimizer)