Production-контракт без мониторинга рискован. О проблемах такого контракта вы узнаёте из Twitter, а не из алерта. Один DeFi-протокол потерял $50k из-за не замеченного вовремя flash loan attack — после настройки Tenderly Alerting они получают уведомление в Telegram за 2 секунды. Мы помогаем настроить Tenderly Alerting за 1-2 часа, чтобы вы получали оповещения мгновенно. Наш опыт — 5+ лет в Web3, более 20 проектов по мониторингу контрактов. Гарантируем, что ни один аномальный вывод или смена owner не останутся незамеченными.
Tenderly решает ключевую задачу: информировать команду об изменениях on-chain без написания собственного indexer. Настройка обходится дешевле, чем один час работы DevOps-инженера, а экономия на инфраструктуре по сравнению с самостоятельным indexer составляет до 70%. Вы платите только за конфигурацию — сам сервис Tenderly оплачивается отдельно, но его стоимость окупается первым же предотвращённым инцидентом.
Как Tenderly Alerting упрощает мониторинг смарт-контрактов?
Вы получаете алерты на конкретные события контракта, изменения переменных хранилища, транзакции выше порога, вызовы конкретных функций и failed транзакции. Всё это без написания собственного indexer. Основные типы триггеров:
| Триггер |
Пример использования |
Уровень критичности |
| Successful Transaction |
Крупный вывод из vault |
Высокий |
| Failed Transaction |
Ошибки в production |
Критичный |
| Event Emitted |
Transfer выше 100k USDC |
Средний |
| State Change |
Смена owner/admin |
Критичный |
| Function Called |
Вызов pause() или emergencyWithdraw() |
Критичный |
| Balance Change |
Изменение баланса treasury |
Высокий |
Рассмотрим реальный кейс: для vault-контракта (ERC-4626) мы настроили алерт на event Withdraw с суммой > 100k USDC, на вызов setAdmin, на изменение баланса vault более чем на 1% за блок, а также на газовые пики выше 200 gwei. В результате команда узнаёт о рисках мгновенно: например, о попытке манипуляции oracle или о неавторизованном доступе. Такая конфигурация требует не более 2 часов, включая тестирование.
Tenderly Alerting настраивается в 10 раз быстрее, чем написание собственного indexer на The Graph. Для критических событий используем Telegram или PagerDuty с немедленной доставкой, для информационных — Slack-канал.
В чём отличие Tenderly Alerting от собственного indexer?
Tenderly — managed сервис, поэтому не требует поддержки инфраструктуры. Если вам нужна конфиденциальность или кастомная логика, рассматриваем альтернативы: OpenZeppelin Defender Sentinel, собственный indexer на The Graph или Goldsky. Для большинства проектов Tenderly оптимален по скорости и функциональности. Он поддерживает кастомные фильтры и несколько каналов доставки.
Что входит в настройку Tenderly Alerting?
- Добавление контрактов (ABI + адрес + сеть) в Tenderly
- Настройка триггеров под вашу бизнес-логику: пороги, функции, события
- Интеграция каналов оповещения: Telegram, Slack, PagerDuty, email, webhook
- Настройка webhook для кастомной обработки (авто-пауза, запись в БД)
- Тестирование и документация для команды
- Рекомендации по оптимизации алертов и избежанию ложных срабатываний (отсеиваем до 95% шума)
Настройка
- Добавляем контракт в Tenderly (ABI + адрес + сеть)
- Alerts → Add Alert → выбираем тип триггера
- Настраиваем фильтры (например,
value > 100000e6 для USDC)
- Выбираем destination: Slack, Telegram, PagerDuty, webhook, email
Для критических событий (pause, owner change, аномальные выводы) — Telegram/PagerDuty с немедленной доставкой. Для информационных (обычные транзакции, события протокола) — Slack-канал для команды.
Сравнение каналов оповещения
| Канал |
Задержка |
Надёжность |
Применение |
| Telegram |
<1 сек |
Высокая |
Критичные алерты |
| Slack |
1-2 сек |
Средняя |
Командные уведомления |
| PagerDuty |
<30 сек |
Высокая |
Инциденты |
| Webhook |
Зависит от обработчика |
Зависит от реализации |
Кастомная автоматизация |
Webhook интеграция
Tenderly может отправлять webhook POST-запрос с деталями транзакции. Это позволяет строить кастомную логику: авто-пауза контракта при аномалии, запись в базу данных, уведомление с enriched context.
{
"id": "alert_id",
"contract": "0x...",
"network": "1",
"transaction": {
"hash": "0x...",
"from": "0x...",
"value": "1000000000000000000"
},
"trigger": "successful_transaction"
}
Ограничения
Tenderly — managed сервис. Для полного контроля и privacy критических данных рассматриваем альтернативы: собственный indexer на The Graph, Goldsky или OpenZeppelin Defender Sentinel (более гибкий триггер-движок). Для большинства проектов Tenderly Alerting — оптимальное соотношение скорости настройки и функциональности. Настройка базового мониторинга занимает 1 рабочий день, включая документацию для команды.
Свяжитесь с нами, чтобы обсудить ваш проект — мы оценим сложность и предложим оптимальное решение. Закажите настройку Tenderly Alerting и исключите риск пропустить критическое событие. Получите консультацию по мониторингу — это бесплатно.
Разработка смарт-контрактов
Мы столкнулись с ситуацией: контракт задеплоен, через две недели приходит сообщение — пул дренирован на $800k. Смотрим транзакцию в Tenderly: атакующий вызвал deposit(), внутри callback на ERC-777 повторно вызвал withdraw() — баланс обновился только после второго выхода. Классическая reentrancy, но не через ETH transfer, а через хук ERC-777. ReentrancyGuard стоял только на withdraw().
Такие случаи — не редкость. Смарт-контракт — это финансовая логика без возможности пропатчить её ночью. Наша команда разрабатывает контракты под ключ, встраивая защиту от reentrancy, MEV и gas-атак на ранних этапах.
Как мы разрабатываем смарт-контракты под ключ
Начинаем с аудита бизнес-логики и выбора стека. Solidity 0.8.x — стандарт для EVM-совместимых чейнов: Ethereum, Arbitrum, Optimism, Polygon, BSC, Avalanche C-Chain. Для Solana используем Rust и Anchor: модель аккаунтов и программ требует явного объявления всех ресурсов. Для проектов с формальной верификацией подходит Move (Aptos, Sui) — линейные типы языка исключают копирование ресурсов на уровне компилятора. Vyper выбираем для контрактов, где критична простота аудита (Curve Finance).
| Язык |
Модель исполнения |
Типичная область |
Риски |
| Solidity 0.8.x |
EVM, последовательное исполнение |
DeFi, NFT, токены |
Reentrancy, переполнение (unchecked) |
| Rust (Anchor) |
Solana, параллельное |
Высоконагруженные DEX, игры |
Неправильное объявление аккаунтов |
| Move |
Aptos/Sui, ресурсная |
Крупные протоколы |
Сложность экосистемы |
| Vyper |
EVM, ограниченный синтаксис |
Критические контракты (Curve) |
Зависимость от стабильности компилятора |
Gas optimization — не преждевременная оптимизация, а архитектурное решение. На Ethereum mainnet деплой плохо спроектированного контракта может стоить 2–5 ETH только из-за неоптимального storage layout. Переупаковка структуры Proposal с 7 слотов до 4 сэкономила 18k gas на каждом голосовании — около $1.5 при gas price 30 gwei. Экономия на масштабе протокола с тысячами голосований в день даёт ощутимую годовую выгоду.
Типичные ошибки в gas: передача массивов через memory вместо calldata в external функциях (дороже в 2–3 раза); использование require с длинными строками вместо custom error error InsufficientBalance(...). Кастомные ошибки дешевле на 50–200 gas на revert и передают структурированные данные фронтенду.
Почему аудит смарт-контрактов критичен для безопасности
Аудит — не разовая проверка, а встроенный этап разработки. Используем три уровня:
-
Статический анализ —
Slither (30 секунд в CI) выявляет reentrancy, неинициализированные переменные, опасный delegatecall.
-
Фаззинг и invariant тесты —
Foundry с --fuzz-runs 50000 находит edge cases, которые пропускают сотни unit-тестов. Реальный кейс: AMM контракт с кастомной математикой после 150 тестов в Hardhat — Foundry нашёл integer division truncation, позволявший пылевой атаке копить dust на контракте. Echidna проверяет инварианты («сумма всех балансов ≤ totalSupply»).
-
Ручной code review — наши инженеры с опытом 10+ лет в блокчейне выявляют логические ошибки, которые не ловят инструменты. Для протоколов с TVL > $1M обязателен внешний аудит со стороны Trail of Bits, Consensys Diligence или OpenZeppelin. Срок — 2–4 недели.
Любой апгрейдируемый протокол должен иметь timelock. TimelockController из OpenZeppelin: операция предлагается → ждёт минимальный delay (48–72 часа) → выполняется. Без timelock один скомпрометированный deployer wallet = потеря всего пула.
Какие паттерны апгрейда выбираем
| Паттерн |
Механизм |
Риск |
Когда использовать |
Наш опыт |
| Transparent Proxy (OZ) |
admin vs user разделение |
Storage collision, centralization |
Стандартные проекты |
15+ реализаций |
| UUPS |
Логика апгрейда в implementation |
Забыть _authorizeUpgrade → контракт навсегда сломан |
Газ-оптимизированные проекты |
7 проектов |
| Diamond (EIP-2535) |
Множество facets |
Сложность аудита |
Крупные протоколы с 10+ контрактами |
3 внедрения |
| Beacon Proxy |
Один beacon для множества proxies |
Beacon = single point of failure |
Фабрики однотипных контрактов |
5 фабрик |
Storage collision — главная опасность прокси. Implementation v2 не должен добавлять переменные перед существующими. OpenZeppelin Upgrades plugin для Hardhat и Foundry проверяет это автоматически, но только при использовании его API.
Как защитить контракт от MEV и front-running
На Ethereum mainnet транзакции в mempool видны всем. MEV-боты проводят sandwich-атаки на DEX, фронтраннинги минтинга и governance. Решение: commit-reveal scheme для аукционов, приватная отправка через Flashbots PROTECT RPC. EIP-7702 и PBS (proposer-builder separation) меняют картину, но пока не массово.
Процесс разработки
-
Аналитика — спецификация функций, диаграмма вызовов, анализ edge cases. Без этого кодинг начинается впустую.
-
Разработка — Solidity/Rust с тестами параллельно. Тест → код → рефакторинг. Используем Foundry для fuzz и invariant тестов.
-
Внутренний аудит — Slither + Echidna + ручной code review. Foundry invariant tests для протокольных инвариантов.
-
Внешний аудит — для проектов с реальными деньгами. Срок: 2–4 недели.
-
Деплой — Foundry scripts или Hardhat Ignition с verify на Etherscan. Gnosis Safe для ownership transfer сразу после деплоя.
-
Мониторинг — Tenderly alerts, OpenZeppelin Defender, Forta Network.
Что входит в работу
- Документация на архитектуру и спецификацию контракта (NatSpec).
- Исходный код с репозиторием и CI (Slither, Foundry, coverage).
- Развёрнутая версия контракта с verify на блокчейн-эксплорере.
- Результаты аудита (внутреннего и внешнего по запросу).
- Доступы к мониторингу и управлению (Gnosis Safe).
- Гарантия на код: фиксы критических багов в течение месяца после деплоя.
- Консультация по интеграции с веб-интерфейсом (wagmi, RainbowKit).
Сроки ориентировочно
- ERC-20 token с базовыми функциями: 1–2 недели
- Vesting контракт с cliff/linear schedule: 2–3 недели
- NFT ERC-721/1155 с маркетплейсом: 4–6 недель
- AMM или lending протокол: 2–4 месяца
- Мультичейн протокол с bridge: 4–7 месяцев
Аудит добавляет 3–6 недель и идёт параллельно с финальным тестированием где возможно. Стоимость рассчитывается индивидуально — свяжитесь с нами, и мы оценим ваш проект бесплатно.
Закажите разработку смарт-контракта — получите консультацию по архитектуре и защите от reentrancy, MEV и gas-атак. Хотите обсудить детали? Напишите нам — мы подберём оптимальный стек под вашу задачу.