# Authentication

When a user starts an application (**App**) that wants to interact with the Hive blockchain, the first thing it needs to do is to authenticate the user.

Usually, this is done by entering a username and password and matching it against similar data stored somewhere.

Hive Authentications Services enables applications to authenticate their users by simply providing a username, relieving the applications from storing additional credentials data.

It does so by using any third-party Private Key Storage Application (**PKSA**) to act as a Two-Factor Authentication (2FA) provider.

The users only need to trust one **PKSA**, where they safely store their private keys. They now more will be required to provide them to any **HAS** enabled application. Likewise, they are guaranteed that their keys will never leave the **PKSA**.

Before being able to receive and process any request for an account from the **HAS**, the **PKSA** must prove to the **HAS** that it stores the user's private keys.

Once an account has been registered by a **PKSA**, the **HAS** will know it can safely send transactions requests from that account to the **PKSA**.

A **PKSA** should wait to get an off-band `auth_req_payload` before registering an account it manages, mainly because it may not know which **HAS** server it needs to connect to.


---

# 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.hiveauth.com/has-for-wallets-pksa/authentication.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.
