Browser Support
TryMellon uses WebAuthn Level 2. All major browsers support it.
Compatibility Matrix
| Browser | Version | Passkeys | Conditional UI | Cross-Device QR | Email OTP |
|---|---|---|---|---|---|
| Chrome | 108+ | ✅ | ✅ | ✅ | ✅ |
| Safari | 16+ | ✅ | ✅ | ✅ | ✅ |
| Firefox | 122+ | ✅ | ✅ | ✅ | ✅ |
| Edge | 108+ | ✅ | ✅ | ✅ | ✅ |
| Chrome Android | 108+ | ✅ | ✅ | ✅ | ✅ |
| Safari iOS | 16+ | ✅ | ✅ | ✅ | ✅ |
| Samsung Internet | 21+ | ✅ | ❌ | ✅ | ✅ |
| Opera | 94+ | ✅ | ✅ | ✅ | ✅ |
Requirements
- HTTPS is required (except
localhostfor development) - User gesture is required to trigger WebAuthn (click/tap)
- Conditional UI (autofill) requires
autocomplete="username webauthn"on an input
Feature Detection
The SDK checks for WebAuthn support automatically:
const result = await client.authenticate({ externalUserId });
if (!result.ok && result.error.code === 'NOT_SUPPORTED') {
// Browser doesn't support WebAuthn
// Fall back to email OTP or show upgrade message
}
When WebAuthn is unavailable
Use the email OTP fallback. See Email Fallback.