What is ERC4337 on Solana?


ERC-4337 is a standard designed to bring Account Abstraction (AA) to Ethereum. Under Ethereum’s existing account model, user accounts (externally owned accounts, or EOAs) and contract accounts (CAs) are strictly separated, and a CA cannot issue transactions on its own. This means that whenever developers want to implement advanced features such as multisig or social recovery they typically have to rely on an EOA to trigger those contract functions and pay transaction fees, which can lead to a less streamlined user experience.

To address this, ERC-4337 introduces a separate mempool and “bundler” (block producer) mechanism that does not require major protocol-layer changes. Through this system, contract accounts (CAs) can directly initiate and sign transactions. In doing so, developers gain the flexibility to implement features like social recovery, fee sponsorship, session keys, and other custom security models, ultimately making Account Abstraction a reality on Ethereum.

How Has Solana Already Solved the Same Problem?

In contrast to Ethereum’s approach, Solana was designed from the outset to support account abstraction at a protocol level. Below are the main reasons why Solana inherently addresses many of the issues that ERC-4337 seeks to solve:

All Accounts as Flexible Data Storage

Solana treats every account as a flexible “storage bucket,” capable of holding arbitrary data. In other words, an account on Solana is not limited to storing a simple balance or nonce: 

  • Data Persistence: Each account can store state and metadata for various use cases, similar to how a file in a filesystem can contain different types of content. 
  • Ownership: An account on Solana specifies which program (smart contract) owns it. That ownership determines how the account’s stored data is controlled, updated, or validated. 

This design naturally allows for much broader state management compared to traditional EOAs on Ethereum, which are restricted to storing only balances and nonces.

Programs as Executable Accounts

Solana smart contracts are called programs, and each program is also an account, specifically, an executable account. By contrast, a non-executable (data) account is used to store actual state (e.g., user balances, configuration data, or other custom info): 

  • Program Account: Contains compiled code that the Solana runtime can execute. 
  • Data Account: Holds data and assets that a program manages. 

Because programs exist as dedicated accounts, developers can easily separate a contract’s logic from the storage of user or application data. In many ways, this is more modular than Ethereum’s approach, where code and state reside within the same contract account.

程序派生地址(PDA)——Solana 原生账户抽象的核心

与 ERC-4337 的"合约账户作为交易发起者"最接近的对应物是 Solana 的程序派生地址(Program Derived Address,PDA)功能。PDA 是由 Solana 程序本身生成的地址,而不是从私钥派生的地址。这具有以下关键意义: 

无需私钥

  • PDA 可以有效地"签名"链上指令而无需拥有私钥。Solana 运行时识别特定程序被授权代表该地址执行操作。 

自定义规则和逻辑 

  • 由于 PDA 与特定程序绑定,开发者可以直接在链上逻辑中嵌入规则,例如支出限额、白名单/黑名单、社交恢复机制或类似会话的权限。 

自执行合约 

  • 在以太坊上,账户抽象通常需要外部调用(来自 EOA 或通过 ERC-4337 打包器)才能让合约执行任何操作。而在 Solana 上,控制 PDA 的程序可以在 Solana 运行时的约束下自主管理状态转换。 

从代表用户支付交易费用,到实现高级多签流程或 DeFi 协议中的自动再平衡,PDA 提供了一系列 Solana 原生的可能性。

Built-In Support for Complex Interactions (CPI)

Solana also supports Cross-Program Invocation (CPI), which allows programs, and by extension their PDAs, to interact directly with one another. This is essential for composability: 

  • A program can call another program using CPI, while retaining control over its PDAs and adhering to the Solana runtime’s security model. 
  • Developers do not need external bundlers or specialized “entry points” to chain multiple contract calls. Instead, they orchestrate everything via straightforward CPI calls within a single transaction flow. 

For account abstraction, CPI means seamless composability among different programs and PDAs precisely the kind of flexibility ERC-4337 is designed to enable on Ethereum.

A Comparison with ERC-4337

When viewed side by side, Solana’s account model and Ethereum’s ERC-4337 solution both aim to provide more dynamic, programmable user accounts. However: 

  • Ethereum (ERC-4337): Relies on a bundler and a specialized mempool to let contract accounts originate transactions without deep protocol changes. 
  • Solana: Naturally supports an environment where any account can store custom data, and where programs can own PDAs that operate without private keys. 
CategoryEthereum (ERC-4337)Solana
ArchitectureUses bundlers and a specialized mempoolNatively supported via PDAs at the protocol level
Transaction OriginationContract accounts can’t initiate transactions directly - rely on bundlersPrograms can initiate transactions directly through PDAs
State StorageEOAs can only store balances and noncesAll accounts can store arbitrary custom data
Logic – Data StructureLogic and state are combined in a single contract accountLogic (program) and data (account) are separated
FlexibilityExtended via a Layer-2-like structureBuilt-in as a native feature of the core design

两种方法都致力于提升用户体验并扩大链上应用的范围。但 Solana 的设计是原生的,无需额外的标准或提案即可实现类似功能。

EVM TO SVM

Start building on Solana

Node storing all data and participating in consensus

  • Ethereum: Archive Node
  • Solana: [n/a]

Node storing some data and participating in consensus

  • Ethereum: Full Node
  • Solana: Consensus Node

Node storing some data and not participating in consensus

  • Ethereum: Light Node
  • Solana: RPC Node

管理者

©️ 2026 Solana 基金会版权所有
取得联系
What is ERC4337 on Solana? | Solana