# Persona

Persona app is the flagship product of FirstBatch that uses both [HollowDB](https://github.com/firstbatchxyz/HollowDB) and [DANNY](https://github.com/firstbatchxyz/danny). In this application, the user signs in using a few options:

* Email & Password
* Google Account
* MetaMask

In the first two options, a wallet is created for the user in the background. With the wallet, the user signs a constant reference string, and the signature is SHA256 hashed to obtain a `secret`. The Poseidon hash of this `secret` will be the `key` in HollowDB for this user!

After signing in, an AI model scans the social media profiles and activities of the user and generates a vector embedding from it. The resulting vector is stored in HollowDB at the user's `key` as described previously.

*Here is the catch*: only the user will be able to update & remove their key at HollowDB. They do this by generating a zero-knowledge proof of preimage knowledge of their `key` (which they can because they know the `secret`). HollowDB's smart contract verifies this using SnarkJS, within SmartWeave!

Try out Persona app below:

{% embed url="<https://persona.firstbatch.xyz/>" %}


---

# 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.hollowdb.xyz/use-cases/persona.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.
