0.3.4 • Published 9 months ago

@nexeraid/kyc-sdk v0.3.4

Weekly downloads
-
License
ISC
Repository
-
Last release
9 months 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

10 months ago

0.2.26

10 months ago

0.2.25

10 months ago

0.2.24

10 months ago

0.2.23

10 months ago

0.2.22

10 months ago

0.2.21

10 months ago

0.2.20

10 months ago

0.2.19

10 months ago

0.2.18

10 months ago

0.2.17

10 months ago

0.2.16

10 months ago

0.2.15

10 months ago

0.2.14

10 months ago

0.2.13

10 months ago

0.2.12

10 months ago

0.2.11

10 months ago

0.2.10

10 months ago

0.3.0

10 months ago

0.2.28

10 months ago

0.2.7

10 months ago

0.2.6

10 months ago

0.2.9

10 months ago

0.2.8

10 months ago

0.3.2

9 months ago

0.3.1

10 months ago

0.3.4

9 months ago

0.3.3

9 months ago

0.2.5

11 months ago

0.2.4

11 months ago

0.2.3

11 months ago

0.2.2

11 months ago

0.2.1

11 months ago

0.2.0

11 months ago

0.1.10

11 months ago

0.1.9

11 months ago

0.1.8

11 months ago

0.1.7

11 months ago

0.1.6

11 months ago

0.1.5

12 months ago

0.1.4

12 months ago