Интеграция с Gelato Network для автоматизации смарт-контрактов

Блокчейн не может сам запускать функции по расписанию — это одна из самых частых проблем в нашей практике. Когда смарт-контракту нужно каждые 24 часа делать ребаланс пула, начислять стейкинг-награды или ликвидировать позиции, кто-то должен инициировать транзакцию извне. Мы используем [Gelato Network

Направления блокчейн-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1452
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1310
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1005
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1270
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    719
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1012

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