Class PresentationRequest
A built, JAR-signed OpenID4VP authorization request ready to be delivered to the wallet.
public abstract record PresentationRequest : IEquatable<PresentationRequest>
- Inheritance
-
PresentationRequest
- Implements
- Derived
- Inherited Members
Remarks
FROZEN contract (contracts-v0). This is a sealed hierarchy with exactly two concrete shapes — PresentationRequest.ByValue and PresentationRequest.ByReference — corresponding to the two OpenID4VP request delivery modes. Consumers must handle both via pattern matching.
Properties
AuthorizationRequestUri
Wallet-facing URI carrying (by-value) or referencing (by-reference) the signed request. Encode this as a QR code or deep link.
public required Uri AuthorizationRequestUri { get; init; }
Property Value
ClientId
Verifier identifier echoed from ClientId.
public required string ClientId { get; init; }
Property Value
ExpiresAt
Absolute expiration of this request (UTC). Wallets reject requests with elapsed JAR exp;
verifiers use this for session cleanup and to refuse stale wallet callbacks.
public required DateTimeOffset ExpiresAt { get; init; }
Property Value
Nonce
Per-request nonce echoed from Nonce. Verifiers retain this to validate the matching nonce in the wallet's KB-JWT response.
public required string Nonce { get; init; }
Property Value
SignedRequestObject
The signed JAR (RFC 9101) request object as a compact JWT. In PresentationRequest.ByValue mode this is also embedded in AuthorizationRequestUri; in PresentationRequest.ByReference mode the verifier serves this content at RequestUri.
public required string SignedRequestObject { get; init; }
Property Value
State
Optional state echoed from State.
public string? State { get; init; }