# KintoWallet

## What is it?

The Kinto Wallet is a **non-custodial smart contract wallet** compatible with the [<mark style="color:purple;">Base Account</mark>](https://github.com/eth-infinitism/account-abstraction/blob/develop/contracts/core/BaseAccount.sol) from [<mark style="color:purple;">EIP-4337</mark>](https://www.erc4337.io/).

**The wallet has been designed to maximize user security and ease of use**. Our invisible wallet can be used without any browser extensions and has many layers of security to protect user assets from everyday hacks, dusting, and phishing scams.

The following chart shows the essential role the wallet plays in our architecture.

<figure><img src="/files/QJcC2JCvfLvyLKPt5qnj" alt=""><figcaption><p>Kinto Wallet Chart</p></figcaption></figure>

## Features

Here are the key features:

* **The native wallet is the only whitelisted implementation**. That means that to send transactions in the network, they must be sent through the Kinto Wallet.
* Furthermore, the **wallet must have a KYC signer** possessing a valid Kinto ID.
* The **first signer of the account is always secured by Passkeys** and stored in Turnkey, a [<mark style="color:purple;">user-controlled organization</mark>](https://docs.turnkey.com/integration-guides/sub-organizations-as-wallets#sub-organizations-as-end-user-controlled-wallets). All transactions are signed within an enclave, and private keys are never exposed to Turnkey or Kinto.&#x20;
* The wallet **currently supports up to three signers** and different signer policies ranging from one to all signers required to send a transaction. The user can set up hardware wallets as secondary signers.
* There is also an additional [<mark style="color:purple;">**custodial recovery key**</mark>](https://docs.turnkey.com/integration-guides/sub-organizations-as-wallets#sub-organizations-as-custodial-wallets) **per user stored in Turnkey**. If the user loses control of his wallet, the user can trigger a week-long recovery process to reset the signers.
* The **wallet can only interact with applications whitelisted by the owner**. Token approvals need to be explicitly approved by the owner as well. These two can be bundled in the same batch for a frictionless user experience.
* The **wallet can only receive ETH funds from whitelisted funder addresses**.
* The **user can set up a specific app signer for an application** so the user can interact with that application safely without having to sign every transaction with all the signers.

### Smart Contracts

Head to the following smart contracts to dive deeper into the implementation details:

* [<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.


---

# 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/kintowallet.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.
