๐ŸชชzkKYC (GIP-1)

A KYC Guardian is an entity or service responsible for verifying the identity of users through government-issued documents (ids, passports, driving licenses, etc) and they work with a strictly defined set of personal data. The role of the KYC Guardian is to ensure the authenticity of the identity of the user.

Personal Details

The following table list the personal details contained in a Galactica zkKYC. These need to be collected and validated by the KYC Guardian.

KeyDescriptionTechnical details

Surname

Surname as in passport/id

Latin letters only (UTF-8)

Forename

Forename as in passport/id

Latin letters only (UTF-8)

Middle Names

List of middle names as in passport/id

Can be empty, Latin letters only (UTF-8)

Year of birth

Year in date of birth as on passport/id

Each formatted as uint16. We chose this format instead of a Unix timestamp because

  1. There would be multiple timestamps for a single day (problem for uniqueness of DApp specific HumanID)

  2. Easier to calculate age (no need to consider leap years and DST)

Month of birth

Month in date of birth as on passport/id

uint8 from 1 for January to 12 for December

Day of month of birth

Day in date of birth as on passport/id

uint8 in the range 1 to 31.

Country of citizenship

Issuer country of passport/id

Formatted as Alpha-3 code from https://www.iban.com/country-codes

Verification Level

Confidence the provider puts into the KYC. Similar to KYC levels on exchanges.

0 - no kyc

1 - kyc

2 - qualified investor

Expiration date

Expiration date of the passport/id used. Checked in ZK validation.

Formatted as Unix Timestamp uint

Street + Number

Residential address

UTF-8 string

Postcode

Residential address

UTF-8 string

Town

Residential address

UTF-8 string

Region

Residential address

Formatted as ISO 3166-2 code from https://www.iso.org/obp/ui/#search/code/

Country

Residential address

Formatted as Alpha-3 code from https://www.iban.com/country-codes

Passport ID

Passport ID for generating HumanID (also supports national ID number and driver's license number)

UTF-8 string

Passport ID for Human ID

Galactica features the concept of the DApp specific HumanID. It assigns each human a unique ID in the context of a DApp. For example, it can be used for human centric DAO voting and reputation. The HumanID is derived in a zero-knowledge proof from personal fields in the zkKYC (name, birthday, passport ID) to get as close as possible to a unique ID.

This means that users need to provide and prove their passport ID to Guardians. Other identity documents must not be used for the passport ID field. This restriction prevents users from obtaining multiple different HumanIDs by just using different identity documents at different Guardians.

Last updated