This part will help you understand the fundamental steps to integrate NexaID Network-JS-SDK and complete a basic data verification process through your application.Documentation Index
Fetch the complete documentation index at: https://nexaid.hashkey.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Before you begin, ensure you have the following:- A valid Template ID (obtainable from the NexaID Developer Hub)
- The SDK installed. (see Installation Guide for instructions)
Key Features
1. SDK Initialization
Connect to specified blockchain networks. Function Name:init
Parameter Description:
| Parameter Name | Type | Required | Description |
|---|---|---|---|
provider | Provider | Yes | Web3 provider, can be: - An instance of ethers.providers.JsonRpcProvider - An instance of ethers.providers.Web3Provider - An instance of ethers.providers.JsonRpcSigner |
chainId | number | Yes | The blockchain network ID to connect to. Must be one of the supported chain IDs |
2. Task Submission
Submit tasks to require an attestation from the network. Function Name:submitTask
Parameter Description:
| Parameter Name | Type | Required | Description |
|---|---|---|---|
templateId | string | Yes | Template ID |
address | string | Yes | User address |
3. Attestation Execution
Execute the zkTLS protocol with the network attestor node, and return an attestation issued by the attestor node. Function Name:attest
Parameter Description:
| Parameter Name | Type | Required | Description |
|---|---|---|---|
templateId | string | Yes | Template ID |
address | string | Yes | User address |
taskId | string | Yes | Task ID |
taskTxHash | string | Yes | Task transaction hash |
taskAttestors | string[] | Yes | Array of attestor IDs |
additionParams | string | No | Extended parameters in JSON format. Developers can include custom business parameters (e.g., user IDs, session info),These parameters will be returned with the final results const additionParams = JSON.stringify({ YOUR_CUSTOM_KEY: "YOUR_CUSTOM_VALUE" }) |
attMode | string | No | proxytls or mpctls,default is proxytls. you can refer to Overview section for more details. |
attConditions | Array | No | By default, the zkTLS SDK returns plaintext verification results. You can also define verification logics for hashed results or condition-based results. Example hashed result: const attConditions = [[{ field: "YOUR_CUSTOM_DATA_FIELD", op: "SHA256" }]]. Example condition result: const attConditions = [[{ field: "YOUR_CUSTOM_DATA_FIELD", op: ">", value: "YOUR_CUSTOM_TARGET_DATA_VALUE" }]]. For the full explanation, see zkTLS Operations. |
4. Verify & Poll Task Result
Verify and poll task results. The function is additionally provided for any use case that requires to double check the validity of a created attestation through NexaID contracts. Function Name:verifyAndPollTaskResult
Parameter Description:
| Parameter Name | Type | Required | Description |
|---|---|---|---|
taskId | string | Yes | The ID of the task to poll |
reportTxHash | string | No | Report transaction hash (optional) |
intervalMs | number | No | Polling interval in milliseconds, default is 2000 |
timeoutMs | number | No | Total timeout duration in milliseconds, default is 1 minute |
5. Balance Withdrawal
Retrieve the fees for unsettled tasks. Function Name:withdrawBalance
Parameter Description:
| Parameter Name | Type | Required | Description |
|---|---|---|---|
tokenSymbol | TokenSymbol | No | Token type to withdraw, default is ETH |
limit | number | No | Withdrawal amount limit, default is 100 |
6. List of Supported Chains
Property Name:supportedChainIds
Currently supports HashKey Chain Testnet, additional chains will be added in upcoming releases.
