Skip to main content
Choose passkeys for consumer apps that should use Face ID, Touch ID, Windows Hello, or another WebAuthn authenticator instead of a seed phrase. The authenticator keeps the private key on the user’s device.

Create a passkey owner

Create the WebAuthn credential in a browser, convert it to a Viem account, and pass it as the owner:
Here, rhinestone is a configured RhinestoneSDK instance. Do not put an API key in browser code; route SDK requests through your backend or use an appropriate client authentication flow. Store credential.id and credential.publicKey so you can reconstruct the Viem account with toWebAuthnAccount. Creating another credential changes the smart account configuration and can change its address.
Passkey availability and synchronization depend on the browser, operating system, authenticator, and relying-party domain. Plan a recovery path instead of assuming a passkey will sync to every device.

Use more than one passkey

Use multisig for a passkey-per-device setup or when several passkeys must approve a transaction. Use multi-factor authentication to combine a passkey with another validator type.

Manage passkeys

Use the SDK actions to change an account after deployment: