What is account abstraction (ERC-4337)?

Written by , Product docsLast updated

Account abstraction (ERC-4337) is the Ethereum standard that replaces externally-owned accounts (EOAs) with programmable smart-contract wallets.

In a traditional EOA model, the user's private key directly controls the address — same key signs every transaction, and there's no way to add a guardian, rotate the key without losing assets, or have someone else pay gas. AA changes this by routing every operation through a smart contract that the user owns. The contract decides what counts as a valid signature.

Five new capabilities AA enables:

  • Gas sponsorship — a paymaster pays gas on behalf of the user (dApp-funded onboarding, ERC-20-as-gas)
  • Batched transactions — multiple calls in one user signature, atomically
  • Social recovery — a set of guardians can rotate the signing key without seed phrase
  • Custom signature schemes — passkeys (Touch ID/Face ID), multi-sig, MPC, FROST
  • Session keys — time-limited or scope-limited keys for specific operations

Alchemy cites nearly 20 million ERC-4337 native smart accounts deployed in 2024, while third-party ecosystem reporting has cited 40 million-plus smart-account deployments across Ethereum and major L2s. Treat these as ecosystem snapshots rather than Hive runtime facts.


Why agents care

AA wallets are a common primitive for AI agents because they enable safer delegation. Instead of trusting an agent with the user's full seed phrase, the user grants the agent a session key with a tight scope (e.g., "swap up to $1000 USDC into stablecoin pairs over the next 24 hours, on Base only"). When the wallet and policy are implemented correctly, the session key can be constrained so it cannot exceed the approved scope, cannot perform privileged wallet actions, and expires automatically.

This is why account-abstraction infrastructure commonly appears in agent-wallet designs. Hive's MCP tool surface includes wallet and account-abstraction queries via Moralis + Alchemy upstreams — get_userop_history, get_smart_wallet_owners, etc.