Two numbers keep passes honest: the credential's epoch and the verifier's generation. A pass carries both from the moment it was proved; when either moves, the pass stops counting everywhere at once.
Epochs#
The epoch moves up by one when:
- the verifier issues a new credential to the wallet, or
- the credential is revoked, by its verifier or by governance.
Every pass proved under the earlier epoch is stale from that slot on: the transfer hook compares the pass's epoch with the credential's, for every rule set.
Verifier generations#
Governance can deactivate a verifier and later reactivate it. Each change moves the verifier's generation. Credentials issued under an earlier generation, and their passes, stop being live; reactivation alone does not bring them back.
Renewing#
A holder whose circumstances still qualify renews in two steps:
-
Verify again. The verifier issues a new credential with fresh commitments for the next epoch, and a new credential file.
-
Prove again. Load the new file and prove each rule set you need. Each proof writes a fresh pass.
The same applies when a credential or an attribute expires, or when a screening grows older than a rule set's window.
In the app#
- Passport shows a stale pass as Pass stale and offers Prove again.
- Network lets a verifier look up a credential it issued and revoke it, and lets the admin revoke any credential.