# Smart Contract Wallets for Farcaster
Users who sign up for Farcaster today go through a flow like this:
1. The Merkle Farcaster app creates a new EOA for the user
2. The EOA is used to register an fid and an fname
3. The EOA signs a message which authorizes an EdDSA key pair as a signer
A few people have suggested using smart contract wallets with EIP-1271. The assumption is that users already have an EOA (Metamask, Rainbow etc) which can be re-used. The flow would look like this instead:
1. User deploys a contract from their EOA wallet
2. As part of the deploy, the contract registers an fid and an fname
3. The EOA signs a message which authorizes an EdDSA key pair as a signer
### Pros
The main benefits of this approach are:
1. Users who have an EOA don't need to back up a new seed phrase.
2. Social apps don't need to implement EOA functionality and can be more lightweight
3. The wallet can implement a more customizable recovery system.
### Cons
However, there are some significant drawbacks:
1. Signup costs increase by 3x - 5x due to contract deployment, which users are sensitive to.
2. Users without an EOA must set up a wallet first, which is a very bad user experience.
3. Authorizing an EdDSA key pair must go through the EIP-712 process which is still very opaque to the average user. Social EOA wallets can implement a much better EdDSA approval process similar to OAuth.
### Conclusion
Using smart contract wallets would make Farcaster more expensive, less accessible to non-Ethereum users and less user friendly when authorizing social apps. The downsides seem to significantly outweigh the upsides for now.