Сегодня стартуют две вещи: публичный каталог контрактов и этот блог.
Публичный каталог из 400 контрактов
В каталоге есть страница для каждого из 400 активных контрактов: 200 в Ethereum и 200 в BNB Chain1. Открыть её может любой, учётная запись не нужна.

Как отбирали 400
Не по размеру. Крупнейшие контракты сети по числу транзакций — в основном стейблкоины и роутеры ботов. Страница о них никому ничего нового не скажет, и за ними нет команды, которая её ждёт.
Контракт попадает в каталог, если за последние 30 дней он:
- выпустил минимум три разных события — признак прикладной логики, а не простого токена;
- выпустил хотя бы одно событие, то есть страница не мёртвая;
- развёрнут больше 30 дней назад — это отсекает свежий спам и тестовые развёртывания.
Среди них контракты ранжируются по активности и берутся, пока не кончится бюджет сети. Один контракт не может занять больше 5% бюджета, иначе один загруженный пул вытеснил бы сотню интересных контрактов2. В итоге в каталоге токены с настоящей логикой, пулы AMM, рынки кредитования, оракулы, мосты и реестры. Пулы названы по паре и площадке, например «USDC/WETH 0.05% · Uniswap V3». Тестовых сетей в каталоге нет.
Что показывает страница контракта

На каждой странице — нейтральные факты, те же, что дал бы обозреватель блоков, но уже посчитанные:
- событий в сутки, сколько разных событий выпускает контракт и какое чаще всего;
- транзакции по часам, графиком;
- события по часам, свой график на каждую сигнатуру;
- дата, с которой есть данные.
Публичная страница — это шаг в час, задержка 15 минут и последние 7 дней1. Храним мы по каждому контракту каталога 30 дней. Оставшиеся 23 дня публично не показываются: они лежат для команды, которая заберёт страницу, об этом ниже.
Чего на странице не будет никогда
- алертов и правил, которые кто-то поставил на контракт;
- отклонений от нормы и аномалий;
- доли неудачных вызовов;
- того, кто ещё следит за контрактом.
Это решение, а не недоделка. Страница, которую мы выложили без спроса, с надписью «30% вызовов падает» читается как обвинение, даже если число верное. Без знания протокола никто не скажет, проблема это или норма для этого контракта. Такие числа принадлежат команде, которая ведёт контракт, в закрытой части продукта2.
Заберите страницу, если контракт ваш
На каждой странице есть блок «Это ваш контракт?» с кнопкой «Забрать страницу». Доказательство — одна подпись:
- SmartAlert выдаёт сообщение для подписи. В нём сеть, контракт и ваш проект. Оно одноразовое и живёт пять минут.
- Вы подписываете его адресом, который сам контракт называет управляющим. Подходит любой из трёх:
- адрес, который возвращает
owner(); - держатель
DEFAULT_ADMIN_ROLE; - админ прокси или владелец контракта
ProxyAdmin.
- адрес, который возвращает
- Если этот адрес — Safe, подписывает Safe. Совладельцы собирают подписи в Safe{Wallet} как обычно, а сообщение живёт сутки, чтобы они успели.
- SmartAlert читает текущего владельца из сети и проверяет, что подпись от него.
«Я его развернул» мы доказательством не считаем. Доказательство одно: текущее право управлять контрактом, прочитанное из сети. Если контракт отказался от владельца и у него нет ни роли админа, ни админа прокси, подписать за него некому, и мы так и говорим2.
Если ключа владельца под рукой нет, контракт всё равно можно добавить в проект по адресу. Данные те же, только без claim.
Что вы получаете, забрав страницу
- Уже собранную историю. Страница показывает 7 дней, а ваш проект читает всё, что мы сохранили. Новый проект 14 дней работает как Pro и читает до 90 дней назад3. Для контракта из каталога эта история уже есть: догружать нечего и ждать нечего.
- Предложенные правила, проверенные на этой истории. SmartAlert предлагает правила для контракта, и до включения видно, как каждое сработало бы на прошлых данных. Порог, проверенный на месяце данных, не разбудит вас в три ночи впустую.
- Управление страницей. Скрыть её из каталога можно в один клик, без письма в поддержку. Скрытие мгновенное, и следующий пересчёт каталога её не вернёт. Вернуть её можете только вы2.
- Публичную статус-страницу, если захотите. Проект с подтверждённым владением может включить
/status/<имя>со сбоями, которые подтвердила его команда, и бейдж для README. Ничего закрытого туда не попадает: ни метрик, ни порогов, ни значений2.
Блог о реальных инцидентах
Легко сказать, что мониторинг поймал бы последний взлом. Мы показываем минуты.
В каждом посте — взлом, который признал сам протокол, со ссылкой на его разбор. Дальше по шагам:
- как устроен атакованный контракт, простыми словами, для тех, кто пост-мортем не читал;
- атака по шагам: каждая транзакция со временем блока и ссылкой на Etherscan;
- где сработало бы правило SmartAlert: имя правила, когда пришёл бы алерт и сколько минут оставалось до вывода;
- где наши правила не помогли бы и почему.
Задержка — наша реальная. В Ethereum мы читаем блок после 12 подтверждений, это около 144 секунд, поэтому реорг не пришлёт ложную тревогу. Вместе с опросом сети, записью и проверкой правила раз в 60 секунд на Pro алерт приходит примерно через 2,5–4 минуты после блока4.
Правила этих постов:
- Мы пишем «сигнал за N минут до вывода», но не «предотвратил бы». Алерт даёт время. Средства спасают люди с ключами, и могли ли они успеть — отдельный вопрос, который мы задаём в каждом посте.
- В каждом посте сказано, чего правило не ловит. Bybit и KiloEx потеряли средства за секунды или пару минут после первого признака. Ни один мониторинг событий или состояния не успевает, и мы так и пишем.
- У каждого числа есть источник. Сноски ведут на пост протокола, Rekt и аудиторов. То, что мы проверили по сети сами (время блоков, балансы,
eth_callна архивных блоках), помечено отдельно.
Первые три поста:
- IoTeX ioTube, февраль 2026: сигнал о смене владельца за 14 минут до первого вывода из резервов, а команда узнала почти через семь часов.
- Orbit Bridge, декабрь 2023: пять переводов за 17 минут; после первого алерта в хранилище оставалось $61,5 млн.
- Ronin Bridge, август 2024: за 48 минут до первого вывода порог голосов был равен 0, и ни одно событие об этом не сказало.
Чтобы не пропускать новые посты, подпишитесь на @smartalert_alex в X.
Источники
- 1.Публичный API каталога SmartAlert,
GET /api/public/contracts, проверено 2026-10-23: 200 живых контрактов вethereum-mainnet, 200 вbsc-mainnet. Шаг, задержка и глубина — как напечатано на каждой странице контракта. ↩ - 2.SmartAlert, бизнес-правила публичного каталога: критерии отбора, что публично, claim, статус-страница и снятие страницы. ↩
- 3.SmartAlert, правила тарифов: 14 дней Pro у нового проекта и глубина чтения 90 дней. ↩
- 4.SmartAlert, модель задержки алерта в Ethereum: 12 подтверждений, опрос головы сети до 12 с, запись P95 до 15 с, проверка правила раз в 60 с на Pro. ↩