demo · v143 · origin trial
Presentation flow
Issuance is the new bit in v143, but it only makes sense paired with presentation. This page is the relying-party side of the loop: pick a use case (age verification, KYC, education), see the DCQL query the page would build, then call navigator.credentials.get({ digital }) and watch the resolution.
Origin trial / behind a flag: Digital Credentials API is in origin trial through Chrome 143.
Enable
chrome://flags/#web-identity-digital-credentials for local testing. The page attempts
the call and surfaces whatever Chrome returns.
Use case
Generated request
…
Flow
step 1 — feature detect
navigator.credentials.get({ digital }) available?step 2 — build DCQL
(idle)step 3 — invoke API
(idle)step 4 — receive presentation
(idle)step 5 — verify (server-side)
(idle)Pick a use case, click "request credential".
How this maps to real life
- Issuance (v143's headline change) gives the user a credential — like a driver's licence or a school diploma — held in their wallet of choice.
- Later, a relying party (this page) asks for a presentation — a zero-knowledge or selective-disclosure proof of some subset of that credential.
- DCQL (Digital Credentials Query Language) lets the RP describe what it needs without naming a specific issuer. The wallet decides which credential satisfies the query.
- Chrome's chooser sheet then lists matching wallets; the user picks one; the wallet runs the presentation flow with the user's chosen disclosures; the RP gets a signed object back.
const response = await navigator.credentials.get({
digital: {
requests: [{
protocol: "openid4vp",
data: { /* DCQL query */ },
}],
},
});
// response.protocol === "openid4vp"
// response.data === presentation object