Introduction
Hypersign OnChain KYC
Last updated
Hypersign OnChain KYC
Last updated
The user navigates to the dApp’s UI.
The dApp prompts the user to connect their wallet.
The user connects and provides their wallet address.
The dApp checks the Trusted Issuer’s Token contract (Hypersign KYC Token Contract) to verify if the user has already minted a ProofOfKYC Soulbound Token.
If not, the user initiates the on-chain KYC process through the Hypersign KYC widget:
The user completes a liveness check by providing video KYC and receives a PersonhoodCredential from the KYC server, which is stored in their data vault.
The user then proceeds with ID verification, receives a KYCCredential from the KYC server, and stores it in their data vault.
Next, the user begins with the on-chain ID minting.
User generates requested zero knowledge proofs (supported proofs) from their respective credentials
User then submit zk proofs to the issuer contracts and requests for respective KYC tokens (which is basically SBTs)
The Issuer contract verifies the zk proof and mints KYC token in user’s wallet address.
The user provides consent for data access to the dApp.
Upon receiving the user’s consent, the dApp calls the its smart contract to perform on-chain ID verification.
The smart contract queries the trusted Issuer’s KYC token contract to check if the wallet address has required KYC tokens. If found, the user is considered verified on-chain.
ZK proofs and OnChain ID are optional; if you prefer not to use OnChain ID, you can still verify a user's ID off-chain.
ZK proofs can be used independently in off-chain mode without requiring OnChain ID (token minting). It is not mandatory to use ZK proofs exclusively with OnChain ID. However, the reverse is not possible; OnChain ID requires ZK proofs.
Now, let's proceed with the integration: