High-level pipeline:
- Request arrives at Identity / Proof API with:
template_id
identity_id
commitment
verifier_id
nonce
- Policy Engine check
- Is this verifier allowed to request this template?
- Are additional conditions (jurisdiction, consent, MFA) required?
- Vault data retrieval
- Identity Service asks Vault for:
- attribute opening(s) (never plaintext)
- Merkle path(s) for relevant attributes
attributes_root for this Identity State
- Consistency check
- Ensure supplied
attributes_root matches the one committed in the Identity State with the given identity_commitment.
- Proof Engine execution
- Load proof template by
template_id
- Build witness from:
- attribute values (inside secure execution)
- Merkle paths
- commitment
- Run ZK / GC / MPC protocol.
- Output proof bundle
proof
public_inputs
- referenced
identity_commitment
- template metadata (ID, version)
- validity timestamps
- Return to Agent / Verifier
- Either via Agent (user in the loop), or directly to Verifier API.