Developers
August 12, 2026
Part 1 of 3 in ERC-4337: A Retrospective written by Taek Lee.
ERC-4337 is Final. I spent years building around it, and production validated something narrower than the consumer-wallet thesis I started with: a shared rail for sponsored and embedded account flows.
Final means the normative standard has converged enough to be judged against production rather than defended as a promise. That record shows little evidence of mass migration from established EOAs into standalone smart-account addresses. (EIP-4337)This builder’s retrospective assumes familiarity with EOAs, UserOperations, bundlers, paymasters, session keys, and smart accounts.
What Usage Revealed
No public dataset cleanly measures how many people consider a smart account their primary wallet. Onchain data can count UserOperations and account addresses, but it cannot tell us whether two addresses belong to one person, whether an account was used once or retained, or whether its owner consciously chose a smart-account architecture.The mid-2026 snapshot gives us four signals:
These figures have a selection effect. Applications often adopt ERC-4337 precisely because they want to sponsor gas, so the sponsored share is not a survey proving that every wallet user values free transactions above every other feature. In its largest observable consumer deployments, ERC-4337 specialized primarily into a sponsorship rail.In practice, users felt the disappearance of gas most directly. The complexity moved into the infrastructure and commercial relationships behind that experience.UltraRelay: When Billing Absorbed the PaymasterUltraRelay was another extreme case of complexity relocating rather than disappearing. It removed the paymaster and sponsorship-specific round trips from the critical path, then submitted an ordinary bundle transaction from a funded operator account.ZeroDev’s offchain billing relationship absorbed the missing complexity: eligibility, limits, collections, abuse handling, payment guarantees, and credit risk.
What Survived the Original Thesis
For me, this is personal. At ZeroDev, I led the design and development of Kernel from v1 through v4 and worked on the paymasters, bundling infrastructure, and SDKs around it. That work rested on a product forecast that smart accounts would become the default inside consumer wallets. That did not happen on our timeline.That forecast produced several distinct outcomes:
The capabilities also matured on different timelines:
The mistake was treating those capabilities as one market, one user need, and one adoption timeline.Programmability became a product only when it addressed a pain someone already felt.That is why EIP-7702 matters. It begins attaching smart-account behavior to existing EOA addresses without asking users to relocate first. (EIP-7702)
Why a Shared Layer Still Mattered
Programmable wallets existed long before ERC-4337. So did multisigs, meta-transactions, custom relayers, sponsored flows, and permission systems. The problem was that every implementation carried its own wallet contract, transaction envelope, relayer network, gas model, signing flow, deployment assumptions, and failure modes.Apps would not integrate a different transaction stack for every wallet, infrastructure providers could not economically support every private envelope, and explorers or auditors could not accumulate shared knowledge if every design created a new interpretation surface.ERC-2771 had already exposed the coordination problem. Meta-transactions could preserve a user-facing sender, but recipient contracts had to recognize trusted forwarders and recover the actor through _msgSender()-style logic instead of ordinary msg.sender. The technology worked; the integration boundary remained expensive.ERC-4337 standardized a smaller set of shared responsibilities:
Account execution interfaces, permission semantics, module composition, recovery UX, and the way wallets explain authority remained outside the standard. One shared infrastructure boundary was enough to turn isolated experimentation into cumulative evidence.The second benefit was timing. Native account abstraction would have required protocol design, client implementations, fork scheduling, and ecosystem adoption before anyone knew which product assumptions were right. ERC-4337 inverted that sequence: builders could ship first, production could reveal what survived, and protocol design could learn from those results.The cost was a heavy stack: an alternate mempool model, a singleton EntryPoint, bundlers, simulation rules, staking and reputation assumptions, paymaster choreography, and multiple gas domains.For the sponsorship-heavy use case that dominated, the full stack can look overbuilt. As a protocol sandbox, much of that weight was intentional.That complexity bought the right to be wrong in public without putting the base layer at risk. The practical alternatives were continued fragmentation or waiting years for protocol-level account abstraction while the product questions remained unanswered.
What Convergence Looked Like
The EntryPoint’s version history shows production lessons being written back into the shared layer:
The version history is dominated by indexing, gas reservation, deployment races, error attribution, concurrency, and awkward interactions between independently operated components. Those production concerns are stronger evidence of a working standard than another headline feature.Each version moved another class of coordination failure out of private implementations and into the shared layer.Final status means the normative layer is stable enough that the ecosystem no longer has to design around the assumption of another structural revision. Accounts, wallets, bundlers, and products will continue to evolve above it.
The Installed-Base Problem
Users did not necessarily choose the EOA’s limited authorization model over programmable validation. They stayed where their assets, approvals, history, counterparties, and application assumptions already lived.EIP-7702 matters because it shows that smart-account behavior can reach existing addresses without requiring users to relocate first. A complete transition would need to go further: preserve continuity, replace the root authorization, and allow the old credential to be removed permanently.Before getting there, Part 2 turns inward to Kernel. Four versions forced us to distinguish the capabilities that became products from those that remained serious, useful, and early. Part 3 then returns to the installed base and asks what an in-place path to native account abstraction should preserve.

How to Design Cross-Chain Wallet Funding Without Manual Bridging
Learn how to design a cross-chain wallet deposit flow using one recognizable address, supported token routing, clear status updates, and recovery workflows.

How Robinhood Chain Apps Can Simplify Wallet Funding With ZeroDev Smart Routing Address
Robinhood Chain apps can simplify wallet funding with ZeroDev Smart Routing Address, giving users one deposit address that routes supported funds into the right smart account so they can fund once and keep moving.

How Smart Accounts Give Onchain AI Agents Safe Permissions
Smart accounts help onchain AI agents act safely by replacing unrestricted private-key access with scoped, revocable permissions, including session keys, spend limits, approved contracts, gas policies, and audit trails.
Go from wallet friction to product velocity
If your team is blocked on account UX, gas, or chain complexity, ZeroDev gives you a practical place to start.
