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







