0.3.4 • Published 2 years ago

@nexeraid/kyc-sdk v0.3.4

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

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