GKP1 specification — QR-verifiable credential.
The GKP1 format encodes an offline-verifiable credential in a payload compact enough to fit in a printable QR code. It draws on the European Digital Covid Certificate format and on IETF work on compact cryptographic credentials.
Section 1 — Transformation chain
A GKP1 credential is produced by the following chain:
Structured data
→ canonical CBOR (RFC 8949)
→ COSE_Sign1 ES256 (RFC 8152, NIST P-256 ECDSA key)
→ zlib compression (RFC 1950)
→ Base45 encoding (RFC 9285)
→ prefix with the literal string "GKP1:"
→ QR-code renderingThe prefix GKP1: lets a universal reader identify the format unambiguously.
Section 2 — CBOR payload
The signed CBOR structure is a COSE_Sign1 whose payload carries:
iss: issuer identifier.sub: subject identifier (person, entity, object).iat: issuance timestamp.exp: expiration timestamp (optional).claims: claims dictionary, following the issuer-defined schema.
Section 3 — Signature algorithm
The signature is a COSE_Sign1 ES256 using an ECDSA key on the NIST P-256 curve. The COSE protected header carries the key identifier (kid) that lets the verifier resolve the matching public key from its local store.
Section 4 — Size and constraints
The size target is to fit in a QR code of version 22 or lower with M error correction, about 1000 alphanumeric characters after Base45. A shorter credential is preferred.
For longer payloads, the specification defines a GKP1-CHAIN mode that allows splitting a payload across several successive QR codes.
Section 5 — Offline verification
The verifier (for example Gankpo Reader) keeps a local store of trusted issuer public keys. It can verify a GKP1 signature with no network call. Updates to the key store are performed during online synchronisation phases.
Section 6 — Revocation
The revocation of a GKP1 credential is carried by a revocation list published by the issuer and periodically synchronised by the verifier. The detailed specification of this mechanism is on the revocation model page.
Section 7 — Interoperability
The GKP1 format is not an international standard. It is designed to coexist with formats such as ISO 18013-5 and W3C Verifiable Credentials, without constituting a compatibility or certification claim.
