# Architecture Overview

The Verifier’s architecture is designed for flexibility, modularity, and scalability. It integrates with the broader EVDI ecosystem while remaining independently deployable.

**Key Components:**

1. **Verifier Service**:
   * A standalone microservice that interfaces with Empe DID Wallets and the EMPE Blockchain.
   * Implements OIDC4VP-compatible endpoints for requesting and validating Verifiable Presentations.
   * Handles credential validation logic, nonce and state generation, and callback processing.
2. **Client-Side Verifier Library**:
   * JavaScript-based integration for front-end applications.
   * Displays QR codes and manages SSE connections for real-time verification status updates.
   * Enables user-friendly flows, guiding end-users through credential presentation.
3. **Server-Side Verifier Library**:
   * Runs on the relying party’s backend, communicating with the Verifier Service.
   * Manages authorization requests, callback handling, and secure session management.
   * Issues JWT tokens or triggers application logic upon successful verification.
4. **Empe DID Wallet**:
   * A user’s personal wallet application that stores and manages DIDs and VCs.
   * Scans QR codes from relying parties to initiate verification flows.
   * Submits VPs to the Verifier Service upon request.
5. **EMPE Blockchain**:
   * The trust anchor for resolving DIDs and validating issuer identities.
   * Stores credentials revocation lists, enabling the Verifier to check the real-time status of VCs.
   * Ensures cryptographic trust and eliminates reliance on centralized authorities.

This layered architecture ensures clear separation of concerns, allowing each component to evolve independently while maintaining compliance with open standards.


---

# Agent Instructions: 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:

```
GET https://docs.empe.io/develop/verifier/architecture-overview.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
