verified-email

Implement OTP-less verified email retrieval on Android using Credential Manager and OpenID4VP.

Updated Mar 12, 2026
One-click install
npx skills add https://github.com/RavitejaKarra24/dotfiles --skill verified-email-ravitejakarra24
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: verified-email
Source: https://github.com/RavitejaKarra24/dotfiles/tree/main/pi/.pi/agent/skills/verified-email
Command: npx skills add https://github.com/RavitejaKarra24/dotfiles --skill verified-email-ravitejakarra24

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Traditional email verification forces users through high-friction OTP or magic-link steps during sign-up, account recovery, and re-authentication. This Skill guides you through integrating Android's Credential Manager Digital Credentials API so users can share a cryptographically verified email address from their device in a single tap, removing the OTP step entirely. ## Core Features & Use Cases - OpenID4VP Request Construction: Build a DCQL query requesting a UserInfoCredential in SD-JWT format with claims like email, email_verified, name, and hd, secured with a per-request nonce. - Client Integration Workflow: Add androidx.credentials dependencies, initialize CredentialManager, present the system bottom sheet via getCredential(), and parse the returned vp_token SD-JWT for UI updates. - Server-Side Validation Guidance: Verify the issuer (https://verifiablecredentials-pa.googleapis.com), validate the SD-JWT signature against Google's public JWKs, and check the cnf key binding and nonce to prevent replay attacks. - Use Case: During sign-up, locate your SignUpScreen or AuthViewModel, trigger the verified email flow, create the account server-side without an OTP, then optionally prompt passkey creation for passwordless future sign-ins. ## Quick Start Ask the agent to implement verified email retrieval in your Android sign-up screen using the Credential Manager Digital Credentials API.

Frequently Asked Questions about verified-email

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I implement verified email retrieval on Android without OTP?

Use the Credential Manager API with a GetDigitalCredentialOption containing an OpenID4VP request JSON. The DCQL query requests a UserInfoCredential in dc+sd-jwt format with claims like email and email_verified, and the system bottom sheet lets the user share a cryptographically verified email.

What dependencies are needed for Android Credential Manager digital credentials?

Add androidx.credentials:credentials:1.7.0-alpha02 and androidx.credentials:credentials-play-services-auth:1.7.0-alpha02 to your app's build.gradle. Then create a CredentialManager instance with your app or activity context.

Does verified email work with Google Workspace accounts?

No, Google does not issue verifiable credentials for Google Workspace or supervised accounts; only consumer Google Accounts are supported. For [email protected] addresses, Google verified the email at account creation but provides no freshness claim, so an additional OTP challenge is recommended.

What Android version is required for the Digital Credentials Verifier API?

The Verifier API requires a minimum SDK of 28 (Android 9) and Google Play services version 25.49.x or higher. It works on mobiles, tablets, and foldable devices.

Why is server-side validation required for verified email credentials?

Client-side parsing is only for UI updates and must never be trusted for account creation. Your server must verify the issuer field, validate the SD-JWT signature against Google's public JWKs, check the cnf key binding, and validate the nonce to prevent replay attacks.

Can verified email retrieval work inside an Android WebView?

Yes, but you must implement a JavaScript bridge so the WebView can signal the native app to perform the actual Credential Manager API call. The androidx.webkit library version 1.12.0 and later provides WebAuthentication support for this handoff.