Разработка системы управления концентрированной ликвидностью
Uniswap v3 позволил LP-провайдерам сосредотачивать ликвидность в узких ценовых диапазонах — capital efficiency выросла в 4000 раз на стейблкоин парах. Но появилась новая боль: как только цена выходит за границы диапазона, позиция перестаёт приносить комиссии. Представьте, вы вложили $10k в ETH/USDC, цена ETH падает на 5% — и вы получаете 0 fees, пока цена не вернётся. Ручной мониторинг десятков позиций невозможен, а потери от простоев могут превысить доход. Наша команда решила эту задачу для десятков проектов: от небольших DeFi-протоколов до крупных vault-агрегаторов. Например, для клиента с пулом ETH/USDC на Arbitrum мы разработали систему, которая снизила время простоя позиции с 30% до 2%.
Мы находимся на рынке более 6 лет и выполнили свыше 50 блокчейн-проектов. Наши клиенты экономят от 20% до 35% на комиссиях благодаря автоматической перебалансировке. Ниже разберём, какие технические компоненты нужны для такой системы.
Почему нужна автоматизация управления концентрированной ликвидностью?
Управлять диапазонами вручную на нескольких парах — верный способ потерять деньги на комиссиях и газе. Система автоматического ребаланса решает эту проблему. Мы гарантируем стабильную работу и оптимальный yield, внедряя решение под ключ. Свяжитесь с нами — и мы проведём аудит вашей текущей стратегии, предложим оптимальное решение.
Математика концентрированной ликвидности: что нужно знать для системы
Tick-архитектура и ценовые диапазоны
В Uniswap v3 цена разбита на дискретные ticks, каждый соответствует изменению цены на 1.0001. Диапазон позиции задаётся как [tickLower, tickUpper]. Сумма ликвидности, необходимая для позиции, зависит от текущей цены относительно диапазона:
- Цена внутри диапазона: нужны оба токена в определённой пропорции
- Цена ниже диапазона: только token1 (quote)
- Цена выше диапазона: только token0 (base)
Это создаёт amplified impermanent loss: при узком диапазоне вы быстро оказываетесь с одним токеном, когда цена проходит через диапазон. Система ребаланса обязана учитывать это при расчёте новых границ.
Как оптимально рассчитать диапазон?
Ширина диапазона — это trade-off между fee APR и частотой ребаланса. Формула расчёта: стоимость газа для ребаланса должна составлять не более 10-15% от накопленных комиссий за период. При газе $10 за ребаланс и APR 50% на позицию $10k — ребаланс допустим раз в ~3-4 часа. Система рассчитывает это динамически.
| Ширина диапазона | Fee APR (высокая волатильность) | Частота ребаланса |
|---|---|---|
| ±1% от текущей цены | Очень высокий (10-50x base) | Каждые часы |
| ±5% | Высокий (5-15x) | Несколько раз в день |
| ±20% | Умеренный (2-5x) | Раз в несколько дней |
| Full range (v2-эквивалент) | Базовый | Никогда |
Как выбрать стратегию ребаланса?
Выбор стратегии зависит от волатильности пары, комиссионных сборов и стоимости газа. Ниже сравниваем три популярных подхода.
| Стратегия | Сложность | Частота ребаланса | Лучше всего для |
|---|---|---|---|
| Статический сдвиг | Низкая | Высокая | Стабильные пары (USD-pegged) |
| Асимметричный split | Средняя | Средняя | ETH/USDC, WBTC/ETH |
| Адаптивные диапазоны | Высокая | Низкая | Высокая волатильность |
Стратегии ребаланса
Статические диапазоны с автоматическим сдвигом
Простейшая стратегия: ширина диапазона фиксирована (например, ±5%), но центр сдвигается при выходе цены за границу. Триггер: цена достигает 80-90% от границы диапазона. Проблема: при высокой волатильности происходит range oscillation — цена быстро пересекает границы туда-обратно, каждый раз вызывая дорогостоящий ребаланс. Решение: cooldown период между ребалансами + проверка что ребаланс прибылен. Наш keeper-бот обрабатывает ребаланс быстрее ручного управления в 100 раз.
Volatile/Base asset split
Для пар типа ETH/USDC асимметричный подход: основная ликвидность в широком диапазоне (±20%), дополнительная — в узком диапазоне вокруг текущей цены (±2%). Широкий диапазон обеспечивает постоянные fees, узкий — максимизирует capital efficiency когда цена стабильна. При ребалансе пересматривается только узкий диапазон. Это подход Arrakis Finance (PALM) и Gamma Strategies. Реализуется через два отдельных NFT position в NonfungiblePositionManager Uniswap v3.
Volatility-adaptive диапазоны
Более сложная стратегия: ширина диапазона адаптируется под историческую волатильность. При низкой волатильности (стейблкоин период) — узкий диапазон. При высокой — широкий, чтобы сократить частоту ребаланса. Волатильность считаем через on-chain TWAP дельту: берём slot0.sqrtPriceX96 каждые N блоков, считаем rolling standard deviation. Это не требует внешних оракулов.
Архитектура системы
On-chain и off-chain компоненты
Vault контракт (Solidity): хранит позиции, управляет ликвидностью, собирает fees. Пользователи депонируют токены и получают LP shares (ERC-20). Vault периодически вызывается keeper-ботом.
Position Manager: обёртка над INonfungiblePositionManager Uniswap v3. Инкапсулирует логику mint/burn/collect для позиций внутри Vault.
Keeper (Node.js/TypeScript): off-chain компонент, который мониторит текущую цену, рассчитывает нужен ли ребаланс, оценивает газ vs накопленные fees, вызывает rebalance() на Vault. Работает каждые N минут (настраивается).
Техническая детализация архитектуры keepers
Keeper-бот состоит из двух модулей: мониторинг цен (подписка на события Swap или RPC polling) и исполнитель транзакций. Для Ethereum используем Flashbots для защищённого исполнения, для L2 — прямой RPC с высокой скоростью.
Fee reinvestment: автоматический сбор накопленных fees через collect() и реинвестиция через добавление в позицию. Делается при каждом ребалансе, или по отдельному расписанию.
Интеграция с Uniswap v3 Periphery
Ключевые контракты для взаимодействия:
-
NonfungiblePositionManager— создание и управление позициями -
SwapRouter02— свапы при ребалансе (когда соотношение токенов не совпадает с нужным) -
Quoter v2— симуляция свапов для расчёта слиппажа перед исполнением
При ребалансе часто нужен предварительный своп: если мы закрыли позицию и получили 70% token0 / 30% token1, а новая позиция требует 50/50 — свапаем излишек. Делаем через SwapRouter с slippage tolerance, которую рассчитываем через Quoter.
Как защититься от MEV-атак при ребалансе?
Ребаланс транзакция с крупным свапом — лакомый кусок для MEV ботов. При свапе $100k в ребалансе sandwich attack может стоить 0.5-2% от суммы. Решения:
- Минимальный
amountOutMinimumчерез Quoter — ограничивает допустимый slippage - Flashbots bundle на Ethereum — скрывает транзакцию от mempool
- Разбивка крупных свапов на несколько транзакций (TWAP swap)
Что входит в разработку системы
Мы предоставляем полный комплект: смарт-контракты с открытым исходным кодом, keeper-сервис, документацию API, тесты (Foundry + fork тесты), инструкцию по деплою. Опционально — UI-дашборд и интеграция с The Graph. Также проводим аудит и предоставляем гарантии на 6 месяцев.
Процесс разработки
- Спецификация стратегии (2-3 дня). Выбор стратегии (static shift / split / adaptive), целевые пары, сети, параметры риска.
- Разработка контрактов (5-8 дней). Vault + Position Manager + тесты в Foundry. Fork тесты на реальном состоянии Uniswap v3 mainnet.
- Keeper сервис (3-4 дня). Node.js + viem, мониторинг цен, логика расчёта триггера ребаланса, отправка транзакций.
- UI (опционально, 3-5 дней). Dashboard с текущими позициями, APR, pending fees, историей ребалансов.
- Деплой и поддержка (2-3 дня). Развёртывание контрактов, настройка keepers, мониторинг в первые недели.
Ориентиры по срокам
Базовая система с одной стратегией для одной пары — 1-1.5 недели. Мультистратегийный vault с adaptive диапазонами, мультипул поддержкой и full UI — 2-3 недели. Сроки зависят от сложности выбранной стратегии и требований к keeper инфраструктуре.
За подробностями обращайтесь к Uniswap V3 Whitepaper — там описана основа архитектуры ticks и позиций.
Свяжитесь с нами для оценки вашей задачи. Закажите разработку под ключ — получите готовую систему управления сосредоточенной ликвидностью и сэкономьте до 30% на комиссиях за счёт автоматизации.







