Overview

The ECDSA signer uses the Ownable Validator module. This module provides a mechanism to validate signatures generated by EOAs, ensuring that only authorized owners can execute actions on the smart account. The contract supports single or multiple owners – see here for more details regarding a multisig passkey setup.

How it works

The Ownable Validator stores a list of owners for a smart account using a mapping and tracks the number of owners. Owners are set during initialization, but can be added and removed later. The module implements two main validation functions. One for ERC-4337 userops and one for validating ERC-1271 signatures. Signatures are expected to include the owner’s address and the actual signature, which is verified using ECDSA (Ethereum’s standard signature scheme).

Usage

To create an account owned by a single EOA:

const rhinestoneAccount = await createRhinestoneAccount({
  owners: {
    type: 'ecdsa',
    accounts: [account],
  }
  rhinestoneApiKey,
})