igrantio-dcapi-ioslisted
Install: claude install-skill L3-iGrant/skills
# DC API verification on iOS
## When to use
Verify a credential in the browser with the wallet on an iPhone/iPad. Key
platform difference vs Android: on iOS the Digital Credentials API runs
over **ISO 18013-7 Annex C only**, with **ISO/IEC 18013-5 mdoc/mDL**
credentials, and the request is **always signed** - `expectedOrigins` is
mandatory.
**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
- A DC-API-capable browser (Chrome 141+, or flag-enabled earlier builds).
- The mdoc credential (e.g. age verification) in the user's Data Wallet.
- Bluetooth on both devices for cross-device (QR) flows.
## Workflow
1. **Presentation definition** - protocol ISO 18013-7 Annex C, format
ISO/IEC 18013-5 mdoc/mDL, response mode DC API **signed**, with
`expectedOrigins` set to your page origin (replay protection).
2. **Verification request (v3)** - `requestByReference: true` with the
`presentationDefinitionId`; read
`verificationHistory.dcApiRequest` / `dcApiProtocol` from the response.
3. **Invoke the wallet** from the page. Use `dcApi.ts` from
`igrantio-verifier-frontend` - `getPlatformRequest` picks the Safari
request variant, `invokeWallet` calls the API, `buildReceivePayload`
returns the `{ response: <JWE> }` shape a signed exchange needs.
4. **Post the response back** via your backend proxy; SSE deliv