Cryptography

Wallet

The wallet data is stored inside a KeyStore

AES-256-GCM for symmetric encryption

Argon2.IDkey as Key Derivation Function

  • time: 1

  • memory: 64 * 1024

  • threads: 4

  • key_length: 32

An encrypted KeyStore is referred to as KeyVault.

KeyVault Example

{
  "baseAddress":"z1qqjnwjjpnue8xmmpanz6csze6tcmtzzdtfsww7",
  "crypto":{
    "argon2Params": {
      "salt":"0x1563f86f7afa59dd0be150ffeac10896"
    },
    "cipherData":"0xe81dbb96f5b9839f3741ceff8362e1ebf09e05a8311354658ddf979577ffd0dd34df55757d1fd37e677e3ae7d055b2ed",
    "cipherName":"aes-256-gcm",
    "kdf":"argon2.IDKey",
    "nonce":"0xb7cc39120d5b87a3b7af58b7"
  },
  "timestamp":1633548746,
  "version":1
}

Digital Signing Algorithm

Ed25519 is a deterministic signature scheme using curve25519

Key Derivation

Ed25519 which is compatible with BIP44

  • key parameter: ed25519 seed

  • hardened offset: 0x80000000

BIP44 Format

Alphanet (Network of Momentum Phase 0) uses coin_type value 73404

Alphanet Address Format

bech32

  • human readable part: z

data

  • user account prefix byte: 0

  • embedded contract prefix byte: 1

  • core: first 19 bytes of sha3(pubKey)

address: bech32(hrp, data)

Example

Entropy

Mnemonic

BIP44 Path

Private Key

Public Key

User Prefix Byte

Core Bytes

Address

Zenon Dart SDK Example

Code

Output

Last updated

Was this helpful?