This repository contains code for an ERC-6900 compliant plugin where one or more EOA accounts, ERC-1271 compliant contracts, or P256 passkeys can be owners of the account. Its core features include:
- Enable ECDSA verification of signatures, standard EOA signature verification.
- Enable ERC-1271 signature verification, standard contract owner signature verification.
- Enable Webauthn verification, secp256r1 (P256) passkey signatures verification.
- Multiple equal owners who have the same root access to account.
- Implements EIP-712.
- By default, owner validation is added for most of the account's native functions,
including:
installPlugin
/uninstallPlugin
upgradeToAndCall
execute
/executeBatch
Caution
The code in this repository and its dependencies are still under audit. It is not yet recommended for production use.
After cloning the repo, run the tests using Forge, from Foundry
forge test
To run the static analysis tools, install the Python dependencies in requirements.txt
and the JavaScript dependencies using any npm-compatible
package manager:
pip install -r requirements.txt
bun install # or npm install
Then run the full suite of tests, including static analysis, formatting, and gas checking:
bun run test # or npm run test
Much of the code in this repository started from Alchemy's Multi Owner Plugin implementation. It was also influenced by Coinbase's Smart Wallet.