Proof-of-Address (zkPoA)
Offers privacy-first address verification through Zero-Knowledge Proofs, ensuring users meet jurisdictional requirements without exposing their full address details.
User Journey
Alice wants to access a platform that requires confirmation of her country of residence for compliance. With zkMe, she proves her actual residential address by scanning a recent bank statement, utility bill, lease agreement, or tax notice. The zkMe widget validates the document type, checks that it was issued within the last 90 days, and confirms her home jurisdiction without exposing plaintext details. After this one-time verification, she receives a Proof-of-Address credential in the form of a Soulbound Token (SBT) containing a zero-knowledge proof, which she can reuse across multiple services that require proof of living address while keeping her sensitive information private.
See It in Action
See how users can prove their location without sharing coordinates and generate a zkPoA credential in just a few simple steps.
Why zkMe zkPoA?
Privacy first: Validate user’s residential address with zero-knowledge proofs (ZKPs) without exposing or storing sensitive documents.
Reliable verification: Confirm address using trusted sources (e.g., utility bills, bank statements, tax notices) with built-in cryptographic assurance.
Compliance-ready: Satisfy global AML/KYC requirements for address verification, ensuring alignment with jurisdictional regulations.
Reusable within validity: Once issued, zkPoA credentials are reusable across multiple platforms for the entire duration of their validity, eliminating redundant verification steps.
Decentralized & Secure: Proofs are generated and verified without central storage of raw address data, eliminating the risk of leaks.
Seamless integration: Easily embed zkPoA into onboarding or transaction flows using our SDKs for instant, compliant address checks.
How It Works
The Zero-Knowledge Proof-of-Address (zkPoA) procedure verifies a user’s residential address without exposing sensitive personal data. It validates documents, checks recency, and confirms eligibility, all while preserving user privacy. Here’s a high-level overview of the procedure:
Define Verification Criteria:
Jurisdiction Policy: Define allowlists or denylists of countries/regions to enforce compliance.
Address Proof Requirements: Specify which document types are acceptable (e.g., utility bill, bank statement, lease agreement, tax notice).
User Document Verification & Data Extraction:
Authenticity Check: Confirm that the uploaded document is valid and untampered.
OCR Extraction: Extract key fields including full name, residential address (street, city, region, country), document type, and issue date.
Recency Validation: Check that the extracted issue date is within the last 90 days.
Identity Matching: Validate that the extracted name matches prior KYC records through secure hash comparison.
Address Validation: Confirm that the extracted address is properly formatted, mailable, and corresponds to a valid location.
(Optional) Location Cross-Check: Confirm that the user’s current GPS country matches the document’s country through Proof of Location programs.
Generate Random Number: The user's device generates a random number as part of the zkPoA process.
Zero-Knowledge Proof (ZKP) Protocol:
Commitment Phase: The user generates a cryptographic commitment. This commitment includes hashed information that encodes proof of address validity without revealing the raw address. 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, then sends the response back to the verifier.
Response Validation: The verifier checks the proof against the defined criteria, ensuring compliance without accessing plaintext details.
Verification Result: Based on the verification outcome, the verifier confirms the user's eligibility. If the verification is successful, the user is granted access to the next steps.
Pricing & Integration
From startups to scale-ups, our pricing and simple integration are built to support your growth. Drop us a line at [email protected] and let’s kick things off!
Last updated