# Kinto Account Abstraction

Kinto only allows transactions from account abstraction-powered wallets. **Externally owned accounts (EOA) are disabled for greater security and to provide a uniform,** delightful user experience.

## Why?

To have a great user experience, Kinto has adopted the Account Abstraction [<mark style="color:purple;">EIP</mark>](https://eips.ethereum.org/EIPS/eip-4337)[<mark style="color:purple;">-4337</mark>](https://eips.ethereum.org/EIPS/eip-4337) standard with a few tweaks. As a result, users will receive the following benefits:

* Have a **non-custodial smart wallet** that can be used like any web2 application
* **Don't have to worry about seed phrases** or browser extensions
* **Don't have to pay for transaction fees** and worry about gas settings
* **Safe and easy recovery procedures** in case of loss

## For Developers

Kinto's account abstraction allows developers to focus on building their financial applications without worrying about the underlying infrastructure.&#x20;

<figure><img src="/files/G8XPXrH65vNVC0LRf08e" alt=""><figcaption><p>EIP-4337 Architecture</p></figcaption></figure>

To facilitate the development process and increase the security of our implementation, we have made a few changes:

* [<mark style="color:purple;">Entry Point</mark>](/kinto-the-modular-exchange/building-on-kinto/smart-contract-reference/kinto-entrypoint.md)<mark style="color:purple;">:</mark> Checks that the wallet belongs to a whitelisted wallet factory.
* [<mark style="color:purple;">Sponsor Paymaster</mark>](/kinto-the-modular-exchange/building-on-kinto/smart-contract-reference/sponsorpaymaster.md)<mark style="color:purple;">:</mark> In Kinto, **end contracts must pay for user transactions and charge the users fees on deposit/withdraw/interest**. We'll open a developer dashboard to help developers top up their contracts and ensure an interrupted service.
* [<mark style="color:purple;">Wallet Factory</mark>](/kinto-the-modular-exchange/building-on-kinto/smart-contract-reference/kintowalletfactory.md)<mark style="color:purple;">:</mark> **Only users who have completed the KYC process can create valid AA wallets in Kinto**.
* [<mark style="color:purple;">Wallet</mark>](/kinto-the-modular-exchange/building-on-kinto/smart-contract-reference/kinto-wallet.md)<mark style="color:purple;">:</mark> User Wallets have a minimum of one cloud non-custodial signer (Turnkey) and a maximum of three signers. Users can set up an authentication policy that fits their situation. In an emergency, a cloud recovery signer (Turnkey) can start an emergency process that needs to be ratified by the user.

## Smart Contracts

* [<mark style="color:purple;">KintoWalletFactory</mark>](/kinto-the-modular-exchange/building-on-kinto/smart-contract-reference/kintowalletfactory.md)<mark style="color:purple;">:</mark> The factory to create and manage Kinto Wallets. It also facilitates contract deployments.
* [<mark style="color:purple;">KintoWallet</mark>](/kinto-the-modular-exchange/building-on-kinto/smart-contract-reference/kinto-wallet.md)<mark style="color:purple;">:</mark>  The Kinto smart-contract wallet. The code contains the code that verifies the execution, recovery, and management of the wallet.
* [<mark style="color:purple;">EntryPoint</mark>](/kinto-the-modular-exchange/building-on-kinto/smart-contract-reference/kinto-entrypoint.md)<mark style="color:purple;">:</mark> Based on the EntryPoint of the original EIP-4337, the Kinto EntryPoint validates that a valid factory created the wallet.
* [<mark style="color:purple;">SponsorPaymaster</mark>](/kinto-the-modular-exchange/building-on-kinto/smart-contract-reference/sponsorpaymaster.md)<mark style="color:purple;">:</mark>  In Kinto, end contracts pay for the gas of its users. The sponsor paymaster handles the balance/funding of all contracts in the network.


---

# 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.kinto.xyz/kinto-the-modular-exchange/building-on-kinto/rollup-features/kinto-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.
