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.
Before sponsoring transactions, make sure your Gas Tank is funded. See Setting Up Gas Tank for instructions on depositing funds, and Gas Tank Balance & Alerts to monitor your balance.

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 } 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,
  to: '0xE27C1359cf02B49acC6474311Bd79d1f10b1f8De'
});

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

try {
  const receipt = await relayer.waitForReceipt({ id });
  console.log(`Transaction hash: ${receipt.transactionHash}`);
} catch (error) {
  console.log(`Transaction failed: ${error.message}`);
}

Additional Resources