# Architecture Overview

#### Core Components

* **Compliance UTXO**
  * Holds root, timestamp, epoch, signature, midnight reference.
  * Updated when sanctions/risk lists change, or when new users are onboarded.
* **Merkle Proofs**
  * Submitted by users in transactions.
  * Leaf = `{ address, claims, kyc_verified_at }`.
* **Policy Engine (Aiken)**
  * Verifies membership, signature, timestamp vs. max-age, and sanctions epoch freshness.
* **Trust Registry (future)**
  * Will manage Fairway issuer keys + versioning.

***

#### Mermaid (high level)

```mermaid
flowchart LR
  A[User completes KYC once] --> B[Vault stores PII + kyc_verified_at]
  B --> M[Midnight proof UTXO posted]
  M --> C[Compliance UTXO root, kyc_verified_at, sanctions_epoch, sig]
  C --> D[dApp Validator]
  D -->|Proof verified, timestamp ok, epoch fresh| E[YES → allow]
  D -->|fail| F[NO → deny]

```

<figure><img src="/files/Owvd6P7UKGzTNGMTroAy" alt=""><figcaption></figcaption></figure>


---

# 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.fairway.global/developers/build-on-cardano/merkle-compliance-utxo/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.
