# Farcaster Wallets Users sign up for Farcaster by registering an fid using an Ethereum wallet. Apps can be authorized to act on the user's behalf by providing them with a signature from this wallet. ## Apps & Wallets The default line of thinking is that users should use general-purpose wallets to register, and apps can get signatures via WalletConnect. This is convenient for users who have a wallet and for app devs who don't want to deal with the headache of building a wallet. But in practice, the user experience is bad enough to hinder Farcaster’s adoption. In particular: 1. Users without a wallet must set one up first before using Farcaster. 2. Signing messages is confusing and intimidating to the average user. 3. Wallet Connect does not always reliably establish connections. 4. Users can accidentally delete history by issuing too many Farcaster Signers from a wallet. 5. Users can accidentally delete history by transferring the fid without backing up messages. People are working on (2) and (3), but the rate of progress is unlikely to lead to breakthroughs soon. Other problems like (4) and (5) are addressable by wallets, but wallets are unlikely to be motivated unless Farcaster becomes very popular. The onboarding problem (1) is intrinsic to the nature of mobile applications and may not have a solution. ## Apps + Wallets Another line of thinking that [Warpcast](https://warpcast.com/) follows today is to have the app create a wallet for the user. The app implements a small set of wallet features needed to sign up, authorize farcaster apps and transfer identities safely. Farcaster wallets solve (1) quite neatly and (2), (4), and (5) can be addressed with custom UI. Problem (3) becomes irrelevant since the wallet contains the app. The downsides are that users with wallets are annoyed at having to set up another one, and Farcaster apps get more bloated. Users also need to import their seed phrase into every Farcaster app, which increases the probability of compromise. ## A Hybrid Approach Farcaster apps may need to rely on a hybrid approach where they can operate in **wallet mode** or **light mode**. When the user signs up, apps go into wallet mode and offer to set up a wallet for the best UX. Users can opt out, but apps will probably encourage this to maximize signups. Signing in and out of a wallet mode app will require a seed phrase. It will be important for Farcaster apps to help users with a recovery system, using either the one in the contracts or taking advantage of 4337 wallets in the future. Light mode is engaged when a user tries to log into an application but already has their identity in another wallet. The user signs a message from that wallet, which authorizes the light mode client to post on their behalf. It’s possible to build apps that are light mode only — users will need to set up a wallet using a wallet mode Farcaster app or a regular Ethereum wallet app. ## FAQ **Why should I use a wallet mode app if I already have a wallet?** Wallet mode offers a much better experience on Farcaster today by approving light apps, managing their content and transferring identities safely. **What happens if I lose my wallet mode app’s seed phrase?** Farcaster offers a recovery mode wher eyou can nominate another wallet to act as a recovery agent. If you configure this during setup you'll be able to recover your Farcaster identity with that wallet at any time. **What happens if someone sends non-Farcaster assets to the Farcaster wallet?** Farcaster wallets may support regular wallet functionality in the future. For now, you can export your seed phrase into another wallet app to manage assets. **Will Farcaster apps support deploying AA wallets?** Farcaster wallet mode apps should support creating 4337 wallets. Some users may prefer to use regular wallets due to the increased costs associated with AA contract deployments. **Will Farcaster apps support storing identities in AA wallets?** Farcaster Hubs can easily be upgraded to support this, but this has all the same user experience challenges that face regular wallets.