Розробка системи порівняння APY/APR DeFi-протоколів

Розробка системи порівняння APY/APR протоколів Користувач бачить на Aave 4.2% APY на USDC, на Compound 5.1% APR, на Morpho 5.8% c rewards токенами. Але цифри непорівнянні: Aave рахує compound interest, Compound — просту ставку, Morpho додає MORPHO винагороди. На одному проєкті для DeFi-агрегатора

Напрямки блокчейн-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1452
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1309
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1005
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1270
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    719
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1012

Розробка системи порівняння APY/APR протоколів

Користувач бачить на Aave 4.2% APY на USDC, на Compound 5.1% APR, на Morpho 5.8% c rewards токенами. Але цифри непорівнянні: Aave рахує compound interest, Compound — просту ставку, Morpho додає MORPHO винагороди. На одному проєкті для DeFi-агрегатора ми виявили, що постачальники даних видавали APY та APR перемішано, а rewards спотворювали картину до 7% різниці. Після нормалізації та впровадження risk-adjusted score клієнт збільшив TVL свого пулу на 35% за рахунок точного відображення дохідності. Система також заощадила команді по 15 годин ручного аналізу на тиждень — це дозволило швидше реагувати на зміни ринкових умов.

Ми розробили систему, яка нормалізує метрики до єдиного стандарту — Daily APR — та показує реальну дохідність з урахуванням усіх факторів. В основі лежать on-chain дані, Multicall3 батчинг та історична агрегація. На практиці різниця в представленні дохідності може вводити в оману навіть досвідчених LP. Коректна нормалізація — перший крок до об'єктивного порівняння пулів.

Проблема порівняння метрик

APR — проста ставка без реінвестування. APY — з урахуванням compound effect. Різниця при частому нарахуванні суттєва:

APY = (1 + APR/n)^n - 1 

На Ethereum при APR = 10% та нарахуванні кожен блок (≈ 2190 разів/рік) APY ≈ 10.52%. Для коректного порівняння система нормалізує все в Daily APR — ділимо річну ставку на 365. Користувачу показуємо APY, всередині рахуємо в Daily APR.

Порівняння метрик для наочності:

Параметр APR APY
Врахування реінвестування Ні Так
Типове використання Кредитування Депозити
Приклад (10% річних, денна капіталізація) 10% 10.52%

Багато протоколів поверх базової ставки платять власні токени (COMP, AAVE, MORPHO). Ми показуємо base APY (без rewards) та total APY (з rewards) окремо. Для reward-токенів враховуємо поточну ціну через oracle (Chainlink) — волатильна, може впасти до моменту claim, а також vesting/lock (AAVE Safety Module вестирується 10 днів) та emission decay. Користувач сам вирішує, чи враховувати нестабільні rewards.

Отримання даних on-chain: кожен протокол надає дані по-своєму. Ми використовуємо Multicall3 для батчингу: 1000 окремих викликів упаковуються в одну транзакцію. Це в 100 разів ефективніше послідовних запитів і економить газ.

Приклад для Aave V3:

const calls = protocols.flatMap(protocol => assets.map(asset => ({ target: protocol.address, callData: protocol.interface.encodeFunctionData("getReserveData", [asset]) })) ); const results = await multicall.aggregate(calls); 

Для історичних даних використовуємо офіційні субграфи (The Graph) Aave, Compound. Для протоколів без субграфа — власний event indexer.

Архітектура системи

Шар збору даних

On-chain виклики дорогі (RPC requests). При 10 протоколах × 20 assets × 5 метрик = 1000 calls при кожному оновленні. Рішення: Multicall3 батчинг — всі calls в одну транзакцію. Що входить в нашу роботу:

  • Розробка адаптерів для кожного протоколу (типові контракти + кастомні)
  • Налаштування кешування: Redis (TTL 60 сек) для поточних ставок, PostgreSQL — щогодинні снепшоти
  • Real-time оновлення через WebSocket (при наявності подій)
  • Background job кожні 60 секунд fetches on-chain дані

Як ми гарантуємо точність метрик?

Ми перевіряємо формули за офіційною документацією протоколів — Aave, Compound. Кожен адаптер проходить unit-тести з використанням Tenderly fork. Результати звіряються з даними Etherscan та Dune Analytics.

Історична динаміка

Поточний APY — моментальний знімок. Для прийняття рішень потрібна історія: moving average (7d, 30d), волатильність (std dev APY), min/max за період. Volatile APY (змінюється в 5x діапазоні за місяць) — інший профіль ризику, ніж stable APY (±0.5%). Приклад розрахунку волатильності: за 30 днів APY коливалася від 3.2% до 7.8%. Стандартне відхилення — 1.4%. Це сигнал про нестабільну дохідність, часто через reward-емісію.

Ранжування та порівняння

Просто відсортувати за APY — недостатньо. Система пропонує фільтри:

  • Тільки stable APY (волатильність < 0.5% за 30 днів)
  • Тільки audited протоколи (перевірені аудити)
  • Мінімальний TVL (виключаємо маленькі пули)

Користувач сам зважує пріоритети — єдиний score не нав'язується.

Які протоколи підтримуються за замовчуванням?

Підтримуємо основні ринки та пули:

Протокол Тип Мережа Активи
Aave V3 Lending Ethereum, Polygon, Arbitrum USDC, USDT, WETH, WBTC
Compound V3 Lending Ethereum, Polygon USDC, WETH
Morpho Aggregator Ethereum USDC, WETH, DAI
Curve AMM Ethereum, Polygon USDC, DAI, FRAX
Pendle Yield Ethereum, Arbitrum USDC, wstETH
Uniswap V3 AMM Ethereum, Polygon, Arbitrum WETH/USDC, WETH/DAI

За запитом додаємо будь-який EVM-протокол з кастомним адаптером.

Як ми нормалізуємо APY покроково

  1. Отримуємо raw-дані з контракту протоколу через Multicall3 (одна батч-транзакція).
  2. Витягуємо базову ставку та параметри нагородження (reward per second, oracle price).
  3. Перераховуємо в єдиний формат: конвертуємо APR в APY з частотою капіталізації протоколу.
  4. Для reward-токенів обчислюємо тотальний APY з урахуванням поточної ціни та вестингу.
  5. Записуємо снепшот в історичну базу та оновлюємо Redis-кеш (TTL 60 сек).

Цей процес повторюється кожну хвилину автоматично.

Що входить в роботу

  • Адаптери для кожного протоколу (типові + кастомні)
  • REST API з документацією (OpenAPI)
  • Історичний індекс (щогодинні снепшоти в PostgreSQL)
  • UI-компоненти для Next.js (Recharts, TanStack Query)
  • Юніт-тести та інтеграційні тести на Tenderly fork
  • Інструкція з розгортання та експлуатації
  • Підтримка протягом 30 днів після запуску

Технічний стек

  • Backend: Node.js + TypeScript, Viem (on-chain), PostgreSQL, Redis, Bullmq
  • Frontend: Next.js, TanStack Query, Recharts / Tremor
  • Інфраструктура: Docker Compose, GitHub Actions, Tenderly для forking

Терміни: MVP з 3-5 протоколами, поточні rates — 3-5 днів. Повноцінна система з історією, фільтрами та візуалізацією — 2-3 тижні. Вартість розраховується індивідуально. Зв'яжіться з нами для оцінки вашого проекту. Замовте демо-версію, щоб побачити нормалізовані метрики ваших протоколів.

Наш досвід — 5+ років у Web3, 50+ інтеграцій DeFi-протоколів. Гарантуємо коректність розрахунків та відповідність on-chain даним.