Leverage Account Abstraction to invest & borrow GHO with credit card payment only.
The goal of this dApp is to improve UX of AAVE for non-crypto users (users without crypto wallet like MetaMask).
First, users login using their email. Based on the email the app will generate a new Smart Contract Account (SCA) address for them.
Users are asked to deposit a crypto asset (LINK, ETH,...) to this fresh SCA address using a fiat-onramp service.
Once the SCA address is funded, the bytecode of SCA account itself can be deployed. The asset that was deposited is used as a collateral to borrow GHO.
All this can be done with a very simple UX. Account Abstraction supports. transaction batching, thus all of the following can be done in a single click:
Also the user doesn't need MetaMask or any ETH. He can sign transactions using his Email-generated account and the (e.g. first) transaction can be sponsored by a Paymaster.
Email login/wallet - Magic Account Abstraction SDK - Alchemy Paymaster - Alchemy Smart contract interaction - Viem, Wagmi, Alchemy Frontend/Bakcend - React, Tailwind CSS, Next.js Fiat onramp service - this is just a mock of Ramp. I can't use any "real" fiat onramp in a testnet environment.
All the tech was quite nicely fitting together because Alchemy is using Viem in the background. However, I was struggling to execute some of the transactions/userOperations. There seems to be an issue with the gas estimation process by Alchemy's bundler (e.g. batch operations, DEX swap) thus I had to limit the scope of the project. (I wanted to perform further operation with the borrowed GHO. e.g. leverage the collateral).