@keyringnetwork/keyring-connect-sdk 2.3.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.d.ts CHANGED
@@ -3,6 +3,8 @@ import { ExtensionSDKConfig, ExtensionState } from "./types";
3
3
  * Class for interacting with the Keyring Connect browser extension
4
4
  */
5
5
  export declare class KeyringConnect {
6
+ private static readonly EXTENSION_TIMEOUT;
7
+ private static readonly EXTENSION_ID;
6
8
  private static keyringConnectUrl;
7
9
  /**
8
10
  * Tries to launch the Keyring Connect Extension with the provided configuration.
@@ -32,7 +34,10 @@ export declare class KeyringConnect {
32
34
  private static validateClientConfig;
33
35
  private static validateCredentialConfig;
34
36
  private static validateProofConfig;
35
- private static validateDatasource;
36
37
  private static validateConfigData;
37
38
  private static convertToLaunchConfig;
39
+ private static isChromeRuntimeAvailable;
40
+ private static sendChromeMessage;
41
+ private static launchExtensionViaChromeAPI;
42
+ private static getExtensionStateViaChromeAPI;
38
43
  }
package/dist/main.js CHANGED
@@ -8,14 +8,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
11
  Object.defineProperty(exports, "__esModule", { value: true });
15
12
  exports.KeyringConnect = void 0;
16
- const contracts_abi_1 = require("@keyringnetwork/contracts-abi");
17
- const constants_1 = require("./constants");
18
- const datasources_json_1 = __importDefault(require("./constants/datasources.json"));
19
13
  const types_1 = require("./types");
20
14
  /**
21
15
  * Class for interacting with the Keyring Connect browser extension
@@ -42,8 +36,7 @@ class KeyringConnect {
42
36
  }
43
37
  const validatedConfig = this.validateConfigData(data);
44
38
  const launchConfig = this.convertToLaunchConfig(validatedConfig);
45
- console.log("launching keyring connect");
46
- window.postMessage({ type: types_1.EVENT_ACTIONS.LAUNCH_KEYRING_CONNECT, data: launchConfig }, "*");
39
+ yield this.launchExtensionViaChromeAPI(launchConfig);
47
40
  });
48
41
  }
49
42
  /**
@@ -67,16 +60,10 @@ class KeyringConnect {
67
60
  static getExtensionState() {
68
61
  return __awaiter(this, void 0, void 0, function* () {
69
62
  const timeout = new Promise((resolve) => {
70
- setTimeout(() => resolve(null), constants_1.EXTENSION_TIMEOUT);
71
- });
72
- const extensionResponse = new Promise((resolve) => {
73
- window.addEventListener("message", (event) => {
74
- if (event.data.type === types_1.EVENT_ACTIONS.KEYRING_CONNECT_STATUS) {
75
- resolve(event.data.data);
76
- }
77
- });
78
- window.postMessage({ type: types_1.EVENT_ACTIONS.GET_STATUS }, "*");
63
+ setTimeout(() => resolve(null), this.EXTENSION_TIMEOUT);
79
64
  });
65
+ let extensionResponse;
66
+ extensionResponse = this.getExtensionStateViaChromeAPI();
80
67
  return Promise.race([timeout, extensionResponse]);
81
68
  });
82
69
  }
@@ -141,18 +128,16 @@ class KeyringConnect {
141
128
  }
142
129
  }
143
130
  static validateCredentialConfig(config) {
144
- if (!config.credential_config) {
145
- return config;
131
+ const { credential_config } = config;
132
+ if (!credential_config) {
133
+ throw new Error("Credential config is required");
146
134
  }
147
- if (!config.credential_config.chain_id) {
135
+ if (!credential_config.chain_id) {
148
136
  throw new Error("Chain ID is required");
149
137
  }
150
- if (!config.credential_config.wallet_address) {
138
+ if (!credential_config.wallet_address) {
151
139
  throw new Error("Wallet address is required");
152
140
  }
153
- if (!(config.credential_config.chain_id in contracts_abi_1.SupportedChainIds)) {
154
- throw new Error("Invalid chain ID");
155
- }
156
141
  return config;
157
142
  }
158
143
  static validateProofConfig(config) {
@@ -166,29 +151,11 @@ class KeyringConnect {
166
151
  }
167
152
  }
168
153
  }
169
- static validateDatasource(config) {
170
- var _a, _b;
171
- if (!((_a = config.proof_config) === null || _a === void 0 ? void 0 : _a.datasource)) {
172
- return config;
173
- }
174
- const datasource = datasources_json_1.default.find((datasource) => { var _a, _b; return datasource.id === ((_b = (_a = config.proof_config) === null || _a === void 0 ? void 0 : _a.datasource) === null || _b === void 0 ? void 0 : _b.id); });
175
- const knownDatasources = datasources_json_1.default
176
- .map((datasource) => datasource.name)
177
- .join(", ");
178
- if (!datasource) {
179
- throw new Error(`Unsupported datasource. Connect to either of the supported datasources: ${knownDatasources}`);
180
- }
181
- return Object.assign(Object.assign({}, config), { proof_config: {
182
- entity_type: (_b = config.proof_config) === null || _b === void 0 ? void 0 : _b.entity_type,
183
- datasource,
184
- } });
185
- }
186
154
  static validateConfigData(config) {
187
- const validatedConfig = this.validateDatasource(config);
188
- this.validateClientConfig(validatedConfig);
189
- this.validateProofConfig(validatedConfig);
190
- this.validateCredentialConfig(validatedConfig);
191
- return validatedConfig;
155
+ this.validateClientConfig(config);
156
+ this.validateProofConfig(config);
157
+ this.validateCredentialConfig(config);
158
+ return config;
192
159
  }
193
160
  static convertToLaunchConfig(config) {
194
161
  var _a, _b;
@@ -199,7 +166,6 @@ class KeyringConnect {
199
166
  client_logo_url: config.logo_url,
200
167
  client_policy_id: config.policy_id,
201
168
  client_entity_id: (_a = config.krn_config) === null || _a === void 0 ? void 0 : _a.entity_id,
202
- isolate_proving: !!config.credential_config,
203
169
  credential_config: config.credential_config,
204
170
  },
205
171
  krn_config: config.krn_config
@@ -218,6 +184,65 @@ class KeyringConnect {
218
184
  };
219
185
  return launchConfig;
220
186
  }
187
+ static isChromeRuntimeAvailable() {
188
+ var _a;
189
+ return typeof ((_a = chrome === null || chrome === void 0 ? void 0 : chrome.runtime) === null || _a === void 0 ? void 0 : _a.sendMessage) === "function";
190
+ }
191
+ static sendChromeMessage(message) {
192
+ return __awaiter(this, void 0, void 0, function* () {
193
+ return new Promise((resolve, reject) => {
194
+ if (!this.isChromeRuntimeAvailable()) {
195
+ reject(new Error("Chrome runtime not available"));
196
+ return;
197
+ }
198
+ // Timeout handler
199
+ const timeoutId = setTimeout(() => {
200
+ reject(new Error(`Chrome runtime message timeout after ${this.EXTENSION_TIMEOUT}ms`));
201
+ }, this.EXTENSION_TIMEOUT);
202
+ try {
203
+ chrome.runtime.sendMessage(this.EXTENSION_ID, message, (response) => {
204
+ clearTimeout(timeoutId);
205
+ // Check for chrome.runtime.lastError
206
+ if (chrome.runtime.lastError) {
207
+ reject(new Error(`Chrome runtime error: ${chrome.runtime.lastError.message}`));
208
+ return;
209
+ }
210
+ // Validate response structure
211
+ if (!response) {
212
+ reject(new Error("No response received from extension"));
213
+ return;
214
+ }
215
+ if (response.error) {
216
+ reject(new Error(`Extension error: ${response.error}`));
217
+ return;
218
+ }
219
+ resolve(response === null || response === void 0 ? void 0 : response.data);
220
+ });
221
+ }
222
+ catch (error) {
223
+ clearTimeout(timeoutId);
224
+ reject(error);
225
+ }
226
+ });
227
+ });
228
+ }
229
+ static launchExtensionViaChromeAPI(launchConfig) {
230
+ return __awaiter(this, void 0, void 0, function* () {
231
+ return this.sendChromeMessage({
232
+ type: types_1.EVENT_ACTIONS.LAUNCH_KEYRING_CONNECT,
233
+ data: launchConfig,
234
+ });
235
+ });
236
+ }
237
+ static getExtensionStateViaChromeAPI() {
238
+ return __awaiter(this, void 0, void 0, function* () {
239
+ return this.sendChromeMessage({
240
+ type: types_1.EVENT_ACTIONS.GET_STATUS,
241
+ });
242
+ });
243
+ }
221
244
  }
222
245
  exports.KeyringConnect = KeyringConnect;
246
+ KeyringConnect.EXTENSION_TIMEOUT = 2000;
247
+ KeyringConnect.EXTENSION_ID = "jgogeidclfccfoedhfjjaclnaojcllpi";
223
248
  KeyringConnect.keyringConnectUrl = "https://app.keyring.network/connect";
package/dist/types.d.ts CHANGED
@@ -1,15 +1,8 @@
1
- import { KrnSupportedChainId as SupportedChainId } from "@keyringnetwork/contracts-abi";
2
1
  export declare enum EVENT_ACTIONS {
3
2
  LAUNCH_KEYRING_CONNECT = "LAUNCH_KEYRING_CONNECT",
4
3
  GET_STATUS = "GET_STATUS",
5
4
  KEYRING_CONNECT_STATUS = "KEYRING_CONNECT_STATUS"
6
5
  }
7
- export type PartialDataSource = Pick<DataSource, "id"> & Partial<DataSource>;
8
- export type ValidatedConfig = ExtensionSDKConfig & {
9
- proof_config: {
10
- datasource?: DataSource;
11
- };
12
- };
13
6
  export type ExtensionSDKConfig = {
14
7
  /**
15
8
  * The name of the client.
@@ -28,10 +21,10 @@ export type ExtensionSDKConfig = {
28
21
  */
29
22
  policy_id: number;
30
23
  /**
31
- * If configured, will skip wallet interaction and on-chain credential creation and return calldata instead.
24
+ * The wallet address and chain ID of the user.
32
25
  */
33
- credential_config?: {
34
- chain_id: SupportedChainId;
26
+ credential_config: {
27
+ chain_id: number;
35
28
  wallet_address: string;
36
29
  };
37
30
  /**
@@ -39,7 +32,7 @@ export type ExtensionSDKConfig = {
39
32
  * @note should be used with caution as strict validation is applied to the proof config.
40
33
  */
41
34
  proof_config?: {
42
- datasource?: PartialDataSource;
35
+ datasource?: DataSource;
43
36
  entity_type?: string;
44
37
  };
45
38
  /**
@@ -63,9 +56,8 @@ export type ExtensionLaunchConfig = {
63
56
  client_logo_url: string;
64
57
  client_policy_id: number;
65
58
  client_entity_id?: string;
66
- isolate_proving?: boolean;
67
- credential_config?: {
68
- chain_id: SupportedChainId;
59
+ credential_config: {
60
+ chain_id: number;
69
61
  wallet_address: string;
70
62
  };
71
63
  };
package/package.json CHANGED
@@ -1,26 +1,23 @@
1
1
  {
2
2
  "name": "@keyringnetwork/keyring-connect-sdk",
3
- "version": "2.3.0",
3
+ "version": "3.0.0",
4
4
  "description": "An SDK for interacting with Keyring Connect browser extension",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
+ "scripts": {
8
+ "build": "rm -rf dist && tsc",
9
+ "dev": "tsc --watch",
10
+ "build_and_publish": "pnpm build && npm publish"
11
+ },
7
12
  "files": [
8
13
  "dist"
9
14
  ],
10
15
  "keywords": [],
11
16
  "author": "",
12
17
  "license": "ISC",
13
- "dependencies": {
14
- "@keyringnetwork/contracts-abi": "2.4.0"
15
- },
16
18
  "devDependencies": {
19
+ "@types/chrome": "^0.0.268",
17
20
  "ts-node": "^10.9.2",
18
21
  "typescript": "^5.6.3"
19
- },
20
- "scripts": {
21
- "build": "rm -rf dist && pnpm get:datasources && tsc",
22
- "dev": "pnpm get:datasources && tsc --watch",
23
- "build_and_publish": "pnpm build && npm publish",
24
- "get:datasources": "node ../../scripts/parseDatasource.js -o src/constants/datasources.json"
25
22
  }
26
- }
23
+ }
package/readme.md CHANGED
@@ -17,7 +17,6 @@ pnpm install @keyringnetwork/keyring-connect-sdk
17
17
  - Redirect the user back to the app where they left off after extension installation
18
18
  - Monitor extension status and user state
19
19
  - Full TypeScript support with comprehensive type definitions
20
- - Support for isolated proving mode (verification without credential creation)
21
20
 
22
21
  ## Usage
23
22
 
@@ -41,6 +40,10 @@ const extensionConfig = {
41
40
  app_url: "https://myapp.com",
42
41
  logo_url: "https://myapp.com/logo.png",
43
42
  policy_id: 123,
43
+ credential_config: {
44
+ chain_id: 1,
45
+ wallet_address: '0x123abc'
46
+ }
44
47
  };
45
48
 
46
49
  // This method handles both launching the extension if installed
@@ -1,690 +0,0 @@
1
- [
2
- {
3
- "id": "tlsn-binance",
4
- "image": "https://main.cdn.krnprod.net/logos/binance.png",
5
- "label": "binance",
6
- "link": "https://www.binance.com",
7
- "login_url": "https://accounts.binance.com/login",
8
- "name": "Binance",
9
- "proof_sources": [
10
- {
11
- "claims": [
12
- {
13
- "entity_type": "individual",
14
- "id": "binance_kyc_level",
15
- "label": "KYC Level >= INTERMEDIATE",
16
- "rule_id": "binance_kyc_level"
17
- },
18
- {
19
- "entity_type": "individual",
20
- "id": "binance_kyc_not_in_fatf_tlsn-binance-kyc",
21
- "label": "User POA Country not on FATF",
22
- "rule_id": "binance_kyc_not_in_fatf_tlsn-binance-kyc"
23
- },
24
- {
25
- "entity_type": "individual",
26
- "id": "binance_kyc_account_type",
27
- "label": "User Account Type",
28
- "rule_id": "binance_kyc_account_type"
29
- }
30
- ],
31
- "endpoint": {
32
- "body": null,
33
- "data_bounds": null,
34
- "disclosable_fields": [
35
- {
36
- "label": "kyc level",
37
- "path": "data.passKycLevel",
38
- "key": "kyc_level"
39
- },
40
- {
41
- "label": "country of primary address",
42
- "path": "data.fillInfo.residenceCountry",
43
- "key": "country"
44
- },
45
- {
46
- "label": "account type",
47
- "path": "data.type",
48
- "key": "account_type"
49
- }
50
- ],
51
- "headers": [
52
- "clienttype",
53
- "csrftoken",
54
- "cookie",
55
- "user-agent"
56
- ],
57
- "method": "POST",
58
- "required_cookies": [
59
- "p20t"
60
- ],
61
- "url": "https://www.binance.com/bapi/kyc/v2/private/certificate/user-kyc/current-kyc-status"
62
- },
63
- "id": "tlsn-binance-kyc",
64
- "label": "KYC from Binance"
65
- },
66
- {
67
- "claims": [
68
- {
69
- "entity_type": "business",
70
- "id": "binance_kyb_verified",
71
- "label": "KYB Verified",
72
- "rule_id": "binance_kyb_verified"
73
- },
74
- {
75
- "entity_type": "business",
76
- "id": "binance_kyb_not_in_fatf_tlsn-binance-kyb",
77
- "label": "Business POA Country not on FATF",
78
- "rule_id": "binance_kyb_not_in_fatf_tlsn-binance-kyb"
79
- },
80
- {
81
- "entity_type": "business",
82
- "id": "binance_kyb_account_type",
83
- "label": "Business Account Type",
84
- "rule_id": "binance_kyb_account_type"
85
- }
86
- ],
87
- "endpoint": {
88
- "body": null,
89
- "data_bounds": null,
90
- "disclosable_fields": [
91
- {
92
- "label": "kyb status",
93
- "path": "data.kycStatus",
94
- "key": "kyc_status"
95
- },
96
- {
97
- "label": "country of primary address",
98
- "path": "data.fillInfo.residenceCountry",
99
- "key": "country"
100
- },
101
- {
102
- "label": "account type",
103
- "path": "data.type",
104
- "key": "account_type"
105
- }
106
- ],
107
- "headers": [
108
- "clienttype",
109
- "csrftoken",
110
- "cookie",
111
- "user-agent"
112
- ],
113
- "method": "POST",
114
- "required_cookies": [
115
- "p20t"
116
- ],
117
- "url": "https://www.binance.com/bapi/kyc/v2/private/certificate/user-kyc/current-kyc-status"
118
- },
119
- "id": "tlsn-binance-kyb",
120
- "label": "KYB from Binance"
121
- }
122
- ],
123
- "target_url": null,
124
- "user_actions": [
125
- "Login",
126
- "Navigate to your Dashboard",
127
- "The verification process will start automatically"
128
- ]
129
- },
130
- {
131
- "id": "tlsn-kraken",
132
- "image": "https://main.cdn.krnprod.net/logos/kraken.jpg",
133
- "label": "Kraken",
134
- "link": "https://www.kraken.com",
135
- "login_url": "https://www.kraken.com/sign-in",
136
- "name": "Kraken",
137
- "proof_sources": [
138
- {
139
- "claims": [
140
- {
141
- "entity_type": "business",
142
- "id": "kraken_kyb_not_in_fatf_tlsn-kraken-kyb",
143
- "label": "KYB Tier 4 (Full KYB)",
144
- "rule_id": "kraken_kyb_not_in_fatf_tlsn-kraken-kyb"
145
- },
146
- {
147
- "entity_type": "business",
148
- "id": "kraken_kyb_not_in_fatf_tlsn-kraken-kyb",
149
- "label": "Business Country not on FATF",
150
- "rule_id": "kraken_kyb_not_in_fatf_tlsn-kraken-kyb"
151
- },
152
- {
153
- "entity_type": "business",
154
- "id": "kraken_kyb_account_type",
155
- "label": "Pro Business Account Type",
156
- "rule_id": "kraken_kyb_account_type"
157
- },
158
- {
159
- "entity_type": "business",
160
- "id": "kraken_kyb_verified_address",
161
- "label": "Verified Address",
162
- "rule_id": "kraken_kyb_verified_address"
163
- }
164
- ],
165
- "endpoint": {
166
- "body": null,
167
- "data_bounds": null,
168
- "disclosable_fields": [
169
- {
170
- "label": "user kyc",
171
- "path": "result.access.user_kyc",
172
- "key": "user_kyc"
173
- },
174
- {
175
- "label": "country of primary address",
176
- "path": "result.country",
177
- "key": "country"
178
- },
179
- {
180
- "label": "tier bucket",
181
- "path": "result.tier_bucket",
182
- "key": "tier_bucket"
183
- },
184
- {
185
- "label": "tier verified",
186
- "path": "result.tier_verified",
187
- "key": "tier_verified"
188
- }
189
- ],
190
- "headers": [
191
- "accept",
192
- "accept-language",
193
- "cookie",
194
- "referer",
195
- "user-agent"
196
- ],
197
- "method": "GET",
198
- "required_cookies": [
199
- "SESSID"
200
- ],
201
- "url": "https://iapi.kraken.com/api/internal/account/profile"
202
- },
203
- "id": "tlsn-kraken-kyb",
204
- "label": "Profile information from Kraken"
205
- },
206
- {
207
- "claims": [
208
- {
209
- "entity_type": "individual",
210
- "id": "kraken_kyc_tier",
211
- "label": "KYB Tier 3+ (Verified ID)",
212
- "rule_id": "kraken_kyc_tier"
213
- },
214
- {
215
- "entity_type": "individual",
216
- "id": "kraken_kyc_not_in_fatf_tlsn-kraken-kyc",
217
- "label": "Country not on FATF",
218
- "rule_id": "kraken_kyc_not_in_fatf_tlsn-kraken-kyc"
219
- },
220
- {
221
- "entity_type": "individual",
222
- "id": "kraken_kyc_account_type",
223
- "label": "Retail Account Type",
224
- "rule_id": "kraken_kyc_account_type"
225
- }
226
- ],
227
- "endpoint": {
228
- "body": null,
229
- "data_bounds": null,
230
- "disclosable_fields": [
231
- {
232
- "label": "user kyc",
233
- "path": "result.access.user_kyc",
234
- "key": "user_kyc"
235
- },
236
- {
237
- "label": "country of primary address",
238
- "path": "result.country",
239
- "key": "country"
240
- },
241
- {
242
- "label": "tier bucket",
243
- "path": "result.tier_bucket",
244
- "key": "tier_bucket"
245
- },
246
- {
247
- "label": "tier verified",
248
- "path": "result.tier_verified",
249
- "key": "tier_verified"
250
- }
251
- ],
252
- "headers": [
253
- "accept",
254
- "accept-language",
255
- "cookie",
256
- "referer",
257
- "user-agent"
258
- ],
259
- "method": "GET",
260
- "required_cookies": [
261
- "SESSID"
262
- ],
263
- "url": "https://iapi.kraken.com/api/internal/account/profile"
264
- },
265
- "id": "tlsn-kraken-kyc",
266
- "label": "Profile information from Kraken"
267
- }
268
- ],
269
- "target_url": "https://www.kraken.com/",
270
- "user_actions": [
271
- "Log in",
272
- "Navigate to your Profile page",
273
- "The verification process will start automatically"
274
- ]
275
- },
276
- {
277
- "id": "tlsn-binance-us",
278
- "image": "https://main.cdn.krnprod.net/logos/binance-us.svg",
279
- "label": "binance-us",
280
- "link": "https://www.binance.us",
281
- "login_url": "https://accounts.binance.us/login",
282
- "name": "Binance US",
283
- "proof_sources": [
284
- {
285
- "claims": [
286
- {
287
- "entity_type": "individual",
288
- "id": "75eebf24-5dfe-4b3d-b651-f21fff1786c4",
289
- "label": "KYC Verified",
290
- "rule_id": "binance_us_kyc_verified"
291
- },
292
- {
293
- "entity_type": "individual",
294
- "id": "18e9f113-5110-4abb-b6e9-da07dcfeb41f",
295
- "label": "User POA Country not on FATF",
296
- "rule_id": "binance_us_kyc_not_in_fatf_tlsn-binance-us-kyc"
297
- },
298
- {
299
- "entity_type": "individual",
300
- "id": "2a5d69a3-1ead-4be6-9112-760b6432c3d8",
301
- "label": "Individual Account Type",
302
- "rule_id": "binance_us_kyc_account_type"
303
- }
304
- ],
305
- "endpoint": {
306
- "body": null,
307
- "data_bounds": null,
308
- "disclosable_fields": [
309
- {
310
- "label": "country of primary address",
311
- "path": "data.userDetails.country",
312
- "key": "country"
313
- },
314
- {
315
- "label": "kyc level",
316
- "path": "data.userKycStatus.kycLevel",
317
- "key": "kyc_level"
318
- },
319
- {
320
- "label": "kyc type",
321
- "path": "data.userKycStatus.kycType",
322
- "key": "kyc_type"
323
- }
324
- ],
325
- "headers": [
326
- "clienttype",
327
- "cookie",
328
- "user-agent",
329
- "csrftoken"
330
- ],
331
- "method": "GET",
332
- "required_cookies": [
333
- "p20t"
334
- ],
335
- "url": "https://www.binance.us/gateway/entry/private/v1/web-home/user-details"
336
- },
337
- "id": "tlsn-binance-us-kyc",
338
- "label": "KYC from Binance US"
339
- },
340
- {
341
- "claims": [
342
- {
343
- "entity_type": "business",
344
- "id": "26db829e-ded2-4046-9626-7a1867d5be06",
345
- "label": "KYB Verified",
346
- "rule_id": "binance_us_kyb_verified"
347
- },
348
- {
349
- "entity_type": "business",
350
- "id": "81d4d669-f626-4dfb-9966-c783d2f3dddb",
351
- "label": "Business POA Country not on FATF",
352
- "rule_id": "binance_us_kyb_not_in_fatf_tlsn-binance-us-kyb"
353
- },
354
- {
355
- "entity_type": "business",
356
- "id": "a99d0cf5-ee75-4ddf-b3e2-aabb794450f2",
357
- "label": "Business Account Type",
358
- "rule_id": "binance_us_kyb_account_type"
359
- }
360
- ],
361
- "endpoint": {
362
- "body": null,
363
- "data_bounds": null,
364
- "disclosable_fields": [
365
- {
366
- "label": "country of primary address",
367
- "path": "data.userDetails.country",
368
- "key": "country"
369
- },
370
- {
371
- "label": "kyc level",
372
- "path": "data.userKycStatus.kycLevel",
373
- "key": "kyc_level"
374
- },
375
- {
376
- "label": "kyc type",
377
- "path": "data.userKycStatus.kycType",
378
- "key": "kyc_type"
379
- }
380
- ],
381
- "headers": [
382
- "clienttype",
383
- "cookie",
384
- "user-agent",
385
- "csrftoken"
386
- ],
387
- "method": "GET",
388
- "required_cookies": [
389
- "p20t"
390
- ],
391
- "url": "https://www.binance.us/gateway/entry/private/v1/web-home/user-details"
392
- },
393
- "id": "tlsn-binance-us-kyb",
394
- "label": "KYB from Binance US"
395
- }
396
- ],
397
- "target_url": null,
398
- "user_actions": [
399
- "Login",
400
- "Navigate to your dashboard",
401
- "The verification process will start automatically"
402
- ]
403
- },
404
- {
405
- "id": "tlsn-fidelity",
406
- "image": "https://main.cdn.krnprod.net/logos/fidelity.jpg",
407
- "label": "fidelity",
408
- "link": "https://www.fidelity.com",
409
- "login_url": "https://digital.fidelity.com/ftgw/digital/profile",
410
- "name": "Fidelity",
411
- "proof_sources": [
412
- {
413
- "claims": [
414
- {
415
- "entity_type": "individual",
416
- "id": "fidelity_kyc_verified",
417
- "label": "KYC Verified",
418
- "rule_id": "fidelity_kyc_verified"
419
- }
420
- ],
421
- "endpoint": {
422
- "body": "{\"dpIdCache\":null}",
423
- "data_bounds": null,
424
- "disclosable_fields": [
425
- {
426
- "label": "mailing address",
427
- "path": "customer.addresses.mailing",
428
- "key": "mailing_address"
429
- }
430
- ],
431
- "headers": [
432
- "Accept",
433
- "Content-Type",
434
- "X-xsrf-token",
435
- "Cookie",
436
- "User-Agent"
437
- ],
438
- "method": "POST",
439
- "required_cookies": [
440
- "ap126386_session",
441
- "FC",
442
- "MC",
443
- "RC",
444
- "SC",
445
- "ATC"
446
- ],
447
- "url": "https://digital.fidelity.com/ftgw/digital/profile/api/personal/info"
448
- },
449
- "id": "tlsn-fidelity-kyc",
450
- "label": "Profile information from Fidelity"
451
- }
452
- ],
453
- "target_url": null,
454
- "user_actions": [
455
- "Login",
456
- "Navigate to your profile page",
457
- "The verification process will start automatically"
458
- ]
459
- },
460
- {
461
- "id": "tlsn-coinbase",
462
- "image": "https://main.cdn.krnprod.net/logos/coinbase.svg",
463
- "label": "Coinbase",
464
- "link": "https://www.coinbase.com",
465
- "login_url": "https://login.coinbase.com/signin",
466
- "name": "Coinbase",
467
- "proof_sources": [
468
- {
469
- "claims": [
470
- {
471
- "entity_type": "individual",
472
- "id": "coinbase_kyc_verified",
473
- "label": "KYC Verified",
474
- "rule_id": "coinbase_kyc_verified"
475
- },
476
- {
477
- "entity_type": "individual",
478
- "id": "coinbase_kyc_not_in_fatf_tlsn-coinbase-kyc",
479
- "label": "Coinbase Residence country is not on FATF BList",
480
- "rule_id": "coinbase_kyc_not_in_fatf_tlsn-coinbase-kyc"
481
- }
482
- ],
483
- "endpoint": {
484
- "body": null,
485
- "data_bounds": null,
486
- "disclosable_fields": [
487
- {
488
- "label": "no remaining kyc requirements",
489
- "path": "data.viewer.userProperties.nextRequirement",
490
- "key": "next_requirement"
491
- },
492
- {
493
- "label": "country of primary address",
494
- "path": "data.viewer.userProperties.country.code",
495
- "key": "country"
496
- }
497
- ],
498
- "headers": [
499
- "Content-Type",
500
- "Cookie"
501
- ],
502
- "method": "GET",
503
- "required_cookies": [
504
- "unified-session-manager-cookie"
505
- ],
506
- "url": "https://www.coinbase.com/graphql/query?operationName=userQuery&query=query+userQuery%7Bviewer%7BuserProperties%7BnextRequirement+country%7Bcode%7D%7D%7D%7D&variables=%7B%7D"
507
- },
508
- "id": "tlsn-coinbase-kyc",
509
- "label": "User information from Coinbase"
510
- }
511
- ],
512
- "target_url": "https://www.coinbase.com/graphql/query?&operationName=userQuery&*",
513
- "user_actions": [
514
- "Login",
515
- "Navigate to your profile page",
516
- "The verification process will start automatically"
517
- ]
518
- },
519
- {
520
- "id": "tlsn-revolut",
521
- "image": "https://main.cdn.krnprod.net/logos/revolut.svg",
522
- "label": "Revolut",
523
- "link": "https://www.revolut.com",
524
- "login_url": "https://app.revolut.com/start",
525
- "name": "Revolut",
526
- "proof_sources": [
527
- {
528
- "claims": [
529
- {
530
- "entity_type": "individual",
531
- "id": "revolut_kyc_verified",
532
- "label": "KYC Verified",
533
- "rule_id": "revolut_kyc_verified"
534
- },
535
- {
536
- "entity_type": "individual",
537
- "id": "revolut_kyc_not_under_review",
538
- "label": "KYC Not Under Review",
539
- "rule_id": "revolut_kyc_not_under_review"
540
- },
541
- {
542
- "entity_type": "individual",
543
- "id": "revolut_kyc_user_status_active",
544
- "label": "KYC User Status Active",
545
- "rule_id": "revolut_kyc_user_status_active"
546
- },
547
- {
548
- "entity_type": "individual",
549
- "id": "revolut_kyc_not_in_fatf_tlsn-revolut-kyc",
550
- "label": "Revolut Residence Country not on FATF",
551
- "rule_id": "revolut_kyc_not_in_fatf_tlsn-revolut-kyc"
552
- }
553
- ],
554
- "endpoint": {
555
- "body": null,
556
- "data_bounds": null,
557
- "disclosable_fields": [
558
- {
559
- "label": "country of primary address",
560
- "path": "user.address.country",
561
- "key": "country"
562
- },
563
- {
564
- "label": "user status",
565
- "path": "user.state",
566
- "key": "user_state"
567
- },
568
- {
569
- "label": "user kyc",
570
- "path": "user.kyc",
571
- "key": "user_kyc"
572
- },
573
- {
574
- "label": "account under review",
575
- "path": "user.underReview",
576
- "key": "under_review"
577
- }
578
- ],
579
- "headers": [
580
- "Cookie",
581
- "User-Agent",
582
- "x-device-id",
583
- "x-client-version"
584
- ],
585
- "method": "GET",
586
- "required_cookies": null,
587
- "url": "https://app.revolut.com/api/retail/user/current"
588
- },
589
- "id": "tlsn-revolut-kyc",
590
- "label": "User information from revolut"
591
- }
592
- ],
593
- "target_url": null,
594
- "user_actions": [
595
- "Login",
596
- "Navigate to your profile page",
597
- "The verification process will start automatically"
598
- ]
599
- },
600
- {
601
- "id": "tlsn-keyring-connect",
602
- "image": "https://uploads-ssl.webflow.com/65df8e71bab45b70f5433fba/664359927ac82d0c110ff6be_Keyring%20Icon%20Square.svg",
603
- "label": "keyring-connect",
604
- "link": "https://app.keyringdev.network",
605
- "login_url": "https://app.keyringdev.network/login",
606
- "name": "Keyring Connect",
607
- "proof_sources": [
608
- {
609
- "claims": [
610
- {
611
- "entity_type": "individual",
612
- "id": "keyring_connect_kyc",
613
- "label": "KYC from Keyring Connect",
614
- "rule_id": "keyring_connect_kyc"
615
- }
616
- ],
617
- "endpoint": {
618
- "body": null,
619
- "data_bounds": null,
620
- "disclosable_fields": [
621
- {
622
- "label": "user id",
623
- "path": "id",
624
- "key": "user_id"
625
- }
626
- ],
627
- "headers": [
628
- "user-agent",
629
- "authorization"
630
- ],
631
- "method": "GET",
632
- "required_cookies": null,
633
- "url": "https://main.api.keyring-backend.krndev.net/api/v1/onboarding/users/me"
634
- },
635
- "id": "tlsn-keyring-connect-kyc",
636
- "label": "KYC from Keyring Connect"
637
- }
638
- ],
639
- "target_url": "https://app.keyringdev.network/",
640
- "user_actions": [
641
- "Make sure you have logged in",
642
- "Navigate to the marketplace"
643
- ]
644
- },
645
- {
646
- "id": "tlsn-fireblocks",
647
- "image": "https://main.cdn.krnprod.net/logos/fireblocks.png",
648
- "label": "fireblocks",
649
- "link": "https://console.fireblocks.io",
650
- "login_url": "https://console.fireblocks.io/login",
651
- "name": "Fireblocks",
652
- "proof_sources": [
653
- {
654
- "claims": [
655
- {
656
- "entity_type": "business",
657
- "id": "fireblocks_kyb",
658
- "label": "Account Status Ready",
659
- "rule_id": "fireblocks_kyb"
660
- }
661
- ],
662
- "endpoint": {
663
- "body": null,
664
- "data_bounds": null,
665
- "disclosable_fields": [
666
- {
667
- "label": "status",
668
- "path": "status",
669
- "key": "kyb_status"
670
- }
671
- ],
672
- "required_cookies": null,
673
- "headers": [
674
- "x-csrf-token",
675
- "cookie"
676
- ],
677
- "method": "GET",
678
- "url": "https://console-api.fireblocks.io/get_logged_user"
679
- },
680
- "id": "tlsn-fireblocks-kyb",
681
- "label": "KYB from Fireblocks"
682
- }
683
- ],
684
- "target_url": null,
685
- "user_actions": [
686
- "Make sure you have logged in",
687
- "Navigate to your Dashboard"
688
- ]
689
- }
690
- ]
@@ -1 +0,0 @@
1
- export declare const EXTENSION_TIMEOUT = 2000;
@@ -1,4 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EXTENSION_TIMEOUT = void 0;
4
- exports.EXTENSION_TIMEOUT = 2000;