ERC-4337: Account Abstraction
ERC-4337 introduces account abstraction to Ethereum without changing the protocol. Users submit UserOperation objects to a Bundler, which packages them into a single transaction sent to a global EntryPoint contract. Smart-contract wallets implement validateUserOp to authorize their own operations.
Components
| Component | Role |
|---|---|
UserOperation | Pseudo-transaction signed by the smart-account owner |
| Bundler | Off-chain actor; collects UserOps, sends to EntryPoint |
| EntryPoint contract | Singleton on-chain validator/dispatcher |
| Smart Account | Contract implementing validateUserOp |
| Paymaster | Optional contract that sponsors gas |
Neo Equivalent: Native From Day One
Neo accounts ARE smart contracts by default. Standard wallet = single-sig verification script. Multi-sig = N-of-M CHECKMULTISIG (no contract deploy needed). Programmable account = NEP-30 verify method on a contract — the protocol invokes it during transaction validation. No bundler. No EntryPoint. No paymaster ceremony. No parallel mempool.
Live on Neo TestNet
Both implementations are deployed on Neo N3 TestNet (network magic 894710606).
| Implementation | Contract Hash | Deploy Tx |
|---|---|---|
Solidity (neo-solc) | 0xaa11f9ef784be1ccad7b0f7b23c32508c5705a56 | (reused — see 0xaa11f9ef784be1ccad7b0f7b23c32508c5705a56) |
Neo C# (nccs) | 0xe26da2300e0073c98f2292becda67170cbc6209f | (reused — see 0xe26da2300e0073c98f2292becda67170cbc6209f) |
Cross-implementation invocations match on getNonce. Source pairs under docs/standards-mirror/deployments/erc-4337/.
