# KYC / AML Module

### KYC / AML Module Overview

Compliance is the foundation of institutional-grade neofinance. The KYC (Know Your Customer) and AML (Anti-Money Laundering) Module provides the necessary identity verification and regulatory screening tools required to operate compliant financial products on-chain.

This module allows founders to deploy permissioned vaults, restrict access based on geographic jurisdictions, and ensure that all participants meet the regulatory requirements of their specific operating environment.

***

### Identity Verification and Compliance Layers

City Protocol aggregates top-tier identity verification providers to offer a seamless, automated compliance experience:

{% tabs %}
{% tab title="Automated Verification" %} <mark style="color:$primary;">**Automated Verification**</mark>

Integrations with Persona, Veriff, Onfido, Jumio, and Trulioo provide real-time identity document verification, biometric liveness checks, and watchlist screening.
{% endtab %}

{% tab title="Continuous Monitoring" %} <mark style="color:$primary;">**Continuous Monitoring**</mark>

Partnership with Comply Advantage ensures ongoing AML transaction monitoring and risk scoring to prevent illicit activities within the ecosystem.
{% endtab %}

{% tab title="Programmable Access Control" %} <mark style="color:$primary;">**Programmable Access Control**</mark>

The KYC status of a user is securely linked to their wallet address via the Whitelist Manager role in the Vault Architecture. This allows smart contracts to automatically accept or reject deposits based on the user's verified compliance status, without exposing Personally Identifiable Information (PII) on-chain.
{% endtab %}
{% endtabs %}

***

### Underlying Protocols

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th data-type="content-ref"></th><th data-hidden data-card-cover data-type="image">Cover image</th></tr></thead><tbody><tr><td><strong>Persona</strong></td><td><a href="https://withpersona.com/">https://withpersona.com/</a></td><td><a href="/files/tHW25RiyllZsf8LIHjrL">/files/tHW25RiyllZsf8LIHjrL</a></td></tr><tr><td><strong>Veriff</strong></td><td><a href="https://www.veriff.com/">https://www.veriff.com/</a></td><td><a href="/files/txoR6xy6pOfkbaqY9h6C">/files/txoR6xy6pOfkbaqY9h6C</a></td></tr><tr><td><strong>Onfido</strong></td><td><a href="https://onfido.com">https://onfido.com</a></td><td><a href="/files/IehEeSpoNXxPAamD70Ek">/files/IehEeSpoNXxPAamD70Ek</a></td></tr><tr><td><strong>Comply Advantage</strong></td><td><a href="https://complyadvantage.com/">https://complyadvantage.com/</a></td><td><a href="/files/zZwHIWsmFa5emaWzIt8S">/files/zZwHIWsmFa5emaWzIt8S</a></td></tr></tbody></table>


---

# 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://city-protocol.gitbook.io/docs/neofinance-as-a-service/kyc-aml-module.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.
