{"vct":"urn:nl.administratieomgeving:leeftijdsbewijs:1","name":"Leeftijdsbewijs","description":"Zelf-uitgegeven zero-knowledge-bewijs dat de houder ouder is dan een drempel-leeftijd op een peil-datum, zonder de geboortedatum prijs te geven. Uitgegeven door wallet-EUDIPLO als burger-issuer-rol op basis van een SNARK-proof gegenereerd door de admin-backend zkp-prover-module tegen het circuit `leeftijd-gte-21-v1` uit `eco/voorzieningen/zkp-circuit-registry/`. Aanpak 1 disposable cnf-binding per verifier: per nieuwe verifier een vers Leeftijdsbewijs met een nieuwe pseudoniem-DID, om cross-verifier-correlatie via gedeelde cnf-binding-DID te voorkomen.","display":[{"locale":"nl-NL","name":"Leeftijdsbewijs","description":"Bewijs dat u boven een minimumleeftijd valt op een bepaalde peildatum, zonder uw exacte geboortedatum te onthullen.","rendering":{"simple":{"background_color":"#5B247A","text_color":"#FFFFFF"}}},{"locale":"en-US","name":"Age proof","description":"Proof that you exceed a minimum age on a reference date, without disclosing your exact date of birth.","rendering":{"simple":{"background_color":"#5B247A","text_color":"#FFFFFF"}}}],"claims":[{"path":["voldoet"],"display":[{"locale":"nl-NL","label":"Voldoet aan de drempel"},{"locale":"en-US","label":"Meets threshold"}],"sd":"allowed","begrip":"urn:nl.administratieomgeving:begrip:ouder-dan-21:1","claim-type":"zkp-predicate","circuit-id":"leeftijd-gte-21-v1"},{"path":["proof"],"display":[{"locale":"nl-NL","label":"Zero-knowledge-bewijs"},{"locale":"en-US","label":"Zero-knowledge proof"}],"sd":"allowed"},{"path":["circuit_id"],"display":[{"locale":"nl-NL","label":"Circuit-identifier"},{"locale":"en-US","label":"Circuit identifier"}],"sd":"allowed"},{"path":["circuit_version"],"display":[{"locale":"nl-NL","label":"Circuit-versie"},{"locale":"en-US","label":"Circuit version"}],"sd":"allowed"},{"path":["peil_datum"],"display":[{"locale":"nl-NL","label":"Peildatum"},{"locale":"en-US","label":"Reference date"}],"sd":"allowed"},{"path":["peil_drempel"],"display":[{"locale":"nl-NL","label":"Drempel-leeftijd in jaren"},{"locale":"en-US","label":"Threshold age in years"}],"sd":"allowed"}],"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"voldoet":{"type":"boolean","title":"Voldoet aan de drempel","description":"True wanneer de houder op de peil-datum boven de drempel-leeftijd valt, false anders. Eerste publieke signaal uit het SNARK-circuit, gemapt vanuit het integer 0/1 naar boolean voor leesbaarheid."},"proof":{"type":"string","title":"Zero-knowledge-bewijs","description":"JSON-string van het Groth16-proof-object (pi_a, pi_b, pi_c, protocol, curve). Verifier decodeert deze string plus geeft hem aan snarkjs.groth16.verify samen met de verification-key die hoort bij circuit_id (op te halen via zkp-circuit-registry-voorziening)."},"circuit_id":{"type":"string","title":"Circuit-identifier","description":"Identifier van het zero-knowledge-circuit dat dit bewijs heeft gegenereerd. Verifier gebruikt deze identifier om de juiste verification-key op te halen bij zkp-circuit-registry op https://zkp-circuit-registry.administratieomgeving.nl/circuits/<circuit_id>/verification-key.json. Eerste circuit: `leeftijd-gte-21-v1`."},"circuit_version":{"type":"string","title":"Circuit-versie","description":"Versie-string van het circuit-snapshot, voor change-tracking. Bij `leeftijd-gte-21-v1` is dit `v1`; bij latere wijzigingen `v2`, `v3` et cetera."},"peil_datum":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","title":"Peildatum","description":"Datum waarop de leeftijds-toets is gedaan. ISO-8601 yyyy-mm-dd. Het bewijs toont dat de houder op deze datum boven de drempel viel."},"peil_drempel":{"type":"integer","minimum":1,"title":"Drempel-leeftijd in jaren","description":"De minimumleeftijd in jaren waaraan de houder moest voldoen. Bij `leeftijd-gte-21-v1` is dit altijd 21 (hardcoded in het circuit); andere circuits kunnen andere drempels hebben."}},"required":["voldoet","proof","circuit_id","circuit_version","peil_datum","peil_drempel"]}}