Smart Wallet

Ontello creates an ERC-4337–compatible smart account wallet for each user, used to store tokens and other digital assets.

Multi-owner Support

Ontello Wallet supports multiple owners. Owners can add, remove, and modify wallet permissions, as well as grant or revoke access to one another. Each owner can independently and concurrently send transactions and perform wallet operations.

Passkey

Passkey offers a secure and user-friendly alternative to traditional passwords and recovery phrases. It is generated locally on the user’s hardware device and bound to that device or the user’s biometric data, providing a safer and more seamless authentication experience.

Ontello Wallet supports Passkey as a wallet owner. Users can authenticate and authorize actions using Passkey without entering a password. With multi-owner support, the wallet can be linked to multiple devices, enabling seamless cross-device access and operations.

How Ontello Generates a Wallet with Passkey

When you create an Ontello account, the wallet generation process happens seamlessly under the hood:

  • Create a Passkey

    • Ontello triggers the WebAuthn API on your device.

    • Your device creates a new key pair and stores the private key securely.

  • Deploy the Wallet

    • Ontello deploys a smart contract wallet on chain(via EIP-4337).

    • The passkey is registered as the wallet’s owner.

Your passkey effectively is your wallet’s private key — but managed in a hardware-secure way, with no recovery phrases or manual storage.

How Passkey Signs Transactions

When you perform an onchain action(send tokens or execute a contract call):

  1. Ontello creates a ERC4337 UserOperation request and prompts your device for authorization.

  2. You verify your identity via Face ID, fingerprint, or system password.

  3. Your device uses the private key to sign a WebAuthn challenge, which Ontello translates into the UserOperation signature.

  4. The smart contract wallet verifies that the signature matches the stored passkey public key and executes the transaction.

Wallet Management:

  • Add Owner:

    The wallet provides methods to add both standard EVM addresses and Passkey public keys. They are stored in the smart contract as 32-byte and 64-byte encoded byte arrays, respectively.

  • Query Owner:

    Each added owner has a corresponding index within the wallet. The following method allows you to query the owner’s index.

  • Remove Owner:

    An owner can be removed using their index and encoded byte data.

    Note that if there is only one remaining owner, removal is not allowed — this prevents the wallet contract from being left without any controlling owner.

  • Contract Calls:

    The wallet supports invoking arbitrary contract addresses, allowing both single and batch call operations.

Last updated