zkMe Protocol Components

zkMe Architecture v2

Clientside

zkMe App: The MPC-based SSI wallet

The zkMe App is a secure, decentralized SSI wallet utilizing MPC cryptography, enabling users to store and manage anonymized identity information, including VCs from trusted entities. This allows Identity or attribute proof without disclosing any personal data. MPC distributes private keys across multiple devices or nodes, reducing unauthorized access risk.

The app features OCR and facial recognition for mobile credential verification. OCR extracts ID document data, while facial recognition confirms user-document match. These enhance security and limit data sharing. Users are also screened against criminal, terrorist, or PEP lists to identify potential risks.

With zkMe, the Holder's verification proofs (in form of Soulbound Token or SBT) are minted from the SSI wallet, accessible via the zkMe App or Widget, onto the Holder’s asset wallet. The asset wallet being a digital wallet that Holders use to interact with web3 dApps, typically self-custodial, granting users full control over assets and private keys. If a Holder participates in multiple chain ecosystems, an SBT delegated copy is minted for each. This ensures a seamless Holder dApp user experience.

zkMe employs Zero-Knowledge Succinct Non-Interactive Argument of Knowledge (zk-SNARK) that run directly on the user to generate anonymized Zero-Knowledge Proofs (ZKPs) representing the Holder's identity in order to not disclose sensitive data. Only anonymized credentials are presented to Verifiers, ensuring privacy and security.

-> Get started: Mobile Client


Serverside

zkMe Widget / SDK

The zkMe widget is provided by the zkMe JavaScript SDK, allowing developers to integrate credential verification features into their applications. It offers libraries and APIs for easy interaction with the zk-credential network.

The zkMe Widget is a JS component and the first offering within the zkMe SDK. It is designed for desktop browser use, enabling seamless user verification from within the user interface. It provides all zkMe App functionalities via mobile QR codes, simplifying secure user interaction with web3 services. zkMe SDK offers a user-friendly verification method. Verifiers can efficiently validate presented proofs (SBTs in the Holder's asset wallet) through zkMe web API, smart contracts, or prompt users for new proofs via a Pop-Up window.

-> Get started: Integration Guide

zkMe Dashboard

The zkMe Dashboard is a versatile dashboard tailored for a dApp’s user eligibility check needs. Verifiers can customize preset "Verification Profiles", defining specific business eligibility requirements, such as age or geographic restrictions and checking . Equipped with a comprehensive toolset, zkMe Biz streamlines KYC processes for developers, offering customizable verification criteria, analytics, and reporting. With configurable API keys, developers can seamlessly integrate their web3 dApps with the zkMe Credential Network, ensuring compliance and a smooth user experience.

-> Get started: Set Up Your zkMe Dashboard

zkMe OpenAPI

The zkMe OpenAPI serves a critical function by enabling developers to seamlessly integrate advanced credential verification processes into their applications. It facilitates secure user interactions and compliance with privacy standards through its comprehensive suite of RESTful services. It includes detailed API documentation for both KYC (Know Your Customer) and KYT (Know Your Transaction) procedures, offering a wide array of endpoints for tasks such as checking API status, compiling user lists, accessing KYC information, managing address labels, and conducting in-depth risk assessments and transaction analyses. Essential for ensuring secure and private user verification, the OpenAPI supports developers with necessary tools for authentication, including the use of merchant numbers and API keys, and outlines the protocol for request structure and rate limitations to maintain system integrity and performance.

-> Get started: zkMe API


On-chain

zkMe zkVault

The zkMe zkVault is a Verifiable Data Registry on IPFS-based decentralized storage; providing a distributed architecture to prevent single points of failure and unauthorized access. Single ZKPs within a Holder's SBT are stored, ensuring proof reusability and tamper resistance. Additionally, (in cases required by law) additional threshold encrypted is utilized for raw identity document encryption, requiring multiple parties to jointly encrypt and decrypt data, enhancing security. The original identity documentation is stored employing 3-out-of-3 threshold cryptography with split private keys for maximum privacy while maintaining regulatory compliance.

-> Learn more: zkMe zkVault

zkMe MeID Data Registry

zkMe Smart Contracts

To facilitate decentralized verification, zkMe developed a suite of smart contracts, enabling the protocol and Verifiers to process verifications autonomously. zkMe Mint and Delegate smart contracts mint the original and delegate copies of the DID onto the Holder's wallets. zkMe Verify and Certify smart contracts allow Verifiers to interact with the zkMe network and request minting of a special SBT copy for legal data access requirements if necessary. All functionalities available through the zkMe SCs are also available on zkMe APIs for non-web3 native Verifiers.

  • ZKMEMINT

  • ZKMEDELEGATE

  • ZKMEVerifyUpgradeable

-> Learn more: zkMe Roadmap

Last updated