Skip to main content
Sponsor gas fees for your users using Gelato’s cross-chain Gas Tank. Deposit funds once and sponsor transactions across all supported networks.

Implementations

npm install @gelatocloud/gasless viem
1

Create an API Key

Check out our How-To Guide for detailed instructions on generating an API key.
2

Initialize Relayer Client

import { createGelatoEvmRelayerClient, StatusCode, sponsored } from '@gelatocloud/gasless';
import { baseSepolia } from 'viem/chains';

const relayer = createGelatoEvmRelayerClient({
  apiKey: process.env.GELATO_API_KEY,
  testnet: baseSepolia.testnet
});
3

Generate Payload

Generate the payload for your target contract function:
import { encodeFunctionData } from 'viem';

const data = encodeFunctionData({
  abi: [{ name: 'increment', type: 'function', inputs: [], outputs: [] }],
  functionName: 'increment'
});
4

Send Transaction

const id = await relayer.sendTransaction({
  chainId: baseSepolia.id,
  data: data,
  payment: sponsored(),
  to: '0xE27C1359cf02B49acC6474311Bd79d1f10b1f8De'
});

console.log(`Gelato transaction id: ${id}`);

const status = await relayer.waitForStatus({ id });

if (status.status === StatusCode.Included) {
  console.log(`Transaction hash: ${status.receipt.transactionHash}`);
} else {
  console.log(`Transaction failed: ${status.message}`);
}

Additional Resources