The Identity Commitment is the cryptographic root of a LIVRE identity.
It binds:
into a single hash that can be referenced on-chain, off-chain, or across systems.
identity_commitment = H(
version,
keys_root,
attributes_root,
policies_root
)
Where:
version – schema version for forward compatibility.keys_root – Merkle root of active keys.attributes_root – Merkle root of attributes (see Descriptors & Attributes).policies_root – Merkle root of policies.This allows:
local updates (e.g. adding an attribute)
→ only the attribute tree changes
policy-only updates (e.g. new jurisdiction rule)
→ only the policy tree changes
key rotation
→ keys_root changes, inner trees can remain the same
Each key is encoded as a leaf, and keys are grouped in a deterministic Merkle tree.
key_leaf = H(
purpose, // control | recovery | auth | app_session
public_key,
algo,
created_at,
expires_at?,
status // active | revoked | rotated
)
keys_root = MerkleRoot(
sorted_by(purpose, key_id, [key_leaf_1, key_leaf_2, ...])
)