Accounts & Keys

Ed25519 key pairs, addresses, signing, multisig, and delegation.


Every XE account is an ed25519 key pair. The public key, hex-encoded (64 hex chars / 32 bytes), is the account address. No prefixes, no checksums.

Key Generation

kp, err := core.GenerateKeyPair()        // random
kp := core.KeyPairFromSeed(seed)         // deterministic from 32-byte seed

Block Signing

  1. Canonical encoding via MarshalBlockCanonical()
  2. SHA-256 hash → b.Hash
  3. ed25519.Sign(privateKey, hashBytes)b.Signature

Multisig Accounts

  • Address = sha256(canonical(keyset)) (hash-derived)
  • Opened with multisig_open block
  • Rotated via multisig_update blocks
  • Spending: M-of-N threshold; Receiving: 1-of-N

Delegation

Each block includes an optional Representative field. Empty means keep current delegation. Only XUSD balances contribute to delegation weight.