Claim Sets

Request specific identity data from mDL holders using predefined or custom claim sets.

When creating a verification session, you specify which claims (data fields) you want to request from the mDL holder. Following the principle of data minimization, you should only request the claims necessary for your use case.

Predefined Claim Sets

The SDK provides predefined claim sets for common verification scenarios. These make it easy to request the right data without remembering individual claim names.

Age Verification

AgeVerification.ktkotlin
Loading...

Identity Verification

IdentityVerification.ktkotlin
Loading...

Driving Privileges

DrivingPrivileges.ktkotlin
Loading...

Custom Claims

For specific requirements, you can request individual claims by name:

CustomClaims.ktkotlin
Loading...

Available Claims (ISO 18013-5)

The following claims are defined by the ISO 18013-5 standard and may be available in mDL credentials:

Identity Claims

ClaimTypeDescription
family_nameStringFamily name / last name
given_nameStringGiven name / first name
birth_dateStringDate of birth (YYYY-MM-DD)
portraitByteArrayFacial photo (JPEG data)

Age Verification Claims

ClaimTypeDescription
age_over_18BooleanIs holder 18 years or older
age_over_21BooleanIs holder 21 years or older

Document Claims

ClaimTypeDescription
document_numberStringLicense/document number
issue_dateStringDocument issue date
expiry_dateStringDocument expiration date
issuing_authorityStringIssuing authority name

Address Claims

ClaimTypeDescription
resident_addressStringStreet address
resident_cityStringCity
resident_stateStringState/province code
resident_postal_codeStringZIP/postal code
resident_countryStringCountry code

Driving Claims

ClaimTypeDescription
driving_privilegesListLicense classes and restrictions

Accessing Claim Values

After successful verification, access the claim values through the MDLClaims object:

AccessingClaims.ktkotlin
Loading...

Generic Access

GenericAccess.ktkotlin
Loading...

Best Practices

Data Minimization: Only request the claims you actually need. Requesting unnecessary data may reduce holder trust and could have privacy implications.

✅ Do

  • Request only claims necessary for your use case
  • Use age verification claims instead of full birth date when possible
  • Explain to users why you need each piece of data
  • Handle missing claims gracefully (holders may decline)

❌ Don't

  • Request full identity when you only need age verification
  • Store sensitive claims longer than necessary
  • Request address data unless legally required

Handling Declined Claims

Holders may decline to share certain claims. Always check if a claim value is present before using it:

HandlingDeclined.ktkotlin
Loading...