# Verification Process

To verify a **digital credential**, three key elements must be resolved and validated:

* **Issuer Verification (Ensuring Trust & Legitimacy)**
  * This involves checking the **issuer’s cryptographic signature** and **identity**.
  * The verifier must determine **who the issuer is** and whether they are authorized to issue the credential according to a recognized **trust framework**.
* **Subject Verification (Validating the Holder’s Identity)**
  * The verifier must confirm that the **credential belongs to the person presenting it.**
  * This process can be **purely cryptographic**, using authentication mechanisms to establish ownership.
* **Credential Format & Status (Ensuring Validity & Integrity)**
  * The credential's **type and structure** must match the expected standard.
  * Its **revocation status** must be checked, as credentials can be revoked temporarily or permanently by either the **issuer** or the **subject**.

While cryptographic verification ensures **authenticity**, additional **trust registry lookups** are often required to resolve dynamic information that may change after issuance. Trust registries enable:&#x20;

* **Issuer and subject key rotations** without requiring credential reissuance.
* **Real-time validation** of issuer legitimacy and credential revocation status.
* **Scalable, long-term credential usability** by decoupling identity resolution from the original credential structure.

Trust registries can be **centralized** (e.g., government or industry-run) or **decentralized** (e.g., blockchain-based ledgers). At **Blerify**, we support both, but **centralized trust registries** face limitations, particularly in **scalability**. Conversely, **decentralized trust registries** provide **publicly accessible roots of trust**, ensuring greater **interoperability** and **resilience**. However, it is **critical not to store sensitive, personal, or private data in a decentralized trust registry**, even in encrypted form. A well-designed architecture **leverages decentralized registries for scalability while preserving privacy and security.**

&#x20;

<table data-full-width="true"><thead><tr><th valign="top">What is verified (high level)?</th><th valign="top">What is verified (specific)?</th><th valign="top">How is it verified?</th><th valign="top">Verification mechanism</th></tr></thead><tbody><tr><td valign="top">Issuer</td><td valign="top">To which issuer the credential signature belongs to</td><td valign="top">Resolving DID identifier against a trust registry</td><td valign="top">Call to Trust Registry</td></tr><tr><td valign="top">Issuer</td><td valign="top">If the issuer signed that same credential which is being presented by a subject to a third party</td><td valign="top">Applying a cryptographic algorithm to check issuer’s signature validity</td><td valign="top">Running Cryptographic algorithm</td></tr><tr><td valign="top">Subject</td><td valign="top">If the subject has rotated or delegated keys associated to the identity to which the credential was issued to</td><td valign="top">Resolving DID identifier against a trust registry</td><td valign="top">Call to Trust Registry</td></tr><tr><td valign="top">Subject</td><td valign="top">If cryptographic signature is valid</td><td valign="top">Applying a cryptographic algorithm to check issuer’s signature validity</td><td valign="top">Running Cryptographic algorithm</td></tr><tr><td valign="top">Credential Format</td><td valign="top">If credential format follows recognized standards and templates</td><td valign="top">Resolving credential context, schema, structure, and cryptographic elements</td><td valign="top">Call to Trust Registry</td></tr><tr><td valign="top">Credential Status</td><td valign="top">If credential has been revoked</td><td valign="top">Checking against trust registry</td><td valign="top">Call to Trust Registry</td></tr></tbody></table>

We have built a **suite of Solidity smart contracts for EVM-compatible blockchain networks**, to implement the **first-of-its-kind Decentralized Root of Trust, combining smart-contract-based Key Directories and Trusted Lists** to resolve complex issuer identity structures securely and transparently.


---

# 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.blerify.com/blerify-overview/user-centric-identity/verification-process.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.
