# Credentials

**NotVault** enables developers to create robust and secure data integrity verification systems. This feature is critical in developing functional, real-world workflows in trustless environments.

#### Objects in the Workflow

Three primary objects are involved in this workflow:

* **Dataset**: This is a collection of data, the utility of which depends on the integrity of its contents.
* **Credential**: This is an object derived from the Dataset that contains additional information about the Dataset's validity and integrity.
* **Query**: This is a set of questions concerning the validity and integrity of a Credential.

#### Roles in the Workflow

There are three roles in this workflow:

* **Person**: This can be an individual or entity that relates to or is the subject of a certain Dataset.
* **Issuer**: An individual or entity that attests to the validity of a Person's Dataset. The Issuer creates a Credential, which is an atomic Dataset that has been verified, encrypted, and signed.
* **Verifier**: An individual or entity that wishes to verify that a Query relating to a Credential is true.

#### Workflow Steps

Here is the step-by-step process of this workflow:

1. **Dataset Creation**: A Person creates a Dataset that is dependant on the integrity of its contents. An example of such a Dataset is a Passport, where its utility is tied to its recognized integrity.
2. **Credential Creation**: An Issuer verifies the integrity of the Person's Dataset and generates a Credential. This new object contains an encrypted version of the Dataset that is signed by the Issuer. For instance, in the Passport example, the Issuer would be the specific government responsible for issuing the passport.
3. **Query Creation**: A Verifier who wishes to check if the Dataset matches specific criteria or features creates a Query outlining these constraints. The Verifier then shares the Query with the Person who owns the Credential. In the Passport example, the Verifier might be a border control officer who checks the validity of the passport.
4. **Proof Generation**: The Person generates a proof showing that their Credential meets the constraints or criteria specified in the Query. This proof is then sent to the Verifier.
5. **Proof Verification**: The Verifier validates the proof. It's important to note that the underlying Credential or data is never shared throughout this workflow—only the Query criteria and the proof corresponding to the Query.

This functionality of **NotVault** offers a robust method to verify data integrity without exposing the actual data, thereby maintaining the privacy and security of the information. Developers can use this functionality to build a wide range of applications, from identity verification to secure data access controls.


---

# 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.notcentralised.com/workflows/credentials.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.
