Whenever an app needs to verify something (age, residency, ownership, etc.):

  1. The app sends a request for a proof template.
  2. The vault generates a zero-knowledge proof.
  3. The user signs it with their control key.

The verifier checks:

Result:

Apps trust the claim, without seeing any personal data.