# Overview

expand.network provides Account abstraction capabilities.&#x20;

What is **Account Abstraction?**

Regular ways of keeping your digital stuff safe, like browser extensions, seed phrases, and wallets, can be a hassle. But the idea is to make using Web3 super easy so regular folks can use it without realizing they are.&#x20;

With the current Ethereum architecture, users sign transactions and pay gas fees from their externally owned accounts (EOAs). Account abstraction proposes a more flexible system where these responsibilities can be offloaded or changed to allow more varied transaction models.

Account Abstraction lets computer whizzes create special "smart accounts" or flexible wallets. It does this by changing who's in charge of saying "yes" to money moves. Instead of wallets doing it, smart accounts take over. This means these accounts can do more than just move money around. They can also do fancy things like running computer code, triggering events, and managing how things change on the internet money system. Cool, right?

The following functions are implemented considering the Account Abstraction capabilities:-&#x20;

| Name                | Type  | Description                                                              |
| ------------------- | ----- | ------------------------------------------------------------------------ |
| getsignaturemessage | Read  | Get the signature message, which needs to be signed.                     |
| getuserops          | Read  | Get the user operation, which can be signed and sent to the bundler.     |
| getpaymasterdata    | Read  | Get the paymaster data, that can be sent in the user operations.         |
| senduserops         | Write | Prepare the data, to send the bundle of user operations, to the bundler. |



Following is the diagram for account abstraction on-chain wallet creation:-

<figure><img src="https://680235803-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FaWFVt3vE2Ci7ngiL0xHe%2Fuploads%2FnSIHmPL3fYEznhvj3BEm%2Finit%20code.svg?alt=media&#x26;token=c7709f3c-8284-4638-b56c-505402087c10" alt=""><figcaption><p>Account Abstraction On-chain wallet creation</p></figcaption></figure>

Following is the diagram for executing call data operation via On-chain wallet contract:-

<figure><img src="https://680235803-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FaWFVt3vE2Ci7ngiL0xHe%2Fuploads%2Fy31PsL6eGJ51XcRixsUT%2FcallData.svg?alt=media&#x26;token=4589389f-ae22-48ed-a1c7-3a5b5c20ae27" alt=""><figcaption><p>Execute call data operation via On-chain wallet contract</p></figcaption></figure>

Following is the diagram for account abstraction gas payment via paymaster contract:-

<figure><img src="https://680235803-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FaWFVt3vE2Ci7ngiL0xHe%2Fuploads%2FYljdJvRvje7x3eynbGcF%2FCopy%20of%20expand_ERC-4337%20-%20paymaster.svg?alt=media&#x26;token=e854e94d-ac02-413e-90c0-1006c73ba7ab" alt=""><figcaption><p>Account Abstraction Gas Payment via Paymaster contract</p></figcaption></figure>
