Sending transactions on Ethereum can be complex for the average non-crypto user. ETH addresses, wallets, gas, etc are all huge turnoffs and in order to bring the next billion users to crypto, we need to abstract all of this away.
Introducing SafeMail, a decentralized one-click onboarding experience for newcomers to web3!
Instead of sending tokens to eth addresses and having to deal with the complexities of crypto, SafeMail enables simple transfers to email addresses via Safe and Lit Protocol. A user can send crypto to a given email address (email@example.com), and if the recipient logs into SafeMail, they'll have access to the funds they were sent.
Pitch Deck: https://docs.google.com/presentation/d/17YAL1C8KY2nwdeTNYX-rwPnmyyb1I9ZFa20QO1aXZCU/edit?usp=sharing
Youtube Video Demo: https://youtu.be/J-hEB-qYrqA
First we used Safe to create AA wallets on Polygon, Gnosis, Goerli and Celo. We'd create a safe for each user on SafeMail, corresponding to their email address, allowing us to compute their safe address via a hash of their email address in the salt. Without using Create2 and Account Abstraction, it wouldn't be able to compute a person's eth address just given their email.
We then used Lit Protocol to both sign in with google and handle the authentication of our user, but also to run lit actions in which we passed the user's OAuth tokens to then verify whether they owned an email. Lit Actions provided us with a decentralized and immutable environment to verify whether our users truly own their email addresses or not. We created a Lit Action that: verifies a Google OAuth token; checks which email the oauth token corresponds to using google api; checks if the email returned corresponds to the same email that was used to calculate the safe address and finally signs a given transaction. This makes sure that only a user with a valid OAuth token can get signatures for transactions of their email's safe.
We also used Gelato's 1Balance API to make a Paymaster that would pay for our safe deployment and interaction costs, across all the chains we deployed on, Goerli, Polygon, Celo and Gnosis. This made sure that users wouldn't need to buy gas tokens like ETH when they joined our website, but instead just need to focus on the ERC20 that they want to send.