Транзакция реверсировалась с сообщением "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 с учётом вашего стека.







