/zksync-aa-custom

Custom Account Abstraction on zkSync Era

Primary LanguageSolidityMIT LicenseMIT

Custom AA on zkSync

Purpose

Experiment the support for Account abstraction on zkSync (v2, Era).

Initial:

  1. Create a factory contract for deploying AAccounts
  2. Create a MultiSig 2:2 owned by the 2 AAccount owners
  3. Use the AAMultiSig contract to deploy another Account
  4. Apply the UUPS proxy pattern to the MultiSig contract

Features

Installation and compilation

You need Node.js and Yarn.

Install all dependencies with pnpm install or yarn.

Compile all contracts with yarn hardhat compile

Deployment and usage

To run the scripts to deploy and execute the contracts, use the zksync-deploy command:

  • yarn hardhat deploy-zksync --script deploy-factory.ts: deploys the factory contract
  • yarn hardhat deploy-zksync --script deploy-multisig.ts: deploys a multisig wallet and executes a transaction.

Account Abstraction - zkSync Tutorial

Initial Fork

Refer to matter-labs / custom-aa-tutorial

Code for the "Account abstraction" tutorial from the zkSync v2 documentation.

You can find a full step-by-step guide to build this project in this article.

Support

Check out the common errors section in the tutorial, open an issue, or contact us on Discord.