💰Pricing & Rate Limits

Overview

In order for the network to be sustainable & decentralized, Gelato Nodes charge fees for running off-chain computation and executing transactions.

Our default method is to pay for all your Web3 Function costs across all networks from a single balance using Gelato 1Balance. Learn more about it by heading over the linked page:

Computation Charges

Gelato Nodes will charge computation charges, similar to what you are used to in AWS or Google Cloud. The more computation your Web3 Functions require to run, the more costs Gelato Nodes have and thus need to get compensated.

Gelato Nodes limit the amount of computational resources that your Web3 functions can consume based on the limits set out in your Subscription Plan.

Computation Limits

Each subscription plan has limits. For example, on our free Accelerate plan your Web3 Functions usage is limited to:

  • Number of runs per month: 90,000

  • RPC requests per run: 5 calls

  • Maximum run duration: 5 secs

  • Max memory per run: 128mb

  • Max storage size per function: 1024 kb (1 mb)

If you exceed these limits your Web3 Function runs will be throttled. If you have any questions or would like to discuss your subscription, please reach out to us here.

Transaction Charges

Each transaction that Gelato Nodes execute require a small fee to incentivize Nodes to adhere to the protocol and get your transactions included into your desired blockchain in a fast and secure fashion.

To achieve this, Nodes charge a fee as a percentage of total gas cost for the executed transaction. This varies across networks - Nodes charge higher premiums on cheaper networks and vice versa.

Table 1 - Fee premiums as a percentage of total gas cost per network. Testnet transactions are subsidized by Gelato.

These transaction premiums can be customised for users. Please reach out to us here to discuss your needs.

Transaction pays for itself

You can also choose to have your function pay the fee during executions. It must be remembered that running Web3 Functions has computational costs. Please see here the Free Tier limits, in the case that the Web3 Functions goes above these limits, 1Balance will be also required to pay for the computational costs.

We offer a range of subscription plans - ranging from Accelerate - a free plan subsidized by Gelato that provides all the essentials to get started - all the way through to an Enterprise Plan with custom computation limits and execution premiums.

This can be done by inheriting AutomateReady.

contract CounterWT is AutomateReady {
    uint256 public count;
    uint256 public lastExecuted;

    constructor(address _automate, address _taskCreator)
        AutomateReady(_automate, _taskCreator)
    {}

    receive() external payable {}

    function increaseCount(uint256 amount) external onlyDedicatedMsgSender {
        count += amount;
        lastExecuted = block.timestamp;

        (uint256 fee, address feeToken) = _getFeeDetails();

        _transfer(fee, feeToken);
    }
}

In the increaseCount function, we use _transfer inherited from AutomateReady to pay Gelato.

_transfer has two parameters, fee and feeToken which has to be queried from the Automate contract by using getFeeDetails()

To create a task that pays for itself, head over to the task properties and enable the 'Transaction pays itself"

Last updated

Change request #334: 1Balance-update