.png)
This article was originally published on X.
ERC-4337 has been in production for over two years. Over that time, we at ZeroDev have helped hundreds of teams go live with smart accounts, and we have witnessed firsthand the challenges they faced.
Of these challenges, two major ones stand out:
ERC-4337 is Expensive
AA transactions (aka "UserOps") are more expensive than regular transactions. UserOps are so expensive they are basically impractical on Ethereum L1, which is why practically all AA adoption has happened on L2s.
On L2s, UserOps are on average 2x as expensive as regular transactions. For DApps that sponsor a lot of UserOps, the gas overhead adds up very quickly. Our larger customers "lose" thousands and sometimes tens of thousands of dollars every month due to this overhead.
ERC-4337 is Slow
Today, more than 98% of all UserOps are sponsored through paymasters. However, the interactions between bundlers, paymasters, and users are very complex. In practice, a user needs to perform 4 API calls before they can send a sponsored transaction, sometimes causing the UserOp to miss a block.
On fast L2s like Arbitrum/Base, the latency difference between regular transactions and UserOps is very noticeable. A transaction that takes 3 seconds to execute on Base usually takes 5–6 seconds when sent as a UserOp.
The Root Cause of ERC-4337's Inefficiencies
ERC-4337 was designed with a specific goal in mind: to enable a decentralized & trustless mempool of UserOps.
To quote Vitalik: "You should be able to send an op into a public mempool, and if it pays enough fees, reliably expect it to get included. This should NOT depend on ANY centralized actors... This is the gold standard that the existing public mempool provides. And we absolutely need to provide the same guarantees for smart contract wallets..."
To achieve this trust minimization, ERC-4337 processes UserOps through a global contract known as the "EntryPoint," which performs fine-grained gas metering to ensure that different entities (wallets, bundlers, paymasters) can't grief each other.
This gas metering is at the source of ERC-4337's inefficiencies: it makes UserOps very large (higher L1 cost) and makes processing UserOps very computationally expensive (higher L2 cost).
The right question to ask is: "Can we gain efficiency by introducing some trust?"
Introducing UltraRelay -- Optimized Relay for Sponsored Transactions
ERC-4337 is a general-purpose AA protocol. In practice, however, most AA use cases today follow a very specific pattern: DApps sponsoring gas for embedded wallets.
UltraRelay is our attempt at building an optimized relay protocol for sponsored transactions. It achieves significant gas savings and lower latency compared to ERC-4337 by leveraging a few trust assumptions that already exist in today's sponsorship flow.
In this pattern, there is already a high degree of trust:
- Users' embedded wallets are created through the ZeroDev SDK.
- Both the bundlers (relayers) and the gas sponsors (paymasters) are often managed by the same entity (ZeroDev).
Given these two trust assumptions, UltraRelay implements two major optimizations:
1. Trusting the Account -- Merging Validation with Execution
One core idea of ERC-4337 is "validation-execution separation." This adds to the size of the UserOp (more L1 cost) and computational expense (more L2 cost).
Since we can trust the smart account (created via ZeroDev SDK), we can remove all gas limits and logic related to the validation phase, achieving lower L1 and L2 costs.
2. Trusting the Sponsor -- Merging Bundlers & Paymasters
In our use case, the relayer and the sponsor are the same entity. By merging the relayer (bundler) and the sponsor (paymaster), we can remove all gas limits and logic related to handling their interactions.
Crucially, the wallet no longer needs to talk to both the bundler and the paymaster; it simply talks to a single relayer. This reduces the number of RPC calls from 4 to 2, significantly reducing latency.
Building on ERC-7683 Intents
A custom relay risks losing interoperability. As a remedy, we decided to build UltraRelay on top of ERC-7683, an intent framework first proposed by Across and Uniswap.
- UltraRelay is an ERC-7683 filler, meaning any other ERC-7683 filler can technically relay transactions for smart accounts that support UltraRelay.
- Flexibility: Developers don't have to choose. By using ZeroDev, the smart account is compatible with both ERC-4337 and UltraRelay. Developers can use 4337 when they need strict interoperability but use UltraRelay when they need efficiency.
One More Thing... Cross-Chain Transactions
Since UltraRelay is an ERC-7683 filler, it also naturally supports cross-chain transactions. Users will be able to spend tokens across chains without manually bridging assets!
Benchmarks
A simple demo shows that UltraRelay boasts significant improvements compared to ERC-4337:
- Latency: Around 40% faster on Base.
- Gas Savings: Around 30% cheaper on Base.
In practice, this means that for our highest-usage customers, UltraRelay will save them anywhere from $1k to $10k per month.
The Role of 4337
ERC-4337 remains the gold standard for interoperable & trustless account abstraction. It will serve the same function that the Ethereum public mempool serves today—something you can rely on when nothing else works.
However, just like how a large part of Ethereum traffic flows through private mempools today, we think a sizable part of the smart account traffic will also flow through non-standard mempools such as UltraRelay, for use cases that prioritize factors like gas savings over trust minimization.
Getting Started with UltraRelay
UltraRelay works with all modular ERC-4337 accounts. By simply installing a plugin, your account will be able to send transactions through UltraRelay and start saving on gas and latency.
Today, UltraRelay is available in private beta. To get started:
- If you are already a ZeroDev user, ping us and we will get you set up.
- If you are not a ZeroDev user, what are you waiting for? Start building amazing Web3 experiences with the most powerful smart account platform today: https://docs.zerodev.app
