Blockchain cannot run scheduled functions on its own — this is one of the most common problems we encounter. When a smart contract needs to rebalance a pool every 24 hours, distribute staking rewards, or liquidate positions, someone must initiate the transaction externally. We use Gelato Network — a decentralized network of bots (executors) that monitor conditions and send transactions automatically. Our experience includes over 50 Gelato integrations, and we are ready to take your project turnkey.
What tasks does smart contract automation solve?
Typical scenarios: liquidation of underwater positions in lending protocols, rebalancing AMM pools, distributing staking rewards, syncing cross-chain bridges. All these require an external trigger, and Gelato provides a working solution without your own infrastructure. Over 1000 automatic transactions per day is a typical load for our projects.
Why Gelato instead of a custom keeper?
A custom keeper bot requires a VPS, monitoring, and redundancy — hours of DevOps work. Gelato provides a distributed network with execution guarantees and built-in monitoring via Tenderly. For tasks with frequency up to once an hour, Gelato is more cost-effective and simpler. Comparison with Chainlink Automation: Gelato is usually 20-30% cheaper on medium volumes, and fee savings can reach 35%.
What operational modes does Gelato offer?
Gelato Automate (old approach, Ops). Create a task via UI or SDK, the executor calls the specified function on a schedule or condition. Payment in ETH from the contract balance or in GELATO token.
Web3 Functions (current standard). Off-chain JavaScript/TypeScript function that runs on a Gelato node, can make HTTP requests, read off-chain data, and return calldata for an on-chain transaction. This solves the problem when decision-making requires off-chain data — price on a CEX, result of an API request, data from The Graph.
Automate vs Web3 Functions
| Criteria | Automate | Web3 Functions |
|---|---|---|
| Logic | on-chain | off-chain (JS/TS) |
| Data | only on-chain | any (HTTP, API) |
| Complexity | simple | medium |
| Fee | fixed fee | ~10% of gas + computation fee |
| When needed | schedule, on-chain condition | decisions based on external data |
Gelato fee comparison
| Mode | Fee | When beneficial |
|---|---|---|
| Automate | Fixed fee (in ETH/GELATO) | Regular tasks with simple condition |
| Web3 Functions | ~10% of gas cost + computation fee | Complex decisions with off-chain data |
| Relay | ~10% of gas cost | Gasless transactions for users |
How to integrate Gelato in one day?
A basic integration via AutomateTaskCreator takes about 4-6 hours. Inheriting from the Gelato contract allows programmatic task creation.
Automate integration example (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) // pay in ETH from contract
);
}
function rebalance() external onlyDedicatedMsgSender {
// rebalancing logic
}
}
onlyDedicatedMsgSender is an important modifier: only Gelato can call this function, not an arbitrary address.
What is Gasless Relay and how to implement it?
Gelato Relay allows users to send transactions without ETH — Gelato pays the gas, and the contract compensates it in ERC-20 tokens via _transferRelayFee():
import {GelatoRelayContextERC2771} from "@gelatonetwork/relay-sdk/contracts/GelatoRelayContextERC2771.sol";
contract GaslessNFT is GelatoRelayContextERC2771 {
function safeMint(address to) external onlyGelatoRelayERC2771 {
_mint(to, tokenId++);
_transferRelayFee(); // pay Gelato from contract balance
}
}
ERC2771 part: the user signs a transaction off-chain, Gelato forwards it via a trusted forwarder, the contract sees the real _msgSender() through the ERC-2771 context.
How to use Web3 Functions for off-chain logic?
A TypeScript script runs on Gelato nodes and can:
import { Web3Function, Web3FunctionContext } from "@gelatonetwork/web3-functions-sdk";
Web3Function.onRun(async (context: Web3FunctionContext) => {
const { multiChainProvider, secrets } = context;
const provider = multiChainProvider.default();
// Get data from external 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" };
});
How much does automation on Gelato cost?
Gelato charges a fee on top of gas cost. For Automate: balance is topped up in ETH on the contract or in Gelato Treasury. For Relay: fee ~10% of gas cost. For Web3 Functions: additional computation fee. On high-load tasks (liquidations, arbitrage), Gelato competes with Chainlink Automation and custom keeper bots. For tasks with moderate frequency (once per hour to once per day), Gelato is optimal in terms of simplicity of integration and cost.
Our team has 7+ years of experience in blockchain development and has implemented 30+ projects with smart contract automation. We guarantee that the integration will be completed on time with full test coverage.
What is included in the work
- Task analysis: mode selection (Automate, Web3 Functions, Relay)
- Smart contract integration: writing modules, inheritance, configuration
- Testing on testnet (Sepolia, Mumbai, Arbitrum Goerli)
- Gas and code optimization
- Documentation and team training
- Support for 30 days after deployment
Timeframes and cost
Basic Automate integration with time-based task: from 1 day. Web3 Function with off-chain logic and Relay: from 2 to 3 days. Cost is calculated individually after clarifying task frequency and off-chain logic complexity. Contact us for a free project assessment — we will prepare an estimate within one day.







