hIDcap Verifier¶
OID4VP Age Verification โ hashID Ecosystem

Overview¶
hIDcap is the identity and age verification module of the hashID ecosystem, developed by Desteba Productions S.L. (Spain).
The hIDcap Verifier is an OID4VP-compliant Relying Party deployed in the EUDIW Playground. It can request and verify credentials from EUDI Wallets, supporting age verification, identity checks, and healthcare insurance verification (EHIC).
Namespace: hashid
Version: 0.7.0
Status: Phase 1 (Dummy validation โ protocol flow functional, cryptographic verification in progress)
Try it now: hIDcap Verifier โ Interactive Demo Product page: hidcap.eu
Supported Protocols¶
- OID4VP v1.0 (Final)
- OID4VP Draft 24
- OID4VP Draft 20
- OID4VP Draft 18
Protocol version is auto-detected from incoming requests.
Supported Formats¶
mso_mdoc(ISO 18013-5)dc+sd-jwt(IETF SD-JWT-VC)
Response Mode¶
direct_post
Authentication¶
x509_san_dnswith self-signed ES256 certificate- Signed JWT Authorization Requests (JAR)
Endpoints¶
Base URL: https://api.playground.france-identite.gouv.fr/hashid/hidcap-verifier/
| Method | Path | Description |
|---|---|---|
| GET | / |
Interactive landing page with QR verification |
| GET | /health |
Health check |
| GET | /credentials |
Available credentials and supported drafts |
| GET | /scan/:type |
Interactive QR code page for wallet scanning |
| GET | /wallet/request.jwt/:id |
Wallet fetches signed Authorization Request |
| POST | /wallet/request.jwt/:id |
Wallet POSTs with wallet_metadata |
| POST | /wallet/direct_post |
Wallet submits vp_token |
| POST | /ui/presentations |
Create a verification transaction |
| GET | /ui/presentations/:id |
Poll for result |
| GET | /result/:id |
Result page (wallet redirect target) |
| GET | /.well-known/jwks.json |
Public signing keys (ES256) |
| GET | /.well-known/openid4vp |
Verifier metadata |
Verification Flow¶
- Create transaction โ
POST /ui/presentationswith credential type - QR code generated โ
openid4vp://URI withrequest_uriandclient_id - Wallet fetches request โ
GET /wallet/request.jwt/:id(signed JWT with x5c) - User consents in wallet app
- Wallet responds โ
POST /wallet/direct_postwith vp_token - Poll result โ
GET /ui/presentations/:id
Or use the interactive demo: visit the landing page and click any verification button to generate a live QR code.
Available Credentials (27)¶
Age Gate โ eu.europa.ec.av.1¶
| Type | Format | Claims |
|---|---|---|
age_over_13 |
mso_mdoc | age_over_13 |
age_over_14 |
mso_mdoc | age_over_14 |
age_over_15 |
mso_mdoc | age_over_15 |
age_over_16 |
mso_mdoc | age_over_16 |
age_over_18 |
mso_mdoc | age_over_18 |
age_over_21 |
mso_mdoc | age_over_21 |
age_over_18_sdjwt |
dc+sd-jwt | age_over_18 |
age_over_16_sdjwt |
dc+sd-jwt | age_over_16 |
age_over_14_sdjwt |
dc+sd-jwt | age_over_14 |
PID Age Gate (Test Mode) โ eu.europa.ec.eudi.pid.1¶
| Type | Format | Claims |
|---|---|---|
pid_age_over_13 |
mso_mdoc | age_over_13 |
pid_age_over_14 |
mso_mdoc | age_over_14 |
pid_age_over_15 |
mso_mdoc | age_over_15 |
pid_age_over_16 |
mso_mdoc | age_over_16 |
pid_age_over_18 |
mso_mdoc | age_over_18 |
pid_age_over_21 |
mso_mdoc | age_over_21 |
PID โ Person Identification Data¶
| Type | Format | Claims |
|---|---|---|
pid_name |
mso_mdoc | family_name, given_name |
pid_full |
mso_mdoc | family_name, given_name, birth_date, age_over_18, nationality |
pid_address |
mso_mdoc | family_name, given_name, resident_street, resident_city, resident_postal_code, resident_country |
Healthcare โ EHIC (European Health Insurance Card)¶
| Type | Format | Claims |
|---|---|---|
ehic |
dc+sd-jwt | personal_administrative_number, institution_id, institution_name, institution_country, expiry_date |
ehic_with_pid |
dc+sd-jwt | personal_administrative_number, institution_id, institution_name, institution_country, expiry_date, given_name, family_name |
EHIC credentials follow the DC4EU pilot specification (SD-JWT-VC, ES256). The European Commission's ESSPASS initiative (Q3 2026) will further standardize digital EHIC issuance and verification.
Demo Scenarios โ hashID Verticals¶
| Type | Use Case | Claims |
|---|---|---|
demo_social_media |
Social Media Age Gate | age_over_13, 14, 15, 16 |
demo_age_restricted |
Alcohol / Gambling | age_over_18, 21 |
demo_kyc_light |
KYC Light | family_name, given_name, birth_date, nationality |
demo_payment_auth |
Payment Authorization | family_name, given_name, age_over_18 |
demo_doc_signing |
Document Signing | family_name, given_name, birth_date, nationality |
demo_passwordless |
Passwordless Login | family_name, given_name |
demo_messenger |
Messenger Access | age_over_16 |
About hashID¶
hashID is a European privacy-first identity ecosystem. Self-financed, EU-hosted, 14 patents filed.
Core principle: deterministic verification, not probabilistic estimation. The verification result is a cryptographic yes/no โ no personal data is transmitted or stored.
"Best part is no part" โ zero server-side plaintext, zero data retention, zero compliance surface.
Contact¶
Stephan Bergmann Founder & CEO, Desteba Productions S.L. stephan@hashid.eu | hashid.eu Crevillent, Spain ๐ช๐ธ