> 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 dynamically by asking a question.

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

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
