Tenderly Web3 Actions: автоматизація on-chain подій без polling
Уявіть: ви відстежуєте великі депозити в lending pool. Кожні 100 мс опитуєте RPC, але пропускаєте flash loan через таймаут. 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%.







