Glossary
This glossary explains the terms used in this guide. You do not need prior knowledge of verifiable credentials to integrate the platform.
| Term | Meaning in this guide |
|---|---|
| Personhood credential | A digital credential that lets a user prove a personhood-related fact to your app, such as that they are human or count as one unique person for a defined use case. |
| Human Credential | A credential showing that the wallet holder has passed a human-verification process. Use it when you need to reduce automated or fake participation. |
| Uniqueness Credential | A credential showing that the wallet holder can be counted as one unique person for the purpose defined by the request. Use it when duplicate participation would break your product rule. |
| Verifiable Credential (VC) | A tamper-evident, cryptographically signed digital credential. In this integration, Personhood Credential issues it, the user holds it in Credential Wallet, and your backend verifies it. |
| Verifiable Presentation (VP) | The signed response that Credential Wallet sends to your backend after the user approves a request. It contains the credential information needed to satisfy that request. |
| Credential Wallet | The user-facing application that stores credentials, shows the request, asks for consent, and sends the approved response to your backend. |
| Issuer | The organization or service that signs and issues a credential. In this guide, this is Personhood Credential. |
| Holder | The user who controls a credential through their wallet. |
| Verifier | Your backend. It verifies the wallet submission before your application grants access or completes a protected action. |
| Presentation Exchange Platform (PEP) | The developer platform where you register your app, allowed domains, request types, and request policy. |
| Presentation Definition | The machine-readable description of the credential and attributes your app requests. For config-driven requests, PEP supplies this definition from your app configuration. |
| Presentation request envelope | The signed request data that your backend stores and Credential Wallet fetches before showing a consent screen. The API returns it as pdVc. |
| DID | A decentralized identifier. Your request-issuer DID lets your backend sign presentation requests. Treat its private-key material as a backend secret. |
| Scope | A named purpose within a registered app, such as creating a forum account. It helps define what the user sees and what your app is allowed to request. |
| Config-driven request | A request whose credential type, attributes, and policy come from the PEP app configuration. This is the approach used in this guide. |
| Nonce | A unique, short-lived value that binds a wallet response to one verification session and helps prevent replay. |
pdFetchUrl | URL that Credential Wallet calls to fetch the presentation request envelope. HTTP is supported only for local loads; public URLs must use HTTPS. |
submissionUrl | URL that Credential Wallet calls to submit the signed presentation. HTTP is supported only for local loads; public URLs must use HTTPS. |
Wallet Consent Flow
- Your backend creates a short-lived verification session.
- Your frontend displays a wallet link or QR code for that session.
- Credential Wallet fetches the presentation request from your backend.
- The user reviews the requested credential and attributes, then approves or cancels.
- If approved, Credential Wallet submits a signed Verifiable Presentation to your backend.
- Your backend verifies the submission against the stored session before allowing the protected action.
Expiration and Revocation
A credential can expire or be revoked before it expires. Verify the credential immediately before the action that needs protection. For example, request a credential when a user votes rather than relying only on a credential checked when the account was created.