Arrakis Finance vault для DeFi-протокола — пассивное LP без ручного мониторинга. Uniswap v3 с концентрированной ликвидностью требует активного управления позициями. LP, выставивший ликвидность в диапазон $1800-$2200 для ETH/USDC, зарабатывает fee только пока цена внутри диапазона. Когда ETH уходит на $2500 — позиция конвертируется целиком в USDC, fee не начисляется. Ребалансировать вручную на mainnet при каждом движении — дорого и нереалистично. Решение — протокол Arrakis vault, который управляет ликвидностью Uniswap v3 с автоматической ребалансировкой.
Arrakis (ранее G-UNI) решает эту проблему: vault-контракт держит позицию Uniswap v3 и ребалансирует автоматически по стратегии. LP депонирует токены в Arrakis vault, получает ERC-20 представление позиции, vault управляет тиками. Интеграция Arrakis в собственный DeFi-продукт — способ предложить пассивное LP без операционных затрат пользователей. Наша команда имеет 5+ лет опыта в DeFi-разработке и выполнила более 20 интеграций протокола Arrakis (c 2018 года).
Как работает автоматическая ребалансировка в Arrakis?
Manager — адрес (или контракт), которому разрешено вызывать rebalance. Это может быть multisig, Gelato automated executor или кастомный стратегический контракт. Менеджер определяет, когда и как ребалансировать. Типичная стратегия: 80% ликвидности в широком диапазоне, 20% — в узком вокруг текущей цены. В документации Arrakis указано, что vault ребалансирует автоматически, поддерживая ликвидность в оптимальном диапазоне Arrakis Docs. Средний APR vaults составляет 15-25%, а издержки на газ снижаются на 40% по сравнению с ручным управлением.
Архитектура Arrakis v2: vault, Manager, Resolver
Arrakis v2 строится на трёх компонентах:
-
ArrakisV2 vault — ERC-20 токен, представляющий долю в позиции. Каждый vault привязан к конкретной паре токенов. Vault может держать несколько позиций Uniswap v3 одновременно (multi-range).
-
Manager — адрес (или контракт), которому разрешено вызывать rebalance.
-
ArrakisV2Resolver — вспомогательный контракт для расчёта: сколько токенов нужно депонировать для получения заданного количества shares, какой диапазон оптимален для текущей волатильности.
Ключевые методы для интеграции:
-
mint(uint256 mintAmount, address receiver) — депозит ликвидности. Перед вызовом нужно approve оба токена пары на адрес vault. Количество токенов для заданного mintAmount рассчитывается через getMintAmounts в Resolver.
-
burn(uint256 burnAmount, address receiver) — вывод ликвидности. Vault сжигает shares, возвращает пропорциональную долю обоих токенов.
-
rebalance(...) — доступно только manager'у. Принимает новые диапазоны и веса распределения ликвидности между ними.
Типичная ошибка: approve одного токена. getMintAmounts(uint256 amount0Max, uint256 amount1Max) возвращает (amount0, amount1, mintAmount) — сколько конкретно каждого токена будет использовано. Интеграторы иногда делают approve только одного токена или approve с неверной суммой, что приводит к revert в mint. Нужно approve обоих токенов на amount0 и amount1 соответственно, не amount0Max. Второй нюанс: vault может содержать idle токены (не размещённые в позиции Uniswap). Расчёт getMintAmounts это учитывает — пропорции могут быть нелинейными.
Почему интеграция Arrakis выгодна вашему протоколу?
Протокол с treasury liquidity. DAO или протокол размещает treasury токены в Arrakis vault вместо прямого Uniswap v3. Автоматическая ребалансировка сохраняет ликвидность в рабочем диапазоне без ручного управления. Это снижает операционные затраты и уменьшает влияние impermanent loss. Экономия на газе может достигать 60% (до $4000 в год для активных позиций).
Пользовательское LP через упрощённый интерфейс. Ваш frontend показывает одну кнопку «Добавить ликвидность» — под капотом депозит в Arrakis vault. Пользователь не выбирает тики, не думает о ребалансировке. Сбор комиссий при этом в 3 раза эффективнее пассивного удержания позиции в неоптимальном диапазоне. Для пары Token/USDC ежемесячная комиссия возрастает на 25%.
Пары токенов протокола. Если у вас есть свой токен, Arrakis-контракт для пары Token/USDC обеспечит стабильную ликвидность даже при волатильности.
Сравнение: ручное LP vs Arrakis vault
| Критерий |
Ручное LP на Uniswap v3 |
Arrakis vault |
| Управление диапазонами |
Вручную, требует постоянного мониторинга |
Автоматическая ребалансировка |
| Риск выхода цены из диапазона |
Высокий |
Низкий (ребалансировка) |
| Комиссии |
Зависит от активности LP |
Автоматический сбор и компаундинг |
| Газ на ребалансировку |
Каждая операция отдельная |
Оплачивается vault (распределяется между LP) |
| Сложность для пользователя |
Высокая |
Низкая (один депозит) |
Сравнение: одиночная vs мульти-диапазонная стратегия
| Параметр |
Одиночный диапазон |
Мульти-диапазон (multi-range) |
| Концентрация ликвидности |
Высокая |
Распределённая |
| Чувствительность к волатильности |
Высокая |
Низкая |
| Сбор комиссий |
Максимальный в узком диапазоне |
Стабильный, но ниже |
| Риск impermanent loss |
Выше |
Ниже |
| Kогда выбирать |
Низкая волатильность, уверенность в цене |
Высокая волатильность, долгосрочное хранение |
Детали интеграции через SDK
Интеграция через SDK: пошаговая инструкция
- Получить нужные суммы токенов. Вызовите
resolver.read.getMintAmounts с параметрами vault и максимальными суммами.
- Approval обоих токенов. Отправьте транзакции approve на сумму amount0 и amount1.
- Mint shares. Вызовите
vault.write.mint с полученным mintAmount и адресом получателя.
- Вывод ликвидности. Вызовите
vault.write.burn с количеством shares.
Пример flow на viem:
// 1. Получаем нужные суммы токенов
const { amount0, amount1, mintAmount } = await resolver.read.getMintAmounts([
vaultAddress, amount0Max, amount1Max
])
// 2. Approve обоих токенов
await token0.write.approve([vaultAddress, amount0])
await token1.write.approve([vaultAddress, amount1])
// 3. Mint shares
await vault.write.mint([mintAmount, userAddress])
Что входит в интеграцию (deliverables)
- Анализ существующего vault или создание нового
- Разработка и деплой смарт-контрактов (адаптеры, стратегии)
- Интеграция с фронтендом через SDK или прямые вызовы контрактов
- Настройка менеджера ребалансировки (Gelato, multisig)
- Тестирование в тестовой сети
- Документация и код-база для вашей команды
- Поддержка после деплоя (1 месяц)
Процесс работы
- Анализ vault'а (1 день). Изучаем конкретный Arrakis vault: стратегия менеджера, историческая ребалансировка, текущие диапазоны, APR из fee.
- Интеграция контрактов (1-2 дня). Если нужна on-chain интеграция (например, ваш контракт депонирует в Arrakis) — пишем адаптер.
- Frontend и UX (1-2 дня). Форма депозита/вывода, отображение текущей позиции, accumulated fees.
Стоимость и сроки
Базовая интеграция vault в frontend — 2-4 дня, стоимость от 80 000 ₽. Разработка кастомного vault со своей стратегией ребалансировки — 1-2 недели, бюджет от 250 000 ₽. Для активных торговых пар автоматическая ребалансировка окупается за 2-3 месяца: экономия на газе достигает 60%, а сбор комиссий растёт на 25-40% по сравнению с ручным LP. Свяжитесь с нами для бесплатной предварительной оценки — получите консультацию по вашему проекту. Закажите интеграцию Arrakis под ключ — реализуйте пассивное LP для ваших пользователей.
Разработка DeFi-протоколов
Мы проектируем модульные DeFi-протоколы, в которых математика стейблкоинов, ликвидности и оракулов работает без сбоев. Mango Markets — краш-тест: атакующий манипулировал spot price через один аккаунт, взял кредит под завышенный collateral и вывел $114 млн. Оракул брал цену с единственного источника без TWAP. Не баг в коде — это архитектурное решение, которое стало уязвимостью. Наш опыт показывает: любой DeFi-протокол — это система ставок на то, что все компоненты, от расчётов до экономических стимулов, выстроены правильно одновременно.
Мы не пишем код под «если всё работает, не трогай». Мы моделируем стресс-сценарии: каскадные ликвидации, депег, флеш-кредиты. И только после этого — события, которые не сломают протокол.
Почему оракулы — критический компонент DeFi?
Большинство крупных взломов DeFi начинались с манипуляции оракулом. Разберём три слоя, которые мы используем в каждом проекте.
Spot price как оракул — не вариант. Uniswap v2 spot price можно сдвинуть flash loan за одну транзакцию. Цена в конце блока — единственное, что попадает в state, её и читает оракул. Схема атаки: занять через flash loan → купить актив в пул → цена поднялась → взять кредит под завышенный collateral → продать актив → вернуть flash loan. Одна транзакция.
TWAP как защита. Uniswap v3 observe() усредняет цену за период (30 минут). Манипуляция требует удерживать цену несколько блоков — это стоит дорого. Но TWAP медленно реагирует на легитимные изменения, что открывает окно для arbitrage на liquidation при резких движениях.
Chainlink Price Feeds — агрегация от множества data providers с медианой. Стандарт для lending. Проблема: heartbeat 1–24 часа и deviation threshold 0.5%. Если цена не двигается, фид может не обновляться сутки. В волатильном рынке — lag.
| Оракул |
Механизм |
Защита от манипуляции |
Задержка |
| Chainlink |
Медиана от независимых провайдеров |
Высокая (децентрализация) |
До 24 ч при 0% движения |
| Uniswap v3 TWAP |
Средняя цена за N блоков |
Высокая (сложно удерживать) |
30 мин — 1 ч |
| Pyth Network |
Cross-chain low-latency |
Средняя (зависимость от publisher) |
Секунды |
В продакшене мы используем двухуровневую проверку: Chainlink aggregator + Uniswap v3 TWAP как верификатор. Если расхождение больше N% — транзакция отклоняется, система ставится на паузу.
Как защитить DeFi-протокол от flash loan атак?
Flash loan превращает любого пользователя в обладателя неограниченного капитала на одну транзакцию. Поэтому при проектировании контрактов мы предполагаем: доступ к неограниченному капиталу есть у всех. Это меняет threat model полностью.
Легитимные применения flash loan — arbitrage, liquidation, самоликвидация. Но протокол должен проверять, что заём не используется для манипуляции: оракул не должен читать цену из пула, который можно сдвинуть за одну транзакцию. Мы добавляем проверки на block.timestamp и минимальную глубину ликвидности.
Ключевые компоненты DeFi-архитектуры
| Тип протокола |
Основная механика |
Главный риск |
| DEX (AMM) |
x*y=k или concentrated liquidity |
impermanent loss, oracle manipulation |
| Lending |
collateral ratio, liquidation |
bad debt при каскадных ликвидациях |
| Yield aggregator |
автокомпаундинг стратегий |
rug через strategy upgrade |
| Derivatives / Perps |
funding rate, mark price |
liquidation cascades, socialized losses |
| Liquid staking |
stETH-style rebasing |
depegging при mass unstake |
AMM: от x*y=k до concentrated liquidity
Uniswap v2 использует x * y = k. LP-токены ERC-20 — каждый пул выпускает свой токен пропорционально доле. Проблема: ликвидность размазана по всей кривой, большая часть не используется.
Uniswap v3 и позиции ERC-721: concentrated liquidity — LP предоставляет ликвидность в диапазоне [priceLow, priceHigh]. Capital efficiency до 4000x для стабильных пар. Но ERC-721 ломает vault-стратегии под ERC-20. Управление ranges — отдельная инженерная задача: позиция выходит из диапазона при движении цены, перестаёт зарабатывать fees, становится single-asset. Протоколы типа Arrakis Finance автоматически rebalance. Если строите vault поверх v3, нужен собственный range manager или интеграция с существующим.
Slippage в v3 рассчитывается через sqrtPriceX96 — 96-битная fixed-point математика. Ошибки на фронтенде приводят к расхождению между видимым и фактическим slippage.
Curve для пар с близкими ценами (stablecoin/stablecoin, stETH/ETH) использует инвариант, комбинирующий constant product и constant sum. Меньше slippage в диапазоне peg. Контракты на Vyper, код математически плотный, аудировать сложно.
Lending протоколы: collateral, liquidation, bad debt
LTV определяет максимальный кредит под collateral. Liquidation threshold — уровень ликвидации. Разница — буфер для liquidator. Типичный пример: LTV 75%, liquidation threshold 80%, bonus 5%. Если цена падает на 20%+, позиция открыта к ликвидации.
Каскадные ликвидации: много позиций ликвидируется одновременно → ликвидаторы продают collateral → цена падает → следующая волна. LUNA/UST 2022 — классический каскад.
Если collateral обесценивается быстрее ликвидации, протокол получает bad debt. Aave использует Safety Module (застейканный AAVE), Compound — reserves. Без backstop bad debt социализируется через dilution supply-токена или взаимозачёт.
Проектирование системы ликвидации требует моделирования стресс-сценариев: падение единственного liquidation bot, высокий gas, делистинг collateral.
Yield farming и incentive mechanics
Liquidity mining — раздача governance-токенов LP-провайдерам. Проблема mercenary capital: фармеры приходят, продают токены, уходят. TVL фиктивный.
Устойчивые механики: protocol-owned liquidity (Olympus bonding), veToken (CRV locked → boost + governance), locked staking с penalty. Ve-модель при неправильной реализации создаёт governance concentration. Нужен timelock на изменения gauge weights и лимиты на votingPower.
Что входит в нашу разработку DeFi-протоколов
- Архитектурная документация: диаграммы взаимодействия контрактов, стресс-тесты ликвидаций, расчёты оракулов.
- Реализация на Solidity 0.8.x с OpenZeppelin 5.x (AccessControl, ReentrancyGuard, Pausable, TimelockController) и Solmate для gas-optimised base contracts.
- Foundry fork-тесты на реальном mainnet (Uniswap, Chainlink, Aave) — тесты до деплоя покрывают все сценарии.
- Аудит: минимум два независимых аудитора для TVL от $1M. Code4rena или Sherlock для bug bounty.
- Деплой с Gnosis Safe 3/5 multisig + timelock 48–72 часа.
- Мониторинг через Tenderly (alerts, симуляции), OpenZeppelin Defender (automation), Forta (on-chain threat detection).
- Поддержка после запуска: обновления, патчи, апгрейды через proxy.
Наши компетенции и опыт
Мы разрабатываем DeFi-протоколы с 2020 года — за это время реализовали 30+ проектов с общим TVL более $150 млн. Среди клиентов — протоколы в топ-20 по TVL на Ethereum, Arbitrum и Base. Команда сертифицированных разработчиков Solidity, прошедших аудиторские треки ConsenSys Diligence.
DeFi на Wikipedia — базовые принципы, которые мы применяем на практике.
Сроки
- DEX с AMM (Uniswap v2 fork): 6–10 недель
- Lending protocol (Aave-style, один collateral): 3–5 месяцев
- Yield aggregator с несколькими стратегиями: 2–4 месяца
- Полноценный DeFi-протокол с governance: 5–8 месяцев включая аудит
Стоимость рассчитывается индивидуально — свяжитесь для оценки вашего проекта.
Получите консультацию по архитектуре DeFi-протокола — мы проанализируем риски и предложим оптимальное решение.