๐Ÿ‘ฉโ€๐Ÿ’ป
Galactica Network Dev Documentation
  • ๐Ÿ“™Galactica Network Overview
  • ๐ŸงฌGalactica Concepts
    • โ›“๏ธBlockchain Base
    • ๐ŸงพZero-Knowledge KYC
      • Holder Commitment
      • DApp specific HumanID
      • Verification SBT
      • KYC Guardian
      • Galactica Investigation Module
      • Privacy Precautions
    • ๐ŸŒŸReputation
    • ๐Ÿ›‚Contingent Transactions
  • โš™๏ธGalactica Components
    • ๐ŸฆŠGalactica Snap for Metamask
    • ๐ŸŒณRoot Contracts
  • ๐Ÿ—๏ธBuilding a Galactica DApp
    • Example DApps
      • Compliant ERC20
      • Cypherbook
      • Compliant DEX
      • Sybil resistant airdrop
    • Front End
      • Guided Example
        • Connect to Galactica Snap
        • Prepare ZK proof generation
        • Generate and submit ZK proof
        • Handle Verification SBTs
      • Galactica Snap JSON-RPC API
    • Smart Contracts
    • Custom Zero Knowledge Disclosures
  • ๐Ÿ“Guardian Guide
    • Setup to become a Guardian
    • Create and issue ZK certificate
      • ๐ŸชชzkKYC (GIP-1)
      • Arbitrary ZK data certificate (GIP-2)
      • X/Twitter ZK certificate (GIP-3)
      • REY X/Twitter Score ZK certificate (GIP-4)
      • Decentralised Exchange (DEX) ZK certificate (GIP-5)
      • Centralised Exchange (CEX) ZK certificate (GIP-6)
      • Telegram ZK certificate (GIP-7)
  • โ›๏ธValidator Guide
    • ๐Ÿ”งInstallation
    • ๐Ÿ”—Become a Validator
    • ๐Ÿš€galacticad CLI Usage Cheat Sheet
    • ๐Ÿ”’Security Best Practices
  • ๐ŸงชTestNet: Reticulum
    • Release Notes
  • ๐ŸงชDevNet: Andromeda
    • Release Notes
  • ๐Ÿ“ŽChangelog
Powered by GitBook
On this page
  • Personal Details
  • Salt for Human ID

Was this helpful?

  1. Guardian Guide
  2. Create and issue ZK certificate

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.

Key
Description
Technical 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. 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

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

Country

Residential address

Salt for Human ID

PreviousCreate and issue ZK certificateNextArbitrary ZK data certificate (GIP-2)

Last updated 8 months ago

Was this helpful?

There would be multiple timestamps for a single day (problem for uniqueness of )

Formatted as Alpha-3 code from

Formatted as ISO 3166-2 code from

Formatted as Alpha-3 code from

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. To prevent guessing the HumanID, it contains a salt. The hash of this salt is the Holder Commitment. It is registered on-chain in the to limit a user to one salt.

See for more details.

๐Ÿ“
๐Ÿชช
DApp specific HumanID
https://www.iban.com/country-codes
https://www.iso.org/obp/ui/#search/code/
https://www.iban.com/country-codes
HumanIDSaltRegistry
Registration of the salt for the HumanID