Skip to main content

Document format

KeyHold v1 is a strict JSON object with six top-level fields:

FieldMeaning
formatAlways keyhold for this format.
versionThe supported document version, currently 1.
labelA human-readable, non-empty label.
publicKeyHexA compressed secp256k1 public key in lowercase hex.
keyDerivationPBKDF2-HMAC-SHA-256 parameters and salt.
cipherAES-GCM parameters, IV, and ciphertext with tag.

The private key never appears as a JSON field. It is recovered only after password-based decryption and public-key matching.

Both SDKs reject extra fields and non-canonical base64url/hex values. Read the generated TypeScript API or Go API for exact signatures.