# 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="https://3204478300-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkwGpOqIolO3lPoyd0ZL8%2Fuploads%2FmP1xnLmHVjAIM68K3tMi%2Fimage.png?alt=media&#x26;token=43d49f51-146e-4157-bd9d-93043cd91bbc" 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>](https://docs.kinto.xyz/kinto-the-modular-exchange/building-on-kinto/smart-contract-reference/kinto-entrypoint)<mark style="color:purple;">:</mark> Checks that the wallet belongs to a whitelisted wallet factory.
* [<mark style="color:purple;">Sponsor Paymaster</mark>](https://docs.kinto.xyz/kinto-the-modular-exchange/building-on-kinto/smart-contract-reference/sponsorpaymaster)<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>](https://docs.kinto.xyz/kinto-the-modular-exchange/building-on-kinto/smart-contract-reference/kintowalletfactory)<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>](https://docs.kinto.xyz/kinto-the-modular-exchange/building-on-kinto/smart-contract-reference/kinto-wallet)<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>](https://docs.kinto.xyz/kinto-the-modular-exchange/building-on-kinto/smart-contract-reference/kintowalletfactory)<mark style="color:purple;">:</mark> The factory to create and manage Kinto Wallets. It also facilitates contract deployments.
* [<mark style="color:purple;">KintoWallet</mark>](https://docs.kinto.xyz/kinto-the-modular-exchange/building-on-kinto/smart-contract-reference/kinto-wallet)<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>](https://docs.kinto.xyz/kinto-the-modular-exchange/building-on-kinto/smart-contract-reference/kinto-entrypoint)<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>](https://docs.kinto.xyz/kinto-the-modular-exchange/building-on-kinto/smart-contract-reference/sponsorpaymaster)<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.
