Standards/smart-health-cards
SMART Health Cards
Overview
A SMART Health Card (SHC) is a digitally signed, verifiable health credential carried in a qr-code or stored in a digital wallet [1]. Technically it is a W3C Verifiable Credential packaged as a JSON Web Signature (JWS) whose payload wraps a HL7 FHIR Bundle (e.g. Patient + Immunization resources) [1, 2]. The JWS is signed with ES256 (ECDSA P-256 / SHA-256), Deflate-compressed, and — for QR display — converted into a numeric string prefixed with shc:/ [1].
SHC was developed by the Vaccination Credential Initiative (VCI), a public-private coalition launched in January 2021, and is maintained through the smart-on-fhir/health-cards project and HL7 FHIR implementation guides [3, 2]. It was the dominant verifiable-vaccination format in the United States and Canada during the pandemic [3].
History
14 January 2021 — VCI launches. The Vaccination Credential Initiative was announced by MITRE alongside the CARIN Alliance, Cerner, Change Healthcare, The Commons Project Foundation, Epic Systems, Evernorth, Mayo Clinic, Microsoft, Oracle, Safe Health, and Salesforce, to enable privacy-preserving, verifiable proof of COVID-19 vaccination [3]. VCI adopted the SMART Health Card framework as its technical basis [3].
2021 — Specification published. The SHC framework was published at spec.smarthealth.cards and developed openly in the smart-on-fhir/health-cards repository, building on the SMART on FHIR ecosystem [1, 2].
June 2021 — State adoption. The California Department of Public Health launched a Digital COVID-19 Vaccine Record portal issuing SMART Health Cards [3]. Numerous US states, several Canadian provinces, and other jurisdictions followed.
2021 onwards — Trust infrastructure. VCI established an Issuer Directory and the CommonTrust Network, listing clinical and government organizations authorized to issue valid cards [3].
2022–2024 — HL7 standardization. The framework continued to be formalized through HL7 FHIR implementation guides (the SMART Health Cards and Links IG) [4].
Technical specification
- FHIR Bundle — the clinical content (e.g.
Patient,Immunization), as JSON. - VC payload — wraps the bundle:
{"iss": "<issuer URL>", "nbf": <timestamp>, "vc": {"type": ["https://smarthealth.cards#health-card"], "credentialSubject": {"fhirBundle": {...}}}}[1]. - JWS — the payload is minified, Deflate-compressed (
zip: "DEF"), and signed with ES256. JWS header carriesalg: "ES256",zip: "DEF", andkid(base64url SHA-256 JWK Thumbprint of the signing key) [1]. - QR encoding — the compact JWS is converted to a numeric string: each character
cbecomes the two digitsOrd(c) − 45. The result is prefixed withshc:/and rendered as a QR. Example:shc:/56762909524320603460292437404460...[1].
Chunking (legacy). A JWS longer than 1195 characters could be split into chunks of ≤1191 chars, each its own QR with a shc:/<index>/<total>/... prefix; multi-chunk QR is now deprecated in favor of single QR (V22 or lower) [1].
Trust / key resolution. Verifiers fetch the issuer's public keys from <iss>/.well-known/jwks.json over CORS-enabled HTTPS. Keys are EC ("kty": "EC", "use": "sig", "alg": "ES256"), optionally with an x5c certificate chain for PKI-based trust. The kid selects the key [1].
Revocation. A card may carry a rid (revocation identifier); issuers publish revoked rids per key at /.well-known/crl/<kid>.json, with optional time-scoping [1].
Use cases
- Proof of COVID-19 vaccination and testing — the original and dominant use, issued by health systems, pharmacies, and public-health agencies [3].
- Patient-held portable records — stored in Apple Health / Apple Wallet and Google's equivalents, allowing offline verification [3].
- Venue and travel entry — scanned by verifier apps (e.g. SMART Health Card readers) for event or boundary checks [3].
- General clinical credentials — because the payload is a generic FHIR Bundle, the framework extends beyond COVID to other immunizations and lab results [1, 4].
Implementations
- Specification / reference (canonical) — smart-on-fhir/health-cards — 275★, TypeScript, last active 2023. The framework spec, implementation guide, and supporting tooling [2].
- HL7 FHIR IG — the SMART Health Cards and Links Implementation Guide profiles the FHIR Bundle and resources used in cards [4].
- VCI Issuer Directory / CommonTrust Network — the trust registry of approved issuers [3].
- Wallets / OS support — Apple integrated SHC into Apple Health/Wallet; numerous open-source verifier and walkthrough projects exist (e.g. dvci/health-cards-walkthrough) [6].
Comparison
| SMART Health Cards | eu-dcc | divoc | icao-vds-nc | |
|---|---|---|---|---|
| Data model | W3C VC as JWS over FHIR Bundle | CWT / CBOR + COSE | W3C VC (JSON-LD / JSON-JWT) | signed JSON/CBOR seal |
| Encoding | numeric shc:/, Deflate |
Base45 + ZLIB, HC1: |
JSON-LD in QR | signed JSON in QR/Data Matrix |
| Signature | ES256 | ES256 / PS256 | issuer-controlled (RSA/Ed25519) | ES256 / ES384 |
| Trust | issuer /.well-known/jwks.json, VCI directory |
EU Gateway, CSCA/DSC PKI | per-country, issuer keys | eMRTD CSCA PKI |
| Governance | VCI consortium / HL7 | EU eHealth Network → WHO | eGov Foundation (India) | ICAO |
| Geography | US, Canada, others | EU + 51 countries | India, Sri Lanka, Philippines | ICAO member states |
SHC's defining choice is to build on JWS + FHIR — leveraging the existing JSON-Web ecosystem and HL7's clinical data model — and to resolve trust via web-published JWKS endpoints, in contrast to EU DCC's CBOR/COSE/Base45 pipeline and state-PKI Gateway [1, 2].
Fun facts
The shc:/ numeric trick exists to maximize QR density. Rather than Base64URL, SHC re-encodes each JWS character as a pair of digits (Ord(c)−45), letting the QR use its efficient numeric mode — squeezing a full signed credential into one scannable code [1].
Status
The framework remains published and maintained through the smart-on-fhir/health-cards project and HL7 FHIR implementation guides, with the spec generalized beyond COVID toward broader verifiable clinical credentials [1, 4]. Active issuance dropped sharply after the pandemic, but the standard persists as a recognized way to carry FHIR-based verifiable health data in a QR, and cards already stored in patient wallets remain verifiable as long as issuer JWKS endpoints stay online [1, 3].
Sources
- SMART Health Cards Framework — spec.smarthealth.cards
- Health Cards Framework implementation guide — smart-on-fhir
- SMART Health Card — Wikipedia (VCI launch, members, California)
- Health Cards Specification — SMART Health Cards and Links IG, HL7
- smart-on-fhir/health-cards — GitHub
- SMART Health Cards walkthrough — dvci/health-cards-walkthrough
- About VCI — vci.org
- How verifiable vaccination records with SMART Health Cards work — Medium
Deployments
No country reports mention this standard by name.