# ERC 4337

Account abstraction is a new approach to managing crypto assets that has the potential to revolutionize the way users interact with the Ethereum blockchain, allowing users to use smart contracts as their primary accounts instead of externally owned accounts (EOAs).

## Externally Owned Accounts ( EOA )

EOAs are the traditional type of account used on Ethereum. They are controlled by private keys, which must be kept secret in order to prevent unauthorized access to the account's funds. However, EOAs have a number of limitations,including:

* They are vulnerable to theft and loss of private keys.
* They are not very flexible or programmable.
* They can be expensive to use, due to the need to pay gas fees.

## Smart Contract wallet

Smart contracts, on the other hand, are much more powerful and flexible. They can be programmed to implement a wide variety of features, such as multi-signature authorization, social recovery, and automatic gas fee payment.

[ERC 4337 (Account Abstraction via Entry Point Contract specification)](https://eips.ethereum.org/EIPS/eip-4337) uses an entry point contract to achieve account abstraction without changing the consensus layer protocol of Ethereum.

Instead of modifying the consensus layer protocol of Ethereum, ERC-4337 introduces a higher-level system called the UserOperation mempool. Users send `UserOperation` objects to this mempool, which package up their intent along with signatures and other data for verification. Miners or bundlers can then package up a set of UserOperation objects into a single "bundle transaction", which is then included in a block.

<figure><img src="/files/GjK8qxFOccKZNXzmKXyM" alt=""><figcaption><p><a href="https://medium.com/infinitism/erc-4337-account-abstraction-without-ethereum-protocol-changes-d75c9d94dc4a">Source</a></p></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.epochprotocol.xyz/account-abstraction/erc-4337.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
