Skip to content

therealharpaljadeja/aa-snap

Repository files navigation

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)

About

Account Abstraction Metamask Snap

Resources

License

Apache-2.0, MIT-0 licenses found

Licenses found

Apache-2.0
LICENSE.APACHE2
MIT-0
LICENSE.MIT0

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published