Розробка flash loan ліквідаційного бота на Aave v3

Зазначимо: коли ринок різко падає, на протоколах кредитування з'являються мільйони доларів до ліквідації. Боти, які встигають першими, отримують комісію ліквідатора — до 8% від застави. Інші або не встигають, або їхні транзакції скасовуються через зростання ціни. Розробка flash loan ліквідаційного б

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

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

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

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

Зазначимо: коли ринок різко падає, на протоколах кредитування з'являються мільйони доларів до ліквідації. Боти, які встигають першими, отримують комісію ліквідатора — до 8% від застави. Інші або не встигають, або їхні транзакції скасовуються через зростання ціни. Розробка flash loan ліквідаційного бота для Aave v3 — це завдання на швидкість, точність розрахунку та MEV-стратегію. Flash loan дозволяє брати участь без власного капіталу: позичити актив, ліквідувати, обміняти заставу на актив, повернути борг з комісією — все в одній атомарній транзакції. Наші інженери мають 6+ років досвіду в блокчейн-розробці та пройшли десятки аудитів смарт-контрактів. Гарантуємо стабільну роботу та захист від MEV. У цій статті розберемо, як влаштована ліквідація на Aave v3, спроєктуємо архітектуру бота та включимо MEV-захист.

Як влаштована ліквідація на Aave v3

Позиція переходить у ліквідований статус, коли health factor < 1.0. Health factor = (collateral_value * liquidation_threshold) / debt_value. Liquidation threshold для ETH на Aave v3 — 82.5%, для WBTC — 75% (див. Aave v3 документацію).

Ліквідатор викликає liquidationCall(collateralAsset, debtAsset, user, debtToCover, receiveAToken). Максимально можна покрити 50% боргу за одну транзакцію (close factor). В обмін отримує collateral з бонусом — liquidation bonus, для ETH це 5%.

Як розрахувати прибутковість?

profit = collateral_received * collateral_price - debt_covered * debt_price - flash_loan_fee (0.09% на Aave v3) - swap_slippage - gas_cost 

Якщо profit ≤ 0 — транзакцію не відправляємо. Це звучить очевидно, але без точного off-chain розрахунку з актуальними цінами оракулів та slippage bot втрачає гроші на кожній unprofitable ліквідації, оплачуючи лише газ. Наприклад, ліквідація позиції в $10,000 при ціні газу $50 може виявитися збитковою, якщо slippage перевищує 0.5%.

Приклад розрахунку прибутковості Для позиції $10,000: collateral = $10,000, debt = $8,000, bonus 5%, fee 0.09%, gas $50, slippage 0.5%. Profit = ($10,000*1.05 - $8,000) - $8,000*0.0009 - $10,000*0.005 - $50 = $2,500 - $7.2 - $50 - $50 = $2,392.8. Прибуток значний.

Архітектура бота

Smart contract виконавець

Один контракт, який приймає параметри ліквідації та виконує атомарну послідовність:

  1. flashLoan() від Aave PoolAddressesProvider — позичаємо debtAsset
  2. У callback executeOperation() викликаємо liquidationCall
  3. Отримуємо collateralAsset (або aToken)
  4. Свапаємо collateralAssetdebtAsset через Uniswap v3 або 1inch
  5. Повертаємо debtAsset + fee Aave
  6. Залишок — profit, йде на гаманець

Контракт має бути non-upgradeable та з onlyOwner на функцію виконання. Не потрібна апгрейдаємість — потрібна простота та відсутність attack surface.

Off-chain моніторинг

Джерело даних про позиції. Три варіанти:

  • getUserAccountData() через Multicall для списку відомих borrowers — повільно для великої кількості адрес
  • The Graph субграфи Aave — індексують всі позиції, оновлюються по блоках
  • Пряме подійне відстеження: Borrow, Deposit, Repay події → локальний state machine позицій

Оптимальна схема: The Graph для початкового завантаження стану + WebSocket подій для real-time оновлення. Список позицій з health_factor < 1.05 перевіряється при кожному новому блоці.

Метод Швидкість Масштабованість Вартість
Multicall Низька Обмежена Безкоштовно (query)
The Graph Висока Висока Платно (subgraph query)
Event-driven Середня Середня Безкоштовно

Як захиститися від MEV?

Ліквідаційний бот живе у світі MEV. Якщо відправити транзакцію в public mempool зі звичайним gasPrice, searcher може її front-run: скопіювати calldata, відправити з вищим gas, ліквідувати позицію раніше.

Bundle simulation. Перед відправкою симулюємо бандл через eth_callBundle — перевіряємо, що до моменту включення в блок позиція ще не ліквідована та profit позитивний. Відправка бандлів через Flashbots у 3 рази ефективніша за публічні транзакції на Ethereum mainnet за швидкістю ліквідації.

Priority fee динаміка. На L2 (Arbitrum, Optimism, Base) MEV конкуренція нижча через sequencer. Ліквідації на Arbitrum часто прибуткові навіть без Flashbots. Наприклад, на Arbitrum ліквідація позиції в $50,000 дає близько $2,500 комісії при газі в $5. Вартість газу на Arbitrum у 20 разів нижча, ніж на Ethereum, що робить його кращим для ліквідацій невеликих позицій.

Як мінімізувати slippage при свапі?

Slippage при свапі великого collateral — поширена проблема. Якщо позиція велика — свап 1000 ETH в USDC через один пул Uniswap v3 дасть суттєвий price impact. Рішення: split routing через 1inch API або власна реалізація multi-hop через кілька пулів. Розрахунок оптимального маршруту має бути частиною off-chain profitability check.

Reorg на L2. Arbitrum та Optimism мають finality lag. Транзакція підтверджена на L2, але потім rollup reorg — рідко, але трапляється. Для ліквідаційного бота це не критично (позиція або ліквідована, або ні), але потрібно правильно обробляти confirmations.

Gas estimation. eth_estimateGas для flash loan транзакції може помилятися на 10-20% — зовнішні контракти поводяться по-різному. Додаємо buffer 20% до estimate, і перевіряємо, що після буфера транзакція все ще прибуткова.

Stale health factor. Між розрахунком health factor та відправкою транзакції може пройти 1-2 блоки. Якщо за цей час ціна піднялася — позиція більше не ліквідовна, liquidationCall заревертнеться. Додаємо try/catch на рівні off-chain логіки та оплачуємо лише газ failed транзакції.

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

  • Архітектура та документація: схеми потоків даних, опис контракту та off-chain сервісів.
  • Смарт-контракт: full Solidity код з тестами в Foundry.
  • Off-chain моніторинг: Node.js сервіс з The Graph, Redis, viem.
  • MEV-інтеграція: налаштування Flashbots/MEV Blocker, симуляція.
  • Тестування: fork-тести на mainnet, soft launch на реальних даних.
  • Деплой та підтримка: задеплоїмо на необхідні чейни, 2 тижні підтримки після запуску.

Порівняння чейнів для ліквідації

Чейн Gas cost (середня) MEV захист Ліквідність
Ethereum $50-100 Flashbots Висока
Arbitrum $1-5 Sequencer Висока
Polygon $0.1-0.5 Low MEV Середня

Arbitrum має в 20 разів нижчу вартість газу, ніж Ethereum, що робить його кращим вибором для ліквідацій з малим прибутком.

Процес розробки

Розробка смарт-контракту (3-4 дні). Solidity + Foundry. Fork-тести на Ethereum/Arbitrum mainnet: симулюємо конкретні ліквідовані позиції з історичних даних, перевіряємо коректність розрахунків та profit.

Off-chain моніторинг (4-6 днів). Node.js/TypeScript, viem для on-chain взаємодій, The Graph SDK, WebSocket блок-підписки, Redis для зберігання стану позицій.

MEV інтеграція (2-3 дні). Flashbots SDK, bundle building, симуляція перед відправкою.

Тестування в testnet + mainnet soft launch (3-5 днів). Починаємо на Sepolia fork, потім mainnet з мінімальним капіталом — кілька реальних ліквідацій для калібрування параметрів profitability.

Орієнтири за термінами та вартістю

Базовий бот під один протокол (Aave v3) на одному чейні — 1-2 тижні, вартість від $5,000. Multi-protocol (Aave + Compound + Morpho) з multi-chain підтримкою — від 3-4 тижнів, вартість від $12,000. Терміни залежать від вимог до MEV-захисту та кількості цільових протоколів. Зв'яжіться з нами для обговорення вашого проєкту та отримайте попередню оцінку. Замовте розробку бота під ключ з повною документацією.