Gasless Transactions on Ethereum

Joan Alavedra, Co-Founder at Openfort6 min read
TL;DR

Openfort supports gasless transactions on Ethereum and every major EVM chain. Using ERC-4337 paymasters and EIP-7702, your app can sponsor network fees so users never need to hold ETH to transact. You can also run an ERC-20 paymaster that lets users pay gas in stablecoins like USDC, USDT, or DAI — no native token required. This removes the biggest onboarding blocker for consumer apps, games, and payment flows. Integration is a few lines via the Openfort SDK, with policy controls for when and how much you sponsor. The post walks through how it works, stablecoin gas, and production considerations.

Gasless Transactions on Ethereum

Gas fees are the oldest friction point in crypto: before a user can do anything, they need the native token to pay for it. On Ethereum that means buying ETH, bridging it to the right chain, and keeping a balance topped up. With Openfort, you can remove that step entirely — your app sponsors gas, and users just use your product.

Openfort offers a complete account abstraction stack with bundlers, paymasters, and session keys ready to ship.

This works on Ethereum mainnet and every major EVM chain — Base, Arbitrum, Optimism, Polygon, BNB Chain (Binance Smart Chain), and more. You sponsor the gas, your users never touch the native token.

How it works

Gasless transactions on Ethereum are built on ERC-4337 paymasters:

  1. Your app builds a transaction as a UserOperation
  2. The user signs the payload through their Openfort embedded wallet
  3. A paymaster covers the gas, and a bundler submits the operation onchain

The user's wallet only signs the transaction data — no ETH is deducted from their account. The paymaster handles the fee payment on your behalf. With EIP-7702, the same sponsorship flow works for regular EOAs that temporarily gain smart-account powers, so users keep a familiar address while getting gasless UX.

This approach preserves the security guarantees of cryptographic signing while completely removing the gas barrier for your users.

How to sponsor gas on Ethereum

Sponsoring gas takes two pieces of configuration and one send call. The full walkthrough lives in the sponsor gas on Ethereum docs; here's the short version.

Install the SDK:


_10
npm install @openfort/openfort-node

Create a gas sponsorship policy with the sponsorEvmTransaction operation — once, in the dashboard or via the API. Leave criteria empty to sponsor every transaction, or add rules to scope it:


_10
curl -X POST https://api.openfort.io/v2/policies \
_10
-H "Authorization: Bearer $YOUR_SECRET_KEY" \
_10
-H "Content-Type: application/json" \
_10
-d '{
_10
"scope": "project",
_10
"description": "Sponsor all EVM transactions",
_10
"rules": [
_10
{ "action": "accept", "operation": "sponsorEvmTransaction", "criteria": [] }
_10
]
_10
}'

Attach a pay_for_user gas sponsorship so your project balance covers the fees:


_10
curl -X POST https://api.openfort.io/v2/fee-sponsorship \
_10
-H "Authorization: Bearer $YOUR_SECRET_KEY" \
_10
-H "Content-Type: application/json" \
_10
-d '{
_10
"name": "App-pays gas on EVM",
_10
"strategy": { "sponsorSchema": "pay_for_user" },
_10
"policyId": "ply_..."
_10
}'

Now send. Pass the policy and target any EVM chain by its chainId — Ethereum, Base, Arbitrum, BNB Chain, and the rest all use the same call:


_17
import 'dotenv/config'
_17
import Openfort from '@openfort/openfort-node'
_17
_17
const openfort = new Openfort(process.env.OPENFORT_SECRET_KEY!, {
_17
walletSecret: process.env.OPENFORT_WALLET_SECRET!,
_17
})
_17
_17
const account = await openfort.accounts.evm.backend.create()
_17
_17
const result = await openfort.accounts.evm.backend.sendTransaction({
_17
account,
_17
chainId: 8453, // Base — or 1 (Ethereum), 56 (BNB Chain), 42161 (Arbitrum)…
_17
interactions: [{ to: '{{CONTRACT_ADDRESS}}', data: '{{CALLDATA}}' }],
_17
policy: '{{POLICY_ID}}',
_17
})
_17
_17
console.log('Sponsored transaction hash:', result.response?.transactionHash)

That's it — the paymaster covers gas, and the user needs no ETH or BNB.

Pay gas in stablecoins

Not every flow should be free. For payment apps, DeFi, or anything where users already hold stablecoins, you can run an ERC-20 paymaster instead of full sponsorship.

With an ERC-20 paymaster, users pay network fees in a stablecoin — USDC, USDT, or DAI — rather than ETH. The paymaster fronts the gas in the native token and charges the equivalent in the ERC-20. The result: users only ever think in dollars, and never need to acquire ETH to move their money.

Openfort supports multiple fee modes for this:

  • Charge at live rate — the user pays the real-time stablecoin equivalent of gas consumed
  • Fixed rate — the user pays a predictable token amount per action, ideal for in-game currencies or flat pricing

This is what makes a true "USDC-only" wallet possible: users hold stablecoins, transact in stablecoins, and pay fees in stablecoins, with ETH abstracted away entirely. See pay gas in ERC-20 tokens for the setup.

Frictionless wallet creation

Gasless transactions pair with Openfort's embedded wallet infrastructure. Users create self-custodial wallets through familiar login methods — email, social auth, or passkeys — without needing to understand blockchain mechanics upfront.

Combined with sponsored or stablecoin gas, this means:

  • No seed phrase education required during onboarding
  • No "buy ETH first" step before users can interact
  • Standard web2 login flows with crypto capabilities

Control what you sponsor

Sponsoring gas is a business expense, so you get controls to manage it. Paymaster policies let you scope sponsorship with granular rules:

  • When you sponsor — first N actions, specific methods, promotional windows
  • How much — daily limits and per-transaction gas caps
  • For what — specific contracts or function selectors

This keeps costs predictable and protects you against abuse while still delivering a frictionless experience to real users.

Why this matters

Gas fees remain one of the biggest friction points in crypto applications. Even when fees are low, "low" isn't zero — users still need to acquire ETH, transfer it to the right wallet on the right chain, and maintain a balance. Each step is a potential drop-off point.

Gasless transactions eliminate this friction. Your application handles gas costs as a business expense, similar to paying for API calls or cloud infrastructure. And for stablecoin flows, an ERC-20 paymaster means users transact entirely in dollars.

For payments, DeFi savings, trading, or any consumer application, this changes the onboarding equation. Users don't need to become crypto-literate before experiencing your product.

Get started

We've published complete guides for implementing gasless transactions on Ethereum and EVM chains:

→ Sponsor gas on Solana and Ethereum — policy setup, app-pays sponsorship, and the send call with copy-paste code.

→ Pay gas in ERC-20 tokens — let users pay fees in USDC, USDT, or DAI.

→ How to set up gasless transactions — the full EVM + Solana implementation guide.

The guides cover paymaster setup, policy configuration, stablecoin fee modes, and integration with Openfort's embedded wallets.

If you're already using Openfort, enabling gasless transactions requires minimal changes to your existing integration.

Share this article

Related Articles

  1. Private stablecoin payments using Unlink

    What confidential stablecoin payments with Unlink mean for builders on Openfort

  2. Openfort adds Robinhood Chain support

    Openfort now supports Robinhood Chain, giving builders the wallet infrastructure to run consumer and financial apps on Robinhood's new network from day one.

  3. Introducing Universal Deposit Address

    Universal deposit address: one address per user that auto-swaps any token on any chain into the destination wallet's native asset.

Ship your first wallet in minutes