1.1.337 • Published 2 days ago

@nexeraid/identity-sdk v1.1.337

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

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

Initialize client
  // instantiate IdentityClient
const IDENTITY_CLIENT = new IdentityClient({
    env:"prod"
});

// or

// default value is prod
const IDENTITY_CLIENT = new IdentityClient();

// configure identity flow callbacks

// mandatory onSignPersonalData callback
IDENTITY_CLIENT.onSignMessage(async (data: string) => {
    // make user sign data with wallet, and return result
    return await signMessageAsync({message: data})
})

// (optional) Sign a transaction sended to the client, required to retunr the txHash
IDENTITY_CLIENT.onSendTransaction(async (data) => {
  return await walletClient?.sendTransaction({
    account: data.accountAddress as Address,
    to: data.to as Address,
    data: data.data as Address,
    value: data.value ? parseEther(data.value) : parseEther("0"),
  });
});

// build signing message, needed to safety store identity in user's browser, and address should be in lowercase, to allow compatibility cross applications
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)

// Initialize iframe (hidden) with ky-app and starts listening for events
await IDENTITY_CLIENT.init({
      accessToken: kycAuth.accessToken,
      signature: kycAuth.signature,
      signingMessage: kycAuth.signingMessage,
})
On Chain Verification Integration
const isAllowed = await IDENTITY_CLIENT.isUserAllowedForEntrypoint(userAddress);
IDENTITY_CLIENT.onVerification((isAllowed) => {
  setVerified(isAllowed);
});
Third party integrations

Make sure to run the init flow before this

getStoredCredentials

const credentials = await IDENTITY_CLIENT.getStoredCredentials(
  { type: "getCredentials", data: undefined }, // data will be able to add filters later
);

Note: the following functions follow the iden3comm standard https://0xpolygonid.github.io/tutorials/wallet/wallet-sdk/polygonid-sdk/iden3comm/overview/

auth handles AuthorizationRequestMessage : generates a zk-request for the given inputs and automatically calls verify endpoint with zk-proof generated with the wallet

import type { AuthorizationRequestMessage } from "@nexeraprotocol/nexera-id-schemas";
const authRequest: AuthorizationRequestMessage = {...}
await IDENTITY_CLIENT.polygonIdRequest(
  { type: "auth", authRequest}
);

credentialRequest ZeroKnowledgeProofRequest: generates a zk-request for the given inputs

import type {ZKPRequest} from "@nexeraprotocol/nexera-id-schemas";

const zkpRequest: ZKPRequest = {...}
await IDENTITY_CLIENT.polygonIdRequest(
    {type: "zkp", zkpRequest: zkpRequest}
);

credentialOffer handles CredentialOffer object in string format: adds a crdential to the polygon wallet (sent from a third party)

const authRequest:string="{...}"
await IDENTITY_CLIENT.polygonIdRequest(
  { type: "credentialOffer", credentialOfferRequest }
);
Display Verify/management iframe

Make sure to run the init flow before this

// finally, once accessToken, signingMessage and signature ready, IdentityClient flow can be triggered
IDENTITY_CLIENT.startVerification();

IDENTITY_CLIENT.startManagement();

Keep Updated

For the latest changes, see the CHANGELOG.

1.1.341-dev

2 days ago

1.1.337

4 days ago

1.1.339-dev

3 days ago

1.1.337-staging

4 days ago

1.1.340-dev

3 days ago

1.1.336-dev

4 days ago

1.1.338-dev

3 days ago

1.1.337-dev

4 days ago

1.1.335

6 days ago

1.1.335-staging

6 days ago

1.1.334-dev

7 days ago

1.1.335-dev

6 days ago

1.1.334-staging

7 days ago

1.1.333

16 days ago

1.1.332-dev

17 days ago

1.1.333-dev

16 days ago

1.1.333-staging

16 days ago

1.1.331-dev

17 days ago

1.1.331

17 days ago

1.1.330

17 days ago

1.1.331-staging

17 days ago

1.1.330-dev

18 days ago

1.1.330-staging

17 days ago

1.1.329

28 days ago

1.1.329-staging

29 days ago

1.1.329-dev

1 month ago

1.1.328-dev

1 month ago

1.1.327-dev

1 month ago

1.1.325-dev

1 month ago

1.1.326

1 month ago

1.1.326-dev

1 month ago

1.1.326-staging

1 month ago

1.1.324-staging

1 month ago

1.1.324-dev

1 month ago

1.1.323-dev

1 month ago

1.1.320-dev

1 month ago

1.1.321-dev

1 month ago

1.1.322

1 month ago

1.1.322-staging

1 month ago

1.1.322-dev

1 month ago

1.1.319-dev

1 month ago

1.1.317-dev

1 month ago

1.1.318-dev

1 month ago

1.1.314-dev

1 month ago

1.1.315-dev

1 month ago

1.1.316-dev

1 month ago

1.1.313-dev

1 month ago

1.1.312-dev

1 month ago

1.1.311-dev

1 month ago

1.1.310-dev

1 month ago

1.1.308-dev

2 months ago

1.1.309-dev

2 months ago

1.1.308

2 months ago

1.1.308-staging

2 months ago

1.1.307-dev

2 months ago

1.1.306-staging

2 months ago

1.1.305-staging

2 months ago

1.1.306

2 months ago

1.1.306-dev

2 months ago

1.1.305-dev

2 months ago

1.1.304-dev

2 months ago

1.1.303-dev

2 months ago

1.1.301-dev

2 months ago

1.1.302-dev

2 months ago

1.1.300-dev

2 months ago

1.1.299-dev

2 months ago

1.1.295-dev

2 months ago

1.1.294-dev

2 months ago

1.1.298-dev

2 months ago

1.1.293-dev

2 months ago

1.1.292

2 months ago

1.1.297-dev

2 months ago

1.1.292-staging

2 months ago

1.1.296-dev

2 months ago

1.1.291-dev

2 months ago

1.1.292-dev

2 months ago

1.1.290-dev

2 months ago

1.1.290

2 months ago

1.1.290-staging

2 months ago

1.1.289-dev

2 months ago

1.1.289-staging

2 months ago

1.1.288-dev

2 months ago

1.1.286-dev

2 months ago

1.1.287-staging

2 months ago

1.1.287-dev

2 months ago

1.1.287

2 months ago

1.1.285-staging

2 months ago

1.1.285-dev

2 months ago

1.1.283-dev

2 months ago

1.1.284-dev

2 months ago

1.1.280-dev

2 months ago

1.1.282-dev

2 months ago

1.1.281-dev

2 months ago

1.1.279-dev

2 months ago

1.1.278-staging

2 months ago

1.1.278-dev

2 months ago

1.1.277-dev

2 months ago

1.1.278

2 months ago

1.1.275-dev

3 months ago

1.1.276-dev

3 months ago

1.1.274-dev

3 months ago

1.1.272-dev

3 months ago

1.1.273-dev

3 months ago

1.1.270-dev

3 months ago

1.1.271-dev

3 months ago

1.1.269-staging

3 months ago

1.1.269

3 months ago

1.1.269-dev

3 months ago

1.1.268-dev

3 months ago

1.1.266-staging

3 months ago

1.1.267-dev

3 months ago

1.1.268-staging

3 months ago

1.1.265-dev

3 months ago

1.1.266-dev

3 months ago

1.1.264-dev

3 months ago

1.1.250

3 months ago

1.1.263-dev

3 months ago

1.1.262-dev

3 months ago

1.1.258-dev

3 months ago

1.1.259-dev

3 months ago

1.1.260-dev

3 months ago

1.1.261-dev

3 months ago

1.1.257-dev

3 months ago

1.1.256-dev

3 months ago

1.1.255-dev

3 months ago

1.1.254-dev

3 months ago

1.1.252-dev

3 months ago

1.1.253-dev

3 months ago

1.1.249

3 months ago

1.1.250-staging

3 months ago

1.1.251-dev

3 months ago

1.1.249-staging

3 months ago

1.1.250-dev

3 months ago

1.1.249-dev

3 months ago

1.1.247

3 months ago

1.1.247-dev

3 months ago

1.1.247-staging

3 months ago

1.1.248-dev

3 months ago

1.1.246-dev

3 months ago

1.1.243

3 months ago

1.1.245

3 months ago

1.1.244

3 months ago

1.1.244-dev

3 months ago

1.1.244-staging

3 months ago

1.1.245-dev

3 months ago

1.1.245-staging

3 months ago

1.1.243-staging

3 months ago

1.1.240-staging

3 months ago

1.1.236-dev

3 months ago

1.1.242-dev

3 months ago

1.1.240-dev

3 months ago

1.1.243-dev

3 months ago

1.1.239-dev

3 months ago

1.1.238-staging

3 months ago

1.1.238-dev

3 months ago

1.1.236-staging

3 months ago

1.1.241-dev

3 months ago

1.1.237-dev

3 months ago

1.1.231-dev

3 months ago

1.1.232-dev

3 months ago

1.1.235-dev

3 months ago

1.1.233-dev

3 months ago

1.1.234-dev

3 months ago

1.1.230-dev

3 months ago

1.1.229-dev

3 months ago

1.1.228

4 months ago

1.1.228-dev

4 months ago

1.1.228-staging

4 months ago

1.1.227-dev

4 months ago

1.1.227-staging

4 months ago

1.1.225-dev

4 months ago

1.1.226-dev

4 months ago

1.1.223

4 months ago

1.1.222

4 months ago

1.1.222-staging

4 months ago

1.1.224-dev

4 months ago

1.1.223-staging

4 months ago

1.1.223-dev

4 months ago

1.1.222-dev

4 months ago

1.1.221-dev

4 months ago

1.1.221-staging

4 months ago

1.1.220-dev

4 months ago

1.1.218-dev

4 months ago

1.1.219-dev

4 months ago

1.1.220-staging

4 months ago

1.1.217-dev

4 months ago

1.1.216-staging

4 months ago

1.1.216-dev

4 months ago

1.1.214-dev

4 months ago

1.1.215-dev

4 months ago

1.1.213

4 months ago

1.1.213-staging

4 months ago

1.1.213-dev

4 months ago

1.1.212

4 months ago

1.1.210-staging

4 months ago

1.1.210

4 months ago

1.1.212-dev

4 months ago

1.1.211-dev

4 months ago

1.1.212-staging

4 months ago

1.1.208-dev

5 months ago

1.1.209-dev

5 months ago

1.1.210-dev

5 months ago

1.1.207-dev

5 months ago

1.1.206

5 months ago

1.1.206-dev

5 months ago

1.1.205

5 months ago

1.1.204

5 months ago

1.1.203

5 months ago

1.1.202

5 months ago

1.1.201

5 months ago

1.1.200

5 months ago

1.1.199

5 months ago

1.1.198

5 months ago

1.1.197

5 months ago

1.1.196

5 months ago

1.1.195

5 months ago

1.1.194

5 months ago

1.1.193

5 months ago

1.1.192

5 months ago

1.1.191

5 months ago

1.1.190

5 months ago

1.1.189

5 months ago

1.1.188

5 months ago

1.1.187

5 months ago

1.1.186

5 months ago

1.1.185

5 months ago

1.1.184

5 months ago

1.1.183

5 months ago

1.1.182

5 months ago

1.1.181

5 months ago

1.1.180

5 months ago

1.1.179

5 months ago

1.1.178

5 months ago

1.1.177

5 months ago

1.1.176

5 months ago

1.1.175

5 months ago

1.1.174

5 months ago

1.1.173

5 months ago

1.1.172

5 months ago

1.1.171

5 months ago

1.1.170

6 months ago

1.1.169

6 months ago

1.1.168

6 months ago

1.1.167

6 months ago

1.1.166

6 months ago

1.1.165

6 months ago

1.1.164

6 months ago

1.1.163

6 months ago

1.1.162

6 months ago

1.1.161

6 months ago

1.1.160

6 months ago

1.1.159

6 months ago

1.1.158

6 months ago

1.1.157

6 months ago

1.1.156

6 months ago

1.1.155

6 months ago

1.1.154

6 months ago

1.1.153

6 months ago

1.1.152

6 months ago

1.1.151

6 months ago

1.1.150

6 months ago

1.1.149

6 months ago

1.1.148

6 months ago

1.1.147

6 months ago

1.1.146

6 months ago

1.1.145

6 months ago

1.1.144

6 months ago

1.1.143

6 months ago

1.1.142

6 months ago

1.1.141

6 months ago

1.1.140

6 months ago

1.1.139

6 months ago

1.1.138

6 months ago

1.1.137

6 months ago

1.1.136

6 months ago

1.1.135

6 months ago

1.1.134

6 months ago

1.1.133

7 months ago

1.1.132

7 months ago

1.1.131

7 months ago

1.1.130

7 months ago

1.1.129

7 months ago

1.1.128

7 months ago

1.1.127

7 months ago

1.1.126

7 months ago

1.1.125

7 months ago

1.1.124

7 months ago

1.1.123

7 months ago

1.1.122

7 months ago

1.1.121

7 months ago

1.1.120

7 months ago

1.1.119

7 months ago

1.1.118

7 months ago

1.1.117

7 months ago

1.1.116

7 months ago

1.1.115

7 months ago

1.1.114

7 months ago

1.1.113

7 months ago

1.1.112

7 months ago

1.1.111

7 months ago

1.1.110

7 months ago

1.1.109

7 months ago

1.1.108

7 months ago

1.1.107

7 months ago

1.1.106

7 months ago

1.1.105

7 months ago

1.1.104

7 months ago

1.1.103

7 months ago

1.1.102

7 months ago

1.1.101

7 months ago

1.1.100

7 months ago

1.1.99

7 months ago

1.1.98

7 months ago

1.1.97

7 months ago

1.1.96

7 months ago

1.1.95

7 months ago

1.1.94

7 months ago

1.1.93

7 months ago

1.1.92

7 months ago

1.1.91

7 months ago

1.1.90

7 months ago

1.1.89

7 months ago

1.1.88

7 months ago

1.1.87

7 months ago

1.1.86

7 months ago

1.1.85

7 months ago

1.1.84

7 months ago

1.1.83

7 months ago

1.1.82

7 months ago

1.1.81

8 months ago

1.1.80

8 months ago

1.1.79

8 months ago

1.1.78

8 months ago

1.1.77

8 months ago

1.1.76

8 months ago

1.1.75

8 months ago

1.1.74

8 months ago

1.1.73

8 months ago

1.1.72

8 months ago

1.1.71

8 months ago

1.1.70

8 months ago

1.1.69

8 months ago

1.1.68

8 months ago

1.1.67

8 months ago

1.1.66

8 months ago

1.1.65

8 months ago

1.1.64

8 months ago

1.1.63

8 months ago

1.1.62

8 months ago

1.1.61

8 months ago

1.1.60

8 months ago

1.1.59

8 months ago

1.1.58

8 months ago

1.1.57

8 months ago

1.1.56

8 months ago

1.1.55

8 months ago

1.1.54

8 months ago

1.1.53

8 months ago

1.1.52

8 months ago

1.1.51

8 months ago

1.1.50

8 months ago

1.1.49

8 months ago

1.1.48

8 months ago

1.1.47

8 months ago

1.1.46

8 months ago

1.1.45

8 months ago

1.1.44

8 months ago

1.1.43

8 months ago

1.1.42

8 months ago

1.1.41

8 months ago

1.1.40

8 months ago

1.1.39

8 months ago

1.1.38

8 months ago

1.1.37

8 months ago

1.1.36

8 months ago

1.1.35

8 months ago

1.1.34

8 months ago

1.1.33

8 months ago

1.1.32

8 months ago

1.1.31

8 months ago

1.1.29

8 months ago

1.1.28

8 months ago

1.1.27

8 months ago

1.1.26

9 months ago

1.1.25

9 months ago

1.1.24

9 months ago

1.1.23

9 months ago

1.1.22

9 months ago

1.1.21

9 months ago

1.1.19

9 months ago

1.1.18

9 months ago

1.1.17

9 months ago

1.1.16

9 months ago

1.1.15

9 months ago

1.1.14

9 months ago

1.1.13

9 months ago

1.1.12

9 months ago

1.1.11

9 months ago

1.1.10

9 months ago

1.1.9

9 months ago

1.1.8

9 months ago

1.1.7

9 months ago

1.1.6

9 months ago

1.1.5

9 months ago

1.1.4

9 months ago

1.1.3

9 months ago

1.1.2

9 months ago

1.1.1

9 months ago

1.1.0

9 months ago