DCQL
DCQL, the Digital Credentials Query Language, is the JSON format a relying party uses inside an OpenID4VP presentation request to describe which credentials and which claims within them it wants to see, in a way any compliant wallet can parse without a bespoke integration.
A DCQL query lists one credential query per credential the verifier needs, each naming a format such as mdoc or SD-JWT VC, a type filter, and the specific claims to disclose. The optional claim_sets lets a single query offer alternative, ranked groups of claims so the wallet can fall back to a coarser check when a precise one is not available, and the optional credential_sets can require particular combinations across several credential queries. DCQL is defined directly inside the OpenID4VP specification rather than as a separate document, and replaces an earlier dependency on DIF Presentation Exchange for OpenID4VP requests: it is deliberately smaller, with no input descriptor groups or submission requirements, and expresses format-specific constraints directly in the query instead of through a generic JSON Schema filter. The EUDI Wallet ecosystem has standardised on DCQL for OpenID4VP presentations. For a worked example with request and response, see DCQL explained.
How is DCQL different from DIF Presentation Exchange?
Both describe what a verifier wants from a wallet, but DCQL is scoped to OpenID4VP and defined directly in that specification, while Presentation Exchange is a separate DIF specification that also covers other protocols. DCQL is deliberately smaller and expresses format-specific constraints, such as an mdoc doctype or an SD-JWT VC type, directly in a query object rather than through a generic JSON Schema filter. The EUDI Wallet ecosystem has standardised on DCQL for OpenID4VP presentations.