Presentation Exchange
Also called DIF Presentation Exchange, PE, PEX, Presentation Definition, Presentation Submission
Presentation Exchange solves a narrow but essential coordination problem: when a verifier (a bank, an age-gated site, a border checkpoint) wants proof of something from a person's digital wallet, how does it describe what it needs in a way any wallet, built by any vendor, can understand and answer, without a bespoke integration for every verifier–wallet pair?
The specification standardizes two paired JSON documents. A "Presentation Definition" is what the verifier publishes: "I need a credential proving you're over 21, issued by one of these three government IDs, OR a driver's license from this set of states, plus proof of address." A "Presentation Submission" is what the holder's wallet sends back: which credential(s) it's using, and which specific fields from each, mapped against the definition it received. Separating the request format from the response format is what lets a verifier's requirements and a wallet's UI evolve independently, while still speaking the same wire format.
Where it comes from
Presentation Exchange is a Decentralized Identity Foundation (DIF)
specification, maintained by DIF's Claims and Credentials Working Group.
Sphereon's open-source TypeScript library (@sphereon/pex) is the most
widely used reference implementation and is what much of the ecosystem's
wallets and verifiers actually run. Solidus designed none of it.
Solidus status
Solidus's auth backend already acts as an OpenID4VP verifier (it can
construct a presentation request and receive a verified response back) but
today only in a narrower, purpose-built shape: a single request for exactly
one credential type by its SD-JWT VC type (vct), with no way to request
alternatives, combinations, or constraints on specific claim values. The
code that defines this is explicit about the gap, in its own words: "The
full Presentation Exchange v2 / DCQL surface lands in a later phase."
Nothing conforming to the actual DIF Presentation Exchange schema, input
descriptors, submission requirements, the constraint language, exists in
Solidus's stack today.
Proof: none, honestly. There's no live Solidus endpoint that speaks
Presentation Exchange, and it would be dishonest to point at the narrower,
working OpenID4VP flow (auth.solidus.network) and call that PE
conformance. The gap between "a single fixed credential request works" and
"a full Presentation Exchange verifier" is real, and this is a roadmap
item, not a shipped one.
Where it comes from
Someone else specified this. Solidus assembles it.
Presentation Exchange is a Decentralized Identity Foundation (DIF) specification, maintained by DIF's Claims and Credentials Working Group, that standardizes two paired JSON documents: a "Presentation Definition" a verifier publishes to say what it needs ("a credential proving you're over 21, issued by one of these three issuers"), and a "Presentation Submission" a holder's wallet returns describing which credential(s), and which parts of them, answer that request. It's what lets a verifier and a stranger's wallet, built by two different vendors, agree on the shape of a credential request without a bespoke integration. Sphereon's open-source `@sphereon/pex` library is the most widely used reference implementation. Solidus designed none of it and has not implemented it.
How to check this
Planned. Nothing built.
None, honestly. There is no live Solidus endpoint that speaks Presentation Exchange, and it would be dishonest to point at the narrower, working OpenID4VP flow (`auth.solidus.network`) and call that PE conformance. The gap between "a single fixed credential request works" and "a full Presentation Exchange verifier" is real, and this is a roadmap item, not a shipped one.