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.



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