igrantio-dcapi-androidlisted
Install: claude install-skill L3-iGrant/skills
# DC API verification on Android
## When to use
Verify a credential in the browser on Android without a QR scan on the same
device: the page calls the W3C Digital Credentials API and Chrome invokes
the wallet. Cross-device still works (Chrome shows a QR; Bluetooth must be
on for the proximity check).
**Before you build**: run the integrator intake in `igrantio-ows-overview` - environment, API key, tenancy, backend host, webhooks, frontend - one question at a time, a recommended default with each.
## Prerequisites
- Chrome 141+ (or 128+ with `chrome://flags#web-identity-digital-credentials`).
- The credential in the user's Data Wallet.
- Bluetooth on both devices for cross-device.
## Workflow
1. **Presentation definition** - protocol OpenID4VP, format IETF SD-JWT,
`responseMode: "dc_api"`. For the signed variant
(`openid4vp-v1-signed`) also set `expectedOrigins` to your page origin
(replay protection).
2. **Verification request (v3)** - `requestByReference: true` with the
`presentationDefinitionId`. The response's
`verificationHistory.dcApiRequest` + `dcApiProtocol` are the browser
payload.
3. **Invoke the wallet** - `navigator.credentials.get({ digital: ... })`
with the backend-provided request object. Use the ready-made
`dcApi.ts` helpers in `igrantio-verifier-frontend`
(`supportsDcApi`, `invokeWallet`, `buildReceivePayload`) - they handle
the Chrome request formats and the plain-vs-signed response shapes.
4. **Post the response back** throu