# Account Abstraction

Users engage with Ethereum through externally owned accounts (EOAs), which are essential for initiating transactions or executing smart contracts. This method restricts the ways users can interact with the platform, complicating processes such as batch transactions and necessitating a constant ETH balance for gas fees.

Account abstraction proposes a solution to these issues by enabling more flexible account programming for enhanced security and user experiences. This could involve modifying EOAs to be governed by smart contracts, or allowing smart contracts to start transactions themselves. Implementing these changes requires modifications to the Ethereum protocol. Another approach is to introduce a secondary transaction system that operates alongside the current protocol. Whichever method is chosen, the goal is to facilitate access to Ethereum through smart contract wallets, either as a direct feature of the existing protocol or through an additional transaction network.

Smart contract wallets offer users numerous advantages, including:

* Customizable security measures
* Account recovery options in case of lost keys
* The ability to spread account security among trusted devices or people
* Options for paying gas fees for others or having them paid on your behalf
* Consolidating transactions into a single action (for example, combining approval and execution of a swap)
* Expanded possibilities for dapps and wallet developers to create innovative user experiences.


---

# 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://prom.gitbook.io/prom/start-building/account-abstraction.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.
