> For the complete documentation index, see [llms.txt](https://docs.iotex.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.iotex.io/blockchain/build/web3-development/account-abstraction.md).

# Account Abstraction

Account abstraction allows smart contracts to function similarly to externally owned accounts (EOAs), making them capable of initiating transactions directly. This enables more sophisticated use cases, such as multi-signature wallets, programmable account behaviors, and automated transaction mechanisms.

IoTeX [Account Abstraction](/blockchain/learn-iotex/core-concepts/accounts-and-identities.md) code is based on ERC-4337 release version 0.6.0.

## IoTeX approach to Account Abstraction

### **Enhanced Flexibility**

By allowing smart contracts to initiate transactions, IoTeX provides a flexible framework for developing decentralized applications (dApps). This enables functionalities such as recurring payments, batch processing, and multi-stage transactions to be executed automatically.

### **Programmable Behaviours**

Account abstraction on IoTeX enables developers to program custom logic directly into smart contracts, allowing for automated transaction rules, authorization checks, and interaction with other dApps. This significantly broadens the capabilities of applications built on IoTeX.

### **Security Benefits**

Account abstraction introduces additional security measures, such as:

* **Multi-Signature Accounts:** These allow for greater control over high-value transactions, requiring multiple signatures to authorize specific actions.
* **Role-Based Access Control:** Smart contracts can enforce role-based access rules, ensuring only authorized parties can initiate specific transactions.

### **Improved Usability**

Account abstraction simplifies the user experience, particularly for non-technical users. By enabling programmable smart contracts, IoTeX reduces the need for manual interventions, allowing for seamless interactions with the blockchain.

### **Interoperability**

IoTeX's account abstraction integrates seamlessly with other blockchain technologies, including Ethereum-based smart contracts and tokens. This compatibility allows for a broader range of applications and interactions across different blockchain ecosystems.

## **Use Cases**

### **Wallets**

Account abstraction enables advanced wallets with features like recurring payments, spending limits, and programmable transaction rules.

### **dApps**

Smart contracts can interact directly with other dApps, creating automated workflows and complex financial instruments, such as decentralized exchanges, lending platforms, and tokenized assets.

### **DePIN Infrastructure**

Account abstraction facilitates interactions between IoTeX's blockchain and Decentralized Physical Infrastructure Networks (DePIN), enhancing the experience for end users in this space.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.iotex.io/blockchain/build/web3-development/account-abstraction.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
