Skip to content

alchemyplatform/modular-account

Repository files navigation

Modular Account

gh_ci_badge tg_badge

Alchemy's Modular Account is a maximally modular, upgradeable smart contract account that is compatible with ERC-4337 and ERC-6900.

Overview

This repository contains:

The account and plugins conform to these ERC versions:

Development

Naming convention

  • selector is used for all function selectors.
  • validation and validationFunction are used to represent validator.
  • associated and associatedFunction are used to represent validationFunction and hook.

Building and testing

# Build options
forge build
FOUNDRY_PROFILE=lite forge build
FOUNDRY_PROFILE=optimized-build forge build --sizes

# Lint
pnpm lint

# Test Options
forge test -vvv
FOUNDRY_PROFILE=lite forge test -vvv

Deployment

A deployment script can be found in the scripts/ folder

forge script script/Deploy.s.sol --rpc-url $RPC_URL --broadcast

Security and audits

Our audit reports from Spearbit and Quantstamp can be found in audits. Note that the reports may contain references to the term MSCA, which stands for modular smart contract account, as defined in the terms for ERC-6900. This is synonymous with modular account.

Bug bounty

Details of our bug bounty program can be found at https://hackerone.com/alchemyplatform.

License

The Modular Account libraries (all code inside the src/libraries directory) are licensed under the MIT License, also included in our repository in LICENSE-MIT.

The Modular Account interfaces and ERC-6900 interfaces (all code inside the src/interfaces directory) are licensed under the CC0 1.0 Universal License.

All other code for Modular Account is licensed under the GNU General Public License v3.0, also included in our repository in LICENSE-GPL.

Alchemy Insights, Inc., 548 Market St., PMB 49099, San Francisco, CA 94104; legal@alchemy.com