Mobile competition licence (mCL)
mCL in this project means the mobile competition licence of the Emirates Motorsports Organization (EMSO): the licence a driver or rider holds to compete, with its grade and annual medical. It is not a commercial licence.
Status: project-defined demo profile. The container is standard (ISO/IEC 18013-5); the document type and the EMSO namespace are defined by this project with Accredify for the demo, and are not an official EMSO or UAE specification.
What is on it
Section titled “What is on it”| Field | Name to request | Example |
|---|---|---|
| Given names / family name | given_name, family_name |
Abdul / Hakim |
| Date of birth | birth_date |
1991-05-13 |
| Photo | portrait |
(image) |
| Licence number | document_number |
EMSO-2026-00125 |
| Issue / expiry dates | issue_date, expiry_date |
2026-09-23 / 2026-12-31 |
| Grade | licence_grade |
International Grade A Circuit (ITA) |
| Medical valid until | medical_expiry |
2026-12-31 |
| Seasons competed | competition_seasons |
3 |
Person fields are in org.iso.23220.1; the licence fields in ae.emso.competitor_licence.1.
Document type: ae.emso.competitor_licence.1.mCL.
Typical checks
Section titled “Typical checks”- Valid medical (a marshal at the paddock gate):
portrait, names,medical_expiry, shown as one big Valid / Expired. - Licence check: identity, number, dates, grade, medical, seasons.
EmsoLicence.VALID_MEDICALEmsoLicence.LICENCE_CHECKWho is who
Section titled “Who is who”The credential belongs to the competitor; EMSO is the issuer. A presentation proves the holder has the phone the licence was issued to, and the photo lets the marshal confirm it is the same person.
Standards and references
Section titled “Standards and references”- ISO/IEC 18013-5 container and mechanisms (mdoc architecture).
- ISO/IEC 23220-2 core elements for the person (
org.iso.23220.1). - OpenID4VCI (pre-authorised code flow) for issuance by Accredify Nexus (UAT).
Doctype and namespaces
Section titled “Doctype and namespaces”| docType | ae.emso.competitor_licence.1.mCL |
| namespace | org.iso.23220.1 (who the holder is) |
| namespace | ae.emso.competitor_licence.1 (the licence itself) |
Definition: demo/brand-hakim/.../EmsoLicence.kt.
The organisation and the individual
Section titled “The organisation and the individual”The credential is about the individual competitor: the person’s identity elements, portrait and
device-bound key are theirs. The licensed organisation appears as the issuer: EMSO is the
issuing_authority, and the document is signed by the issuer’s Document Signer under the Accredify
Nexus IACA. Presenter authority is established the standard way: the presentation is signed with the
device key bound in the MSO (only the holder’s phone can do that), and the verifier face-matches the
disclosed portrait. There is no delegation model: an official cannot present on a competitor’s
behalf.
Attributes
Section titled “Attributes”Namespace org.iso.23220.1:
| Identifier | Meaning | CBOR | Required | Encoding | Example |
|---|---|---|---|---|---|
family_name, given_name |
names | tstr | yes | "Hakim", "Abdul" |
|
birth_date |
date of birth | full-date | yes | tag 1004 |
1991-05-13 |
portrait |
photo | bstr | yes | JPEG | (bytes) |
portrait_capture_date |
tdate | no | |||
document_number |
licence number | tstr | no | "EMSO-2026-00125" |
|
issue_date, expiry_date |
licence validity | full-date | yes | 2026-09-23, 2026-12-31 |
|
age_over_18 |
bool | no | true |
||
issuing_authority |
tstr | no | "Emirates Motorsports Organization" |
Namespace ae.emso.competitor_licence.1:
| Identifier | Meaning | CBOR | Required | Encoding | Example |
|---|---|---|---|---|---|
licence_grade |
competition grade | tstr | no | free text as issued | "International Grade A Circuit (ITA)" |
medical_expiry |
annual medical valid until | full-date | no | tag 1004 |
2026-12-31 |
competition_seasons |
seasons competed | uint | no | 3 |
All values are issued by Nexus and signed; the wallet’s expiredBadge on medical_expiry (“Medical
expired”) is derived at display time from the signed date.
Card field mapping
Section titled “Card field mapping”| On the card | Source | Kind |
|---|---|---|
| EMSO logo; COMPETITOR LICENCE / رخصة متسابق / UNITED ARAB EMIRATES | fixed | decorative |
| Portrait | portrait |
data |
| LICENCE NO. | document_number |
data |
| NAME | given_name + family_name |
data |
| GRADE | licence_grade |
data |
| DATE OF BIRTH, EXPIRES | birth_date, expiry_date |
derived format |
| MEDICAL VALID UNTIL | medical_expiry |
derived format |
| Signature | holder signature asset | decorative |
Issuance and provisioning
Section titled “Issuance and provisioning”Accredify Nexus (UAT) issues the mCL over OpenID4VCI: the holder scans the offer QR from the Nexus
UI; the wallet redeems the pre-authorised code (no transaction code), proves the device key, and stores
the signed mdoc. Nexus accepts Bearer tokens only, so the SDK’s DpopPolicy.ALLOW_BEARER_FALLBACK
applies (a documented interop gap, to be removed when Nexus supports DPoP).
Issuer authentication and trust
Section titled “Issuer authentication and trust”Chain: Nexus DS → Accredify Nexus IACA (UAT). The demo VICAL lists that IACA with the mCL, mDL and Photo ID doctypes; verifiers may also pin the IACA PEM directly.
Device binding, presentation, validity, revocation
Section titled “Device binding, presentation, validity, revocation”Standard (see mdoc architecture). Validity is the MSO window; revocation works when Nexus includes a status reference in the MSO (then the verifier shows Revoked and “Last established”); a revocation round trip has not yet been exercised end to end.
Selective-disclosure requests
Section titled “Selective-disclosure requests”EmsoLicence.VALID_MEDICAL // portrait, names, issuing_authority + medical_expiry → one big Valid / ExpiredEmsoLicence.LICENCE_CHECK // identity, number, dates + grade, medical, seasons → detailsExample (explanatory JSON, not CBOR)
Section titled “Example (explanatory JSON, not CBOR)”{ "docType": "ae.emso.competitor_licence.1.mCL", "org.iso.23220.1": { "family_name": "Hakim", "given_name": "Abdul", "birth_date": "1991-05-13", "document_number": "EMSO-2026-00125", "issue_date": "2026-09-23", "expiry_date": "2026-12-31", "issuing_authority": "Emirates Motorsports Organization", "portrait": "<JPEG bytes>" }, "ae.emso.competitor_licence.1": { "licence_grade": "International Grade A Circuit (ITA)", "medical_expiry": "2026-12-31", "competition_seasons": 3 }}Interoperability and open points
Section titled “Interoperability and open points”- Only verifiers that know this doctype can request it (the Verify app does; the web SDK can with a custom request). Other wallets will store it as an unknown document type.
- Issuer
displayname/logo in Nexus metadata and DPoP support are open asks to Accredify.