1. Generate master_key.

  2. Generate first control_key and recovery_key.

  3. Compute:

    identity_root = H(
      master_key_public,
      namespace,
      creation_time
    )
    
    state_commitment = H(
      identity_root,
      control_key,
      recovery_key,
      attributes_root,
      policies_root
    )
    
    
  4. Register identity_root and state_commitment on the underlying network (e.g. COTI / registry contract).

Result: identity exists, with a first usable state.