Блокчейн не может сам запускать функции по расписанию — это одна из самых частых проблем в нашей практике. Когда смарт-контракту нужно каждые 24 часа делать ребаланс пула, начислять стейкинг-награды или ликвидировать позиции, кто-то должен инициировать транзакцию извне. Мы используем Gelato Network — децентрализованную сеть ботов (executors), которые мониторят условия и отправляют транзакции автоматически. Наш опыт насчитывает более 50 интеграций с Gelato, и мы готовы взять ваш проект под ключ.
Какие задачи решает автоматизация смарт-контрактов?
Типичные сценарии: ликвидация подводных позиций в lending-протоколах, ребаланс AMM-пулов, начисление наград по стейкингу, синхронизация кросс-чейн мостов. Все эти задачи требуют внешнего триггера, и Gelato даёт работающее решение без собственной инфраструктуры. Более 1000 автоматических транзакций в день — обычная нагрузка для наших проектов.
Почему Gelato, а не собственный keeper?
Собственный keeper-бот требует VPS, мониторинг, резервирование — это часы работы DevOps. Gelato предоставляет распределённую сеть с гарантией исполнения и встроенным мониторингом через Tenderly. Для задач с частотой до 1 раза в час Gelato выгоднее и проще. Сравнение с Chainlink Automation: Gelato обычно на 20-30% дешевле на средних объёмах, а экономия на комиссиях может достигать 35%.
Какие режимы работы предлагает Gelato?
Gelato Automate (старый подход, Ops). Задача создаётся через UI или SDK, executor вызывает указанную функцию по расписанию или условию. Оплата в ETH из баланса контракта или в токене GELATO.
Web3 Functions (текущий стандарт). Off-chain JavaScript/TypeScript функция, которая запускается на ноде Gelato, может делать HTTP запросы, читать off-chain данные и возвращать calldata для on-chain транзакции. Это решает проблему, когда для принятия решения нужны данные вне чейна — цена на CEX, результат API запроса, данные из The Graph.
Automate vs Web3 Functions
| Критерий | Automate | Web3 Functions |
|---|---|---|
| Логика | on-chain | off-chain (JS/TS) |
| Данные | только on-chain | любые (HTTP, API) |
| Сложность | простая | средняя |
| Комиссия | фикс. плата | ~10% от газа + плата за вычисления |
| Когда нужен | расписание, условие на блокчейне | принятие решений по внешним данным |
Сравнение комиссий Gelato
| Режим | Комиссия | Когда выгоден |
|---|---|---|
| Automate | Фиксированная плата (в ETH/GELATO) | Регулярные задачи с простым условием |
| Web3 Functions | ~10% от gas cost + вычислительная плата | Сложные решения с off-chain данными |
| Relay | ~10% от gas cost | Gasless-транзакции для пользователей |
Как интегрировать Gelato за один день?
Базовая интеграция через AutomateTaskCreator занимает около 4-6 часов. Наследование от контракта Gelato даёт возможность создавать задачи программно.
Пример интеграции Automate (Solidity)
import {AutomateTaskCreator} from "@gelatonetwork/automate-sdk/contracts/AutomateTaskCreator.sol"; contract MyVault is AutomateTaskCreator { bytes32 public rebalanceTaskId; constructor(address _automate, address _taskCreatorProxy) AutomateTaskCreator(_automate, _taskCreatorProxy) {} function startRebalancing() external onlyOwner { ModuleData memory moduleData = ModuleData({ modules: new Module[](2), args: new bytes[](2) }); moduleData.modules[0] = Module.TIME; moduleData.modules[1] = Module.PROXY; moduleData.args[0] = _timeModuleArg(block.timestamp, 1 days); moduleData.args[1] = _proxyModuleArg(); rebalanceTaskId = _createTask( address(this), abi.encodeCall(this.rebalance, ()), moduleData, address(0) // платим в ETH из контракта ); } function rebalance() external onlyDedicatedMsgSender { // логика ребаланса } } onlyDedicatedMsgSender — важный modifier: только Gelato может вызвать эту функцию, не произвольный адрес.
Что такое Gasless Relay и как его внедрить?
Gelato Relay позволяет пользователям отправлять транзакции без ETH — Gelato оплачивает газ, а контракт компенсирует это в ERC-20 токенах через _transferRelayFee():
import {GelatoRelayContextERC2771} from "@gelatonetwork/relay-sdk/contracts/GelatoRelayContextERC2771.sol"; contract GaslessNFT is GelatoRelayContextERC2771 { function safeMint(address to) external onlyGelatoRelayERC2771 { _mint(to, tokenId++); _transferRelayFee(); // оплачиваем Gelato из баланса контракта } } ERC2771 часть: пользователь подписывает транзакцию off-chain, Gelato пересылает её через trusted forwarder, контракт видит реального _msgSender() через ERC-2771 контекст.
Как использовать Web3 Functions для off-chain логики?
Скрипт на TypeScript запускается на нодах Gelato и может:
import { Web3Function, Web3FunctionContext } from "@gelatonetwork/web3-functions-sdk"; Web3Function.onRun(async (context: Web3FunctionContext) => { const { multiChainProvider, secrets } = context; const provider = multiChainProvider.default(); // Получаем данные с внешнего API const response = await fetch("https://api.coingecko.com/api/v3/simple/price?ids=ethereum&vs_currencies=usd"); const { ethereum } = await response.json(); if (ethereum.usd < 2000) { const contract = new ethers.Contract(VAULT_ADDRESS, VAULT_ABI, provider); const callData = contract.interface.encodeFunctionData("triggerEmergency", []); return { canExec: true, callData: [{ to: VAULT_ADDRESS, data: callData }] }; } return { canExec: false, message: "Price above threshold" }; }); Сколько стоит автоматизация на Gelato?
Gelato берёт комиссию поверх стоимости газа. Для Automate: баланс пополняется в ETH на контракте или в Gelato Treasury. Для Relay: комиссия ~10% от gas cost. Для Web3 Functions: дополнительная плата за вычисления. На высоконагруженных задачах (ликвидации, арбитраж) Gelato конкурирует с Chainlink Automation и кастомными keeper-ботами. Для задач с умеренной частотой (раз в час — раз в день) Gelato оптимален по соотношению простоты интеграции и стоимости.
Наша команда имеет 7+ лет опыта в блокчейн-разработке и реализовала 30+ проектов с автоматизацией смарт-контрактов. Мы гарантируем, что интеграция пройдёт в срок с полным покрытием тестов.
Что входит в работу
- Анализ задачи: выбор режима (Automate, Web3 Functions, Relay)
- Интеграция смарт-контрактов: написание модулей, наследование, настройка
- Тестирование на testnet (Sepolia, Mumbai, Arbitrum Goerli)
- Оптимизация газа и кода
- Документация и обучение команды
- Поддержка в течение 30 дней после деплоя
Сроки и стоимость
Базовая интеграция Automate с time-based задачей: от 1 дня. Web3 Function с off-chain логикой и Relay: от 2 до 3 дней. Стоимость рассчитывается индивидуально после уточнения частоты задач и сложности off-chain логики. Свяжитесь с нами для бесплатной оценки вашего проекта — мы подготовим смету за один день.







