Aadhaar
What is Aadhaar?
Aadhaar is India’s national digital identity system maintained by UIDAI (Unique Identification Authority of India).
It is a 12-digit unique identity number issued to residents of India, based on their biometric and demographic data.
Aadhaar serves as a foundational ID that can be used to verify identity across financial, telecom, and government services.
Verification is done via UIDAI APIs or Aadhaar-linked services, such as QR codes.
UIDAI does not sign the entire Aadhaar number and only the last 4 digits. As this does not have enough entropy to create a nullifer we also use other fields such as the name, date of birth, and gender. This also means that person can change their Aadhaar and be considered as a "new" person in the protocol. Although we have chosen fields that are hard to change edge cases do pop up such as people changing their names due to marriage, divorce or other legal corrections.
Registering with Aadhaar on Self
Self allows users to prove identity using Aadhaar in a privacy-preserving way. There are two common methods:
- Using the mAadhaar app
- By using the UIDAI website
- Go to the UIDAI website
Working with attributes in Aadhaar
Since Aadhaar uses a different format than passports, keep in mind that some of the disclosed attribute formats can be different.
GenericDiscloseOutputV2
GenericDiscloseOutputV2
forbiddenCountriesListPacked
uint256[4]
Packed bytes of all countries into an array 4 uint256
numbers.
issuingState
string
Varies**
name
string[]
First value contains the entire name (and it may vary)
idNumber
string
Last 4 letters of the aadhaar number.
nationality
string
'IND'
dateOfBirth
string
DD-MM-YYYY
gender
string
'M' | 'T' | 'F'
expiryDate
string
'UNAVAILBLE'
olderThan
uint256
0 - 99
ofac
bool[3]
Each value is true if ofac check is enabled.
GenericDiscloseOutput
GenericDiscloseOutput
forbiddenCountriesListPacked
string[]
Packed bytes list of forbidden countries
issuingState
string
Varies
name
string
Full name. Can vary as well
idNumber
string
Last 4 digits of aadhaar
nationality
string
'IND'
dateOfBirth
string
YYYYMMDD
gender
string
'M' | 'T' | 'F'
expiryDate
string
'UNAVAILABLE'
minimumAge
string
'00'-'99'
ofac
bool[]
True if in ofac
Last updated