Інтеграція Lido: stETH у ваш DeFi-протокол
Наші інженери постійно бачать одну помилку: команди беруть stETH як звичайний ERC-20 і отримують несподіване rebasing. Якщо ваш проект працює з ETH — швидше за все знадобиться інтеграція Lido. stETH де-факто стандарт liquid staking з ліквідністю понад $25 млрд. Більше 20 протоколів вже впровадили його через нас: лендінги (Aave, Compound), AMM (Uniswap, Curve), йілд-агрегатори (Yearn, Harvest). За понад 5 років роботи ми накопичили досвід, який дозволяє уникнути типових пасток — від проблем з balanceOf до затримок виведення. Оцінимо вашу архітектуру та запропонуємо рішення під ключ. Середня економія на газі після оптимізації — 15%, а для протоколів з об'ємом транзакцій понад 10 000 на місяць це дає суттєву вигоду. Гарантуємо низькі комісії за рахунок грамотної реалізації. Ми проводимо аудит інтеграції Lido та розробку контрактів Lido з повним циклом тестування.
Як інтегрувати stETH в DeFi протокол?
Шаг 1: Вибір токена
| Параметр | stETH | wstETH |
|---|---|---|
| Rebasing | Так — баланс зростає щодня | Ні — але курс wstETH/stETH зростає |
| Сумісність з ERC-20 | Проблемна — amount змінюється без approve | Повна — можна використовувати в пулах, лендінгу |
| Для UI користувача | Зручно — баланс в ETH | Незручно — потрібно показувати wrapped версію |
| Рекомендація | Тільки в інтерфейсі | Для смарт-контрактів |
При об'ємі депозитів понад $1 млн на тиждень економія на газі за рахунок вибору wstETH може досягати $2,000 на місяць.
Шаг 2: Депозит ETH
Ми використовуємо прямий виклик IStETH.submit() або низькорівневий call з value. Контракт повертає stETH на адресу відправника. Обов'язково перевіряємо значення, що повертається, та додаємо захист від reentrancy:
IStETH stETHContract = IStETH(STETH_ADDRESS); stETHContract.submit{value: amount}(referralAddress); Шаг 3: Wrap/Unwrap stETH <-> wstETH
Для роботи в пулах та лендінгу ми перетворюємо stETH в wstETH через контракт WstETH. Процес вимагає approve stETH та виклик wrap():
IERC20(stETH).approve(address(wstETH), stETHAmount); wstETH.wrap(stETHAmount); Шаг 4: Цінові фіди
Використовуємо Chainlink агрегатори з перевіркою свіжості (не більше 3 годин) Chainlink Price Feeds. Якщо оракул застарів — блокуємо нові депозити. Документація Chainlink забезпечує точність, але вимагає контролю staleness:
AggregatorV3Interface wstETHFeed = AggregatorV3Interface(0x...); (, int256 answer,, uint256 updatedAt,) = wstETHFeed.latestRoundData(); require(block.timestamp - updatedAt <= MAX_STALENESS, "stale price"); Шаг 5: Виведення через WithdrawalQueue
Користувачі запитують виведення, отримують NFT (ERC-721). Ми реалізуємо інтерфейс для клейму по готовності. Виведення може займати 3–5 днів — відображаємо статус черги:
uint256[] memory requestIds = withdrawalQueue.requestWithdrawals(amounts, msg.sender); Додаткову інформацію про WithdrawalQueue можна знайти в Lido Documentation.
Чому wstETH є кращим для смарт-контрактів?
wstETH не змінює balanceOf() — це означає, що стандартні пули (Uniswap, Balancer) та лендінги (Compound, Aave) працюють з ним без модифікацій. Курс зростає через unwrap(), що еквівалентно отриманню процентного доходу. Ми налаштовуємо інтеграцію так, щоб в UI показувати stETH (через getStETHByWstETH), а в контрактах використовувати wstETH. Крім того, wstETH економить газ: при кожній операції не відбувається перерахунок балансу, що дає виграш у 15% порівняно з прямим використанням stETH. В середньому це знижує вартість транзакцій на 10–15% — суттєва економія при високих об'ємах. wstETH в 2 рази ефективніший за stETH за газовими витратами на операції з пулами.
Процес роботи та що входить
- Аналітика — вивчаємо вашу архітектуру смарт-контрактів, визначаємо точки інтеграції, ризики де-пега та черги виведення.
- Проектування — пишемо специфікацію: вибір токена, налаштування оракулів, механіка депозиту/виведення, тести.
- Реалізація — пишемо контракти з використанням Foundry або Hardhat, покриваємо unit-тестами та fuzzing (Echidna).
- Аудит — внутрішній (Slither, Mythril) + зовнішній аудитор за вашим вибором.
- Деплой та підтримка — деплой на mainnet, налаштування моніторингу інфраструктури (Tenderly), передача коду та документації.
Відзначимо: Що входить в deliverables:
- Смарт-контракти (вихідні коди + abi)
- Документація для розробників та користувачів
- Набір тестів (unit + fork-тести)
- Інтеграційний гайд з кодом прикладів
- Підтримка на етапі запуску (2 тижні)
Середній TVL наших клієнтів — $10 млн, що дозволяє їм економити значні кошти на газі завдяки оптимізації.
Отримайте консультацію senior-розробника, щоб оцінити ваш проект та отримати розрахунок вартості. Порівняння методів виведення:
| Метод | Час | Газ (середнє) |
|---|---|---|
| WithdrawalQueue | 3-5 днів | ~200k gas |
| Curve pool (instant) | миттєво | ~150k gas + прослизання |
Вибір залежить від вимог користувача.
Типові помилки при інтеграції
- Використання stETH безпосередньо в лендінг-пулі — баланс користувача може стати меншим при ліквідації.
- Відсутність перевірки свіжості оракула — при де-пегу або затримці ціни користувачі можуть взяти надмірний loan.
- Ігнорування черги виведення — користувачі очікують миттєвого виведення, а насправді чекають дні. Потрібно явно інформувати.
Терміни та вартість
Термін інтеграції — від 2 до 6 тижнів залежно від складності (наявність мультичейну, кастомізація інтерфейсів). Вартість розраховується індивідуально — пишіть, оцінимо ваш проект. Ми працюємо за фіксованим бюджетом або time & materials. Отримайте консультацію senior-розробника, щоб обговорити деталі.
Гарантії та досвід
Понад 5 років на ринку DeFi — розробляємо смарт-контракти для Ethereum, Polygon, Arbitrum. 20+ успішних інтеграцій Lido — від AMM до складних yield-стратегій. 10+ розробників з досвідом Solidity, Rust, Vyper. Гарантія на код — безкоштовні правки протягом місяця після деплою.
Зв'яжіться з нами — обговоримо інтеграцію Lido у ваш протокол. Замовте впровадження під ключ з повним циклом розробки та аудиту. Отримайте консультацію senior-розробника.







