You can claim your Galxe Passport here: https://app.galxe.com/passport

Type

“Galxe Passport v2” credential type is registered onchain as a custom primitive type with type ID 10000.

Type IDNameDescriptionDefinitionExample
10000Galxe Passport v2Galxe Passport v2birthdate:uint<64>; gender:prop<8,c,1>; id_country:prop<16,c,1>; id_class:prop<8,c,1>; issue_date:uint<64>; first_verification_date:uint<64>; last_selfie_date:uint<64>; total_sefie_verified:uint<8>Your Personal Identifiable Information (PII) after creating your passport here

Galxe Passport v2 type definition contains the following fields:

  • birthdate:uint<64>: User’s birthdate in unix timestamp.
  • gender:prop<8,c,1>: User’s gender, according to their government issued ID.
    • Custom hash function mapping:
      • Male = 1
      • Female = 2
      • X = 3 (undermined from government ID)
  • id_country:prop<16,c,1>: Country of ID issurance.
    • Custom hash function mapping:
      • ISO-3166-1 Alpha 2 format (2-letter country code) = ISO-3166-1 numeric code
  • id_class:prop<8,c,1>:
    • Custom hash function mapping:
      • CertificateOfCitizenship = 1
      • ConsularID = 2
      • DriversLicense = 3
      • ColombiaForeignerID = 4
      • CanadaHealthInsuranceCard = 5
      • IdentificationCard = 6
      • RussiaInternalPassport = 7
      • AustraliaKeypassID = 8
      • SingaporeLongTermVisitPass = 9
      • MunicipalID = 10
      • JapanMyNumberCard = 11
      • PhilippinesNationalBureauOfInvestigationCertificate = 12
      • SingaporeNationalResidencyID = 13
      • PhilippinesOverseasForeignWorkerCard = 14
      • ResidencePermit = 15
      • IndiaPermanentAccountNumberCard = 16
      • PhilippinesPostalIdentificationCard = 17
      • Passport = 18
      • PassportCard = 19
      • PermanentResidenceCard = 20
      • PhilippinesSocialSecuritySystemCard = 21
      • USRefugeeTravelDocument = 22
      • CanadaTribalID = 23
      • PhilippinesUnitedMultiPurposeID = 24
      • VoterID = 25
      • ImmigrationVisa = 26
      • WorkPermit = 27
    • More information can be found here: https://docs.withpersona.com/reference/government-id-verifications#government-id-types
  • issue_date:uint<64>: Government ID issurance date in unix timestamp.
  • first_verification_date:uint<64>: Unix timestamp of user’s first Galxe Passport verification date.
  • last_selfie_date:uint<64>: Unix timestamp of user’s latest Galxe Passport Selfie verification date.
  • total_sefie_verified:uint<8>: Count of user’s successful Selfie Verifications.

Type Artifacts can be found here: https://ipfs.io/ipfs/QmZ4UghikEohVtpJaiAQorBeHNPFZ9vq5TfnE8jTAyLU9k

Issurance Workflow

Once user passes KYC verification with Persona, our KYC provider, upon user request, Galxe backend will:

  1. Retrieve all necessary personal identifiable information to issue a Galxe Passport credential
  2. Generate credential using pre-defined type
  3. Append the following information as attachments:
    • first_name
    • last_name
    • id_number: user’s government ID number
    • passport_version: v2.0 for now
    • persona_id: unique identifier that serves as the only mapping of user’s wallet to KYC data stored in Persona
    • nationality: if provided by user’s government ID
  4. Galxe-managed issuer sign the credential and its attachments, then add both signatures to the credential
  5. Return the signed credential back to user, and user will encrypt it with their own passport.
  6. User store the encrypted file in their preferred storage. For now, user will use Galxe Vault for storage with no charge

Example signed credential

{
  "header": {
    "version": "1",
    "type": "385359061158288630711736738957938254712651867393",
    "context": "934334657093539700167251502022510933841607943105",
    "id": "1052489016591343323470769874470399378961347062869"
  },
  "body": {
    "birthdate": "<omitted>",
    "gender": {
      "str": "M",
      "value": "1"
    },
    "id_country": {
      "str": "US",
      "value": "840"
    },
    "id_class": {
      "str": "dl",
      "value": "3"
    },
    "issue_date": "<omitted>",
    "first_verification_date": "<omitted>",
    "last_selfie_date": "<omitted>",
    "total_sefie_verified": "1"
  },
  "signatures": [
    {
      "metadata": {
        "verification_stack": 1,
        "signature_id": "174358...<omitted>",
        "expired_at": "<omitted>",
        "identity_commitment": "2025432...<omitted>",
        "issuer_id": "278006...<omitted>",
        "chain_id": "97",
        "public_key": "Gtrdr...<omitted>"
      },
      "signature": "1+PIQA...<omitted>",
      "attachmentsSignature": "yU8eI8...<omitted>"
    }
  ],
  "attachments": {
    "last_name": "Doe",
    "id_number": "ID-123456",
    "passport_version": "v2.0",
    "first_name": "John"
  }
}