Skip to content

VDS Issuance

VDS issuance is handled by the BioSeal Issuance Service from id3 Technologies — a managed platform that generates cryptographically signed Visible Digital Seals from government-issued documents.

Official Document (Passport / National ID)Issuance Station1Document ReadingMRZ OCR: gn, fn, dob, nat, doc, expiryNFC (ICAO 9303): PA + AA, DG1 → MRZ, DG2 → photo2Biometric Verificationid3 Face SDK: liveness + 1:1 match (live vs DG2, threshold 0.80)3Submit to IDToken Auth ServerPOST /admin/issuance with raw chip proof (SOD, AA, DG1, DG2)Server verifies, then forwards to BioSeal (internal, server-to-server)4Output: QR Code displayed on screenUser scans with IDToken mobile app

BioSeal provides:

CapabilityDescription
VDS constructionPayload encoding (MessagePack), header assembly, manifest compliance
HSM-backed signingECDSA P-256 signatures via HSM (PKCS#11), key lifecycle management
Encoding & outputBase45/Base64 encoding, QR/Aztec code generation
Certificate managementSigning certificate provisioning, rotation, and revocation
Audit trailIssuance logs (tokenId, timestamp, operator, certificate used)

BioSeal is an internal-only service — its API is not publicly exposed. Only the IDToken Auth Server holds BioSeal credentials, and all issuance requests must pass through the server’s document origin verification before BioSeal signs.

The IDToken VDS carries two types of biometric data:

FieldFormatPurposeSize
photoWEBP lossy (200x200px)Visual display of the holder’s face~900 bytes
faceid3 face template (FormatOwner 003F)1:1 biometric matching by the mobile app140 bytes (fixed)

The photo is shown on the IDToken card and consent screens. The face template is a mathematical representation of facial features used for matching — it is never displayed (Visibility: NEVER).

FieldKeyTypeDescription
Given namegnStringFirst name (max 39 chars)
Family namefnStringLast name (max 39 chars)
Date of birthdobDateISO format
NationalitynatString3-letter ISO code (C40 encoded)
Document numberdocStringPassport/ID number
Token IDtidStringUUID (unique per VDS)
ExpiryexpTimestampIssuance + 2 years
PhotophotoBinaryPortrait image (WEBP)
Face templatefaceBinaryid3 format, 140 bytes fixed

The trust level assigned to each VDS depends on the issuance method:

LevelIssuance MethodAssuranceeIDAS Equivalent
1 — Self-issuedSelfie + document photo (no NFC)Low
2 — Operator-verifiedNFC read + operator presentSubstantialeIDAS Substantial
3 — NFC + AA + biometricNFC with Active Authentication + 1:1 matchHigheIDAS High

The trust level is stored in the VDS and propagated as a JWT claim after authentication. Relying parties can require a minimum trust level.

PREFIX (not encoded — ISO/IEC 15459-2)
IAC = "VDS" (Otentik Scheme Operator)
CIN = "EU" (id3 Technologies)
DCI = "A" (IDToken data construct)
HEADER (18-21 bytes — signed)
Marker: 0xDE
Version: 3
IAC (C40): "VDS"
Cert reference: CA ref + cert ID
Manifest ID: 0x0A0001
Timestamp: Unix epoch UTC
Payload length: variable
PAYLOAD (MessagePack encoded — signed)
gn, fn, dob, nat, doc, tid, exp, photo, face
SIGNATURE (64 bytes — ECDSA P-256, raw r|s)
signed_data = SHA-256(header || SHA-256(payload))