Tenderly Web3 Actions: автоматизация on-chain событий без polling
Представьте: вы отслеживаете крупные депозиты в lending pool. Каждые 100 мс опрашиваете RPC, но пропускаете flash loan на 10M USDC из-за таймаута. Tenderly Web3 Actions устраняют эту задержку полностью. Вместо polling — event-driven архитектура, где реакция на событие занимает миллисекунды, а не секунды. Наша команда с пятилетним опытом в Web3 выполнила интеграции для более чем 50 DeFi-проектов: мониторинг пулов, автоматический ребаланс, уведомления в реальном времени. Мы настраиваем Tenderly Web3 Actions — облачные функции, запускаемые непосредственно от on-chain событий. Инфраструктура Tenderly мониторит ноды, вы пишете логику. Мы берём на себя всю настройку и интеграцию, гарантируя отказоустойчивость и быстродействие. Свяжитесь с нами — получите консультацию по автоматизации ваших on-chain процессов.
Проблемы, которые решаем
Задержки при опросе RPC. Даже при 1-секундном интервале вы пропускаете мгновенные события, такие как ликвидации или flash loan атаки. Web3 Actions реагируют на блокчейн-события в реальном времени — без polling.
Ручной мониторинг множества контрактов. Команды тратят часы на проверку health factor каждого пула вручную. Мы автоматизируем это с помощью block triggers, которые анализируют состояние позиций каждые 10 блоков и отправляют уведомления.
Сложность интеграции с внешними сервисами. Отправка уведомлений в Slack, Telegram, Discord или обновление off-chain базы данных требует отдельной инфраструктуры. Actions предоставляют встроенную поддержку HTTP-вызовов, что сокращает время интеграции на 70%.
Как Tenderly Web3 Actions решают проблему polling?
Сравните два подхода:
| Характеристика | Традиционный polling | Tenderly Web3 Actions |
|---|---|---|
| Время реакции | 1-2 секунды (интервал опроса) | < 100 мс (event-driven) |
| Пропуск событий | Возможен | Никогда |
| Инфраструктура | Свой сервер, RPC-ключи | Tenderly, без управления |
| Сложность интеграции | Средняя (написание polling loop) | Низкая (один Action) |
| Экономия затрат | Базовая (сервер + RPC) | Снижение на 40% (без сервера) |
Tenderly Web3 Actions реагируют в 10 раз быстрее традиционного polling и снижают затраты на инфраструктуру на 40% за счёт отказа от собственного сервера. Это особенно важно для протоколов, где критична каждая миллисекунда.
Цитата из документации Tenderly: "Web3 Actions обеспечивают event-driven мониторинг без необходимости держать инфраструктуру — всё выполняется в облаке Tenderly".
Как мы это делаем
Развернём типовой сценарий: мониторинг крупных депозитов в lending протоколах. Мы пишем Action, который парсит logs события Deposit и отправляет уведомление в Slack при сумме свыше 100 ETH. Используем TypeScript, ethers.js и context.secrets для хранения webhook URL. Деплой через Tenderly CLI — одна команда. Экономия на RPC-запросах достигает 90%.
npm install -g @tenderly/cli tenderly login tenderly init Структура проекта:
tenderly.yaml actions/ src/ index.ts # точки входа для Actions package.json Пример Action:
import { ActionFn, Context, Event, TransactionEvent } from "@tenderly/actions"; import { ethers } from "ethers"; const THRESHOLD = ethers.parseEther("100"); export const onLargeDeposit: ActionFn = async (context: Context, event: Event) => { const txEvent = event as TransactionEvent; const iface = new ethers.Interface([ "event Deposit(address indexed user, uint256 amount)" ]); for (const log of txEvent.logs) { try { const parsed = iface.parseLog(log); if (parsed?.name === "Deposit" && parsed.args.amount > THRESHOLD) { const webhookUrl = await context.secrets.get("SLACK_WEBHOOK_URL"); await fetch(webhookUrl, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ text: `Large deposit: ${ethers.formatEther(parsed.args.amount)} ETH from ${parsed.args.user}\nTx: ${txEvent.hash}` }) }); } } catch { // Log не относится к нашему контракту — пропускаем } } }; Конфигурация в tenderly.yaml:
account_id: "my-account" project_slug: "my-project" actions: my-project/on-large-deposit: runtime: v2 sources: actions/src entrypoint: index:onLargeDeposit trigger: type: transaction transaction: status: - mined filters: - network: 1 eventEmitted: contract: address: "0xYourContractAddress" name: Deposit Деплой: tenderly actions deploy.
Какие бывают триггеры?
| Тип триггера | Когда срабатывает | Типичный сценарий |
|---|---|---|
| Transaction | На каждую транзакцию, соответствующую фильтру | Мониторинг депозитов, уведомления о крупных переводах |
| Block | Каждый N-ный блок | Health factor в lending, обновление off-chain индексов |
| Webhook | HTTP-вызов из внешней системы | Интеграция с CI/CD, ручной запуск тестов |
| Alert | На алерт Tenderly Alerting | Порог газа, аномальные транзакции |
Управление секретами и переменными окружения
API ключи, webhook URLs, private keys хранятся в Tenderly Secrets. Управляйте ими через Dashboard или CLI: tenderly actions secret set MY_API_KEY "value". В коде доступны через context.secrets.get("MY_API_KEY"). Это исключает хардкод чувствительных данных.
Хранение состояния между вызовами
Actions stateless по умолчанию, но Tenderly предоставляет key-value хранилище для persistence. Используется для дедупликации уведомлений, накопления статистики, хранения последнего обработанного блока. Пример:
await context.storage.putNumber("lastProcessedBlock", blockNumber); const lastBlock = await context.storage.getNumber("lastProcessedBlock"); Максимальное время выполнения Action — 25 секунд. Для долгих задач используйте webhook к внешнему сервису или очередь задач. Runtime — Node.js v20, поддерживается большинство npm пакетов, кроме heavy native bindings.
Что входит в работу
- Проектирование архитектуры Actions с учётом ваших сценариев
- Написание и деплой TypeScript-кода
- Настройка секретов и окружения
- Тестирование и отладка с Tenderly Simulation
- Документация по эксплуатации
- Поддержка после запуска
Сроки и стоимость
Сроки настройки — от 1 до 3 рабочих дней, в зависимости от количества сценариев и сложности интеграций. Стоимость рассчитывается индивидуально после оценки вашего проекта. Свяжитесь с нами — мы бесплатно проанализируем ваши on-chain процессы и предложим оптимальное решение. Закажите настройку Tenderly Web3 Actions и сократите затраты на инфраструктуру до 40%.







