@exodus/analytics-validation 3.5.0 → 3.6.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/CHANGELOG.md CHANGED
@@ -3,6 +3,12 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [3.6.0](https://github.com/ExodusMovement/exodus/compare/@exodus/analytics-validation@3.5.0...@exodus/analytics-validation@3.6.0) (2026-09-24)
7
+
8
+ ### Features
9
+
10
+ - **analytics:** add pay rewards event schemas and joined super property ([#45676](https://github.com/ExodusMovement/exodus/issues/45676)) ([29f7892](https://github.com/ExodusMovement/exodus/commit/29f78924bfafbc2c0dcd5d161a401b4744d5a48c))
11
+
6
12
  ## [3.5.0](https://github.com/ExodusMovement/exodus/compare/@exodus/analytics-validation@3.3.0...@exodus/analytics-validation@3.5.0) (2026-09-23)
7
13
 
8
14
  ### Features
@@ -429,6 +429,16 @@
429
429
  },
430
430
  "pay_has_saved_deposit_method": {
431
431
  "type": "boolean"
432
+ },
433
+ "pay_rewards_joined": {
434
+ "type": "boolean"
435
+ },
436
+ "pay_rewards_available": {
437
+ "type": "boolean"
438
+ },
439
+ "pay_rewards_cohort": {
440
+ "type": "string",
441
+ "enum": ["solana", "ethereum", "other_evm", "tron", "none"]
432
442
  }
433
443
  }
434
444
  }
package/lib/events.d.ts CHANGED
@@ -81,6 +81,9 @@ export type AnalyticsCommonProperties = {
81
81
  payHasPayAsDefault?: boolean
82
82
  payHasPayAvailable?: boolean
83
83
  payHasSavedDepositMethod?: boolean
84
+ payRewardsJoined?: boolean
85
+ payRewardsAvailable?: boolean
86
+ payRewardsCohort?: "solana" | "ethereum" | "other_evm" | "tron" | "none"
84
87
  }
85
88
 
86
89
  export type PredictionsProperties = {
@@ -351,6 +354,7 @@ export interface AnalyticsEventMap {
351
354
  portfolioFromAccountSource: string
352
355
  portfolioToAccountSource: string
353
356
  userAmountFromUsd: number
357
+ rewardsPointsEstimate?: number | null
354
358
  }
355
359
  "ExchangeSwapUnavailableView": {
356
360
  userAssetTo: string
@@ -1112,6 +1116,59 @@ export interface AnalyticsEventMap {
1112
1116
  isAnyAmount?: boolean
1113
1117
  }
1114
1118
  "PayRequestView": {}
1119
+ "PayRewardsBannerDismiss": {
1120
+ invitation?: "new" | "existing"
1121
+ }
1122
+ "PayRewardsBannerView": {
1123
+ surface?: "wallet_carousel" | "pay_home"
1124
+ invitation?: "new" | "existing"
1125
+ }
1126
+ "PayRewardsDashboardView": {
1127
+ entryPoint?: "pay_home_card" | "wallet_banner" | "onboarding" | "settings"
1128
+ pointsTotal?: number
1129
+ pointsPending?: number
1130
+ canRedeem?: boolean
1131
+ }
1132
+ "PayRewardsDisable": {}
1133
+ "PayRewardsJoin": {
1134
+ entryPoint?: "wallet_banner" | "pay_home_card" | "settings" | "dashboard_info" | "disable_sheet" | "cash_banner"
1135
+ introVariant?: "new_user" | "existing_pay_user"
1136
+ eligibleAssetCount?: number
1137
+ eligibleBalanceUsd?: number
1138
+ networkFeeUsd?: number | null
1139
+ feeReimbursementPoints?: number | null
1140
+ }
1141
+ "PayRewardsOnboardingDismiss": {
1142
+ stepName?: "welcome_preview" | "intro" | "store" | "benefits" | "join" | "welcome"
1143
+ dismissMethod?: "swipe_down" | "back" | "close" | "not_now"
1144
+ consentToggled?: boolean
1145
+ entryPoint?: "wallet_banner" | "pay_home_card" | "settings" | "dashboard_info" | "disable_sheet" | "cash_banner"
1146
+ introVariant?: "new_user" | "existing_pay_user"
1147
+ }
1148
+ "PayRewardsOnboardingView": {
1149
+ stepName?: "welcome_preview" | "intro" | "store" | "benefits" | "join" | "welcome"
1150
+ entryPoint?: "wallet_banner" | "pay_home_card" | "settings" | "dashboard_info" | "disable_sheet" | "cash_banner"
1151
+ introVariant?: "new_user" | "existing_pay_user"
1152
+ isInformational?: boolean
1153
+ resumed?: boolean
1154
+ creditStatus?: "estimated" | "confirmed" | "delayed" | "error" | null
1155
+ points?: number | null
1156
+ }
1157
+ "PayRewardsRedeem": {
1158
+ success?: boolean
1159
+ points?: number | null
1160
+ amountUsd?: number | null
1161
+ errorType?: "insufficient_points" | "conversion_disabled" | "network" | "other" | null
1162
+ }
1163
+ "PayRewardsTermsView": {
1164
+ entryPoint?: "wallet_banner" | "pay_home_card" | "settings" | "dashboard_info" | "disable_sheet" | "cash_banner"
1165
+ }
1166
+ "PayRewardsWishlistSubmit": {
1167
+ storeSelected?: Array<string>
1168
+ wishlistSelected?: Array<string>
1169
+ entryPoint?: "wallet_banner" | "pay_home_card" | "settings" | "dashboard_info" | "disable_sheet" | "cash_banner"
1170
+ introVariant?: "new_user" | "existing_pay_user"
1171
+ }
1115
1172
  "PayWithdrawAddressView": {
1116
1173
  tokenType?: "stablecoin" | "crypto"
1117
1174
  }
@@ -30,6 +30,9 @@
30
30
  },
31
31
  "user_amount_from_usd": {
32
32
  "type": "number"
33
+ },
34
+ "rewards_points_estimate": {
35
+ "type": ["number", "null"]
33
36
  }
34
37
  },
35
38
  "unevaluatedProperties": false
@@ -638,6 +638,36 @@
638
638
  {
639
639
  "$ref": "pay-request-view#"
640
640
  },
641
+ {
642
+ "$ref": "pay-rewards-banner-dismiss#"
643
+ },
644
+ {
645
+ "$ref": "pay-rewards-banner-view#"
646
+ },
647
+ {
648
+ "$ref": "pay-rewards-dashboard-view#"
649
+ },
650
+ {
651
+ "$ref": "pay-rewards-disable#"
652
+ },
653
+ {
654
+ "$ref": "pay-rewards-join#"
655
+ },
656
+ {
657
+ "$ref": "pay-rewards-onboarding-dismiss#"
658
+ },
659
+ {
660
+ "$ref": "pay-rewards-onboarding-view#"
661
+ },
662
+ {
663
+ "$ref": "pay-rewards-redeem#"
664
+ },
665
+ {
666
+ "$ref": "pay-rewards-terms-view#"
667
+ },
668
+ {
669
+ "$ref": "pay-rewards-wishlist-submit#"
670
+ },
641
671
  {
642
672
  "$ref": "pay-withdraw-address-view#"
643
673
  },
@@ -0,0 +1,27 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "event": {
6
+ "const": "PayRewardsBannerDismiss"
7
+ },
8
+ "properties": {
9
+ "allOf": [
10
+ {
11
+ "$ref": "common-properties#"
12
+ }
13
+ ],
14
+ "type": "object",
15
+ "required": [],
16
+ "properties": {
17
+ "invitation": {
18
+ "type": "string",
19
+ "enum": ["new", "existing"]
20
+ }
21
+ },
22
+ "unevaluatedProperties": false
23
+ }
24
+ },
25
+ "unevaluatedProperties": false,
26
+ "required": ["event", "properties"]
27
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "event": {
6
+ "const": "PayRewardsBannerView"
7
+ },
8
+ "properties": {
9
+ "allOf": [
10
+ {
11
+ "$ref": "common-properties#"
12
+ }
13
+ ],
14
+ "type": "object",
15
+ "required": [],
16
+ "properties": {
17
+ "surface": {
18
+ "type": "string",
19
+ "enum": ["wallet_carousel", "pay_home"]
20
+ },
21
+ "invitation": {
22
+ "type": "string",
23
+ "enum": ["new", "existing"]
24
+ }
25
+ },
26
+ "unevaluatedProperties": false
27
+ }
28
+ },
29
+ "unevaluatedProperties": false,
30
+ "required": ["event", "properties"]
31
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "event": {
6
+ "const": "PayRewardsDashboardView"
7
+ },
8
+ "properties": {
9
+ "allOf": [
10
+ {
11
+ "$ref": "common-properties#"
12
+ }
13
+ ],
14
+ "type": "object",
15
+ "required": [],
16
+ "properties": {
17
+ "entry_point": {
18
+ "type": "string",
19
+ "enum": ["pay_home_card", "wallet_banner", "onboarding", "settings"]
20
+ },
21
+ "points_total": {
22
+ "type": "number"
23
+ },
24
+ "points_pending": {
25
+ "type": "number"
26
+ },
27
+ "can_redeem": {
28
+ "type": "boolean"
29
+ }
30
+ },
31
+ "unevaluatedProperties": false
32
+ }
33
+ },
34
+ "unevaluatedProperties": false,
35
+ "required": ["event", "properties"]
36
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "event": {
6
+ "const": "PayRewardsDisable"
7
+ },
8
+ "properties": {
9
+ "allOf": [
10
+ {
11
+ "$ref": "common-properties#"
12
+ }
13
+ ],
14
+ "type": "object",
15
+ "required": [],
16
+ "properties": {},
17
+ "unevaluatedProperties": false
18
+ }
19
+ },
20
+ "unevaluatedProperties": false,
21
+ "required": ["event", "properties"]
22
+ }
@@ -0,0 +1,50 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "event": {
6
+ "const": "PayRewardsJoin"
7
+ },
8
+ "properties": {
9
+ "allOf": [
10
+ {
11
+ "$ref": "common-properties#"
12
+ }
13
+ ],
14
+ "type": "object",
15
+ "required": [],
16
+ "properties": {
17
+ "entry_point": {
18
+ "type": "string",
19
+ "enum": [
20
+ "wallet_banner",
21
+ "pay_home_card",
22
+ "settings",
23
+ "dashboard_info",
24
+ "disable_sheet",
25
+ "cash_banner"
26
+ ]
27
+ },
28
+ "intro_variant": {
29
+ "type": "string",
30
+ "enum": ["new_user", "existing_pay_user"]
31
+ },
32
+ "eligible_asset_count": {
33
+ "type": "number"
34
+ },
35
+ "eligible_balance_usd": {
36
+ "type": "number"
37
+ },
38
+ "network_fee_usd": {
39
+ "type": ["number", "null"]
40
+ },
41
+ "fee_reimbursement_points": {
42
+ "type": ["number", "null"]
43
+ }
44
+ },
45
+ "unevaluatedProperties": false
46
+ }
47
+ },
48
+ "unevaluatedProperties": false,
49
+ "required": ["event", "properties"]
50
+ }
@@ -0,0 +1,49 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "event": {
6
+ "const": "PayRewardsOnboardingDismiss"
7
+ },
8
+ "properties": {
9
+ "allOf": [
10
+ {
11
+ "$ref": "common-properties#"
12
+ }
13
+ ],
14
+ "type": "object",
15
+ "required": [],
16
+ "properties": {
17
+ "step_name": {
18
+ "type": "string",
19
+ "enum": ["welcome_preview", "intro", "store", "benefits", "join", "welcome"]
20
+ },
21
+ "dismiss_method": {
22
+ "type": "string",
23
+ "enum": ["swipe_down", "back", "close", "not_now"]
24
+ },
25
+ "consent_toggled": {
26
+ "type": "boolean"
27
+ },
28
+ "entry_point": {
29
+ "type": "string",
30
+ "enum": [
31
+ "wallet_banner",
32
+ "pay_home_card",
33
+ "settings",
34
+ "dashboard_info",
35
+ "disable_sheet",
36
+ "cash_banner"
37
+ ]
38
+ },
39
+ "intro_variant": {
40
+ "type": "string",
41
+ "enum": ["new_user", "existing_pay_user"]
42
+ }
43
+ },
44
+ "unevaluatedProperties": false
45
+ }
46
+ },
47
+ "unevaluatedProperties": false,
48
+ "required": ["event", "properties"]
49
+ }
@@ -0,0 +1,55 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "event": {
6
+ "const": "PayRewardsOnboardingView"
7
+ },
8
+ "properties": {
9
+ "allOf": [
10
+ {
11
+ "$ref": "common-properties#"
12
+ }
13
+ ],
14
+ "type": "object",
15
+ "required": [],
16
+ "properties": {
17
+ "step_name": {
18
+ "type": "string",
19
+ "enum": ["welcome_preview", "intro", "store", "benefits", "join", "welcome"]
20
+ },
21
+ "entry_point": {
22
+ "type": "string",
23
+ "enum": [
24
+ "wallet_banner",
25
+ "pay_home_card",
26
+ "settings",
27
+ "dashboard_info",
28
+ "disable_sheet",
29
+ "cash_banner"
30
+ ]
31
+ },
32
+ "intro_variant": {
33
+ "type": "string",
34
+ "enum": ["new_user", "existing_pay_user"]
35
+ },
36
+ "is_informational": {
37
+ "type": "boolean"
38
+ },
39
+ "resumed": {
40
+ "type": "boolean"
41
+ },
42
+ "credit_status": {
43
+ "type": ["string", "null"],
44
+ "enum": ["estimated", "confirmed", "delayed", "error", null]
45
+ },
46
+ "points": {
47
+ "type": ["number", "null"]
48
+ }
49
+ },
50
+ "unevaluatedProperties": false
51
+ }
52
+ },
53
+ "unevaluatedProperties": false,
54
+ "required": ["event", "properties"]
55
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "event": {
6
+ "const": "PayRewardsRedeem"
7
+ },
8
+ "properties": {
9
+ "allOf": [
10
+ {
11
+ "$ref": "common-properties#"
12
+ }
13
+ ],
14
+ "type": "object",
15
+ "required": [],
16
+ "properties": {
17
+ "success": {
18
+ "type": "boolean"
19
+ },
20
+ "points": {
21
+ "type": ["number", "null"]
22
+ },
23
+ "amount_usd": {
24
+ "type": ["number", "null"]
25
+ },
26
+ "error_type": {
27
+ "type": ["string", "null"],
28
+ "enum": ["insufficient_points", "conversion_disabled", "network", "other", null]
29
+ }
30
+ },
31
+ "unevaluatedProperties": false
32
+ }
33
+ },
34
+ "unevaluatedProperties": false,
35
+ "required": ["event", "properties"]
36
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "event": {
6
+ "const": "PayRewardsTermsView"
7
+ },
8
+ "properties": {
9
+ "allOf": [
10
+ {
11
+ "$ref": "common-properties#"
12
+ }
13
+ ],
14
+ "type": "object",
15
+ "required": [],
16
+ "properties": {
17
+ "entry_point": {
18
+ "type": "string",
19
+ "enum": [
20
+ "wallet_banner",
21
+ "pay_home_card",
22
+ "settings",
23
+ "dashboard_info",
24
+ "disable_sheet",
25
+ "cash_banner"
26
+ ]
27
+ }
28
+ },
29
+ "unevaluatedProperties": false
30
+ }
31
+ },
32
+ "unevaluatedProperties": false,
33
+ "required": ["event", "properties"]
34
+ }
@@ -0,0 +1,50 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "event": {
6
+ "const": "PayRewardsWishlistSubmit"
7
+ },
8
+ "properties": {
9
+ "allOf": [
10
+ {
11
+ "$ref": "common-properties#"
12
+ }
13
+ ],
14
+ "type": "object",
15
+ "required": [],
16
+ "properties": {
17
+ "store_selected": {
18
+ "type": "array",
19
+ "items": {
20
+ "type": "string"
21
+ }
22
+ },
23
+ "wishlist_selected": {
24
+ "type": "array",
25
+ "items": {
26
+ "type": "string"
27
+ }
28
+ },
29
+ "entry_point": {
30
+ "type": "string",
31
+ "enum": [
32
+ "wallet_banner",
33
+ "pay_home_card",
34
+ "settings",
35
+ "dashboard_info",
36
+ "disable_sheet",
37
+ "cash_banner"
38
+ ]
39
+ },
40
+ "intro_variant": {
41
+ "type": "string",
42
+ "enum": ["new_user", "existing_pay_user"]
43
+ }
44
+ },
45
+ "unevaluatedProperties": false
46
+ }
47
+ },
48
+ "unevaluatedProperties": false,
49
+ "required": ["event", "properties"]
50
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@exodus/analytics-validation",
3
- "version": "3.5.0",
3
+ "version": "3.6.0",
4
4
  "type": "module",
5
5
  "description": "JSON schemas for analytics events, to prevent sensitive data from being sent up to the infamous cloud",
6
6
  "author": "Exodus Movement, Inc.",
@@ -56,5 +56,5 @@
56
56
  "access": "public",
57
57
  "provenance": false
58
58
  },
59
- "gitHead": "167b6409ba2ff5e24dc84704f7cef7e1c8f66056"
59
+ "gitHead": "b050f5f6f7c57ca329ca7e7d15524c787c2f4ad7"
60
60
  }