Блокчейн не может сам запускать функции по расписанию — это одна из самых частых проблем в нашей практике. Когда смарт-контракту нужно каждые 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 логики. Свяжитесь с нами для бесплатной оценки вашего проекта — мы подготовим смету за один день.







