@nexeraid/kyc-sdk
v0.3.4
Published
Nexera ID KYC Verification SDK
Downloads
93
Readme
NexeraID KYC SDK
- NexeraID KYC SDK, written in TypeScript.
How to install
$ npm install @nexeraid/kyc-sdk
First steps
- You need to provide NexeraID Team with the Web App domain and a Webhook
- You need to provide NexeraID with the required rules
- NexeraID Team will provide to you with an API_KEY and a RULE_ID
How to use
Server app
/*
* Get access token
* This has to be done from secured server, to avoid leaking API_KEY
*/
const response = await fetch('https://api.nexera.id/kyc/auth/access-token', {
body: JSON.stringify({ publicAddress }),
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${API_KEY}`
},
method: 'POST'
})
const { accessToken } = await response.json()
/*
* Handle data from webhook
* At the defined webhook endpoint, each time an user shares data with you, data with format
* {
* address: '0x0000000000000000000000000000000000000000',
* data: {
* ...
* }
* }
*/
// Assuming you have this data in some variable named input
const response = await fetch('https://api.nexera.id/compliance/rules/execute', {
body: JSON.stringify({
inputData: input.data,
address: input.address,
policyId: `${POLICY_ID}`,
}),
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${API_KEY}`
},
method: 'POST'
})
/*
* Validation result structure could vary according the required rules defined, but it will
* have the necessary flags that determine whether or not the user meets the requirements.
*/
const validationResult = await response.json()
Web app
// instantiate KycClient
// onSignPersonalData is optional, since can be defined as shown below
const KYC_CLIENT = new KycClient({ onSignPersonalData: async (data: string) => {
return await signMessageAsync({ message: data });
}});
// configure kyc flow callbacks
// mandatory onSignPersonalData callback
KYC_CLIENT.onSignPersonalData(async (data: string) => {
// make user sign data with wallet, and return result
return await signMessageAsync({ message: data })
})
// optional onZkCallback (mandatory if zk flow will be used)
KYC_CLIENT.onZkCallback(async (data) => {
// make wallet user send transaction, using data from kyc app, and returning transaction hash
const tx = await signer.data.sendTransaction(data);
return tx.hash;
});
// build signing message, needed to safety store kyc in user's browser
const signingMessage = KycClient.buildSignatureMessage(address)
const signature = await signMessageAsync({ message: signingMessage })
// here you need to get access token from your server, which will call our backend as we explained in the Server app section
const accessToken = getAccessTokenFromYourServer(address)
// finally, once accessToken, signingMessage and signature ready, KycClient flow can be triggered
KYC_CLIENT.startVerification({
accessToken: accessToken,
signature: signature,
signingMessage: signingMessage,
});
KYC_CLIENT.startManagement({
accessToken: accessToken,
signature: signature,
signingMessage: signingMessage,
});
Keep Updated
For the latest changes, see the CHANGELOG.