# Account

A zkopru account manages both of the layer-1 and layer-2 key pairs. First of all, the account has an Ethereum account from a randomly generated private key. This is used for interactions on the layer-1. Second, Zkopru wallet creates a Babyjubjub private key and public key set from the Ethereum account's private key. This Babyjubjub keyset is used for the EdDSA and encrypted memo field on the layer-2.

| Key                     | Size               | How to get                          | Where to use                |
| ----------------------- | ------------------ | ----------------------------------- | --------------------------- |
| Master seed             | 32 byte            | Randomly generated                  | Recover keys                |
| Ethereum private key    | 32 byte            | Derived from master seed with BIP39 | Layer1 ECDSA                |
| Ethereum public address | 20 byte            | Derived from the private key        | Layer 1 interactions        |
| Babyjubjub private key  | 254 bit            | Derived from Ethereum private key   | Create EdDSA to spend UTXO  |
| Babyjubjub public key   | (254 bit, 254 bit) | Derived from Babyjubjub private key | Proving ownership of a UTXO |


---

# 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.zkopru.network/master/how-it-works/account.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.
