> For the complete documentation index, see [llms.txt](https://docs.empe.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.empe.io/getting-started/tutorial/testing-verification.md).

# Testing the Verification Flow

**What We Are Doing:**

* Running through the entire process end to end: issuance, verification, and accessing the dashboard.

**Why:** To ensure all components work together smoothly, from claiming a credential into the wallet to satisfying a verification request and reaching a protected resource.

**Steps:**

1. Start the server:

   ```bash
   node src/index.js
   ```
2. Issue a credential by submitting the form and scanning the issuance QR code with the Empe DID Wallet. The credential is now stored in the wallet.
3. Click "Authorize with KYC Credential" to create an authorization request and display the verification QR code.
4. Scan the verification QR code with the wallet. The credential requirement (a `KYCCredential@1.0:sd-jwt` credential of the expected type whose `age` is at least 18) is enforced by the `presentationDefinition` carried in the authorization request itself — the wallet only offers credentials that satisfy it, so a holder without a matching credential has nothing to present. (If you switch to a `dcqlQuery` instead, remember it cannot express `age >= 18` — your app must then check the disclosed `age` itself.)
5. When the wallet sends a matching presentation, the verification session advances to `ResponseVerified`. Your frontend observes this in real time over the proxied session events stream, exchanges the session for the app session token, stores it, and redirects you to `/authorization/dashboard`. The dashboard's DID and claim fields show values only if your flow signed them into the token (see [Creating a Protected Dashboard](/getting-started/tutorial/dashboard.md)).

If everything works, you've successfully completed the end-to-end flow — the credential was issued, presented, verified against your request, and the verified result was delivered through the verification session.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.empe.io/getting-started/tutorial/testing-verification.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
