# Architecture

![Endorser Agent: A server that stores the records of the users. Trustee Agent: A server that stores the records of the municipalities](/files/-MShDjvv9cmPs5Soq-R7)

According to the above UML, the user can either register or log in to any platform that utilizes **CERTH SSI as a Service** solution.

Following you can find a detailed guide for the necessary steps.

**Registration:**

![](/files/-MShELyR0uT6xvYUXYhr)

When a user registers, the **Endorser Agent** creates a **DID** and makes a connection with the **Trustee Agent**.

When the connection is established, the Endorser Agent sends a **proposal** to the Trustee Agent in order to issue an **ID Verifiable Credential**. Then, the Trustee Agent issues an **ID credential** to the Endorser Agent.

Now the user has a DID and an ID Credential in her/his/its wallet.

When the registration is completed, the user will be directed to a page that shows their DID. The user must keep somewhere safe this DID as a digital or hard copy, because it is their globally unique identifier and it is required in order to log in and communicate with any other service.

![](/files/-MShEeoSYA84Er0RrV32)

**Log in:**

![](/files/-MShELyTuJ9fZX7MMewA)

The user, after registers successfully, can log in to the platform with the DID that was created from the registration process.

The above transactions of the agents are held in corresponding PostgreSQL databases, one for each agent. They are also stored along with other important metadata information of the user in a MySQL database.


---

# 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.token-project.eu/ssi/architecture.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.
