# 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](https://docs.iotex.io/blockchain/learn-iotex/core-concepts/accounts-and-identities) 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: 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.iotex.io/blockchain/build/web3-development/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.
