Skip to content

Latest commit

 

History

History
77 lines (56 loc) · 2.79 KB

README.md

File metadata and controls

77 lines (56 loc) · 2.79 KB

Account Abstraction Snap

consensys metamask pimlico thirdweb

Team

Problem

DApps want to add Account Abstraction support but the problem is that every dApp might end up using its own Account Factory leading to different counterfactual address for Smart Contract Wallet

Users will end up having different SCW for every dApp which leads to complex UX

Solution

The AA snap will basically offload all the work the frontend devs need to do to add AA support to their dApps, instead the Metamask Snap will use a single Account Factory (so single CounterFactual address) and the dApp developers need not change anything they can keep on request signing transactions as usual!

How to use?

No Contracts are to be deployed, the Smart Contract Wallets are deployed using Thirdweb Account Factory and Pimlico.

Clone the repo
git clone https://github.com/therealharpaljadeja/aa-snap.git
Run the project
yarn start

The above will open up the site at localhost 8081 port

Using the snap
  • Connect the wallet
  • Install the Snap
  • Switch network to Base Goerli or Linea Goerli
  • Create Account
  • I recommend using the Any Transaction UI, you will need to specify to address and calldata which is the simple calldata used in the Ethereum txs.
  • In order to quickly test by transferring tokens, transfer some tokens to the Keyring account address.
  • Replace the TOKEN_CONTRACT value inside chains object in /packages/site/pages/index.tsx file (make sure to do it under the right chain)
  • Then click the button and it will do a simple ERC20 transfer using UserOperations!
Future plans for the project
  • I wasn't able to intercept eth_sendTransaction if that can be done, its endgame!
  • I want to publish this snap (when snaps go live for everyone) and add more chains
  • I believe it will support mobile wallet as well, but I haven't tried if not I will add support for that!
Tech Stack
  • Metamask Snaps
  • Gatsby (for site)
  • ThirdWeb Account Factory and Token Contracts
  • Linea Testnet & Infura RPC endpoint (for account deployment and transactions)
  • Pimlico Verifying Paymaster (for tx sponsoring)