Proof-of-Citizenship (zkPoC)

zkPoC helps Web3 businesses comply with regulations while ensuring decentralization, privacy and security. By ZKPs, it verifies identities without revealing sensitive data, ensuring minimal intrusion.


Privacy first: Protect users' privacy with advanced cryptography technologies.

Decentralized: No fixed or controlled role in zkMe zkKYC by a single entity.

Fulfill compliance requirement: Meet global KYC requirements while minimizing intrusion.

  • Reusable zkKYC: Users only need to be verified once to access multiple partnered services.

  • Full security: No personally identifiable information is stored in a central server, eliminating the risk of data leaks.

  • Seamless integration: Easily integrate your entire verification flow within seconds using our Web and Mobile SDK.


The Zero-Knowledge Proof-of-Citizenship (zkPoC) procedure verifies a user's citizenship without revealing sensitive personal data. It involves biometric checks, face matching, and document verification to ensure the user's authenticity and eliminate fraudulent activities. Here’s a detailed procedure:

  1. Define Verification Criteria:

    • Age Verification: Specify the age range that qualifies for the verification process.

    • Citizenship Coordinates: Define the specific area or country within which you want to verify the user's citizenship.

    • Documents Required: List of acceptable documents for citizenship proof (e.g., passport, national ID).

  2. User Identity Verification:

    • Identity Document Check: Verify the authenticity of the submitted Identity documents.

    • Liveness Checks: Use the user's device camera to perform a liveness check to ensure the user is a real person and not a bot.

    • Face Match: Compare user faces to ensure the user’s face matches the photo on their submitted documents.

  3. Generate Random Numbers: The user's device generates a random number as part of the zkPoC process.

  4. Zero-Knowledge Proof (ZKP) Protocol:

    • Commitment Phase: The user generates a cryptographic commitment. This commitment includes hashed information about their citizenship without revealing actual coordinates or sensitive data. And the commitment is securely stored on the user's device, ensuring it cannot be tampered with.

    • Challenge Phase: The verifier (the service or entity performing the verification) selects a random challenge to ensure the user's commitment is valid and sent to the user's device for processing.

    • Response Generation: The user’s device processes the challenge by combining it with the previously generated random number and the commitment and sent back to the verifier.

    • Response Validation: The verifier checks the validity of the response and whether it satisfies the verification criteria, without gaining knowledge of the user's detailed personal information.

  5. Verification Result: Based on the verification outcome, the verifier confirms the user's citizenship. If the verification is successful, the user is granted access to the next steps.

Last updated