zkKYC - Compliance Suite
Use Case
To reduce the development cost for the project side, the project can use zkKYC capability by simply accessing the link. Users can complete full KYC verification directly on the web/H5, reducing user churn by minimizing the need to navigate to another page.
zkMe-Widget KYC Process
Step 1: Enter the service authorization Widget page; the user confirms and goes to the next step
Step 2: E-mail verification login
Step 3: Verify the SBT to confirm that it is authenticated
Step 4: Depending on the KYC configuration of the project, determine whether the user needs to undergo different verification processes.
Interaction Instructions

Integration via NPM
You can refer to @zkmelabs/widget and please make sure to use the latest version.
Installation
Getting Started
Step 1. Import styles
Step 2. Create a new ZkMeWidget instance
ZkMeWidget instanceoptions.lv
VerificationLevel?
"zkKYC" or "MeID", default "zkKYC"
options.programNo
string?
If you have activated multiple programs running in parallel, please pay attention to this setting:
The param can be found in Dashboard and please make sure the program is enabled. The SDK will take the number of the first activated program as the default value if this parameter is not provided in the code.
options.theme
Theme?
"auto", "light" or "dark", default "auto".
options.locale
Language?
"en" or "zh-hk", default "en".
Step 3. Listen to the kycFinished widget events to detect when the user has completed the zkKYC process.
kycFinished widget events to detect when the user has completed the zkKYC process.Step 4. Launch the zkMe widget and it will be displayed in the center of your webpage.
Helper functions
verifyKycWithZkMeServices()
Before launching the widget, you should check the zkKYC status of the user and launch the widget when the check result is false.
appId
string
This parameter means the same thing as "mchNo"
userAccount
string
The userAccount info (such as wallet address, email, phone number, or unique identifier) must match the format of accounts returned by provider.getUserAccounts.
options.programNo
string?
If you have activated multiple programs running in parallel, please pay attention to this setting: The param can be found in Dashboard and please make sure the program is enabled. The SDK will take the number of the first activated program as the default value if this parameter is not provided in the code.
If the level of your Dashboard account is not Cross-Chain, then you can also query users' zkKYC status from zkMe Verify & Certify Smart Contract here.
How to Generate an Access Token with API_KEY
To use your API_KEY to obtain an accessToken, you will need to make a specific HTTP request. Here's how you can do it:
a. Endpoint: Send a POST request to the token exchange endpoint.
POST request to the token exchange endpoint.b. Request Body:
apiKey
True
string
The API_KEY provided by zkMe.
appId
True
string
A unique identifier (mchNo) to DApp provided by zkMe.
apiModePermission
True
number
0 - email login (Only support email login)
lv
True
number
1 - zkKYC 2 - MeID







