ERC-7717: Deterministic AA wallet

Abstract

We propose a non-custodial interface for service providers to provide AA accounts.

Motivation

Problem:
The createAccount function necessitates an owner address to establish an account, consequently preventing service providers from creating accounts on behalf of their users without knowledge of the users’ EOA addresses. To resolve this limitation, service providers employ temporary EOAs to deterministically generate an ERC-4337 account for their users, assigning the temporary EOA as the initial owner. This approach, however, introduces a security vulnerability, as the temporary EOAs’ private keys are managed by the service providers. Furthermore, the service providers assume responsibility for these private keys until such a time when users take the ownership.

Solution:
Set a separate contract as the owner when calling createAccount, and allow the user to claim ownership at a later date via a signature provided by the service provider.

This approach has its limitations, however. To prevent the predetermined address from being claimed by an external party, most AA wallet factory contracts include the owner address when calculating the predetermined address and make sure that the owner of the AA wallet becomes the given owner address. In order to satisfy this constraint, service providers opt to creating a new and random private key on their server and sending it later when the user requests it.