Hand off an x401 Verifiable Credential Presentation request

Accepts an x401 payload (https://x401.proof.com/spec/latest/#x401-payload) that wraps a Digital Credentials API request (https://www.w3.org/TR/digital-credentials/#DC-API) using the openid4vp-v1-signed protocol, and processes it as an OID4VP presentation request for the End-User identified by the login_hint claim of the signed request object. When the request carries a Proof access token issued to an End-User in the Authorization: Bearer header, that End-User is used instead of login_hint, and an invalid token is rejected with invalid_token.

The real OID4VP request is carried inside the signed request object at credential_requirements.digital.requests[0].data.request: a compact JWS with typ header oauth-authz-req+jwt, signed with ES256 by a key whose JWK is registered on your OAuth Application. Your client_id is conveyed by the request object's iss/client_id claims. Its response_mode must be dc_api. It must carry an exp claim at most one hour ahead and a unique jti claim; a request object is accepted once.

On success Proof returns a request_uri suitable for presenting to the End-User via their AI agent. Supply a top-level return_uri to use the x401 intermediary return channel (https://x401.proof.com/spec/latest/#return-channel); its origin must appear in the request object's expected_origins.

AI agents that cannot receive the presentation themselves omit return_uri and send an access token with the agentic scope. This requires the request object's expected_origins to be the agents trust list. Proof then also returns a result_polling_uri the agent polls with the same access token.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
credential_requirements
object
required
string

Optional. Enables the x401 intermediary return channel (https://x401.proof.com/spec/latest/#return-channel). When present, Proof POSTs the Verifiable Credential Presentation to this URI instead of the request object's response_uri. Its origin must be listed in the request object's expected_origins, and the request object must not itself specify a response_uri. Omit it when the request object's expected_origins is the agents trust list: Proof then keeps the result for the calling agent to poll at result_polling_uri.

Headers
string

Optional Bearer access token issued by Proof to the End-User, with the mcp.read or agentic scope. When present, the transaction is created for that End-User instead of login_hint. Required, with the agentic scope, to receive a result_polling_uri.

Responses

Language
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json