the topic
// topic · layered since 2017 · still unsolved · ready

What are gasless transactions on Ethereum?

Sponsored execution — the consumer-app UX every wallet has been promising. And why it hasn't broken through.

updated · 13 min read · by ercs-solved maintainers

on this page
  1. What is Gasless Transactions?
  2. At a glance
  3. Origin story
  4. The spec
  5. What's broken
  6. bundler centralisation problem
  7. paymaster trust + funding overhead
  8. Validator-module fragmentation
  9. Hybrid 7702 account semantics — the residual key problem
  10. Per-protocol contract opt-in — the ERC-2771 tax
  11. Wallet and SDK fragmentation — the 8-vendor consumer-app problem
  12. Criticism from the source
  13. Why LUKSO breaks through
  14. Gasless Transactions vs LSP25+LSP15+LSP6+LSP0
  15. When to use which
  16. FAQ
  17. Sources
  18. Keep reading
at a glance

The standard, in one card.

Topic
Gasless transactions on Ethereum and EVM L2s
First standardised proposal
ERC-1613 (Tabookey GSN v1, Nov 2018)
Current Ethereum stack
ERC-2771 + ERC-4337 + EIP-7702
Protocol-native gasless?
Ethereum: partial (EIP-7702, May 2025) · LUKSO: yes (LSP25, since 2023)
Required (4337) infrastructure
EntryPoint + bundler + paymaster + validator module
Production AA stack vendors
Pimlico · ZeroDev · Coinbase Smart Wallet · Safe · Alchemy · Biconomy
how the standard came to be

The origin story.#

  1. 2017 Austin Griffith's Burner Wallet demonstrates gasless onboarding via custodial relayers — the UX appeal of 'user doesn't need ETH' is established.
  2. Nov 2018 Yoav Weiss, Dror Tirosh, and Alex Forshtat (Tabookey) publish ERC-1613 (Gas Station Network v1) — the first standardised meta-transaction proposal.
  3. Aug 2020 ERC-2771 (Secure Protocol for Native Meta Transactions) finalised by an 11-author group including the Tabookey team and Fabian Vogelsteller.
  4. 2020–22 OpenGSN v2, OpenZeppelin Defender Relayer, Gelato Network, and Biconomy SDK build the vendor relayer market on top of ERC-2771. Meta transactions go production.
  5. Sept 2021 Vitalik Buterin proposes ERC-4337 with the Tabookey core team — explicitly framed as 'account abstraction without Ethereum protocol changes' in his Medium post title.
  6. Mar 2023 ERC-4337 EntryPoint v0.6 deploys to Ethereum mainnet after audits by OpenZeppelin and Certora. Pimlico, Stackup, Alchemy, and Biconomy launch bundler services.
  7. 2023 LUKSO mainnet launches with LSP25 + LSP15 baked into the account stack — gasless execution becomes substrate-level on the account contract from day one.
  8. Nov 2024 At Devcon SEA, ERC-4337 co-author Yoav Weiss outlines a roadmap toward a 'modular native AA approach for L1 and L2' — the spec's own lead acknowledging the layered model's limits.
  9. Dec 2024 EIP-7851 proposed by Liyi Guo and Nicolas Consigny — adds an ECDSA-disabled delegation prefix and SETSELFDELEGATE opcode to let wallet code burn the residual EOA authority. Still Draft as of mid-2026.
  10. May 2025 Pectra hard fork lands EIP-7702: EOAs gain protocol-level ability to delegate execution to contract code. EntryPoint v0.8 deploys alongside with native 7702 support. ERC-7579 and ERC-6900 modular-account standards remain Draft; consolidation continues.
the stack, end to end

How Gasless Transactions actually works.#

Gasless Transactions interface, grouped
user side: signer (controller key) · intent payload · EIP-712 signature
Ethereum · 2771: ForwardRequest · trusted forwarder · _msgSender extraction
Ethereum · 4337: UserOperation · bundler · EntryPoint · paymaster
Ethereum · 7702: AuthorisationList · delegated EOA · residual ECDSA key
LUKSO: LSP25 executeRelayCall · LSP15 relayer · LSP6 permissions
the integration tax

What's broken about Gasless Transactions.#

  1. The bundler centralisation problem.#

    ERC-4337 UserOperations route through an alt-mempool that's much narrower than Ethereum's L1 mempool. In production, UserOp flow is concentrated around a small set of bundler operators; censorship, reordering, and MEV-extraction risk concentrate with that infrastructure. ERC-4337's own lead maintainer Yoav Weiss has flagged centralisation as a known concern in public talks. Consumer cost: every gasless UX in your app depends on whichever bundlers your wallet vendor talks to staying up, uncensored, and not throttling your flow during a usage spike.

    ERC-4337 handleOps(UserOperation[], beneficiary)
    alt mempool bundler-concentrated censorship surface
    LSP25 account.executeRelayCall(sig, nonce, validity, payload)
    normal L1 mempool no parallel infra relayer can't escalate
    workarounds tried
    • multiple bundler RPCs with failover
    • shared mempool projects (Skandha, Silius)
    • self-hosted bundler (high SRE cost)

    read the deep-dive

  2. The paymaster trust + funding overhead.#

    Sponsoring gas on ERC-4337 means operating a paymaster contract (its own ETH deposit at EntryPoint, its own validatePaymasterUserOp, its own postOp accounting, its own DoS surface) — or renting one from Pimlico, Stackup, ZeroDev, Biconomy, Alchemy. Either path has ongoing OPEX and abuse-prevention runtime cost. Consumer cost: a product team shipping a gasless mobile app picks up per-transaction vendor fees plus monthly quotas plus per-paymaster integration code plus a gas-tank that needs ongoing top-ups plus a fraud-prevention layer to stop users from burning the paymaster's deposit on inflated gas estimates.

    ERC-4337 Paymaster.validatePaymasterUserOp + postOp
    separate contract own deposit two-step trust vendor fees
    LSP25 account.executeRelayCall(...)
    one function on the account no paymaster contract relayer is infra
    workarounds tried
    • vendor SaaS paymasters (per-tx fees + SLA)
    • permissioned paymasters with allowlists
    • user-pays-in-stablecoin via ERC-20 paymasters
  3. Validator-module fragmentation.#

    ERC-4337 deliberately left validateUserOp to each smart-account implementation. The result in 2026: ZeroDev Kernel, Safe, Biconomy Nexus, Coinbase Smart Wallet, and Alchemy LightAccount each ship their own validator shape. ERC-7579 and ERC-6900 are converging on modular-account standards — both are still Draft as of mid-2026. Permission auditing happens per-vendor; session-key SDKs are non-portable across wallets; and 'an AA wallet' does not share a permission vocabulary with another 'AA wallet'. Consumer cost: every consumer app integrates against each wallet's SDK separately; cross-wallet sessions don't exist; security review costs scale linearly with the number of wallets you support.

    ERC-4337 validateUserOp() — per-account validator
    non-standard wallet-specific session-key SDK per vendor
    LSP6 Key Manager (standardised permission bitfield)
    AllowedCalls AllowedStandards AllowedERC725YDataKeys uniform across the LSP ecosystem
    workarounds tried
    • ERC-7579 modular accounts (Draft)
    • ERC-6900 modular accounts (Draft)
    • per-vendor session-key SDKs

    read the deep-dive

  4. Hybrid 7702 account semantics — the residual key problem.#

    EIP-7702 (Pectra, May 2025) lets an EOA delegate execution to contract code, which unlocks ERC-4337 features (batching, gas sponsorship, session keys) without redeploying. But the original secp256k1 key never goes away. An attacker who compromises the EOA's private key can sign another 7702 authorisation, replace the delegation, and reset whatever recovery configuration the user had set. EIP-7851 (proposed Dec 2024 by Liyi Guo and Nicolas Consigny) extends 7702 with an ECDSA-disabled delegation prefix and a SETSELFDELEGATE opcode to let wallet code burn the residual ECDSA authority — but as of mid-2026 it remains a Draft. The 7702 spec itself also flags storage-collision risk when switching delegate implementations. Consumer cost: a 'smart wallet' UX built on 7702 still has an EOA key under the hood that, if stolen, bypasses every recovery and permission layer above it. That's not a UX you can hand to a non-technical user with a straight face.

    EIP-7702 AuthorizationList + delegated EOA
    residual ECDSA key storage collisions no authoritative recovery
    LSP0 + LSP6 Universal Profile (contract from genesis)
    no residual key authoritative recovery Key Manager replaceable
    workarounds tried
    • EIP-7851 (Draft, Dec 2024) — ECDSA revocation
    • fresh contract account (ERC-4337 standalone, loses address history)
    • hardware-wallet-rooted EOA
  5. Per-protocol contract opt-in — the ERC-2771 tax.#

    The ERC-2771 trusted-forwarder pattern (used by OpenGSN, OpenZeppelin Defender, Gelato Relay, Biconomy SDK) requires every recipient contract in the protected call graph to inherit ERC2771Context and replace every msg.sender reference with _msgSender(). Older OpenZeppelin contracts, third-party libraries, and custom modifiers that don't propagate the convention will silently see the forwarder address as the sender — which breaks permission logic in ways audit tools don't reliably catch. Consumer cost: integrating gasless via 2771 means auditing every contract in the call graph, paying for a security review of every msg.sender reference, and committing to the trusted-forwarder list as a long-lived governance surface. Most product teams shipping consumer apps don't have the bandwidth.

    ERC-2771 _msgSender() + per-contract opt-in
    audit every contract library rewrite required trusted-forwarder governance
    LSP0 + LSP25 msg.sender == account, natively
    zero contract changes no convention to enforce account is the entry point
    workarounds tried
    • OpenZeppelin ERC2771Context base class
    • Custom static-analysis rules for msg.sender
    • Migrate to ERC-4337 (different tax)
  6. Wallet and SDK fragmentation — the 8-vendor consumer-app problem.#

    There is no single 'ship a gasless consumer app on Ethereum' path. In 2026 a product team picks between: Pimlico (bundler + paymaster + AA SDK), ZeroDev Kernel (modular-account SDK), Coinbase Smart Wallet (closed-vertical), Safe (treasury heritage, AA via modules), Alchemy Account Kit (bundled with their RPC), and Biconomy Nexus (cross-chain unified gas tank). OpenGSN, OpenZeppelin Defender Relayer, and Gelato Relay sit alongside on the 2771 / generic-relayer side. Each ships its own SDK shape, pricing model, SLA, and chain coverage. Consumer cost: vendor lock-in is the default outcome; the alternative is an N-vendor abstraction layer the product team has to maintain. Compare this to integrating Stripe — there's basically one shape. Gasless on Ethereum is the opposite.

    Ethereum AA stack 6+ vendor SDKs, each different
    vendor lock-in per-wallet integration per-vendor abuse rules
    LSP15 Transaction Relay Service API standard
    one spec swappable implementations reference impl open-source
    workarounds tried
    • abstraction layers (Privy, Dynamic, thirdweb)
    • single-vendor commitment + migration risk
    • wait for ERC-7579 / 6900 to consolidate
criticism from the source

What Gasless Transactions co-authors said about the standard.#

Gasless on Ethereum has been 'six months away' for nearly a decade. The clearest evidence that the bottleneck is structural — not a missing implementation detail — is that the people who designed each layer have, over time, said so publicly. Four on-the-record positions, each paired with the LUKSO LSP that addresses the underlying limit.

  1. The original ERC-4337 design admitted the constraint in its title.

    ERC-4337: Account Abstraction Without Ethereum Protocol Changes.

    LUKSO answer LSP0 +LSP25

    LUKSO designed account abstraction as the substrate from genesis — no fork was needed because the chain was new. Universal Profiles are contracts; there's no EOA model to work around, no alt-mempool to maintain, no EntryPoint singleton to coordinate around. LSP25 puts the relay function on the account itself.

  2. EIP-7702 exists because the layered model couldn't onboard existing addresses.

    [Existing EOAs] cannot become ERC-4337 smart accounts without losing their address history, their ENS records, their reputation, and their airdrop eligibility.

    LUKSO answer LSP0

    On LUKSO, an account IS a contract from creation. There's no 'convert an existing EOA' problem because there's no EOA-first model in the first place. Identity migration is not a thing because identity lives on the contract.

  3. ERC-4337's lead maintainer has publicly outlined a 'modular native AA' roadmap.

    Modular native AA approach for L1 and L2.

    LUKSO answer LSP6 +LSP15

    LSP6 ships the standardised permission vocabulary (the 'modular' part) on the substrate (the 'native' part). LSP15 standardises the relayer interface so any compliant implementation is interchangeable — modular by design, from day one, instead of as a future roadmap item.

  4. Even Pectra's 7702 leaves the original ECDSA key in place — and the proposed fix is still Draft.

    [EIP-7851] lets wallet code control the delegation lifecycle and burn residual ECDSA authority.

    LUKSO answer LSP0 +LSP6

    A Universal Profile has no residual ECDSA root above its Key Manager. Recovery and controller replacement are authoritative because there's nothing the recovered configuration can be overridden by. The 'residual key after 7702 delegation' problem doesn't exist on a contract account that was never an EOA.

the LUKSO answer

Why LUKSO breaks through the bottleneck.#

spec to spec, at a glance

Gasless Transactions vs LSP25+LSP15+LSP6+LSP0 in one table.#

row Gasless Transactions LSP relay stack
trust assumption bundler + paymaster + trusted forwarder (per stack) controller signs; relayer is just infrastructure
permission model per-account validator (4337) / per-protocol scope (2771) / wallet-defined (7702) LSP6 Key Manager (standardised vocabulary)
infrastructure required EntryPoint + bundler + paymaster + (optionally) forwarder + vendor SDK account contract + LSP15-compliant relayer
integration surface wallet SDK per vendor (6+ production stacks) LSP15 spec; any compliant relayer is swappable
residual ECDSA key present on 7702 EOAs; EIP-7851 still Draft for revocation none — Universal Profile is a contract from day one
ongoing OPEX bundler / paymaster funding + vendor fees + SRE relayer ops or self-host LSP25 ABI

full matrix → gasless transactions vs lsp25+lsp15+lsp6+lsp0

be honest about scope

When to use which.#

people also ask

FAQ.#

  • What are gasless transactions? #

    Gasless transactions are blockchain transactions where the user signs an intent off-chain and a third party (a relayer or bundler) submits it on-chain and pays the gas. The user never has to hold the chain's native token to interact with a dapp. 'Gasless' is a UX framing — gas is still paid; it's just paid by someone other than the signer (a sponsoring app, a paymaster, a relayer service, or a custodian).

  • What is a meta transaction? #

    A meta transaction is the on-chain primitive that makes gasless flows work: a user signs an intent payload with EIP-712 typed data; a relayer submits the payload to a forwarder, bundler, or account contract; the destination contract recovers the original signer from the calldata or signature. The first standardised meta-transaction proposal was ERC-1613 (Tabookey, November 2018), succeeded by ERC-2771 (August 2020) and then absorbed into ERC-4337's UserOperation model in September 2021. On LUKSO, LSP25 is the same idea — but the relay function lives on the account contract itself rather than on a separate forwarder.

  • What's the difference between ERC-2771, ERC-4337, and EIP-7702? #

    ERC-2771 (2020) is a contract-level pattern: each recipient contract opts in to ERC2771Context, pins a trusted forwarder address, and extracts the original signer via _msgSender(). ERC-4337 (2021, mainnet Mar 2023) is a much larger architecture: contract accounts submit UserOperations through a parallel mempool, a bundler packs them, a singleton EntryPoint validates, and optional paymasters sponsor gas. EIP-7702 (Pectra, May 2025) is a protocol-level patch: it lets an existing EOA delegate execution to contract code in a single transaction without redeploying. The three are layered, not exclusive — production wallets in 2026 typically combine 7702 (to upgrade the EOA) with 4337 (for the bundler / paymaster infrastructure) and sometimes 2771 (for legacy contract integration).

  • What is a bundler in ERC-4337? #

    A bundler is an off-chain actor that watches the ERC-4337 UserOperation mempool, validates UserOps (by simulating validateUserOp against the destination account and validatePaymasterUserOp against any paymaster), packs valid ones into a single transaction calling EntryPoint.handleOps(), and submits it on-chain. Bundlers earn fees per UserOp. The position is privileged — bundlers can censor, reorder, or extract MEV from the UserOps they see — and bundler centralisation has been flagged by ERC-4337's own maintainers as a known concern. Production bundlers in 2026 include Pimlico, Alchemy, Stackup, Biconomy, and Candide.

  • What is a paymaster? #

    A paymaster is an optional ERC-4337 contract that sponsors gas for a UserOperation. The user signs a UserOp referencing a paymaster; the bundler asks the paymaster (via validatePaymasterUserOp) whether it's willing to cover the gas; the paymaster pays from its own ETH deposit at the EntryPoint; afterwards, postOp runs for any per-user accounting (e.g., charging the user in an ERC-20 token). Paymaster operation is a separate failure surface and an ongoing OPEX line — either you run one (SRE), or you rent one from Pimlico, Stackup, ZeroDev, Biconomy, or Alchemy (per-tx fees, monthly quotas, SLAs).

  • Why hasn't gasless onboarding broken through to consumer apps? #

    Because shipping gasless on Ethereum picks up several structural costs simultaneously: bundler centralisation risk, paymaster funding and abuse-prevention OPEX, per-account validator fragmentation (every wallet ships its own session-key SDK), per-protocol opt-in costs for ERC-2771 paths, residual ECDSA key risk on EIP-7702 EOAs, and lock-in to one of six+ vendor stacks (Pimlico, ZeroDev, Coinbase, Safe, Alchemy, Biconomy). Any individual cost is manageable; together they make 'ship a Tinder, a Spotify, or a Reddit on-chain experience' a much bigger lift than 'integrate Stripe'. The bottleneck isn't any single standard — it's that Ethereum's protocol was built around EOAs and every layered gasless standard is working around that, in different ways, with different fragmentation.

  • Does EIP-7702 fix gasless on Ethereum? #

    Partially. EIP-7702 (activated in the Pectra hard fork, May 2025) lets an existing EOA delegate execution to contract code in a single transaction, which means EOAs can now use ERC-4337's bundler and paymaster infrastructure without redeploying — closing the 'existing addresses can't become smart accounts' gap that the EIP-7702 Motivation section identified. EntryPoint v0.8 deployed alongside Pectra with native 7702 support. But the residual ECDSA key on a delegated EOA remains: an attacker who compromises the original private key can sign another 7702 authorisation to override recovery. EIP-7851 (proposed by Liyi Guo and Nicolas Consigny, December 2024) extends 7702 with an ECDSA-disabled delegation prefix and a SETSELFDELEGATE opcode to let wallet code burn the residual authority — but as of mid-2026 it's still Draft. Pectra closed one gap; the next one is open.

  • How does LUKSO handle gasless transactions? #

    LSP25 (Execute Relay Call) defines executeRelayCall(signature, nonce, validityTimestamps, payload) as a function on the Universal Profile account itself. A controller signs the payload (with a nonce-channel design for parallel relay streams), a relayer submits the on-chain call and pays gas, and LSP6 permissions still gate what the signing controller can authorise — so the relayer is just infrastructure, with no ability to escalate authority by virtue of paying gas. There is no EntryPoint singleton, no UserOperation envelope, no bundler, no paymaster contract, and no trusted-forwarder list to govern. msg.sender at downstream targets is the account itself, natively. The trace shape stays direct: controller → account → target. See the LSP25 spec at ercsolved.dev/standards/lsp25-execute-relay-call/ and the comparison at ercsolved.dev/standards/compare/erc4337-lsp-stack/.

  • What is LSP15 Transaction Relay Service API? #

    LSP15 standardises the off-chain HTTP API that a dapp uses to talk to a relayer. A dapp posts a signed payload; a compliant relayer service validates the signature, submits the transaction via LSP25 executeRelayCall on the destination Universal Profile, and pays the gas. Because LSP15 defines the wire interface, any compliant relayer implementation is swappable — a project can self-host (the reference implementation lives at github.com/lukso-network/tools-mock-relayer), pay a third-party service, or build their own. The vendor-SDK lock-in problem ERC-4337's ecosystem has (six+ different SDK shapes) doesn't exist on LSP15 because the integration is a standardised HTTP spec, not a vendor library.

  • Do I need to run my own bundler to ship a gasless app? #

    On Ethereum with ERC-4337: technically no — Pimlico, Alchemy, Stackup, Biconomy, and ZeroDev all operate bundler RPCs you can pay to use. But you do need to (a) commit to a bundler vendor, (b) manage failover when their service degrades, (c) integrate their AA SDK, and (d) accept the centralisation surface that comes with most of mainnet UserOp volume flowing through 1–2 operators. On LUKSO with LSP25 + LSP15: you can self-host the open-source mock-relayer reference implementation, build your own LSP15-compliant service, or use any compliant relayer. The relayer doesn't gate validation or carry MEV-extraction power the way bundlers do.

  • Can I pay gas in stablecoins or ERC-20 tokens? #

    Yes, via ERC-4337 paymasters that accept ERC-20 payments. The pattern: the user's UserOperation references an ERC-20 paymaster; the bundler asks the paymaster to validate; the paymaster pays ETH gas at the EntryPoint from its own deposit; postOp transfers the user's chosen ERC-20 from the user's account to the paymaster at an exchange rate the paymaster sets. Pimlico, Biconomy, and Alchemy operate ERC-20 paymasters for stablecoins (USDC, USDT, DAI). The user experience is 'I paid in USDC' but the underlying gas accounting still has to settle through ETH and through the paymaster's deposit. On LUKSO, the equivalent pattern lives at the relayer-policy layer: the LSP25 ABI is gas-agnostic, and the relayer can charge the user in any token (or sponsor entirely) via its own off-chain policy.

  • Is gasless the same as account abstraction? #

    Overlapping but not the same. Account abstraction is the broader idea that accounts supply their own validation logic via smart contract code (multisigs, passkeys, session keys, social recovery) instead of being fixed single-keypair EOAs — see ercsolved.dev/erc-4337/ for the deeper treatment. Gasless transactions are specifically about separating the signer from the payer of gas. AA enables gasless (by giving the account programmable validation that can accept a relayer-submitted call), but you can have gasless without AA (ERC-2771 trusted forwarders predate AA and work on EOAs). And you can have AA without gasless (an ERC-4337 wallet where the user pays their own gas via the EntryPoint). They're commonly bundled because the production AA stacks (Pimlico, ZeroDev, etc.) ship gasless and AA together, but the standards are distinct.

glossary 12 terms used on this page
Gasless transaction
A transaction where the user signs an intent off-chain and a third party pays the gas to submit it. UX framing — gas is still paid, just not by the signer.
Meta transaction
The on-chain primitive enabling gasless flows: a signed payload that a relayer submits, with the destination contract recovering the original signer.
Relayer
An off-chain actor that watches for signed payloads, submits them on-chain, and pays the gas. Can be self-hosted (mock-relayer, OpenGSN nodes) or rented (Pimlico, Defender, Gelato, Biconomy).
Bundler
The ERC-4337 specialisation of a relayer: picks valid UserOperations from the alt-mempool, packs them into a single EntryPoint.handleOps() call, submits on-chain, earns fees. Production bundlers in 2026: Pimlico, Alchemy, Stackup, Biconomy, Candide.
Paymaster
An optional ERC-4337 contract that pays gas on behalf of users. Its own ETH deposit at EntryPoint, its own validation function, its own postOp accounting hook, its own DoS surface.
EntryPoint
The singleton ERC-4337 contract that receives bundled UserOperations, runs validation, calls into accounts and paymasters, handles gas accounting. Versions: v0.6 (Mar 2023), v0.7 (2024), v0.8 (May 2025, native 7702 support).
Trusted forwarder
The contract an ERC-2771 recipient designates as 'allowed to attach the original signer to a meta-transaction call'. Load-bearing trust assumption — if compromised, the recipient accepts forged sender addresses.
_msgSender()
The ERC-2771 helper function recipient contracts call instead of msg.sender. Returns the original signer when called via a trusted forwarder; returns msg.sender otherwise.
UserOperation
The ERC-4337 envelope wrapping a smart-account intent — sender, nonce, calldata, gas, signature, optional initCode, optional paymasterAndData. Lives in a separate mempool from regular transactions.
EOA delegation (EIP-7702)
Pectra-era protocol upgrade letting an EOA delegate execution to contract code in a single transaction, without redeploying. Original ECDSA key still works — that's the residual-key problem EIP-7851 (Draft) aims to fix.
LSP25
LUKSO's Execute Relay Call standard. Puts the relay function on the Universal Profile account itself; controllers sign, relayers submit, LSP6 permissions enforce scope. No EntryPoint, no bundler.
LSP15
LUKSO's Transaction Relay Service API standard. Defines the HTTP interface a dapp uses to talk to a relayer, so implementations are interchangeable. Reference implementation: github.com/lukso-network/tools-mock-relayer.