Skip to main content
Passwordless authentication with biometrics or device credentials.

Prerequisites

  • SDK initialized
  • Domain you control (for .well-known files)
  • App package name and SHA-256 certificate fingerprint
  • Android SDK 28+

App Configuration

There are a few steps to configure passkey support. If you have already set up an associated domain for your application, you can skip to Managing Passkeys.

Set Up an Associated Domain

On your webserver, set up this route:
This route should serve a static JSON array containing your app’s package name and SHA-256 certificate fingerprint:
.well-known/assetlinks.json
Replace:
  • com.example.yourapp with your app’s package name
  • The SHA-256 fingerprint with your app’s signing certificate fingerprint

Get Your SHA-256 Certificate Fingerprint

To get your app’s SHA-256 certificate fingerprint:
Look for the SHA256 line in the output and copy the fingerprint.
You can validate your asset links configuration using the Google Digital Asset Links Tool. This tool tests your domain against Android’s requirements and helps ensure your passkey setup is properly configured.

SDK Configuration

Configure the appOrigin in your SDK initialization to associate passkeys with your domain:
MainActivity.kt
The appOrigin must match your website domain exactly (e.g., https://example.com). This domain will be used to create and associate passkeys, so ensure it’s the same domain where you host the .well-known/assetlinks.json endpoint.

Managing Passkeys

Now that your application has correctly associated your domain, you can register and authenticate using passkeys.

Sign In with Passkey

Use passkeys as the primary authentication method:
When called, this triggers the system passkey prompt where users authenticate with biometrics, device PIN, or pattern.

Register passkey

Register a new passkey for the authenticated user:
This will trigger the device’s biometric authentication flow (fingerprint, face recognition, or device PIN).

Get user passkeys

Retrieve all passkeys registered for the current user:

Authenticate with passkey for MFA

Use a passkey to authenticate for MFA purposes:

Delete passkey

Remove a passkey from the user’s account:

Complete passkey management example

Here’s a complete example of passkey management in a ViewModel:

Passkey UI example

Display passkeys in a Compose UI:

Using Passkeys for MFA

Passkeys can also be used as a second factor for multi-factor authentication. Once you’ve completed the configuration above, see the MFA Guide for details on using passkeys as a 2FA method.

Benefits of Passkeys

  • Passwordless: No need to remember or type passwords
  • Secure: Uses device biometrics or PIN
  • Phishing-resistant: Cannot be stolen or intercepted
  • Fast: Quick authentication with fingerprint or face recognition
  • Cross-platform: Works across devices with Google Password Manager sync

Troubleshooting

Common Issues

Passkey registration fails
  • Verify your asset links configuration at https://yourdomain.com/.well-known/assetlinks.json
  • Check that the JSON contains your correct package name and SHA-256 fingerprint
  • Ensure you’re using the correct signing certificate fingerprint (debug vs release)
  • Validate your asset links using the Google Digital Asset Links Tool
“No passkeys available” error
  • The user may not have any passkeys registered yet
  • Ensure the user is authenticated before attempting passkey sign-in
  • Check that passkeys are supported on the device (Android 9.0+)
Domain mismatch errors
  • Verify appOrigin in SDK configuration matches your asset links domain exactly
  • Check that both use the same protocol (https://)
  • Ensure the domain is accessible and the asset links file is served correctly

What’s Next

Now that you have passkeys configured:
  1. MFA Guide - Use passkeys as a second factor for multi-factor authentication
  2. Authentication - Learn about other authentication methods
  3. Session Management - Manage authenticated sessions
Last modified on February 3, 2026