A Proof Template is a reusable circuit / protocol definition.
Templates are:
{
"id": "age_over_18",
"version": 1,
"title": "Proof of Majority (18+)",
"description": "Proves that the user is at least 18 years old without revealing exact birthdate.",
"inputs": {
"identity_commitment": "bytes32",
"attributes_root": "bytes32",
"attribute_descriptor": "identity.birthdate",
"threshold": 18
},
"statement": "age >= threshold",
"proof_system": "zk_snark_v1", // or "gc_mpc_v1", etc.
"verification_key_ref": "kv:vk_age_over_18_v1"
}
This is stored in a Template Registry, referenced by template_id.