Home Terms & Conditions Privacy Policy Documentation Contact About
  1. 0. Choose a flowHow the verifier asks
  2. 1. The requestWho is asking, and for what
  3. 2. Choose & presentSelect disclosures, sign the KB-JWT
  4. 3. The verdictWhat the verifier saw and decided

← Back to step 2 (choose what to disclose)

SD-JWT VC Presentation — Step 3 of 3: The Verdict

Two accounts of the same event: what the wallet sent — with the presentation checked here, over the bytes themselves — and what the verifier did, check by check. “Accepted” is the least interesting part: a wallet that disclosed more than was asked for gets an accepted too, and this page says so.

Tip: click a pane's title to collapse/expand it.

What The Wallet Sent
 
The verifier's Client Identifier, and the Response URI the presentation was POSTed to.
A Key Binding JWT is signed for one moment and one request; a verifier may refuse a stale one.
iat, aud, nonce, sd_hash — the four claims RFC 9901 section 4.3 requires, as signed.
 
The holder's signature over this presentation.
The claim set that follows from the bytes sent — computed here from the presentation itself.
 
What the verifier's DCQL query asked for, against what was actually disclosed. A verifier need not check this — walt.id's does not — so the wallet is often the only party that can tell you.
 

The presentation, with its parts called out: issuer-signed JWT · Disclosure · KB-JWT.

 

 

The Wallet's Own Checks

Run here, over the bytes that were sent, doing what the verifier does: recompute sd_hash, look up every Disclosure's digest in _sd, and compare the Key Binding JWT's nonce and aud with the request. If the wallet cannot verify its own presentation, no verifier will.

 
What The Verifier Decided

The verifier’s own verdict, check by check. Reading it back like this is not part of OID4VP — a real verifier shows the End-User its own page — but a debugger needs to see which rule was broken, not just that something was.

 
The claims in its DCQL query.
The Disclosures the wallet actually sent.
Claims it did not ask for and got anyway. No verifier will complain about this, which is exactly why the wallet has to care.
The claim set the verifier ended up with.
 
Fetch the verifier's verdict again.