# Wallet

Most wallets have traditionally been Externally Owned Accounts (EOAs). These are controlled by a private key (which you can think of as a password for crypto). \
\
Smart contract wallets are an alternative. They’re built on smart contracts, as the name suggests, and allow for more functionality. Smart contract wallet accounts are controlled by their code, which can be written to implement arbitrary logic.&#x20;

Importantly, smart contract wallets can be compiled for exactly the same experience as EOA (e.g. only one signing key, non-upgradable), but not vice versa.

<table><thead><tr><th width="329">Externally Owned Accounts</th><th width="333">Smart Contract Accounts</th></tr></thead><tbody><tr><td>Controlled by a user Accessed via private keys Can make transactions and trigger contract accounts</td><td>Controlled by code that executes when triggered <strong>Have no private keys</strong> Can trigger other contract accounts</td></tr></tbody></table>

Thanks to the versatility of smart contracts, in addition to breaking user reliance on private keys, smart wallets offer advantageous new features and provide a user experience similar to traditional financial (TradFi) service apps.
