web3bio-profile-kit 0.1.25 → 0.1.27

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.
@@ -8,6 +8,7 @@ var useBatchProfile = require('./useBatchProfile.cjs');
8
8
  var useBatchNS = require('./useBatchNS.cjs');
9
9
  var useDomain = require('./useDomain.cjs');
10
10
  var useBaseQuery = require('./useBaseQuery.cjs');
11
+ var useCredential = require('./useCredential.cjs');
11
12
 
12
13
 
13
14
 
@@ -19,3 +20,4 @@ exports.useBatchProfile = useBatchProfile.useBatchProfile;
19
20
  exports.useBatchNS = useBatchNS.useBatchNS;
20
21
  exports.useDomain = useDomain.useDomain;
21
22
  exports.useBaseQuery = useBaseQuery.useBaseQuery;
23
+ exports.useCredential = useCredential.useCredential;
@@ -6,3 +6,4 @@ export { useBatchProfile } from "./useBatchProfile";
6
6
  export { useBatchNS } from "./useBatchNS";
7
7
  export { useDomain } from "./useDomain";
8
8
  export { useBaseQuery } from "./useBaseQuery";
9
+ export { useCredential } from "./useCredential";
@@ -6,3 +6,4 @@ export { useBatchProfile } from './useBatchProfile.js';
6
6
  export { useBatchNS } from './useBatchNS.js';
7
7
  export { useDomain } from './useDomain.js';
8
8
  export { useBaseQuery } from './useBaseQuery.js';
9
+ export { useCredential } from './useCredential.js';
@@ -22,7 +22,7 @@ const buildApiUrl = (identity, endpoint, universal) => {
22
22
  const resolvedId = helpers.resolveIdentity(identity);
23
23
  if (!resolvedId)
24
24
  return null;
25
- if (endpoint === hook.QueryEndpoint.DOMAIN) {
25
+ if ([hook.QueryEndpoint.DOMAIN, hook.QueryEndpoint.CREDENTIAL].includes(endpoint)) {
26
26
  return `${helpers.PROD_API_ENDPOINT}/${endpoint}/${resolvedId}`;
27
27
  }
28
28
  const [platform, handle] = resolvedId.split(",");
@@ -20,7 +20,7 @@ const buildApiUrl = (identity, endpoint, universal) => {
20
20
  const resolvedId = resolveIdentity(identity);
21
21
  if (!resolvedId)
22
22
  return null;
23
- if (endpoint === QueryEndpoint.DOMAIN) {
23
+ if ([QueryEndpoint.DOMAIN, QueryEndpoint.CREDENTIAL].includes(endpoint)) {
24
24
  return `${PROD_API_ENDPOINT}/${endpoint}/${resolvedId}`;
25
25
  }
26
26
  const [platform, handle] = resolvedId.split(",");
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ require('../types/platform.cjs');
4
+ require('../types/network.cjs');
5
+ var hook = require('../types/hook.cjs');
6
+ require('../types/source.cjs');
7
+ require('../types/cointype.cjs');
8
+ require('../types/ceredential.cjs');
9
+ var useBaseQuery = require('./useBaseQuery.cjs');
10
+
11
+ /**
12
+ * Hook to query Web3.bio credential service data by identity
13
+ *
14
+ * @param identity - Identity string
15
+ * @param options - Optional configuration options
16
+ * @returns Object containing credential data, loading state, and any errors
17
+ *
18
+ * @example
19
+ * // Query by ENS name with universal lookup
20
+ * const { data, isLoading, error } = useCredential("ens,vitalik.eth");
21
+ *
22
+ * // Query by any identity type with universal lookup
23
+ * const { data } = useCredential("ggmonster.farcaster");
24
+ */
25
+ function useCredential(identity, options = {}) {
26
+ return useBaseQuery.useBaseQuery(identity, hook.QueryEndpoint.CREDENTIAL, false, options);
27
+ }
28
+
29
+ exports.useCredential = useCredential;
@@ -0,0 +1,16 @@
1
+ import { type QueryOptions, type IdentityString, CredentialResult } from "../types";
2
+ /**
3
+ * Hook to query Web3.bio credential service data by identity
4
+ *
5
+ * @param identity - Identity string
6
+ * @param options - Optional configuration options
7
+ * @returns Object containing credential data, loading state, and any errors
8
+ *
9
+ * @example
10
+ * // Query by ENS name with universal lookup
11
+ * const { data, isLoading, error } = useCredential("ens,vitalik.eth");
12
+ *
13
+ * // Query by any identity type with universal lookup
14
+ * const { data } = useCredential("ggmonster.farcaster");
15
+ */
16
+ export declare function useCredential(identity: IdentityString, options?: QueryOptions): CredentialResult;
@@ -0,0 +1,27 @@
1
+ import '../types/platform.js';
2
+ import '../types/network.js';
3
+ import { QueryEndpoint } from '../types/hook.js';
4
+ import '../types/source.js';
5
+ import '../types/cointype.js';
6
+ import '../types/ceredential.js';
7
+ import { useBaseQuery } from './useBaseQuery.js';
8
+
9
+ /**
10
+ * Hook to query Web3.bio credential service data by identity
11
+ *
12
+ * @param identity - Identity string
13
+ * @param options - Optional configuration options
14
+ * @returns Object containing credential data, loading state, and any errors
15
+ *
16
+ * @example
17
+ * // Query by ENS name with universal lookup
18
+ * const { data, isLoading, error } = useCredential("ens,vitalik.eth");
19
+ *
20
+ * // Query by any identity type with universal lookup
21
+ * const { data } = useCredential("ggmonster.farcaster");
22
+ */
23
+ function useCredential(identity, options = {}) {
24
+ return useBaseQuery(identity, QueryEndpoint.CREDENTIAL, false, options);
25
+ }
26
+
27
+ export { useCredential };
@@ -24,7 +24,6 @@ exports.CredentialSource = void 0;
24
24
  CredentialSource["hacker"] = "hacker";
25
25
  CredentialSource["hacked"] = "hacked";
26
26
  CredentialSource["dmca"] = "dmca";
27
- CredentialSource["google"] = "google";
28
27
  // isSpam
29
- CredentialSource["warpcast"] = "warpcast";
28
+ CredentialSource["farcasterSpam"] = "farcaster-spam";
30
29
  })(exports.CredentialSource || (exports.CredentialSource = {}));
@@ -19,27 +19,23 @@ export declare enum CredentialSource {
19
19
  hacker = "hacker",
20
20
  hacked = "hacked",
21
21
  dmca = "dmca",
22
- google = "google",
23
- warpcast = "warpcast"
22
+ farcasterSpam = "farcaster-spam"
24
23
  }
25
- export interface CredentialMetaData {
26
- platform?: Platform;
27
- description: string;
28
- label: string;
29
- icon: string;
30
- }
31
- export interface CredentialData extends CredentialMetaData {
24
+ export interface CredentialType {
32
25
  id: string;
26
+ platform: Platform;
33
27
  category: CredentialCategory;
34
- dataSource: CredentialSource;
35
- type: string;
36
- value: string;
28
+ credentialSource: CredentialSource;
29
+ credentialType: string;
30
+ credentialValue: string;
31
+ label: string;
32
+ description: string;
33
+ link: string | null;
37
34
  updatedAt: number | null;
38
35
  expiredAt: number | null;
39
- link: string | null;
40
36
  }
41
37
  export interface CredentialResponse {
42
- [CredentialCategory.isHuman]: CredentialData[] | null;
43
- [CredentialCategory.isRisky]: CredentialData[] | null;
44
- [CredentialCategory.isSpam]: CredentialData[] | null;
38
+ [CredentialCategory.isHuman]: CredentialType[] | null;
39
+ [CredentialCategory.isRisky]: CredentialType[] | null;
40
+ [CredentialCategory.isSpam]: CredentialType[] | null;
45
41
  }
@@ -22,9 +22,8 @@ var CredentialSource;
22
22
  CredentialSource["hacker"] = "hacker";
23
23
  CredentialSource["hacked"] = "hacked";
24
24
  CredentialSource["dmca"] = "dmca";
25
- CredentialSource["google"] = "google";
26
25
  // isSpam
27
- CredentialSource["warpcast"] = "warpcast";
26
+ CredentialSource["farcasterSpam"] = "farcaster-spam";
28
27
  })(CredentialSource || (CredentialSource = {}));
29
28
 
30
29
  export { CredentialCategory, CredentialSource };
@@ -35,4 +35,6 @@ exports.QueryEndpoint = void 0;
35
35
  QueryEndpoint["PROFILE"] = "profile";
36
36
  /** Domain information endpoint */
37
37
  QueryEndpoint["DOMAIN"] = "domain";
38
+ /** Credential information endpoint */
39
+ QueryEndpoint["CREDENTIAL"] = "credential";
38
40
  })(exports.QueryEndpoint || (exports.QueryEndpoint = {}));
@@ -1,3 +1,4 @@
1
+ import { CredentialResponse } from "./ceredential";
1
2
  import type { Network } from "./network";
2
3
  import type { Platform } from "./platform";
3
4
  import type { Source } from "./source";
@@ -33,7 +34,9 @@ export declare enum QueryEndpoint {
33
34
  /** Profile data endpoint */
34
35
  PROFILE = "profile",
35
36
  /** Domain information endpoint */
36
- DOMAIN = "domain"
37
+ DOMAIN = "domain",
38
+ /** Credential information endpoint */
39
+ CREDENTIAL = "credential"
37
40
  }
38
41
  /**
39
42
  * Represents a blockchain address record
@@ -195,3 +198,4 @@ export type NSBatchResult = QueryResult<NSResponse[]>;
195
198
  export type ProfileUniversalResult = QueryResult<ProfileResponse[]>;
196
199
  export type NSUniversalResult = QueryResult<NSResponse[]>;
197
200
  export type DomainResult = QueryResult<DomainResponse>;
201
+ export type CredentialResult = QueryResult<CredentialResponse>;
@@ -33,6 +33,8 @@ var QueryEndpoint;
33
33
  QueryEndpoint["PROFILE"] = "profile";
34
34
  /** Domain information endpoint */
35
35
  QueryEndpoint["DOMAIN"] = "domain";
36
+ /** Credential information endpoint */
37
+ QueryEndpoint["CREDENTIAL"] = "credential";
36
38
  })(QueryEndpoint || (QueryEndpoint = {}));
37
39
 
38
40
  export { ErrorMessages, QueryEndpoint };
@@ -1,6 +1,6 @@
1
1
  export { Platform, type PlatformType } from "./platform";
2
2
  export { Network, type NetworkType } from "./network";
3
- export { ErrorMessages, QueryEndpoint, type AddressRecord, type SocialLinksItem, type SocialLinks, type SocialRecord, type ProfileResponse, type NSResponse, type DomainResponse, type QueryOptions, type IdentityString, type QueryResult, type ProfileResult, type NSResult, type ProfileBatchResult, type NSBatchResult, type ProfileUniversalResult, type NSUniversalResult, type DomainResult, } from "./hook";
3
+ export { ErrorMessages, QueryEndpoint, type AddressRecord, type SocialLinksItem, type SocialLinks, type SocialRecord, type ProfileResponse, type NSResponse, type DomainResponse, type QueryOptions, type IdentityString, type QueryResult, type ProfileResult, type CredentialResult, type NSResult, type ProfileBatchResult, type NSBatchResult, type ProfileUniversalResult, type NSUniversalResult, type DomainResult, } from "./hook";
4
4
  export { Source, type SourceType } from "./source";
5
5
  export { CoinType } from "./cointype";
6
- export { type CredentialData, type CredentialResponse, type CredentialMetaData, CredentialSource, CredentialCategory, } from "./ceredential";
6
+ export { type CredentialType, type CredentialResponse, CredentialSource, CredentialCategory, } from "./ceredential";
@@ -87,8 +87,9 @@ exports.Platform = void 0;
87
87
  Platform["solana"] = "solana";
88
88
  Platform["space_id"] = "space_id";
89
89
  Platform["stacks"] = "stacks";
90
- Platform["talent"] = "talentprotocol";
91
90
  Platform["taiko"] = "taiko";
91
+ Platform["talent"] = "talentprotocol";
92
+ Platform["tally"] = "tally";
92
93
  Platform["telegram"] = "telegram";
93
94
  Platform["threads"] = "threads";
94
95
  Platform["tiktok"] = "tiktok";
@@ -84,8 +84,9 @@ export declare enum Platform {
84
84
  solana = "solana",
85
85
  space_id = "space_id",
86
86
  stacks = "stacks",
87
- talent = "talentprotocol",
88
87
  taiko = "taiko",
88
+ talent = "talentprotocol",
89
+ tally = "tally",
89
90
  telegram = "telegram",
90
91
  threads = "threads",
91
92
  tiktok = "tiktok",
@@ -85,8 +85,9 @@ var Platform;
85
85
  Platform["solana"] = "solana";
86
86
  Platform["space_id"] = "space_id";
87
87
  Platform["stacks"] = "stacks";
88
- Platform["talent"] = "talentprotocol";
89
88
  Platform["taiko"] = "taiko";
89
+ Platform["talent"] = "talentprotocol";
90
+ Platform["tally"] = "tally";
90
91
  Platform["telegram"] = "telegram";
91
92
  Platform["threads"] = "threads";
92
93
  Platform["tiktok"] = "tiktok";
@@ -34,6 +34,7 @@ exports.Source = void 0;
34
34
  Source["opensea"] = "opensea";
35
35
  Source["paragraph"] = "paragraph";
36
36
  Source["particle"] = "particle";
37
+ Source["polymarket"] = "polymarket";
37
38
  Source["rarible"] = "rarible";
38
39
  Source["rey"] = "rey";
39
40
  Source["rss3"] = "rss3";
@@ -31,6 +31,7 @@ export declare enum Source {
31
31
  opensea = "opensea",
32
32
  paragraph = "paragraph",
33
33
  particle = "particle",
34
+ polymarket = "polymarket",
34
35
  rarible = "rarible",
35
36
  rey = "rey",
36
37
  rss3 = "rss3",
@@ -52,4 +53,5 @@ export declare enum Source {
52
53
  export interface SourceType {
53
54
  name: string;
54
55
  description: string;
56
+ icon?: string;
55
57
  }
@@ -32,6 +32,7 @@ var Source;
32
32
  Source["opensea"] = "opensea";
33
33
  Source["paragraph"] = "paragraph";
34
34
  Source["particle"] = "particle";
35
+ Source["polymarket"] = "polymarket";
35
36
  Source["rarible"] = "rarible";
36
37
  Source["rey"] = "rey";
37
38
  Source["rss3"] = "rss3";
@@ -216,10 +216,31 @@ const isValidEthereumAddress = (address) => {
216
216
  const isValidSolanaAddress = (address) => {
217
217
  return regex.REGEX.SOLANA_ADDRESS.test(address);
218
218
  };
219
+ /**
220
+ * Converts an identity string to a JSON object with platform and identity
221
+ * @param input The identity to convert
222
+ * @returns An object with platform and identity, or null if invalid
223
+ *
224
+ * @example
225
+ * idToJson("ens,sujiyan.eth") // { platform: "ens", identity: "sujiyan.eth" }
226
+ * idToJson("suji.farcaster") // { platform: "farcaster", identity: "suji" }
227
+ * idToJson("suji.base") // { platform: "basenames", identity: "suji.base.eth" }
228
+ */
229
+ const idToJson = (input) => {
230
+ const id = resolveIdentity(input);
231
+ if (!id)
232
+ return null;
233
+ const [_platform, _idenitty] = id.split(",");
234
+ return {
235
+ platform: _platform,
236
+ identity: _idenitty,
237
+ };
238
+ };
219
239
 
220
240
  exports.PROD_API_ENDPOINT = PROD_API_ENDPOINT;
221
241
  exports.detectPlatform = detectPlatform;
222
242
  exports.getApiKey = getApiKey;
243
+ exports.idToJson = idToJson;
223
244
  exports.isSameAddress = isSameAddress;
224
245
  exports.isSupportedPlatform = isSupportedPlatform;
225
246
  exports.isValidEthereumAddress = isValidEthereumAddress;
@@ -60,3 +60,17 @@ export declare const isValidEthereumAddress: (address: string) => boolean;
60
60
  * @returns True if the string is a valid Solana address, false otherwise
61
61
  */
62
62
  export declare const isValidSolanaAddress: (address: string) => boolean;
63
+ /**
64
+ * Converts an identity string to a JSON object with platform and identity
65
+ * @param input The identity to convert
66
+ * @returns An object with platform and identity, or null if invalid
67
+ *
68
+ * @example
69
+ * idToJson("ens,sujiyan.eth") // { platform: "ens", identity: "sujiyan.eth" }
70
+ * idToJson("suji.farcaster") // { platform: "farcaster", identity: "suji" }
71
+ * idToJson("suji.base") // { platform: "basenames", identity: "suji.base.eth" }
72
+ */
73
+ export declare const idToJson: (input: string) => {
74
+ platform: Platform;
75
+ identity: string;
76
+ } | null;
@@ -214,5 +214,25 @@ const isValidEthereumAddress = (address) => {
214
214
  const isValidSolanaAddress = (address) => {
215
215
  return REGEX.SOLANA_ADDRESS.test(address);
216
216
  };
217
+ /**
218
+ * Converts an identity string to a JSON object with platform and identity
219
+ * @param input The identity to convert
220
+ * @returns An object with platform and identity, or null if invalid
221
+ *
222
+ * @example
223
+ * idToJson("ens,sujiyan.eth") // { platform: "ens", identity: "sujiyan.eth" }
224
+ * idToJson("suji.farcaster") // { platform: "farcaster", identity: "suji" }
225
+ * idToJson("suji.base") // { platform: "basenames", identity: "suji.base.eth" }
226
+ */
227
+ const idToJson = (input) => {
228
+ const id = resolveIdentity(input);
229
+ if (!id)
230
+ return null;
231
+ const [_platform, _idenitty] = id.split(",");
232
+ return {
233
+ platform: _platform,
234
+ identity: _idenitty,
235
+ };
236
+ };
217
237
 
218
- export { PROD_API_ENDPOINT, detectPlatform, getApiKey, isSameAddress, isSupportedPlatform, isValidEthereumAddress, isValidSolanaAddress, isWeb3Address, prettify, resolveIdentity, uglify };
238
+ export { PROD_API_ENDPOINT, detectPlatform, getApiKey, idToJson, isSameAddress, isSupportedPlatform, isValidEthereumAddress, isValidSolanaAddress, isWeb3Address, prettify, resolveIdentity, uglify };
@@ -22,6 +22,7 @@ exports.getNetwork = network.getNetwork;
22
22
  exports.SOURCE_DATA = source.SOURCE_DATA;
23
23
  exports.getSource = source.getSource;
24
24
  exports.detectPlatform = helpers.detectPlatform;
25
+ exports.idToJson = helpers.idToJson;
25
26
  exports.isSameAddress = helpers.isSameAddress;
26
27
  exports.isSupportedPlatform = helpers.isSupportedPlatform;
27
28
  exports.isValidEthereumAddress = helpers.isValidEthereumAddress;
@@ -3,4 +3,4 @@ export { REGEX } from "./regex";
3
3
  export { DEFAULT_PLATFORM, PLATFORM_DATA, getPlatform } from "./platform";
4
4
  export { NETWORK_DATA, getNetwork } from "./network";
5
5
  export { SOURCE_DATA, getSource } from "./source";
6
- export { resolveIdentity, prettify, uglify, isSupportedPlatform, detectPlatform, isSameAddress, isWeb3Address, isValidEthereumAddress, isValidSolanaAddress, } from "./helpers";
6
+ export { resolveIdentity, idToJson, prettify, uglify, isSupportedPlatform, detectPlatform, isSameAddress, isWeb3Address, isValidEthereumAddress, isValidSolanaAddress, } from "./helpers";
@@ -3,4 +3,4 @@ export { REGEX } from './regex.js';
3
3
  export { DEFAULT_PLATFORM, PLATFORM_DATA, getPlatform } from './platform.js';
4
4
  export { NETWORK_DATA, getNetwork } from './network.js';
5
5
  export { SOURCE_DATA, getSource } from './source.js';
6
- export { detectPlatform, isSameAddress, isSupportedPlatform, isValidEthereumAddress, isValidSolanaAddress, isWeb3Address, prettify, resolveIdentity, uglify } from './helpers.js';
6
+ export { detectPlatform, idToJson, isSameAddress, isSupportedPlatform, isValidEthereumAddress, isValidSolanaAddress, isWeb3Address, prettify, resolveIdentity, uglify } from './helpers.js';
@@ -799,6 +799,15 @@ const PLATFORM_DATA = new Map([
799
799
  urlPrefix: "https://app.talentprotocol.com/",
800
800
  },
801
801
  ],
802
+ [
803
+ platform.Platform.tally,
804
+ {
805
+ color: "#735BFF",
806
+ icon: "icons/icon-tally.svg",
807
+ label: "Tally",
808
+ urlPrefix: "https://www.tally.xyz/profile/",
809
+ },
810
+ ],
802
811
  [
803
812
  platform.Platform.telegram,
804
813
  {
@@ -797,6 +797,15 @@ const PLATFORM_DATA = new Map([
797
797
  urlPrefix: "https://app.talentprotocol.com/",
798
798
  },
799
799
  ],
800
+ [
801
+ Platform.tally,
802
+ {
803
+ color: "#735BFF",
804
+ icon: "icons/icon-tally.svg",
805
+ label: "Tally",
806
+ urlPrefix: "https://www.tally.xyz/profile/",
807
+ },
808
+ ],
800
809
  [
801
810
  Platform.telegram,
802
811
  {
@@ -10,6 +10,7 @@ const SOURCE_DATA = {
10
10
  [source.Source.basenames]: {
11
11
  name: "Basenames",
12
12
  description: "The domain system on Base",
13
+ icon: "icons/icon-base.svg",
13
14
  },
14
15
  [source.Source.camp_network]: {
15
16
  name: "Camp Network",
@@ -18,6 +19,7 @@ const SOURCE_DATA = {
18
19
  [source.Source.clusters]: {
19
20
  name: "Clusters",
20
21
  description: "On-chain social protocol",
22
+ icon: "icons/icon-clusters.svg",
21
23
  },
22
24
  [source.Source.crowdsourcing]: {
23
25
  name: "Crowdsourcing",
@@ -26,146 +28,187 @@ const SOURCE_DATA = {
26
28
  [source.Source.dentity]: {
27
29
  name: "Dentity",
28
30
  description: "Digital credentials",
31
+ icon: "icons/icon-dentity.svg",
29
32
  },
30
33
  [source.Source.dotbit]: {
31
34
  name: ".bit",
32
35
  description: "Decentralized cross-chain identity system",
36
+ icon: "icons/icon-dotbit.svg",
33
37
  },
34
38
  [source.Source.ens]: {
35
39
  name: "ENS",
36
40
  description: "Ethereum Name Service",
41
+ icon: "icons/icon-ens.svg",
37
42
  },
38
43
  [source.Source.ethereum]: {
39
44
  name: "Ethereum",
40
45
  description: "Ethereum",
46
+ icon: "icons/icon-ethereum.svg",
41
47
  },
42
48
  [source.Source.exchange_art]: {
43
49
  name: "Exchange Art",
44
50
  description: "A digital art marketplace",
51
+ icon: "icons/icon-exchangeArt.svg",
45
52
  },
46
53
  [source.Source.farcaster]: {
47
54
  name: "Farcaster",
48
55
  description: "Decentralized social network protocol",
56
+ icon: "icons/icon-farcaster.svg",
49
57
  },
50
58
  [source.Source.firefly]: {
51
59
  name: "Firefly",
52
60
  description: "Web3 social platform",
61
+ icon: "icons/icon-firefly.svg",
53
62
  },
54
63
  [source.Source.foundation]: {
55
64
  name: "Foundation",
56
65
  description: "NFT marketplace",
66
+ icon: "icons/icon-foundation.svg",
57
67
  },
58
68
  [source.Source.gallery]: {
59
69
  name: "Gallery",
60
70
  description: "Show your collection to the world",
71
+ icon: "icons/icon-gallery.svg",
61
72
  },
62
73
  [source.Source.gmgn]: {
63
74
  name: "GMGN",
64
75
  description: "Web3 social platform",
76
+ icon: "icons/icon-gmgn.svg",
65
77
  },
66
78
  [source.Source.icebreaker]: {
67
79
  name: "Icebreaker",
68
80
  description: "Open professional network",
81
+ icon: "icons/icon-icebreaker.svg",
69
82
  },
70
83
  [source.Source.justaname]: {
71
84
  name: "JustaName",
72
85
  description: "Identity infrastructure",
86
+ icon: "icons/icon-justaname.svg",
73
87
  },
74
88
  [source.Source.keybase]: {
75
89
  name: "Keybase",
76
90
  description: "Secure messaging and file-sharing",
91
+ icon: "icons/icon-keybase.svg",
77
92
  },
78
93
  [source.Source.lens]: {
79
94
  name: "Lens",
80
95
  description: "Web3 social graph protocol",
96
+ icon: "icons/icon-lens.svg",
81
97
  },
82
98
  [source.Source.linea]: {
83
99
  name: "Linea",
84
100
  description: "L2 based on ZK",
101
+ icon: "icons/icon-linea.svg",
85
102
  },
86
103
  [source.Source.metopia]: {
87
104
  name: "Metopia",
88
105
  description: "Web3 identity & learning platform",
106
+ icon: "icons/icon-metopia.svg",
89
107
  },
90
108
  [source.Source.mirror]: {
91
109
  name: "Mirror",
92
110
  description: "Decentralized publishing protocol",
111
+ icon: "icons/icon-mirror.svg",
93
112
  },
94
113
  [source.Source.nextid]: {
95
114
  name: "Next.ID",
96
115
  description: "Decentralized identity protocol",
116
+ icon: "icons/icon-nextid.svg",
97
117
  },
98
118
  [source.Source.nftd]: {
99
119
  name: "NF.TD",
100
120
  description: "Be your own checkmark",
121
+ icon: "icons/icon-nftd.svg",
101
122
  },
102
123
  [source.Source.nostr]: {
103
124
  name: "Nostr",
104
125
  description: "Web3 social platform",
126
+ icon: "icons/icon-nostr.svg",
105
127
  },
106
128
  [source.Source.opensea]: {
107
129
  name: "OpenSea",
108
130
  description: "NFT marketplace",
131
+ icon: "icons/icon-opensea.svg",
109
132
  },
110
133
  [source.Source.paragraph]: {
111
134
  name: "Paragraph",
112
135
  description: "Decentralized publishing protocol",
136
+ icon: "icons/icon-paragraph.svg",
113
137
  },
114
138
  [source.Source.particle]: {
115
139
  name: "Particle",
116
140
  description: "Particle",
141
+ icon: "icons/icon-particle.svg",
142
+ },
143
+ [source.Source.polymarket]: {
144
+ name: "Polymarket",
145
+ description: "Decentralized prediction market",
146
+ icon: "icons/icon-polymarket.svg",
117
147
  },
118
148
  [source.Source.rarible]: {
119
149
  name: "Rarible",
120
150
  description: "NFT marketplace",
151
+ icon: "icons/icon-rarible.svg",
121
152
  },
122
153
  [source.Source.rey]: {
123
154
  name: "Rey",
124
155
  description: "The world's attention marketplace",
156
+ icon: "icons/icon-rey.svg",
125
157
  },
126
158
  [source.Source.rss3]: {
127
159
  name: "RSS3",
128
160
  description: "Open information syndication protocol",
161
+ icon: "icons/icon-rss3.svg",
129
162
  },
130
163
  [source.Source.seekerid]: {
131
164
  name: "Seeker ID",
132
165
  description: "Solana Mobile Identity",
166
+ icon: "icons/icon-seekerid.svg",
133
167
  },
134
168
  [source.Source.sns]: {
135
169
  name: "SNS",
136
170
  description: "Solana Name Service",
171
+ icon: "icons/icon-sns.svg",
137
172
  },
138
173
  [source.Source.solana]: {
139
174
  name: "Solana",
140
175
  description: "High-performance blockchain",
176
+ icon: "icons/icon-solana.svg",
141
177
  },
142
178
  [source.Source.soundxyz]: {
143
179
  name: "Sound.xyz",
144
180
  description: "Decentralized audio platform",
181
+ icon: "icons/icon-soundxyz.svg",
145
182
  },
146
183
  [source.Source.space_id]: {
147
184
  name: "SpaceID",
148
185
  description: "Multi-chain name service",
186
+ icon: "icons/icon-spaceid.svg",
149
187
  },
150
188
  [source.Source.talentprotocol]: {
151
189
  name: "Talent",
152
190
  description: "Decentralized onchain passport",
191
+ icon: "icons/icon-talent.svg",
153
192
  },
154
193
  [source.Source.tally]: {
155
194
  name: "Tally",
156
195
  description: "Launch, manage, and grow the value of your token",
196
+ icon: "icons/icon-tally.svg",
157
197
  },
158
198
  [source.Source.twitter]: {
159
199
  name: "Twitter (X)",
160
200
  description: "Twitter (X) social platform",
201
+ icon: "icons/icon-x.svg",
161
202
  },
162
203
  [source.Source.unstoppabledomains]: {
163
204
  name: "Unstoppable Domains",
164
205
  description: "Blockchain domain name provider",
206
+ icon: "icons/icon-unstoppabledomains.svg",
165
207
  },
166
208
  [source.Source.zora]: {
167
209
  name: "Zora",
168
210
  description: "A social network where every post is a coin",
211
+ icon: "icons/icon-zora.svg",
169
212
  },
170
213
  };
171
214
  /**
@@ -8,6 +8,7 @@ const SOURCE_DATA = {
8
8
  [Source.basenames]: {
9
9
  name: "Basenames",
10
10
  description: "The domain system on Base",
11
+ icon: "icons/icon-base.svg",
11
12
  },
12
13
  [Source.camp_network]: {
13
14
  name: "Camp Network",
@@ -16,6 +17,7 @@ const SOURCE_DATA = {
16
17
  [Source.clusters]: {
17
18
  name: "Clusters",
18
19
  description: "On-chain social protocol",
20
+ icon: "icons/icon-clusters.svg",
19
21
  },
20
22
  [Source.crowdsourcing]: {
21
23
  name: "Crowdsourcing",
@@ -24,146 +26,187 @@ const SOURCE_DATA = {
24
26
  [Source.dentity]: {
25
27
  name: "Dentity",
26
28
  description: "Digital credentials",
29
+ icon: "icons/icon-dentity.svg",
27
30
  },
28
31
  [Source.dotbit]: {
29
32
  name: ".bit",
30
33
  description: "Decentralized cross-chain identity system",
34
+ icon: "icons/icon-dotbit.svg",
31
35
  },
32
36
  [Source.ens]: {
33
37
  name: "ENS",
34
38
  description: "Ethereum Name Service",
39
+ icon: "icons/icon-ens.svg",
35
40
  },
36
41
  [Source.ethereum]: {
37
42
  name: "Ethereum",
38
43
  description: "Ethereum",
44
+ icon: "icons/icon-ethereum.svg",
39
45
  },
40
46
  [Source.exchange_art]: {
41
47
  name: "Exchange Art",
42
48
  description: "A digital art marketplace",
49
+ icon: "icons/icon-exchangeArt.svg",
43
50
  },
44
51
  [Source.farcaster]: {
45
52
  name: "Farcaster",
46
53
  description: "Decentralized social network protocol",
54
+ icon: "icons/icon-farcaster.svg",
47
55
  },
48
56
  [Source.firefly]: {
49
57
  name: "Firefly",
50
58
  description: "Web3 social platform",
59
+ icon: "icons/icon-firefly.svg",
51
60
  },
52
61
  [Source.foundation]: {
53
62
  name: "Foundation",
54
63
  description: "NFT marketplace",
64
+ icon: "icons/icon-foundation.svg",
55
65
  },
56
66
  [Source.gallery]: {
57
67
  name: "Gallery",
58
68
  description: "Show your collection to the world",
69
+ icon: "icons/icon-gallery.svg",
59
70
  },
60
71
  [Source.gmgn]: {
61
72
  name: "GMGN",
62
73
  description: "Web3 social platform",
74
+ icon: "icons/icon-gmgn.svg",
63
75
  },
64
76
  [Source.icebreaker]: {
65
77
  name: "Icebreaker",
66
78
  description: "Open professional network",
79
+ icon: "icons/icon-icebreaker.svg",
67
80
  },
68
81
  [Source.justaname]: {
69
82
  name: "JustaName",
70
83
  description: "Identity infrastructure",
84
+ icon: "icons/icon-justaname.svg",
71
85
  },
72
86
  [Source.keybase]: {
73
87
  name: "Keybase",
74
88
  description: "Secure messaging and file-sharing",
89
+ icon: "icons/icon-keybase.svg",
75
90
  },
76
91
  [Source.lens]: {
77
92
  name: "Lens",
78
93
  description: "Web3 social graph protocol",
94
+ icon: "icons/icon-lens.svg",
79
95
  },
80
96
  [Source.linea]: {
81
97
  name: "Linea",
82
98
  description: "L2 based on ZK",
99
+ icon: "icons/icon-linea.svg",
83
100
  },
84
101
  [Source.metopia]: {
85
102
  name: "Metopia",
86
103
  description: "Web3 identity & learning platform",
104
+ icon: "icons/icon-metopia.svg",
87
105
  },
88
106
  [Source.mirror]: {
89
107
  name: "Mirror",
90
108
  description: "Decentralized publishing protocol",
109
+ icon: "icons/icon-mirror.svg",
91
110
  },
92
111
  [Source.nextid]: {
93
112
  name: "Next.ID",
94
113
  description: "Decentralized identity protocol",
114
+ icon: "icons/icon-nextid.svg",
95
115
  },
96
116
  [Source.nftd]: {
97
117
  name: "NF.TD",
98
118
  description: "Be your own checkmark",
119
+ icon: "icons/icon-nftd.svg",
99
120
  },
100
121
  [Source.nostr]: {
101
122
  name: "Nostr",
102
123
  description: "Web3 social platform",
124
+ icon: "icons/icon-nostr.svg",
103
125
  },
104
126
  [Source.opensea]: {
105
127
  name: "OpenSea",
106
128
  description: "NFT marketplace",
129
+ icon: "icons/icon-opensea.svg",
107
130
  },
108
131
  [Source.paragraph]: {
109
132
  name: "Paragraph",
110
133
  description: "Decentralized publishing protocol",
134
+ icon: "icons/icon-paragraph.svg",
111
135
  },
112
136
  [Source.particle]: {
113
137
  name: "Particle",
114
138
  description: "Particle",
139
+ icon: "icons/icon-particle.svg",
140
+ },
141
+ [Source.polymarket]: {
142
+ name: "Polymarket",
143
+ description: "Decentralized prediction market",
144
+ icon: "icons/icon-polymarket.svg",
115
145
  },
116
146
  [Source.rarible]: {
117
147
  name: "Rarible",
118
148
  description: "NFT marketplace",
149
+ icon: "icons/icon-rarible.svg",
119
150
  },
120
151
  [Source.rey]: {
121
152
  name: "Rey",
122
153
  description: "The world's attention marketplace",
154
+ icon: "icons/icon-rey.svg",
123
155
  },
124
156
  [Source.rss3]: {
125
157
  name: "RSS3",
126
158
  description: "Open information syndication protocol",
159
+ icon: "icons/icon-rss3.svg",
127
160
  },
128
161
  [Source.seekerid]: {
129
162
  name: "Seeker ID",
130
163
  description: "Solana Mobile Identity",
164
+ icon: "icons/icon-seekerid.svg",
131
165
  },
132
166
  [Source.sns]: {
133
167
  name: "SNS",
134
168
  description: "Solana Name Service",
169
+ icon: "icons/icon-sns.svg",
135
170
  },
136
171
  [Source.solana]: {
137
172
  name: "Solana",
138
173
  description: "High-performance blockchain",
174
+ icon: "icons/icon-solana.svg",
139
175
  },
140
176
  [Source.soundxyz]: {
141
177
  name: "Sound.xyz",
142
178
  description: "Decentralized audio platform",
179
+ icon: "icons/icon-soundxyz.svg",
143
180
  },
144
181
  [Source.space_id]: {
145
182
  name: "SpaceID",
146
183
  description: "Multi-chain name service",
184
+ icon: "icons/icon-spaceid.svg",
147
185
  },
148
186
  [Source.talentprotocol]: {
149
187
  name: "Talent",
150
188
  description: "Decentralized onchain passport",
189
+ icon: "icons/icon-talent.svg",
151
190
  },
152
191
  [Source.tally]: {
153
192
  name: "Tally",
154
193
  description: "Launch, manage, and grow the value of your token",
194
+ icon: "icons/icon-tally.svg",
155
195
  },
156
196
  [Source.twitter]: {
157
197
  name: "Twitter (X)",
158
198
  description: "Twitter (X) social platform",
199
+ icon: "icons/icon-x.svg",
159
200
  },
160
201
  [Source.unstoppabledomains]: {
161
202
  name: "Unstoppable Domains",
162
203
  description: "Blockchain domain name provider",
204
+ icon: "icons/icon-unstoppabledomains.svg",
163
205
  },
164
206
  [Source.zora]: {
165
207
  name: "Zora",
166
208
  description: "A social network where every post is a coin",
209
+ icon: "icons/icon-zora.svg",
167
210
  },
168
211
  };
169
212
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "web3bio-profile-kit",
3
- "version": "0.1.25",
3
+ "version": "0.1.27",
4
4
  "description": "React hooks for querying ENS, Farcaster, Lens and Web3 universal profiles",
5
5
  "author": "web3bio",
6
6
  "license": "MIT",