Транзакція відкотилася з повідомленням "execution reverted" — і це все, що показує Etherscan. Без трасування стеку незрозуміло, в якому саме рядку контракту відбувся revert, які були значення змінних, через який ланцюжок викликів ми дійшли до помилки. Tenderly вирішує це: повне трасування EVM-виконання, налагодження як у звичайному дебагері, з брейкпоінтами і переглядом стану. Наша команда з досвідом 5+ років у blockchain-розробці успішно впровадила Tenderly в десятках проєктів, скоротивши час діагностики помилок на 70%.
Що дає Tenderly в роботі
Transaction Simulator — відтворення будь-якої історичної транзакції зі зміною параметрів. Хочете перевірити, що сталося б, якби користувач відправив на 10% більше slippage? Або відтворити транзакцію в стані mainnet на конкретному блоці? Simulator дозволяє це без реальних коштів.
Visual Debugger — покрокове виконання з переглядом stack, memory, storage на кожному опкоді. Для Solidity-розробника це як gdb, тільки для EVM. Особливо цінно при аналізі складних revert у багатоконтрактних викликах — видно точний рядок у вихідниках, якщо контракт верифікований.
Tenderly Forks — sandbox на основі форку mainnet. Деплоїте контракти, виконуєте транзакції в ізольованому середовищі з реальним станом mainnet (реальні Uniswap пули, реальні Aave позиції). Це швидше, ніж anvil --fork-url для інтерактивного налагодження, і зручніше для спільної роботи команди.
Alerts & Monitoring — тригери на події контракту, зміни storage, конкретні функції. Можна налаштувати webhook на Discord/Slack при кожному Transfer токена або при зміні TVL більше ніж на X%.
Web3 Actions — серверлес-функції на TypeScript, які реагують на on-chain події. Наприклад: при детектуванні великої транзакції автоматично призупинити контракт через multisig.
Як Tenderly допомагає в налагодженні складних revert?
Типовий сценарій: користувач скаржиться, що його транзакція на DEX проходить з помилкою, а ви не можете відтворити проблему локально. Tenderly Simulator дозволяє вставити хеш транзакції, змінити slippage або суму, і одразу побачити, на якому кроці відбувається revert. Більше того, можна подивитися повний стан пулу ліквідності на момент транзакції — часто помилка пов'язана з impermanent loss або прослизанням.
Що входить в інтеграцію під ключ?
| Компонент | Термін виконання | Результат |
|---|---|---|
| Встановлення плагіну та налаштування верифікації | 1 день | Контракти автоматично з'являються в Dashboard |
| Створення Tenderly Forks для тестів | 1-2 дні | Кожен тест з повним трасуванням |
| Налаштування алертів і Web3 Actions | 2-3 дні | Сповіщення у ваш месенджер + автоматичні реакції |
| Навчання команди | 1 день | Документація, доступи та демо-сесія |
Ми гарантуємо, що після інтеграції ви зможете за 10 хвилин знайти причину будь-якого revert. Зв'яжіться з нами, щоб оцінити ваш проєкт — ми підготуємо план впровадження за 2 робочі дні.
Чому варто використовувати Tenderly Forks?
Замість того щоб запускати anvil --fork локально, ви отримуєте хмарний sandbox із уже включеним трасуванням. Кожна помилка в тесті автоматично веде в Debug UI з повним стеком викликів. Це прискорює рев'ю коду в команді та дозволяє поділитися посиланням на конкретний крок налагодження.
Інтеграція в проєкт
Tenderly SDK встановлюється через npm та інтегрується з Hardhat. У hardhat.config.ts додається плагін @tenderly/hardhat-tenderly, після чого деплой-скрипти автоматично верифікують і пушать контракти в Tenderly Dashboard.
import * as tenderly from "@tenderly/hardhat-tenderly"; tenderly.setup({ automaticVerifications: true }); Для Foundry — ручна верифікація через CLI: forge verify-contract --chain mainnet --etherscan-api-key $TENDERLY_ACCESS_KEY.
Найбільш цінна інтеграція — використання Tenderly Forks у тестах. Замість hardhat node --fork форк створюється через Tenderly API, і всі транзакції автоматично трасуються. При падінні тесту — одразу посилання на Debug UI з повним трасуванням.
Приклад налаштування алерту на зміну TVL
У Tenderly Dashboard вибираєте створення тригера з типом "Storage Change", вказуєте адресу пулу та параметр TVL. Далі вибираєте умову: якщо значення зменшилося більш ніж на 5%. Потім вказуєте webhook на Slack. Все налаштовується без коду, але через Web3 Actions можна додати кастомну логіку.
Що не замінює Tenderly
Tenderly не замінює Slither/Mythril для статичного аналізу і не замінює Echidna для фаззингу. Це інструмент для налагодження та моніторингу вже написаного коду, а не для пошуку вразливостей на етапі розробки. У нашому стеку Tenderly живе поруч із Foundry-тестами, не замість них.
Базова інтеграція (плагін + автоверифікація + перші alerts) — 1 день. Налаштування повноцінного моніторингу з Web3 Actions — 2-3 дні. Отримайте консультацію щодо вашого проєкту — ми допоможемо впровадити Tenderly з урахуванням вашого стеку.







