How this works

1. Authorize

Your app redirects the user's browser to GET /gateway/authorize, exactly like any OAuth2 provider.

2. Wallet exchange

The gateway takes over: it runs the full OpenID4VP request/response cycle with the user's wallet, entirely on its own screen.

3. Redirect back

Once the wallet responds, the browser is sent back to your redirect_uri with a normal authorization code.

4. Token

Your backend exchanges the code at POST /gateway/token for an opaque access token — RFC 6749, section 4.1.3.

5. Introspect

Call POST /gateway/introspect with that token to get back whatever the wallet disclosed — no OpenID4VP parsing required.

Try it

This page acts as a demo OAuth client, pre-registered with the gateway below. Click through and you'll go through the exact same wallet exchange as the live OpenID4VP demo, then land back here with an access token already exchanged and introspected.

Registered demo client — published here on purpose, so you can also drive the API yourself with curl or Postman:
client_id: demo-client
client_secret: demo-secret-change-me

You'll need the latest EUDI Wallet reference app (Android) installed, with a test PID already loaded (see the live demo for how to get one).

In a real integration, everything from "Token" onward happens server-side, and the client_secret above would never be published or reach a browser. It's public on this page purely so this demo can run entirely client-side.

Want an OAuth2 front door for your own OpenID4VP verifier?

Talk to us