Пользователь видит APY 45% на платформе и вносит активы. Спустя три месяца при выводе получает всего 8% в долларах. Остальное съели комиссии при входе и выходе, газ на 12 транзакций, impermanent loss в пуле и налог на reward-токены, потерявшие 70% стоимости к моменту харвестинга. Мы сталкивались с такими ситуациями десятки раз — именно поэтому разработали калькулятор доходности, который показывает реальную картину до принятия решения. Наш инструмент подходит для LP-позиций, лендинга и стейкинга на Ethereum, Polygon, Arbitrum и других сетях. Калькулятор интегрируется с основными протоколами: Aave, Compound, Uniswap, Curve и Balancer. Он учитывает не только APY, но и газ, IL, изменение цены токенов и налоги. Закажите разработку такого калькулятора под ключ — мы оценим ваш проект и предложим решение.
Какие параметры нужно учитывать при расчёте доходности?
Как APY отличается от APR?
APR (Annual Percentage Rate) — простой процент без реинвестирования. APY (Annual Percentage Yield) — с учётом compound interest. Разница существенная:
- APR 50% → APY ≈ 64.8% при ежедневном compounding
- APR 50% → APY ≈ 100% при компаундинге каждый блок (~12 сек на Ethereum)
Формула APY через APR: APY = (1 + APR/n)^n - 1, где n — количество периодов начисления в год.
Проблема: в DeFi APY часто отображается с допущением о постоянной ставке и максимальном compounding. В реальности ставка меняется каждый блок, а газ на каждый compound операцию уменьшает реальную доходность. compound interest
Как определить оптимальную частоту compound?
При стандартной стоимости газа на Ethereum и позиции среднего размера с APR 40% — оптимальная частота compound раз в ~7 дней. Чаще — газ съедает больше, чем зарабатывает compound. Калькулятор рассчитывает оптимальный интервал.
Почему impermanent loss критичен для LP?
Для liquidity provider позиций доходность нельзя считать без impermanent loss (IL). Формула IL для Uniswap v2:
IL = 2 * sqrt(priceRatio) / (1 + priceRatio) - 1
Если ETH/USDC пул: ETH входил по $2000, сейчас $3000. priceRatio = 1.5. IL ≈ -2.02%.
Для Uniswap v3 с concentrated liquidity IL считается иначе — зависит от диапазона позиции. Если цена выходит из диапазона, позиция становится 100% в одном активе (полный IL, комиссии не начисляются). Математика сложнее, но реализуема: нужно знать tickLower, tickUpper, текущий tick.
Реальные компоненты доходности для полного расчёта
interface YieldComponents {
baseApr: number; // Lending APR или trading fees
rewardApr: number; // Emission rewards в токенах протокола
compoundBonus: number; // Прирост от реинвестирования
impermanentLoss: number; // Только для LP (отрицательное)
tradingFees: number; // Накопленные комиссии за период
gasCosts: number; // Все on-chain операции в USD
tokenPriceImpact: number; // Изменение цены reward токена
realYield: number; // Итого в USD
}
Пошаговая разработка калькулятора
- Сбор требований и выбор протоколов для интеграции
- Разработка математической библиотеки на TypeScript
- Подключение источников данных: The Graph, RPC, API
- Реализация симуляции сценариев и gas-калькулятора
- UI/UX дизайн с Recharts для визуализации
- Интеграция с кошельком через wagmi
- Тестирование на testnet и mainnet
- Документация и обучение команды
Источники данных
-
Aave v3:
getReserveData() возвращает currentLiquidityRate (RAY = 1e27). Конвертация в APY: (1 + rate/SECONDS_PER_YEAR)^SECONDS_PER_YEAR - 1
- Compound v3:
getUtilization() → getSupplyRate(utilization) → линейный расчёт APR
- Uniswap v3: fees APR считается через subgraph или
positions() NFT — volume за 24h × fee tier / TVL × 365
- Curve:
get_virtual_price() для base APY + gauge reward APR через CRV emission schedule
- Balancer: vault API или subgraph для
swapFee и volume
The Graph subgraph — предпочтительный источник для исторических данных. Он в 5 раз быстрее получает данные по сравнению с прямыми RPC-вызовами. Прямые RPC вызовы — для real-time текущих ставок.
Симуляция на временном горизонте
Калькулятор не только считает текущий APY, но и проецирует на пользовательский горизонт (30/90/365 дней) с несколькими сценариями:
| Сценарий |
Допущения |
Назначение |
| Оптимистичный |
APR не падает, цена rewards +50% |
Максимальный потенциал |
| Базовый |
APR снижается на 20% за квартал (рост TVL) |
Реалистичная оценка |
| Консервативный |
APR -50%, rewards -70% |
Защита от ошибочных ожиданий |
| Bear market |
APR минимальный, все активы -50% |
Стресс-тест |
Gas cost calculation
Каждая операция имеет measurable gas cost. Ниже — типичные затраты:
| Операция |
Gas (единицы) |
| aaveDeposit |
180 000 |
| aaveWithdraw |
210 000 |
| uniswapV3Mint |
450 000 |
| uniswapV3Collect |
280 000 |
| curveDeposit |
320 000 |
| rewardClaim |
150 000 |
const GAS_ESTIMATES = {
aaveDeposit: 180_000,
aaveWithdraw: 210_000,
uniswapV3Mint: 450_000,
uniswapV3Collect: 280_000,
curveDeposit: 320_000,
rewardClaim: 150_000,
} as const;
function calcGasCost(operation: keyof typeof GAS_ESTIMATES, gasPriceGwei: number): number {
const gasUnits = GAS_ESTIMATES[operation];
const ethPrice = getCurrentEthPrice();
return (gasUnits * gasPriceGwei * 1e-9) * ethPrice; // USD
}
Исторические данные по gas price из Etherscan API или The Graph — для расчёта средних затрат при заданной стратегии rebalancing/harvesting.
Функциональность и UX
Минимальный набор:
- Ввод суммы и периода
- Выбор протокола/стратегии (поиск по названию)
- Real-time fetch текущих APR из протоколов
- Три сценария (оптимистичный/базовый/консервативный)
- Разбивка: base yield, rewards, impermanent loss, gas costs, net yield
- Сравнение нескольких стратегий рядом
Дополнительно — ROI breakeven calculator: при какой минимальной сумме и продолжительности стратегия окупает gas costs. Это особенно важно для мелких инвесторов на Ethereum mainnet.
Стек технологий
Frontend: React + TypeScript, Recharts для графиков доходности, wagmi для подключения кошелька.
Data: The Graph (APR histories), Alchemy/Infura (real-time chain data), CoinGecko API (цены токенов).
Logic: Typescript utility library с чистыми функциями для всех финансовых расчётов — легко тестировать и переиспользовать.
Ориентиры по срокам
Базовый калькулятор для 2-3 протоколов — 3-5 дней. Мульти-протокольный с историческими данными, IL для LP и газ-оптимизатором — 1-2 недели. Стоимость рассчитывается индивидуально. Более 5 лет на рынке DeFi, 20+ реализованных проектов — наш опыт позволяет гарантировать точность расчётов и стабильность работы.
Что входит в работу
- Анализ требований и подбор протоколов
- Разработка логики расчётов (TypeScript)
- Интеграция с real-time данными (The Graph, RPC)
- UI/UX дизайн интерфейса
- Тестирование на тестовых сетях и mainnet
- Документация и обучение команды
- Поддержка в течение 2 месяцев
Симуляция использует исторические данные APR, моделирует изменение пула, цены токенов и газа. Для каждого сценария запускается 1000 Monte Carlo итераций с варьированием ключевых параметров. Результат — распределение возможной доходности.
Свяжитесь с нами для консультации и получите демо-версию калькулятора под ваш проект. Закажите разработку калькулятора — мы оценим проект и предложим решение.
Разработка 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-протокола — мы проанализируем риски и предложим оптимальное решение.