Skip to main content

ERC4337 vs. the LSP Account Stack

ERC-4337 bolts account abstraction onto Ethereum without protocol changes: a parallel UserOperation mempool, an EntryPoint singleton, bundlers, and paymaster contracts. LUKSO doesn't need the workaround β€” the LSP account stack puts the account contract directly on the normal call path, with permissions and sponsored execution built in as composed standards from day one.

Structural comparison​

FeatureERC-4337LSP account stack
Transaction flowuser β†’ UserOp pool β†’ bundler β†’ EntryPoint β†’ accountuser (controller) β†’ account contract, directly
Permission layervalidator module β€” different per account implementationLSP6 Key Manager β€” one standardized vocabulary everywhere
Gas sponsorshipseparate paymaster contractLSP25 executeRelayCall, on the Key Manager the account already has
Signature verificationvalidateUserOp on the accountLSP20 lsp20VerifyCall, inline
Explorer / trace experienceextra hops: handleOps β†’ EntryPoint β†’ accounta direct call into the account contract
Permission vocabularynon-standard β€” every validator module defines its ownuniform LSP6 permission bitfield + allowed calls + allowed data keys

No bundler, no EntryPoint, no extra hop​

ERC-4337 exists because Ethereum's transaction model is EOA-anchored, and smart-account behavior has to be layered on top without a protocol change. That's a reasonable constraint for Ethereum mainnet β€” but LUKSO isn't constrained by it. A Universal Profile is LSP0, the account contract, sitting directly on the normal call path. There's no UserOperation envelope to construct, no bundler to trust, no EntryPoint singleton to route through. msg.sender at every downstream contract is the account itself.

One permission vocabulary instead of one per validator​

ERC-4337's permission model lives in whatever validator module a given smart-account implementation chooses to ship β€” pluggable, but non-standard: a permission set built for one 4337 wallet doesn't necessarily translate to another. LSP6 is a single, standardized permission bitfield with allowed calls, allowed standards, and allowed ERC725Y data keys, understood the same way by every Universal Profile, every LUKSO wallet, and every tool built against the standard.

ERC-4337 sponsors gas through a separate paymaster contract that the EntryPoint calls out to. On LUKSO, sponsored execution is a function on the Key Manager that every Universal Profile already has β€” executeRelayCall via LSP25 β€” with nonce channels that support parallel signed-payload streams, no separate sponsorship contract to deploy or trust.

When the LSP stack wins

Any product where the account contract itself should be the call entry point β€” clean traces, one standardized permission vocabulary, sponsored execution without extra infrastructure β€” is better served by the native LSP stack than by layering ERC-4337 on top of an EOA-anchored chain.

Related reading: ERC-4337's bundler tax Β· Gasless onboarding without a paymaster Β· Wallet permission scoping Β· ERC-4337 vs EIP-7702