0.3.4 • Published 2 years ago
@nexeraid/kyc-sdk v0.3.4
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.
0.2.27
2 years ago
0.2.26
2 years ago
0.2.25
2 years ago
0.2.24
2 years ago
0.2.23
2 years ago
0.2.22
2 years ago
0.2.21
2 years ago
0.2.20
2 years ago
0.2.19
2 years ago
0.2.18
2 years ago
0.2.17
2 years ago
0.2.16
2 years ago
0.2.15
2 years ago
0.2.14
2 years ago
0.2.13
2 years ago
0.2.12
2 years ago
0.2.11
2 years ago
0.2.10
2 years ago
0.3.0
2 years ago
0.2.28
2 years ago
0.2.7
2 years ago
0.2.6
2 years ago
0.2.9
2 years ago
0.2.8
2 years ago
0.3.2
2 years ago
0.3.1
2 years ago
0.3.4
2 years ago
0.3.3
2 years ago
0.2.5
2 years ago
0.2.4
2 years ago
0.2.3
2 years ago
0.2.2
2 years ago
0.2.1
2 years ago
0.2.0
2 years ago
0.1.10
2 years ago
0.1.9
2 years ago
0.1.8
2 years ago
0.1.7
2 years ago
0.1.6
2 years ago
0.1.5
2 years ago
0.1.4
2 years ago