DeFi Liquidity Monitoring Bot Development

DeFi Liquidity Monitoring Bot Development <cite>[Uniswap v3](https://en.wikipedia.org/wiki/Uniswap)</cite> made liquidity management an active endeavor. An LP position in the $1800-$2200 range on ETH/USDC worked fine for a week — until the price went out of range, and the position stopped earning

Blockchain Development Services

Frequently Asked Questions

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1441
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    998
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1267
  • image_logo-advance_0.webp
    B2B Advance company logo design
    713
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    1003

DeFi Liquidity Monitoring Bot Development

Uniswap v3 made liquidity management an active endeavor. An LP position in the $1800-$2200 range on ETH/USDC worked fine for a week — until the price went out of range, and the position stopped earning fees, converting entirely to one asset. Without monitoring, such a situation can go unnoticed for days. That's direct loss from missed fees and impermanent loss. Each hour of inaction can cost tens of dollars. We develop liquidity monitoring bots that solve this: subscription to on-chain events, real-time Telegram notifications — delivered up to 50x faster than manual checks. Order a custom bot — from a basic solution for one pool to a multi-chain system with historical metrics. Our experience: 5+ years in blockchain development, 30+ DeFi projects. Each project comes with a quality guarantee and technical documentation.

Why Liquidity Monitoring is Critical?

A few hours delay in rebalancing can cost hundreds of dollars in lost profit, especially in volatile markets where price can move 10-15% in an hour. For a $50k position, just 2 hours out-of-range can mean $200 in missed fees — that's $1,200 over a month. An automated Telegram alert gives you a 30-60 minute head start to decide. Reducing impermanent loss through timely actions can reach 20-30%.

What Really Needs Monitoring in DEX Pools

Uniswap v3: Position Activity and Out-of-Range Events

Each Uniswap v3 position is defined by (tokenId, tickLower, tickUpper). The pool stores the current tick — logarithmic price. As soon as currentTick < tickLower or currentTick > tickUpper the position is out of range, fees stop accruing.

The Swap event in the pool emits a new tick. The bot subscribes to Swap via WebSocket (eth_subscribe("logs", {address: poolAddress, topics: [Swap.topic]})), decodes the tick from the event data, and compares it to tickLower/tickUpper of all tracked positions. Latency from event to notification: 100-500ms, sufficient for LP notification.

Additionally, tracking Mint and Burn events is useful — they show when large LPs enter or leave a range, often preceding price movements.

Curve: Pool Imbalance and De-Peg Monitoring

In Curve StableSwap pools, the pool is considered balanced when asset shares are close to target (usually equal). With a strong imbalance (e.g., 90% USDT and 10% USDC in 3pool), swap slippage sharply increases and effective APY for LPs drops.

Metric to monitor: deviation of current balances from ideal. Call get_balances() + compare with total_supply() / N. If one asset exceeds 70% — alert. This happened with 3pool during depegging events (USDC briefly traded at $0.87 on Curve).

The Graph for Historical Data

We use the Uniswap v3 The Graph subgraph (subgraph id: 5zvR82QoaXYFyDEKLZ9t6v9adgnptxYpKpSbxtgVENFV) for real-time TVL and volume monitoring. A GraphQL query every 60 seconds returns pool.totalValueLockedUSD, pool.volumeUSD, pool.feesUSD. This is sufficient for large pools (>$10M TVL). For small pools with rapid changes, direct WebSocket events are more reliable.

How the Monitoring Bot Works

A typical monitoring system consists of three components:

Component Technology Task
Event listener ethers.js / viem WebSocket Subscribe to on-chain events
State aggregator Node.js / Python Aggregate and compare thresholds
Alert dispatcher Telegram Bot API / PagerDuty Send notifications via channels

The event listener subscribes via WebSocket to pools from a configurable list. When an event is received, it decodes data via ABI and publishes to a queue (Redis Pub/Sub or in-memory queue).

The state aggregator reads the queue, updates pool state (current tick, balances, TVL), and checks alert conditions. Periodic polling (every 30-60 seconds) for metrics that don't emit events (e.g., accumulated fees via NonfungiblePositionManager.collect).

The alert dispatcher deduplicates alerts (one alert per 5 minutes per position), formats the message, and sends via Telegram or webhook. For production systems — PagerDuty with severity levels.

Calculating Accumulated Fees Without a Transaction

Current accumulated fees of an LP position can be computed off-chain without calling collect (which costs gas). Formula from the Uniswap v3 whitepaper using feeGrowthInside:

fees0 = liquidity * (feeGrowthInside0 - feeGrowthInside0Last) / 2^128 fees1 = liquidity * (feeGrowthInside1 - feeGrowthInside1Last) / 2^128 

feeGrowthInside is obtained from pool tick data via static calls — not a transaction. Showing users real-time accumulated fees helps in rebalancing decisions.

Example fee calculation for a test position For an ETH/USDC position with liquidity=10^18, feeGrowthInside0=0.0005, feeGrowthInside0Last=0.0004, fees0 = 10^18 * (0.0005 - 0.0004) / 2^128 ≈ 0.004 ETH. Similarly for the second asset.

Stack and Integrations

We use viem (TypeScript) for on-chain interaction — typed calls, built-in ABI decoder, multicall support for batching. The Graph for historical data and aggregated metrics. Redis for state persistence across restarts and deduplication. Telegram Bot API as the primary notification channel.

For multi-chain monitoring (Ethereum + Arbitrum + Optimism), parallel WebSocket connections feed one aggregator. Uniswap v3 is deployed on all three chains; pool addresses differ but ABI is identical.

Notification Channel Comparison

Channel Latency Reliability Cost
Telegram Bot 100-500ms High Free
PagerDuty 1-5 sec Very high Subscription
Discord Webhook 200-1000ms Medium Free

What's Included in the Work

  • Repository with bot source code.
  • Deployment and configuration documentation.
  • Telegram bot for receiving alerts.
  • 1 month of technical support after launch.
  • Optional: Grafana metrics dashboard, PagerDuty integration.

Our team has delivered 30+ DeFi monitoring solutions with 5+ years of blockchain expertise, ensuring a quality guarantee on every project.

Process and Pricing

Configuration (1 day). List of pools, positions, thresholds for alerts.

Development (3-5 days). Event listener + state aggregator + Telegram/webhook integration. Test on testnet (Sepolia with forked Uniswap v3 state via Foundry vm.createFork).

Deployment. VPS with at least 2 CPU / 4GB RAM, dedicated full node or Alchemy/QuickNode WebSocket endpoint. Monitoring the bot via pm2 + health check endpoint.

How to Set Up Monitoring in 5 Steps

  1. Specify pool and position addresses in the configuration file.
  2. Set thresholds for out-of-range and imbalance.
  3. Launch the event listener with a WebSocket provider.
  4. Connect the Telegram bot via BotFather.
  5. Test alert on testnet — then deploy to mainnet.

Timeline and Cost Estimates

Basic bot (one DEX, Telegram alerts): 3-5 days, starting from $500. Multi-chain system with historical metrics and dashboard: 2-3 weeks, starting from $2,000. Project cost is calculated individually based on complexity, number of chains, and required integrations. The bot quickly pays for itself by preventing impermanent loss losses — often saving $1,200/year or more for a $50k position. For pools with large liquidity, savings can be thousands of dollars per month. Contact us — we will help you choose the optimal configuration for your scenario. Get a consultation — we will prepare a commercial proposal within 1 business day.