@exodus/analytics-validation 3.5.0 → 3.6.1

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,18 @@
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.1](https://github.com/ExodusMovement/exodus/compare/@exodus/analytics-validation@3.6.0...@exodus/analytics-validation@3.6.1) (2026-09-27)
7
+
8
+ ### Bug Fixes
9
+
10
+ - **rewards:** preserve redemption details and extend analytics schemas ([#45832](https://github.com/ExodusMovement/exodus/issues/45832)) ([449a8aa](https://github.com/ExodusMovement/exodus/commit/449a8aaa512e22b91f5a4a99058b1187544760e1))
11
+
12
+ ## [3.6.0](https://github.com/ExodusMovement/exodus/compare/@exodus/analytics-validation@3.5.0...@exodus/analytics-validation@3.6.0) (2026-09-24)
13
+
14
+ ### Features
15
+
16
+ - **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))
17
+
6
18
  ## [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
19
 
8
20
  ### 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,65 @@ 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
+ stablecoinBalanceUsd?: number
1126
+ stablecoinAssets?: Array<string>
1127
+ }
1128
+ "PayRewardsDashboardView": {
1129
+ entryPoint?: "pay_home_card" | "wallet_banner" | "onboarding" | "settings"
1130
+ pointsTotal?: number
1131
+ pointsPending?: number
1132
+ canRedeem?: boolean
1133
+ }
1134
+ "PayRewardsDisable": {
1135
+ cashBalanceUsd?: number | null
1136
+ }
1137
+ "PayRewardsJoin": {
1138
+ entryPoint?: "wallet_banner" | "pay_home_card" | "settings" | "dashboard_info" | "disable_sheet" | "cash_banner"
1139
+ introVariant?: "new_user" | "existing_pay_user"
1140
+ eligibleAssetCount?: number
1141
+ eligibleBalanceUsd?: number
1142
+ networkFeeUsd?: number | null
1143
+ feeReimbursementPoints?: number | null
1144
+ eligibleAssets?: Array<string>
1145
+ walletAgeDays?: number | null
1146
+ }
1147
+ "PayRewardsOnboardingDismiss": {
1148
+ stepName?: "welcome_preview" | "intro" | "store" | "benefits" | "join" | "welcome"
1149
+ dismissMethod?: "swipe_down" | "back" | "close" | "not_now"
1150
+ consentToggled?: boolean
1151
+ entryPoint?: "wallet_banner" | "pay_home_card" | "settings" | "dashboard_info" | "disable_sheet" | "cash_banner"
1152
+ introVariant?: "new_user" | "existing_pay_user"
1153
+ }
1154
+ "PayRewardsOnboardingView": {
1155
+ stepName?: "welcome_preview" | "intro" | "store" | "benefits" | "join" | "welcome"
1156
+ entryPoint?: "wallet_banner" | "pay_home_card" | "settings" | "dashboard_info" | "disable_sheet" | "cash_banner"
1157
+ introVariant?: "new_user" | "existing_pay_user"
1158
+ isInformational?: boolean
1159
+ resumed?: boolean
1160
+ creditStatus?: "estimated" | "confirmed" | "delayed" | "error" | null
1161
+ points?: number | null
1162
+ }
1163
+ "PayRewardsRedeem": {
1164
+ success?: boolean
1165
+ points?: number | null
1166
+ amountUsd?: number | null
1167
+ errorType?: "insufficient_points" | "conversion_disabled" | "network" | "other" | null
1168
+ }
1169
+ "PayRewardsTermsView": {
1170
+ entryPoint?: "wallet_banner" | "pay_home_card" | "settings" | "dashboard_info" | "disable_sheet" | "cash_banner"
1171
+ }
1172
+ "PayRewardsWishlistSubmit": {
1173
+ storeSelected?: Array<string>
1174
+ wishlistSelected?: Array<string>
1175
+ entryPoint?: "wallet_banner" | "pay_home_card" | "settings" | "dashboard_info" | "disable_sheet" | "cash_banner"
1176
+ introVariant?: "new_user" | "existing_pay_user"
1177
+ }
1115
1178
  "PayWithdrawAddressView": {
1116
1179
  tokenType?: "stablecoin" | "crypto"
1117
1180
  }
@@ -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,40 @@
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
+ "stablecoin_balance_usd": {
26
+ "type": "number"
27
+ },
28
+ "stablecoin_assets": {
29
+ "type": "array",
30
+ "items": {
31
+ "type": "string"
32
+ }
33
+ }
34
+ },
35
+ "unevaluatedProperties": false
36
+ }
37
+ },
38
+ "unevaluatedProperties": false,
39
+ "required": ["event", "properties"]
40
+ }
@@ -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,26 @@
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
+ "cash_balance_usd": {
18
+ "type": ["number", "null"]
19
+ }
20
+ },
21
+ "unevaluatedProperties": false
22
+ }
23
+ },
24
+ "unevaluatedProperties": false,
25
+ "required": ["event", "properties"]
26
+ }
@@ -0,0 +1,59 @@
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
+ "eligible_assets": {
45
+ "type": "array",
46
+ "items": {
47
+ "type": "string"
48
+ }
49
+ },
50
+ "wallet_age_days": {
51
+ "type": ["number", "null"]
52
+ }
53
+ },
54
+ "unevaluatedProperties": false
55
+ }
56
+ },
57
+ "unevaluatedProperties": false,
58
+ "required": ["event", "properties"]
59
+ }
@@ -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.1",
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": "00a3249a05ddc45b4ccaf0ac17a7db17d34ef5ad"
60
60
  }