Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@nexeraid/identity-sdk

Package Overview
Dependencies
Maintainers
1
Versions
651
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@nexeraid/identity-sdk

Nexera ID Identity Verification SDK

  • 1.1.6
  • npm
  • Socket score

Version published
Weekly downloads
848
increased by17.78%
Maintainers
1
Weekly downloads
 
Created
Source

NexeraID Identity SDK

  • NexeraID Identity SDK, written in TypeScript.

How to install

$ npm install @nexeraid/identity-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 IdentityClient
  // onSignPersonalData is optional, since can be defined as shown below
  const IDENTITY_CLIENT = new IdentityClient({ onSignPersonalData: async (data: string) => {
    return await signMessageAsync({ message: data });
  }});

  // configure identity flow callbacks

  // mandatory onSignPersonalData callback
  IDENTITY_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)
  IDENTITY_CLIENT.onZkCallback(async (data) => {
    // make wallet user send transaction, using data from identity app, and returning transaction hash
    const tx = await signer.data.sendTransaction(data);
    return tx.hash;
  });

  // build signing message, needed to safety store identity in user's browser
  const signingMessage = IdentityClient.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, IdentityClient flow can be triggered
  IDENTITY_CLIENT.startVerification({
    accessToken: accessToken,
    signature: signature,
    signingMessage: signingMessage,
  });

  IDENTITY_CLIENT.startManagement({
    accessToken: accessToken,
    signature: signature,
    signingMessage: signingMessage,
  });

Keep Updated

For the latest changes, see the CHANGELOG.

FAQs

Package last updated on 14 Aug 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc