> For the complete documentation index, see [llms.txt](https://docs.ckbull.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ckbull.app/guides-and-concepts/sign-in-request.md).

# Sign in request

## What are sign in requests?

A sign in request is **the way a dApp can identify a user**. Let's explain it with the following example:

When a user wants to log in or register in your dApp, the dApp has to know how to identify a user to know which operations to perform. To do so, it uses the **CKBull Signer API** with the dApp credentials to generate a new and unique sign in request that needs to be signed by the user who requested it.

Here's a workflow on how a sign in request is generated and signed by a user and how it affects all the entities in the system:

<figure><img src="/files/cT58wENQ2rf54fitBaHj" alt=""><figcaption><p>Sign in request workflow</p></figcaption></figure>

## Sign in request life cycle

In the lifetime of a sign in request, it may contain multiple states depending on the actions performed by a user. The next flow shows the complete life cycle of a sign in request and its states.

<figure><img src="/files/5XRbVYeu6IEbTegTARev" alt=""><figcaption><p>Sign in request life cycle</p></figcaption></figure>

## How does the request identifies the user?

To identify who signed the transaction via **CKBull Wallet**, a payload containing the address and network of the signer is passed when the user signs the request. For a detailed explanation, read the [**API docs**](/api/requests/sign-in-request.md). A sign in request has the following appearance in CKBull Wallet, showing the dApp's name, description and logo.<br>

<figure><img src="/files/4WqoDyRils9yOXwqVe35" alt="" width="375"><figcaption><p>Sign in request in CKBull Wallet</p></figcaption></figure>

Having explained sign in requests, we can now introduce the second key concept of the platform, transaction requests.
