Skip to main content
Enabling users to pay gas fees with ERC-20 tokens enhances the user experience by removing the need to hold native tokens like ETH. This is especially useful for onboarding users who primarily hold stable coins or other ERC-20 assets.

Getting Started

1

Importing Dependencies

2

Setup Smart Account

You can set up a Smart Account as per your needs. In the case of Gelato, the Gelato Smart Account address will be the same as your EOA, enabling EIP-7702 features.

When using a Kernel Account, you have the option to use EIP-7702 and ERC-4337 together. Setting eip7702 parameter to true will make your EOA the sender address. However, if you want to utilize existing Kernel accounts only with ERC-4337 features, set it to false.

For a Safe Account, it defaults to the ERC-4337 standard. You can either use an already deployed Safe Account or create a new one, while enhancing the experience with Gelato’s best-in-class infrastructure.
3

Setup Wallet Client

Quickly get started by creating a wallet client using createWalletClient from viem with local account for your specified network. Checkout supported networks here.
4

Creating a Smart Wallet Client

To initialize a Smart Wallet Client, you can use the createGelatoSmartWalletClient method.
5

Sending Transactions

To send transactions with ERC-20 gas payments, select ERC20 as the payment method and use one of the supported tokens for gas fees. You can check the list of supported ERC-20 tokens here.
6

Batch Multiple Transactions

You can batch multiple transactions to be sent on-chain at once by adding them to the calls array:

ERC20 Gas Payment Playground

Additional Resources

  • Check out the full implementation of ERC-20 gas payments using Gelato Wallets.