Account Abstraction
An account is an unique entity that can send transactions, users usually use wallets to manage their accounts.
Historically, in Ethereum, all accounts were Externally Owned Accounts (EOA) and were controlled by private keys. This is a simple and secure way to manage accounts, but it has limitations as the account logic is hardcoded in the protocol.
Account Abstraction (AA) is the concept behind abstracting parts of the account logic to allow for a more flexible account system. This replaces EOA with Account Contracts, which are smart contracts that implement the account logic. This opens up a lot of possibilities that can significantly improve the user experience when dealing with accounts.
On Starknet, Account Abstraction is natively supported, and all accounts are Account Contracts.
In this section we will how to implement an Account.