Skip to content

Start typing to search the documentation.

Aadhaar

On this page

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.

Registering with Aadhaar on Self

Self allows users to prove identity using Aadhaar in a privacy-preserving way. Registration uses the unmasked e-Aadhaar PDF, which you can obtain in two ways:

  1. Using the Aadhaar app

    1. Download the official Aadhaar app from UIDAI (Android/iOS).

    2. Sign in and tap Download Aadhaar.

      The Download Aadhaar action in the UIDAI Aadhaar app

      Download Aadhaar

    3. Choose Unmasked Aadhaar and download the PDF.

      The Masked / Unmasked Aadhaar selector with Unmasked Aadhaar selected

      Select "Unmasked Aadhaar"

    4. Upload that PDF in the Self app to register.

      1. Self processes the PDF to derive a unique nullifier (an identifier) that allows users to prove uniqueness without sharing their Aadhaar number directly.

  2. By using the UIDAI website

    1. Go to the UIDAI website

    2. Enter your Aadhaar number, and verify yourself with an OTP to get a PDF. Do not select the masked Aadhaar option, as the download must be unmasked.

    3. Upload that PDF in the Self app to register.

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

Field TypeFormatting / Value
forbiddenCountriesListPacked
uint256[4]Packed bytes of all countries into an array 4 uint256 numbers.
issuingState
stringVaries**
name
string[]First value contains the entire name (and it may vary)
idNumber
stringLast 4 letters of the aadhaar number.
nationality
string'IND'
dateOfBirth
stringDD-MM-YYYY
gender
string'M' | 'T' | 'F'
expiryDate
string'UNAVAILBLE'
olderThan
uint2560 - 99
ofac
bool[3]Each value is true if ofac check is enabled.

GenericDiscloseOutput

FieldTypeFormatting / Value
forbiddenCountriesListPacked
string[]Packed bytes list of forbidden countries
issuingState
stringVaries
name
stringFull name. Can vary as well
idNumber
stringLast 4 digits of aadhaar
nationality
string'IND'
dateOfBirth
stringYYYYMMDD
gender
string'M' | 'T' | 'F'
expiryDate
string'UNAVAILABLE'
minimumAge
string'00'-'99'
ofac
bool[]True if in ofac
Was this page helpful?