Smart Wallet Creation

DApp developers can allow their users to sign up and login using their email address, social logins (e.g., Twitter, Apple, Discord), or any authentication service compatible with OpenID. Once a user logs in, a cryptographic key pair (comprising of a public key and a private key) is created for the user. To ensure security, the key pair generation is carried out locally on the user’s device. Subsequently, this key pair is utilized to construct a smart contract wallet, with the private key serving as the owner. Essentially, the account owner uses the private key from the embedded wallet to govern a more advanced smart wallet.

The resultant wallet can be accessed through the same standard interface as native wallets, offering the flexibility to incorporate additional features like gas sponsorship, session keys, and batched transactions.

For security reasons, the private key of the smart contract wallet is securely split into three shares using Shamir's Secret Sharing algorithm.

  1. Share A is stored securely on the user's device.

  2. Share B is encrypted and stored in Amazon KMS.

  3. Share C is encrypted by user authentication and stored in AIE’s database.

It is important to note that share C is stored in its encrypted form on AIE’s database. Consequently, without the user authentication, AIE cannot have any access to the plaintext of share C.

Last updated