@keyringnetwork/keyring-connect-sdk 2.3.0 → 2.4.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,13 @@ 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 get communicationMethod();
41
+ private static sendChromeMessage;
42
+ private static launchExtensionViaChromeAPI;
43
+ private static launchExtensionViaPostMessage;
44
+ private static getExtensionStateViaChromeAPI;
45
+ private static getExtensionStateViaPostMessage;
38
46
  }
package/dist/main.js CHANGED
@@ -8,14 +8,9 @@ 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
13
  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
14
  const types_1 = require("./types");
20
15
  /**
21
16
  * Class for interacting with the Keyring Connect browser extension
@@ -42,8 +37,12 @@ class KeyringConnect {
42
37
  }
43
38
  const validatedConfig = this.validateConfigData(data);
44
39
  const launchConfig = this.convertToLaunchConfig(validatedConfig);
45
- console.log("launching keyring connect");
46
- window.postMessage({ type: types_1.EVENT_ACTIONS.LAUNCH_KEYRING_CONNECT, data: launchConfig }, "*");
40
+ if (this.communicationMethod === "chromeApi") {
41
+ yield this.launchExtensionViaChromeAPI(launchConfig);
42
+ }
43
+ else {
44
+ yield this.launchExtensionViaPostMessage(launchConfig);
45
+ }
47
46
  });
48
47
  }
49
48
  /**
@@ -67,16 +66,15 @@ class KeyringConnect {
67
66
  static getExtensionState() {
68
67
  return __awaiter(this, void 0, void 0, function* () {
69
68
  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 }, "*");
69
+ setTimeout(() => resolve(null), this.EXTENSION_TIMEOUT);
79
70
  });
71
+ let extensionResponse;
72
+ if (this.communicationMethod === "chromeApi") {
73
+ extensionResponse = this.getExtensionStateViaChromeAPI();
74
+ }
75
+ else {
76
+ extensionResponse = this.getExtensionStateViaPostMessage();
77
+ }
80
78
  return Promise.race([timeout, extensionResponse]);
81
79
  });
82
80
  }
@@ -166,29 +164,11 @@ class KeyringConnect {
166
164
  }
167
165
  }
168
166
  }
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
167
  static validateConfigData(config) {
187
- const validatedConfig = this.validateDatasource(config);
188
- this.validateClientConfig(validatedConfig);
189
- this.validateProofConfig(validatedConfig);
190
- this.validateCredentialConfig(validatedConfig);
191
- return validatedConfig;
168
+ this.validateClientConfig(config);
169
+ this.validateProofConfig(config);
170
+ this.validateCredentialConfig(config);
171
+ return config;
192
172
  }
193
173
  static convertToLaunchConfig(config) {
194
174
  var _a, _b;
@@ -218,6 +198,88 @@ class KeyringConnect {
218
198
  };
219
199
  return launchConfig;
220
200
  }
201
+ static isChromeRuntimeAvailable() {
202
+ var _a;
203
+ return typeof ((_a = chrome === null || chrome === void 0 ? void 0 : chrome.runtime) === null || _a === void 0 ? void 0 : _a.sendMessage) === "function";
204
+ }
205
+ static get communicationMethod() {
206
+ if (this.isChromeRuntimeAvailable()) {
207
+ return "chromeApi";
208
+ }
209
+ return "postMessage";
210
+ }
211
+ static sendChromeMessage(message) {
212
+ return __awaiter(this, void 0, void 0, function* () {
213
+ return new Promise((resolve, reject) => {
214
+ if (!this.isChromeRuntimeAvailable()) {
215
+ reject(new Error("Chrome runtime not available"));
216
+ return;
217
+ }
218
+ // Timeout handler
219
+ const timeoutId = setTimeout(() => {
220
+ reject(new Error(`Chrome runtime message timeout after ${this.EXTENSION_TIMEOUT}ms`));
221
+ }, this.EXTENSION_TIMEOUT);
222
+ try {
223
+ chrome.runtime.sendMessage(this.EXTENSION_ID, message, (response) => {
224
+ clearTimeout(timeoutId);
225
+ // Check for chrome.runtime.lastError
226
+ if (chrome.runtime.lastError) {
227
+ reject(new Error(`Chrome runtime error: ${chrome.runtime.lastError.message}`));
228
+ return;
229
+ }
230
+ // Validate response structure
231
+ if (!response) {
232
+ reject(new Error("No response received from extension"));
233
+ return;
234
+ }
235
+ if (response.error) {
236
+ reject(new Error(`Extension error: ${response.error}`));
237
+ return;
238
+ }
239
+ resolve(response === null || response === void 0 ? void 0 : response.data);
240
+ });
241
+ }
242
+ catch (error) {
243
+ clearTimeout(timeoutId);
244
+ reject(error);
245
+ }
246
+ });
247
+ });
248
+ }
249
+ static launchExtensionViaChromeAPI(launchConfig) {
250
+ return __awaiter(this, void 0, void 0, function* () {
251
+ return this.sendChromeMessage({
252
+ type: types_1.EVENT_ACTIONS.LAUNCH_KEYRING_CONNECT,
253
+ data: launchConfig,
254
+ });
255
+ });
256
+ }
257
+ static launchExtensionViaPostMessage(launchConfig) {
258
+ return __awaiter(this, void 0, void 0, function* () {
259
+ window.postMessage({ type: types_1.EVENT_ACTIONS.LAUNCH_KEYRING_CONNECT, data: launchConfig }, "*");
260
+ });
261
+ }
262
+ static getExtensionStateViaChromeAPI() {
263
+ return __awaiter(this, void 0, void 0, function* () {
264
+ return this.sendChromeMessage({
265
+ type: types_1.EVENT_ACTIONS.GET_STATUS,
266
+ });
267
+ });
268
+ }
269
+ static getExtensionStateViaPostMessage() {
270
+ return __awaiter(this, void 0, void 0, function* () {
271
+ return new Promise((resolve) => {
272
+ window.addEventListener("message", (event) => {
273
+ if (event.data.type === types_1.EVENT_ACTIONS.KEYRING_CONNECT_STATUS) {
274
+ resolve(event.data.data);
275
+ }
276
+ });
277
+ window.postMessage({ type: types_1.EVENT_ACTIONS.GET_STATUS }, "*");
278
+ });
279
+ });
280
+ }
221
281
  }
222
282
  exports.KeyringConnect = KeyringConnect;
283
+ KeyringConnect.EXTENSION_TIMEOUT = 2000;
284
+ KeyringConnect.EXTENSION_ID = "jgogeidclfccfoedhfjjaclnaojcllpi";
223
285
  KeyringConnect.keyringConnectUrl = "https://app.keyring.network/connect";
package/dist/types.d.ts CHANGED
@@ -4,12 +4,6 @@ export declare enum EVENT_ACTIONS {
4
4
  GET_STATUS = "GET_STATUS",
5
5
  KEYRING_CONNECT_STATUS = "KEYRING_CONNECT_STATUS"
6
6
  }
7
- export type PartialDataSource = Pick<DataSource, "id"> & Partial<DataSource>;
8
- export type ValidatedConfig = ExtensionSDKConfig & {
9
- proof_config: {
10
- datasource?: DataSource;
11
- };
12
- };
13
7
  export type ExtensionSDKConfig = {
14
8
  /**
15
9
  * The name of the client.
@@ -28,9 +22,9 @@ export type ExtensionSDKConfig = {
28
22
  */
29
23
  policy_id: number;
30
24
  /**
31
- * If configured, will skip wallet interaction and on-chain credential creation and return calldata instead.
25
+ * The wallet address and chain ID of the user.
32
26
  */
33
- credential_config?: {
27
+ credential_config: {
34
28
  chain_id: SupportedChainId;
35
29
  wallet_address: string;
36
30
  };
@@ -39,7 +33,7 @@ export type ExtensionSDKConfig = {
39
33
  * @note should be used with caution as strict validation is applied to the proof config.
40
34
  */
41
35
  proof_config?: {
42
- datasource?: PartialDataSource;
36
+ datasource?: DataSource;
43
37
  entity_type?: string;
44
38
  };
45
39
  /**
@@ -64,7 +58,7 @@ export type ExtensionLaunchConfig = {
64
58
  client_policy_id: number;
65
59
  client_entity_id?: string;
66
60
  isolate_proving?: boolean;
67
- credential_config?: {
61
+ credential_config: {
68
62
  chain_id: SupportedChainId;
69
63
  wallet_address: string;
70
64
  };
@@ -84,6 +78,7 @@ export type ExtensionLaunchConfig = {
84
78
  access_token?: string;
85
79
  };
86
80
  };
81
+ export type ExtensionCommunicationMethod = "chromeApi" | "postMessage";
87
82
  export type ExtensionStatus = "idle" | "mounted" | "proving" | "prove_error" | "prove_success" | "error";
88
83
  export type AttestationStatus = "onboarding_required" | "onboarding_pending" | "attestation_ready" | "non_compliant";
89
84
  export type CredentialStatus = "expired" | "valid" | "none";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keyringnetwork/keyring-connect-sdk",
3
- "version": "2.3.0",
3
+ "version": "2.4.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",
@@ -14,13 +14,13 @@
14
14
  "@keyringnetwork/contracts-abi": "2.4.0"
15
15
  },
16
16
  "devDependencies": {
17
+ "@types/chrome": "^0.0.268",
17
18
  "ts-node": "^10.9.2",
18
19
  "typescript": "^5.6.3"
19
20
  },
20
21
  "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"
22
+ "build": "rm -rf dist && tsc",
23
+ "dev": "tsc --watch",
24
+ "build_and_publish": "pnpm build && npm publish"
25
25
  }
26
26
  }
@@ -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;