@snagsolutions/sdk 0.1.0-alpha.18 → 0.1.0-alpha.180

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.
Files changed (272) hide show
  1. package/CHANGELOG.md +1472 -0
  2. package/README.md +13 -23
  3. package/core.d.ts +19 -5
  4. package/core.d.ts.map +1 -1
  5. package/core.js +24 -17
  6. package/core.js.map +1 -1
  7. package/core.mjs +24 -17
  8. package/core.mjs.map +1 -1
  9. package/index.d.mts +7 -4
  10. package/index.d.ts +7 -4
  11. package/index.d.ts.map +1 -1
  12. package/index.js +8 -4
  13. package/index.js.map +1 -1
  14. package/index.mjs +8 -4
  15. package/index.mjs.map +1 -1
  16. package/package.json +4 -5
  17. package/resource.d.ts +1 -1
  18. package/resource.d.ts.map +1 -1
  19. package/resource.js.map +1 -1
  20. package/resource.mjs.map +1 -1
  21. package/resources/assets.d.ts +16 -2
  22. package/resources/assets.d.ts.map +1 -1
  23. package/resources/assets.js +8 -0
  24. package/resources/assets.js.map +1 -1
  25. package/resources/assets.mjs +8 -0
  26. package/resources/assets.mjs.map +1 -1
  27. package/resources/auctions/auctions.d.ts +285 -0
  28. package/resources/auctions/auctions.d.ts.map +1 -0
  29. package/resources/auctions/auctions.js +76 -0
  30. package/resources/auctions/auctions.js.map +1 -0
  31. package/resources/auctions/auctions.mjs +49 -0
  32. package/resources/auctions/auctions.mjs.map +1 -0
  33. package/resources/auctions/index.d.ts +3 -0
  34. package/resources/auctions/index.d.ts.map +1 -0
  35. package/resources/auctions/index.js +9 -0
  36. package/resources/auctions/index.js.map +1 -0
  37. package/resources/auctions/index.mjs +4 -0
  38. package/resources/auctions/index.mjs.map +1 -0
  39. package/resources/auctions/website-user-attributes/index.d.ts +3 -0
  40. package/resources/auctions/website-user-attributes/index.d.ts.map +1 -0
  41. package/resources/auctions/website-user-attributes/index.js +9 -0
  42. package/resources/auctions/website-user-attributes/index.js.map +1 -0
  43. package/resources/auctions/website-user-attributes/index.mjs +4 -0
  44. package/resources/auctions/website-user-attributes/index.mjs.map +1 -0
  45. package/resources/auctions/website-user-attributes/values.d.ts +122 -0
  46. package/resources/auctions/website-user-attributes/values.d.ts.map +1 -0
  47. package/resources/auctions/website-user-attributes/values.js +49 -0
  48. package/resources/auctions/website-user-attributes/values.js.map +1 -0
  49. package/resources/auctions/website-user-attributes/values.mjs +45 -0
  50. package/resources/auctions/website-user-attributes/values.mjs.map +1 -0
  51. package/resources/auctions/website-user-attributes/website-user-attributes.d.ts +132 -0
  52. package/resources/auctions/website-user-attributes/website-user-attributes.d.ts.map +1 -0
  53. package/resources/auctions/website-user-attributes/website-user-attributes.js +76 -0
  54. package/resources/auctions/website-user-attributes/website-user-attributes.js.map +1 -0
  55. package/resources/auctions/website-user-attributes/website-user-attributes.mjs +49 -0
  56. package/resources/auctions/website-user-attributes/website-user-attributes.mjs.map +1 -0
  57. package/resources/auctions/website-user-attributes.d.ts +2 -0
  58. package/resources/auctions/website-user-attributes.d.ts.map +1 -0
  59. package/resources/auctions/website-user-attributes.js +19 -0
  60. package/resources/auctions/website-user-attributes.js.map +1 -0
  61. package/resources/auctions/website-user-attributes.mjs +3 -0
  62. package/resources/auctions/website-user-attributes.mjs.map +1 -0
  63. package/resources/auctions.d.ts +1 -133
  64. package/resources/auctions.d.ts.map +1 -1
  65. package/resources/auctions.js +15 -22
  66. package/resources/auctions.js.map +1 -1
  67. package/resources/auctions.mjs +1 -20
  68. package/resources/auctions.mjs.map +1 -1
  69. package/resources/auth.d.ts +17 -4
  70. package/resources/auth.d.ts.map +1 -1
  71. package/resources/auth.js.map +1 -1
  72. package/resources/auth.mjs.map +1 -1
  73. package/resources/index.d.ts +2 -2
  74. package/resources/index.d.ts.map +1 -1
  75. package/resources/index.js +1 -1
  76. package/resources/index.js.map +1 -1
  77. package/resources/index.mjs +1 -1
  78. package/resources/index.mjs.map +1 -1
  79. package/resources/loyalty/account-streaks.d.ts +81 -0
  80. package/resources/loyalty/account-streaks.d.ts.map +1 -0
  81. package/resources/loyalty/account-streaks.js +24 -0
  82. package/resources/loyalty/account-streaks.js.map +1 -0
  83. package/resources/loyalty/account-streaks.mjs +20 -0
  84. package/resources/loyalty/account-streaks.mjs.map +1 -0
  85. package/resources/loyalty/accounts.d.ts +60 -16
  86. package/resources/loyalty/accounts.d.ts.map +1 -1
  87. package/resources/loyalty/accounts.js +14 -0
  88. package/resources/loyalty/accounts.js.map +1 -1
  89. package/resources/loyalty/accounts.mjs +14 -0
  90. package/resources/loyalty/accounts.mjs.map +1 -1
  91. package/resources/loyalty/badges.d.ts +504 -22
  92. package/resources/loyalty/badges.d.ts.map +1 -1
  93. package/resources/loyalty/badges.js +19 -1
  94. package/resources/loyalty/badges.js.map +1 -1
  95. package/resources/loyalty/badges.mjs +19 -1
  96. package/resources/loyalty/badges.mjs.map +1 -1
  97. package/resources/loyalty/currencies.d.ts +19 -0
  98. package/resources/loyalty/currencies.d.ts.map +1 -1
  99. package/resources/loyalty/currencies.js +19 -0
  100. package/resources/loyalty/currencies.js.map +1 -1
  101. package/resources/loyalty/currencies.mjs +19 -0
  102. package/resources/loyalty/currencies.mjs.map +1 -1
  103. package/resources/loyalty/index.d.ts +4 -4
  104. package/resources/loyalty/index.d.ts.map +1 -1
  105. package/resources/loyalty/index.js +5 -5
  106. package/resources/loyalty/index.js.map +1 -1
  107. package/resources/loyalty/index.mjs +3 -3
  108. package/resources/loyalty/index.mjs.map +1 -1
  109. package/resources/loyalty/loyalty.d.ts +11 -11
  110. package/resources/loyalty/loyalty.d.ts.map +1 -1
  111. package/resources/loyalty/loyalty.js +6 -6
  112. package/resources/loyalty/loyalty.js.map +1 -1
  113. package/resources/loyalty/loyalty.mjs +7 -7
  114. package/resources/loyalty/loyalty.mjs.map +1 -1
  115. package/resources/loyalty/multipliers.d.ts +39 -2
  116. package/resources/loyalty/multipliers.d.ts.map +1 -1
  117. package/resources/loyalty/multipliers.js +23 -0
  118. package/resources/loyalty/multipliers.js.map +1 -1
  119. package/resources/loyalty/multipliers.mjs +23 -0
  120. package/resources/loyalty/multipliers.mjs.map +1 -1
  121. package/resources/loyalty/questions-responses.d.ts +39 -0
  122. package/resources/loyalty/questions-responses.d.ts.map +1 -1
  123. package/resources/loyalty/questions-responses.js +9 -0
  124. package/resources/loyalty/questions-responses.js.map +1 -1
  125. package/resources/loyalty/questions-responses.mjs +9 -0
  126. package/resources/loyalty/questions-responses.mjs.map +1 -1
  127. package/resources/loyalty/questions.d.ts +37 -2
  128. package/resources/loyalty/questions.d.ts.map +1 -1
  129. package/resources/loyalty/questions.js +31 -0
  130. package/resources/loyalty/questions.js.map +1 -1
  131. package/resources/loyalty/questions.mjs +31 -0
  132. package/resources/loyalty/questions.mjs.map +1 -1
  133. package/resources/loyalty/rule-edits.d.ts +2630 -8
  134. package/resources/loyalty/rule-edits.d.ts.map +1 -1
  135. package/resources/loyalty/rule-edits.js +14 -0
  136. package/resources/loyalty/rule-edits.js.map +1 -1
  137. package/resources/loyalty/rule-edits.mjs +14 -0
  138. package/resources/loyalty/rule-edits.mjs.map +1 -1
  139. package/resources/loyalty/rule-groups.d.ts +279 -64
  140. package/resources/loyalty/rule-groups.d.ts.map +1 -1
  141. package/resources/loyalty/rule-groups.js +38 -2
  142. package/resources/loyalty/rule-groups.js.map +1 -1
  143. package/resources/loyalty/rule-groups.mjs +38 -2
  144. package/resources/loyalty/rule-groups.mjs.map +1 -1
  145. package/resources/loyalty/rules.d.ts +1902 -269
  146. package/resources/loyalty/rules.d.ts.map +1 -1
  147. package/resources/loyalty/rules.js +40 -9
  148. package/resources/loyalty/rules.js.map +1 -1
  149. package/resources/loyalty/rules.mjs +40 -9
  150. package/resources/loyalty/rules.mjs.map +1 -1
  151. package/resources/loyalty/transactions/index.d.ts +3 -0
  152. package/resources/loyalty/transactions/index.d.ts.map +1 -0
  153. package/resources/loyalty/transactions/index.js +9 -0
  154. package/resources/loyalty/transactions/index.js.map +1 -0
  155. package/resources/loyalty/transactions/index.mjs +4 -0
  156. package/resources/loyalty/transactions/index.mjs.map +1 -0
  157. package/resources/loyalty/transactions/rule-statuses.d.ts +120 -0
  158. package/resources/loyalty/transactions/rule-statuses.d.ts.map +1 -0
  159. package/resources/loyalty/transactions/rule-statuses.js +30 -0
  160. package/resources/loyalty/transactions/rule-statuses.js.map +1 -0
  161. package/resources/loyalty/transactions/rule-statuses.mjs +26 -0
  162. package/resources/loyalty/transactions/rule-statuses.mjs.map +1 -0
  163. package/resources/loyalty/transactions/transactions.d.ts +410 -0
  164. package/resources/loyalty/transactions/transactions.d.ts.map +1 -0
  165. package/resources/loyalty/transactions/transactions.js +76 -0
  166. package/resources/loyalty/transactions/transactions.js.map +1 -0
  167. package/resources/loyalty/transactions/transactions.mjs +49 -0
  168. package/resources/loyalty/transactions/transactions.mjs.map +1 -0
  169. package/resources/loyalty/transactions.d.ts +1 -247
  170. package/resources/loyalty/transactions.d.ts.map +1 -1
  171. package/resources/loyalty/transactions.js +15 -18
  172. package/resources/loyalty/transactions.js.map +1 -1
  173. package/resources/loyalty/transactions.mjs +1 -16
  174. package/resources/loyalty/transactions.mjs.map +1 -1
  175. package/resources/minting.d.ts +5 -5
  176. package/resources/minting.d.ts.map +1 -1
  177. package/resources/referral/referral.d.ts +11 -3
  178. package/resources/referral/referral.d.ts.map +1 -1
  179. package/resources/referral/referral.js +11 -5
  180. package/resources/referral/referral.js.map +1 -1
  181. package/resources/referral/referral.mjs +11 -5
  182. package/resources/referral/referral.mjs.map +1 -1
  183. package/resources/referral/users.d.ts +28 -1
  184. package/resources/referral/users.d.ts.map +1 -1
  185. package/resources/referral/users.js +14 -0
  186. package/resources/referral/users.js.map +1 -1
  187. package/resources/referral/users.mjs +14 -0
  188. package/resources/referral/users.mjs.map +1 -1
  189. package/resources/users/index.d.ts +1 -1
  190. package/resources/users/index.d.ts.map +1 -1
  191. package/resources/users/index.js.map +1 -1
  192. package/resources/users/index.mjs.map +1 -1
  193. package/resources/users/metadatas.d.ts +34 -3
  194. package/resources/users/metadatas.d.ts.map +1 -1
  195. package/resources/users/metadatas.js.map +1 -1
  196. package/resources/users/metadatas.mjs.map +1 -1
  197. package/resources/users/users.d.ts +159 -35
  198. package/resources/users/users.d.ts.map +1 -1
  199. package/resources/users/users.js +53 -1
  200. package/resources/users/users.js.map +1 -1
  201. package/resources/users/users.mjs +53 -1
  202. package/resources/users/users.mjs.map +1 -1
  203. package/resources/websites/website-collections.d.ts +22 -1
  204. package/resources/websites/website-collections.d.ts.map +1 -1
  205. package/resources/websites/website-collections.js +21 -0
  206. package/resources/websites/website-collections.js.map +1 -1
  207. package/resources/websites/website-collections.mjs +21 -0
  208. package/resources/websites/website-collections.mjs.map +1 -1
  209. package/resources/websites/website-user-roles.d.ts +23 -0
  210. package/resources/websites/website-user-roles.d.ts.map +1 -1
  211. package/resources/websites/website-user-roles.js +23 -0
  212. package/resources/websites/website-user-roles.js.map +1 -1
  213. package/resources/websites/website-user-roles.mjs +23 -0
  214. package/resources/websites/website-user-roles.mjs.map +1 -1
  215. package/resources/websites/websites.d.ts +12 -0
  216. package/resources/websites/websites.d.ts.map +1 -1
  217. package/resources/websites/websites.js +7 -0
  218. package/resources/websites/websites.js.map +1 -1
  219. package/resources/websites/websites.mjs +7 -0
  220. package/resources/websites/websites.mjs.map +1 -1
  221. package/src/core.ts +39 -16
  222. package/src/index.ts +29 -2
  223. package/src/resource.ts +1 -1
  224. package/src/resources/assets.ts +18 -3
  225. package/src/resources/auctions/auctions.ts +436 -0
  226. package/src/resources/auctions/index.ts +18 -0
  227. package/src/resources/auctions/website-user-attributes/index.ts +18 -0
  228. package/src/resources/auctions/website-user-attributes/values.ts +165 -0
  229. package/src/resources/auctions/website-user-attributes/website-user-attributes.ts +207 -0
  230. package/src/resources/auctions/website-user-attributes.ts +3 -0
  231. package/src/resources/auctions.ts +1 -207
  232. package/src/resources/auth.ts +21 -5
  233. package/src/resources/index.ts +11 -1
  234. package/src/resources/loyalty/account-streaks.ts +110 -0
  235. package/src/resources/loyalty/accounts.ts +65 -18
  236. package/src/resources/loyalty/badges.ts +607 -24
  237. package/src/resources/loyalty/currencies.ts +19 -0
  238. package/src/resources/loyalty/index.ts +19 -3
  239. package/src/resources/loyalty/loyalty.ts +39 -15
  240. package/src/resources/loyalty/multipliers.ts +43 -4
  241. package/src/resources/loyalty/questions-responses.ts +45 -0
  242. package/src/resources/loyalty/questions.ts +38 -2
  243. package/src/resources/loyalty/rule-edits.ts +3802 -100
  244. package/src/resources/loyalty/rule-groups.ts +483 -76
  245. package/src/resources/loyalty/rules.ts +2925 -310
  246. package/src/resources/loyalty/transactions/index.ts +18 -0
  247. package/src/resources/loyalty/transactions/rule-statuses.ts +178 -0
  248. package/src/resources/loyalty/transactions/transactions.ts +681 -0
  249. package/src/resources/loyalty/transactions.ts +1 -330
  250. package/src/resources/minting.ts +22 -5
  251. package/src/resources/referral/referral.ts +13 -11
  252. package/src/resources/referral/users.ts +33 -2
  253. package/src/resources/users/index.ts +4 -0
  254. package/src/resources/users/metadatas.ts +57 -3
  255. package/src/resources/users/users.ts +209 -38
  256. package/src/resources/websites/website-collections.ts +39 -1
  257. package/src/resources/websites/website-user-roles.ts +23 -0
  258. package/src/resources/websites/websites.ts +12 -0
  259. package/src/version.ts +1 -1
  260. package/version.d.ts +1 -1
  261. package/version.d.ts.map +1 -1
  262. package/version.js +1 -1
  263. package/version.js.map +1 -1
  264. package/version.mjs +1 -1
  265. package/version.mjs.map +1 -1
  266. package/resources/loyalty/rule-chains.d.ts +0 -34
  267. package/resources/loyalty/rule-chains.d.ts.map +0 -1
  268. package/resources/loyalty/rule-chains.js +0 -15
  269. package/resources/loyalty/rule-chains.js.map +0 -1
  270. package/resources/loyalty/rule-chains.mjs +0 -11
  271. package/resources/loyalty/rule-chains.mjs.map +0 -1
  272. package/src/resources/loyalty/rule-chains.ts +0 -45
@@ -7,6 +7,24 @@ import * as Core from '../../core';
7
7
  export class Rules extends APIResource {
8
8
  /**
9
9
  * Create a new Loyalty Rule
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * const rule = await client.loyalty.rules.create({
14
+ * amount: '10.5',
15
+ * effectiveEndTime: '2024-12-31T23:59:00Z',
16
+ * effectiveStartTime: '2024-01-01T00:00:00Z',
17
+ * endTime: '2024-12-31T23:59:00Z',
18
+ * frequency: 'daily',
19
+ * loyaltyCurrencyId: '456e1234-e89b-12d3-a456-426614174003',
20
+ * metadata: {},
21
+ * name: 'Referral Bonus Rule',
22
+ * organizationId: '123e4567-e89b-12d3-a456-426614174001',
23
+ * startTime: '2024-01-01T00:00:00Z',
24
+ * type: 'Bonus',
25
+ * websiteId: '123e4567-e89b-12d3-a456-426614174002',
26
+ * });
27
+ * ```
10
28
  */
11
29
  create(body: RuleCreateParams, options?: Core.RequestOptions): Core.APIPromise<RuleCreateResponse> {
12
30
  return this._client.post('/api/loyalty/rules', { body, ...options });
@@ -14,6 +32,18 @@ export class Rules extends APIResource {
14
32
 
15
33
  /**
16
34
  * Update an existing Loyalty Rule
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * const rule = await client.loyalty.rules.update(
39
+ * '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
40
+ * {
41
+ * amount: '10.5',
42
+ * endTime: '2024-12-31T23:59:00Z',
43
+ * name: 'Daily Rewards Program',
44
+ * },
45
+ * );
46
+ * ```
17
47
  */
18
48
  update(
19
49
  id: string,
@@ -25,6 +55,11 @@ export class Rules extends APIResource {
25
55
 
26
56
  /**
27
57
  * Retrieve configured loyalty rules with optional pagination and filters
58
+ *
59
+ * @example
60
+ * ```ts
61
+ * const rules = await client.loyalty.rules.list();
62
+ * ```
28
63
  */
29
64
  list(query?: RuleListParams, options?: Core.RequestOptions): Core.APIPromise<RuleListResponse>;
30
65
  list(options?: Core.RequestOptions): Core.APIPromise<RuleListResponse>;
@@ -40,9 +75,30 @@ export class Rules extends APIResource {
40
75
 
41
76
  /**
42
77
  * Delete an existing Loyalty Rule
78
+ *
79
+ * @example
80
+ * ```ts
81
+ * const rule = await client.loyalty.rules.delete(
82
+ * '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
83
+ * );
84
+ * ```
43
85
  */
44
- delete(id: string, options?: Core.RequestOptions): Core.APIPromise<RuleDeleteResponse> {
45
- return this._client.delete(`/api/loyalty/rules/${id}`, options);
86
+ delete(
87
+ id: string,
88
+ params?: RuleDeleteParams,
89
+ options?: Core.RequestOptions,
90
+ ): Core.APIPromise<RuleDeleteResponse>;
91
+ delete(id: string, options?: Core.RequestOptions): Core.APIPromise<RuleDeleteResponse>;
92
+ delete(
93
+ id: string,
94
+ params: RuleDeleteParams | Core.RequestOptions = {},
95
+ options?: Core.RequestOptions,
96
+ ): Core.APIPromise<RuleDeleteResponse> {
97
+ if (isRequestOptions(params)) {
98
+ return this.delete(id, {}, params);
99
+ }
100
+ const { debitLoyaltyPoints } = params;
101
+ return this._client.delete(`/api/loyalty/rules/${id}`, { query: { debitLoyaltyPoints }, ...options });
46
102
  }
47
103
 
48
104
  /**
@@ -50,7 +106,15 @@ export class Rules extends APIResource {
50
106
  * endpoint currently only supports following rule types code_entry, text_input,
51
107
  * link_click, discord_member, connect_wallet, check_in, external_rule,
52
108
  * drip_x_follow, drip_x_new_tweet, drip_x_text_in_bio, drip_x_text_in_name,
53
- * drip_x_text_in_comment, drip_x_tweet, telegram_join, DiscordMessages
109
+ * drip_x_text_in_comment, drip_x_tweet, telegram_join, DiscordMessages,
110
+ * youtube_subscribers, youtube_comment, steam_wishlist
111
+ *
112
+ * @example
113
+ * ```ts
114
+ * const response = await client.loyalty.rules.complete(
115
+ * '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
116
+ * );
117
+ * ```
54
118
  */
55
119
  complete(
56
120
  id: string,
@@ -70,12 +134,26 @@ export class Rules extends APIResource {
70
134
  }
71
135
 
72
136
  /**
73
- * This will return the processing status of quests for a specific user
137
+ * This will return the processing status of quests for a specific user and also
138
+ * the progress of the loyalty rule
139
+ *
140
+ * @example
141
+ * ```ts
142
+ * const response = await client.loyalty.rules.getStatus();
143
+ * ```
74
144
  */
75
145
  getStatus(
76
- query: RuleGetStatusParams,
146
+ query?: RuleGetStatusParams,
147
+ options?: Core.RequestOptions,
148
+ ): Core.APIPromise<RuleGetStatusResponse>;
149
+ getStatus(options?: Core.RequestOptions): Core.APIPromise<RuleGetStatusResponse>;
150
+ getStatus(
151
+ query: RuleGetStatusParams | Core.RequestOptions = {},
77
152
  options?: Core.RequestOptions,
78
153
  ): Core.APIPromise<RuleGetStatusResponse> {
154
+ if (isRequestOptions(query)) {
155
+ return this.getStatus({}, query);
156
+ }
79
157
  return this._client.get('/api/loyalty/rules/status', { query, ...options });
80
158
  }
81
159
  }
@@ -189,7 +267,21 @@ export interface RuleCreateResponse {
189
267
  | 'twitter_like'
190
268
  | 'twitter_post_hashtag'
191
269
  | 'quiz'
192
- | 'poll';
270
+ | 'poll'
271
+ | 'steam_wishlist'
272
+ | 'liquidity_uniswap_v2'
273
+ | 'liquidity_uniswap_v3'
274
+ | 'points_airdrop'
275
+ | 'youtube_subscribers'
276
+ | 'youtube_comment'
277
+ | 'shopify_spend'
278
+ | 'swap'
279
+ | 'tiktok_post'
280
+ | 'post_impressions'
281
+ | 'discord_join'
282
+ | 'connected_youtube'
283
+ | 'stratus_function'
284
+ | 'connected_tiktok';
193
285
 
194
286
  /**
195
287
  * Unique identifier for the associated website
@@ -201,6 +293,11 @@ export interface RuleCreateResponse {
201
293
  */
202
294
  backgroundAssetUrl?: string;
203
295
 
296
+ /**
297
+ * The type of claim for the reward
298
+ */
299
+ claimType?: 'manual' | 'auto' | null;
300
+
204
301
  /**
205
302
  * Blockchain address of the associated collection
206
303
  */
@@ -226,6 +323,18 @@ export interface RuleCreateResponse {
226
323
  */
227
324
  description?: string;
228
325
 
326
+ duplicatedFromId?: string | null;
327
+
328
+ /**
329
+ * ID of the external integration
330
+ */
331
+ externalIntegrationId?: string | null;
332
+
333
+ /**
334
+ * Optional stratus function id for the rule
335
+ */
336
+ functionId?: string | null;
337
+
229
338
  /**
230
339
  * Whether to hide this rule in the user interface
231
340
  */
@@ -234,18 +343,40 @@ export interface RuleCreateResponse {
234
343
  /**
235
344
  * Interval between rule executions
236
345
  */
237
- interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | null;
346
+ interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | 'unlimited' | null;
238
347
 
239
348
  /**
240
349
  * Whether this rule is mandatory
241
350
  */
242
351
  isRequired?: boolean;
243
352
 
353
+ /**
354
+ * Unique identifier for the loyalty badge
355
+ */
356
+ loyaltyBadgeId?: string | null;
357
+
244
358
  /**
245
359
  * Unique identifier for the loyalty rule group
246
360
  */
247
361
  loyaltyRuleGroupId?: 'no-section' | (string & {}) | null;
248
362
 
363
+ /**
364
+ * URL for uploading loyalty user allotment via CSV
365
+ */
366
+ loyaltyUserAllotmentCsvUrl?: string;
367
+
368
+ /**
369
+ * The interval for the max amount. Available for the smart contract and external
370
+ * rules.
371
+ */
372
+ maxAmountInterval?: 'daily' | 'weekly' | 'monthly' | 'lifetime' | null;
373
+
374
+ /**
375
+ * The maximum amount of points a user can earn per interval. Available for the
376
+ * smart contract and external rules.
377
+ */
378
+ maxAmountPerInterval?: number | null;
379
+
249
380
  /**
250
381
  * URL of the media to be displayed
251
382
  */
@@ -255,13 +386,17 @@ export interface RuleCreateResponse {
255
386
  * Blockchain network where the rule will apply
256
387
  */
257
388
  network?:
389
+ | 'abstract'
390
+ | 'abstractTestnet'
258
391
  | 'apechain'
259
392
  | 'arbitrum'
260
393
  | 'avalanche'
261
394
  | 'avalancheFuji'
262
395
  | 'base'
263
396
  | 'baseSepolia'
397
+ | 'berachain'
264
398
  | 'berachainArtio'
399
+ | 'berachainBepolia'
265
400
  | 'binance'
266
401
  | 'bscTestnet'
267
402
  | 'campTestnet'
@@ -269,18 +404,30 @@ export interface RuleCreateResponse {
269
404
  | 'fantomTestnet'
270
405
  | 'flowMainnet'
271
406
  | 'mainnet'
407
+ | 'nexusTestnet'
272
408
  | 'optimism'
273
409
  | 'polygon'
274
410
  | 'polygon_mumbai'
275
411
  | 'skaleNebula'
412
+ | 'skaleEuropa'
413
+ | 'skaleCalypso'
276
414
  | 'solana'
277
415
  | 'sophon'
416
+ | 'sophonTestnet'
278
417
  | 'sui'
279
418
  | 'superseed'
280
419
  | 'superseedSepolia'
281
420
  | 'vanar'
282
421
  | 'xai'
283
422
  | 'zksync'
423
+ | 'coti'
424
+ | 'cotiTestnet'
425
+ | 'morph'
426
+ | 'morphTestnet'
427
+ | 'morphHolesky'
428
+ | 'ultra'
429
+ | 'ultraTestnet'
430
+ | 'nitrograph'
284
431
  | 'sepolia'
285
432
  | 'optimism_sepolia'
286
433
  | 'arbitrumSepolia'
@@ -288,22 +435,38 @@ export interface RuleCreateResponse {
288
435
  | 'optimism_goerli'
289
436
  | 'arbitrumGoerli'
290
437
  | 'basecamp'
291
- | 'abstract';
438
+ | 'somnia'
439
+ | 'flow_cadence';
292
440
 
293
441
  /**
294
442
  * OAuth credentials associated with the rule
295
443
  */
296
444
  oauthCredentialsId?: string | null;
297
445
 
446
+ /**
447
+ * The lifetime of the reward
448
+ */
449
+ rewardLifetime?: 'permanent' | 'dynamic' | null;
450
+
298
451
  /**
299
452
  * Type of reward issued by the rule
300
453
  */
301
- rewardType?: 'points' | 'multiplier';
454
+ rewardType?: 'points' | 'multiplier' | 'badge';
455
+
456
+ /**
457
+ * URL of the Shopify store
458
+ */
459
+ shopifyStoreUrl?: string | null;
460
+
461
+ /**
462
+ * Whether to show this rule before the start time
463
+ */
464
+ showBeforeStart?: boolean;
302
465
 
303
466
  /**
304
- * Identifier for associated subscriptions
467
+ * Optional stratus subscription id for the rule
305
468
  */
306
- subscriptionIdentifier?: string | null;
469
+ subscriptionId?: string | null;
307
470
  }
308
471
 
309
472
  export namespace RuleCreateResponse {
@@ -311,6 +474,11 @@ export namespace RuleCreateResponse {
311
474
  * Additional metadata for the loyalty rule
312
475
  */
313
476
  export interface Metadata {
477
+ /**
478
+ * Number of tokens per batch.
479
+ */
480
+ batchSize?: number | null;
481
+
314
482
  /**
315
483
  * Text displayed on the action button.
316
484
  */
@@ -334,7 +502,7 @@ export namespace RuleCreateResponse {
334
502
  /**
335
503
  * Text to check in the Twitter post, username, or bio.
336
504
  */
337
- checkText?: string | null;
505
+ checkText?: string | Array<string> | null;
338
506
 
339
507
  /**
340
508
  * Array of collections associated with the rule.
@@ -344,7 +512,12 @@ export namespace RuleCreateResponse {
344
512
  /**
345
513
  * Conditions for completing the profile.
346
514
  */
347
- completeProfileConditions?: Record<string, boolean> | null;
515
+ completeProfileConditions?: { [key: string]: boolean } | null;
516
+
517
+ /**
518
+ * Description of the external rule condition (only for external rules)
519
+ */
520
+ conditionDescription?: string;
348
521
 
349
522
  /**
350
523
  * Object containing details for the call-to-action.
@@ -356,6 +529,11 @@ export namespace RuleCreateResponse {
356
529
  */
357
530
  customRewardsApiKey?: string;
358
531
 
532
+ /**
533
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
534
+ */
535
+ directRpc?: boolean;
536
+
359
537
  /**
360
538
  * Array of Discord servers, channels, and roles to join.
361
539
  */
@@ -381,6 +559,11 @@ export namespace RuleCreateResponse {
381
559
  */
382
560
  enableVerifiedMultiplier?: boolean;
383
561
 
562
+ /**
563
+ * Type of ERC20 token for the loyalty rule.
564
+ */
565
+ erc20Type?: 'erc20' | 'native';
566
+
384
567
  /**
385
568
  * Fill source of the order for the token sale
386
569
  */
@@ -401,11 +584,6 @@ export namespace RuleCreateResponse {
401
584
  */
402
585
  hasNeverSold?: boolean;
403
586
 
404
- /**
405
- * Flag indicating whether the order source is included.
406
- */
407
- hasOrderSource?: boolean;
408
-
409
587
  /**
410
588
  * Indicates if the full royalty has been paid for items.
411
589
  */
@@ -426,11 +604,21 @@ export namespace RuleCreateResponse {
426
604
  */
427
605
  imageUrl?: string | null;
428
606
 
607
+ /**
608
+ * If enabled, the first transaction done on the platform will complete this rule
609
+ */
610
+ isCheckInOnEveryTxn?: boolean;
611
+
429
612
  /**
430
613
  * Indicates if the multiplier has been applied to rewards.
431
614
  */
432
615
  isMultiplierApplied?: boolean;
433
616
 
617
+ /**
618
+ * Flag indicating if the rule is restricted to new users.
619
+ */
620
+ isRestrictedToNewUsers?: boolean;
621
+
434
622
  /**
435
623
  * Flag indicating if rewards are applied retroactively.
436
624
  */
@@ -446,6 +634,11 @@ export namespace RuleCreateResponse {
446
634
  */
447
635
  link?: string | null;
448
636
 
637
+ /**
638
+ * Liquidity pool details.
639
+ */
640
+ liquidity?: Metadata.Liquidity;
641
+
449
642
  /**
450
643
  * Maximum quantity constraint for token holding.
451
644
  */
@@ -487,14 +680,24 @@ export namespace RuleCreateResponse {
487
680
  onlyRewardSingleTokenOwnership?: boolean | null;
488
681
 
489
682
  /**
490
- * Order source of the order for the token sale
683
+ * Promotional code associated with the rule.
491
684
  */
492
- orderSource?: string;
685
+ promoCode?: string;
493
686
 
494
687
  /**
495
- * Promotional code associated with the rule.
688
+ * URL of the CSV file containing promo codes.
496
689
  */
497
- promoCode?: string;
690
+ promoCodeCsvUrl?: string;
691
+
692
+ /**
693
+ * Numbers of the promotional code to be generated.
694
+ */
695
+ promoCodeLength?: number | null;
696
+
697
+ /**
698
+ * Type of the promotional code.
699
+ */
700
+ promoCodeType?: 'code' | 'csv' | 'generate';
498
701
 
499
702
  /**
500
703
  * Array defining ranges and corresponding rewards.
@@ -511,11 +714,62 @@ export namespace RuleCreateResponse {
511
714
  */
512
715
  referrerReward?: number | null;
513
716
 
717
+ /**
718
+ * Loyalty currency ID of the referrer reward.
719
+ */
720
+ referrerRewardLoyaltyCurrencyId?: string | null;
721
+
722
+ /**
723
+ * Flag indicating if the post link is required.
724
+ */
725
+ requirePostLink?: boolean | null;
726
+
727
+ /**
728
+ * Flag indicating if media metadata is required.
729
+ */
730
+ requirePostMediaLink?: boolean | null;
731
+
732
+ /**
733
+ * Flag indicating if the rule can also reward badges per range.
734
+ */
735
+ rewardBadgePerRange?: boolean;
736
+
737
+ /**
738
+ * Flag indicating if the reward is rewarded by batch.
739
+ */
740
+ rewardByBatch?: boolean | null;
741
+
742
+ /**
743
+ * Criteria to evaluate the reward.
744
+ */
745
+ rewardCriteria?: 'IMPRESSIONS_COUNT' | 'ELIGIBLE_POST' | null;
746
+
747
+ /**
748
+ * Flag indicating if the reward is rewarded per action.
749
+ */
750
+ rewardPerAction?: boolean | null;
751
+
514
752
  /**
515
753
  * Flag indicating if rewards are given per impression.
516
754
  */
517
755
  rewardPerImpression?: boolean | null;
518
756
 
757
+ /**
758
+ * Flag indicating if the rule should reward based on value of traded tokens
759
+ * instead of count.
760
+ */
761
+ rewardPerValue?: boolean;
762
+
763
+ /**
764
+ * Wallet address of the user can only be used if userId is not provided
765
+ */
766
+ royaltyAddress?: string;
767
+
768
+ /**
769
+ * Royalty percentage of the item.
770
+ */
771
+ royaltyPercentage?: number;
772
+
519
773
  /**
520
774
  * Currency associated with sales.
521
775
  */
@@ -555,6 +809,7 @@ export namespace RuleCreateResponse {
555
809
  | 'Twitch'
556
810
  | 'X(Twitter)'
557
811
  | 'YouTube'
812
+ | 'Google'
558
813
  | null;
559
814
 
560
815
  /**
@@ -567,11 +822,21 @@ export namespace RuleCreateResponse {
567
822
  */
568
823
  socialPlatformName?: string | null;
569
824
 
825
+ /**
826
+ * ID of the Steam app.
827
+ */
828
+ steamAppId?: string | null;
829
+
570
830
  /**
571
831
  * Array of streak milestones and corresponding rewards.
572
832
  */
573
833
  streakArray?: Array<Metadata.StreakArray> | null;
574
834
 
835
+ /**
836
+ * Metadata for swap loyalty rules
837
+ */
838
+ swap?: Metadata.Swap;
839
+
575
840
  /**
576
841
  * ID of the Telegram channel.
577
842
  */
@@ -587,6 +852,12 @@ export namespace RuleCreateResponse {
587
852
  */
588
853
  trackAllContracts?: boolean | null;
589
854
 
855
+ /**
856
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
857
+ * completed once the progress is 100%.
858
+ */
859
+ trackProgress?: boolean | null;
860
+
590
861
  /**
591
862
  * URL of the associated Twitter account.
592
863
  */
@@ -630,7 +901,27 @@ export namespace RuleCreateResponse {
630
901
  /**
631
902
  * Type of wallet associated with the rule.
632
903
  */
633
- walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | null;
904
+ walletType?:
905
+ | 'evm'
906
+ | 'solana'
907
+ | 'imx'
908
+ | 'sui'
909
+ | 'ton'
910
+ | 'cosmos'
911
+ | 'ultra'
912
+ | 'agw'
913
+ | 'flow_cadence'
914
+ | null;
915
+
916
+ /**
917
+ * ID of the Youtube channel.
918
+ */
919
+ youtubeChannelId?: string | null;
920
+
921
+ /**
922
+ * ID of the Youtube video.
923
+ */
924
+ youtubeVideoId?: string | null;
634
925
  }
635
926
 
636
927
  export namespace Metadata {
@@ -649,13 +940,17 @@ export namespace RuleCreateResponse {
649
940
  * Blockchain network of the collection.
650
941
  */
651
942
  network?:
943
+ | 'abstract'
944
+ | 'abstractTestnet'
652
945
  | 'apechain'
653
946
  | 'arbitrum'
654
947
  | 'avalanche'
655
948
  | 'avalancheFuji'
656
949
  | 'base'
657
950
  | 'baseSepolia'
951
+ | 'berachain'
658
952
  | 'berachainArtio'
953
+ | 'berachainBepolia'
659
954
  | 'binance'
660
955
  | 'bscTestnet'
661
956
  | 'campTestnet'
@@ -663,18 +958,30 @@ export namespace RuleCreateResponse {
663
958
  | 'fantomTestnet'
664
959
  | 'flowMainnet'
665
960
  | 'mainnet'
961
+ | 'nexusTestnet'
666
962
  | 'optimism'
667
963
  | 'polygon'
668
964
  | 'polygon_mumbai'
669
965
  | 'skaleNebula'
966
+ | 'skaleEuropa'
967
+ | 'skaleCalypso'
670
968
  | 'solana'
671
969
  | 'sophon'
970
+ | 'sophonTestnet'
672
971
  | 'sui'
673
972
  | 'superseed'
674
973
  | 'superseedSepolia'
675
974
  | 'vanar'
676
975
  | 'xai'
677
976
  | 'zksync'
977
+ | 'coti'
978
+ | 'cotiTestnet'
979
+ | 'morph'
980
+ | 'morphTestnet'
981
+ | 'morphHolesky'
982
+ | 'ultra'
983
+ | 'ultraTestnet'
984
+ | 'nitrograph'
678
985
  | 'sepolia'
679
986
  | 'optimism_sepolia'
680
987
  | 'arbitrumSepolia'
@@ -682,7 +989,8 @@ export namespace RuleCreateResponse {
682
989
  | 'optimism_goerli'
683
990
  | 'arbitrumGoerli'
684
991
  | 'basecamp'
685
- | 'abstract';
992
+ | 'somnia'
993
+ | 'flow_cadence';
686
994
  }
687
995
 
688
996
  /**
@@ -759,6 +1067,108 @@ export namespace RuleCreateResponse {
759
1067
  id: string;
760
1068
  }
761
1069
 
1070
+ /**
1071
+ * Liquidity pool details.
1072
+ */
1073
+ export interface Liquidity {
1074
+ /**
1075
+ * Calculation type of the liquidity pool.
1076
+ */
1077
+ calculationType?: 'fixed' | 'custom';
1078
+
1079
+ /**
1080
+ * Custom function to calculate the the reward amount based on the liquidity
1081
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
1082
+ * USD.
1083
+ */
1084
+ customFunction?: string;
1085
+
1086
+ /**
1087
+ * Liquidity provided per day in USD
1088
+ */
1089
+ liquidityPerDay?: number;
1090
+
1091
+ /**
1092
+ * Blockchain network of the liquidity pool.
1093
+ */
1094
+ network?:
1095
+ | 'abstract'
1096
+ | 'abstractTestnet'
1097
+ | 'apechain'
1098
+ | 'arbitrum'
1099
+ | 'avalanche'
1100
+ | 'avalancheFuji'
1101
+ | 'base'
1102
+ | 'baseSepolia'
1103
+ | 'berachain'
1104
+ | 'berachainArtio'
1105
+ | 'berachainBepolia'
1106
+ | 'binance'
1107
+ | 'bscTestnet'
1108
+ | 'campTestnet'
1109
+ | 'fantom'
1110
+ | 'fantomTestnet'
1111
+ | 'flowMainnet'
1112
+ | 'mainnet'
1113
+ | 'nexusTestnet'
1114
+ | 'optimism'
1115
+ | 'polygon'
1116
+ | 'polygon_mumbai'
1117
+ | 'skaleNebula'
1118
+ | 'skaleEuropa'
1119
+ | 'skaleCalypso'
1120
+ | 'solana'
1121
+ | 'sophon'
1122
+ | 'sophonTestnet'
1123
+ | 'sui'
1124
+ | 'superseed'
1125
+ | 'superseedSepolia'
1126
+ | 'vanar'
1127
+ | 'xai'
1128
+ | 'zksync'
1129
+ | 'coti'
1130
+ | 'cotiTestnet'
1131
+ | 'morph'
1132
+ | 'morphTestnet'
1133
+ | 'morphHolesky'
1134
+ | 'ultra'
1135
+ | 'ultraTestnet'
1136
+ | 'nitrograph'
1137
+ | 'sepolia'
1138
+ | 'optimism_sepolia'
1139
+ | 'arbitrumSepolia'
1140
+ | 'goerli'
1141
+ | 'optimism_goerli'
1142
+ | 'arbitrumGoerli'
1143
+ | 'basecamp'
1144
+ | 'somnia'
1145
+ | 'flow_cadence';
1146
+
1147
+ /**
1148
+ * Indicates if only in-range liquidity is rewarded.
1149
+ */
1150
+ onlyRewardInRangeLiquidity?: boolean;
1151
+
1152
+ /**
1153
+ * Array of liquidity pools associated with the rule.
1154
+ */
1155
+ pools?: Array<Liquidity.Pool>;
1156
+
1157
+ /**
1158
+ * Protocol of the liquidity pool.
1159
+ */
1160
+ protocol?: string;
1161
+ }
1162
+
1163
+ export namespace Liquidity {
1164
+ export interface Pool {
1165
+ /**
1166
+ * Unique identifier of the liquidity pool.
1167
+ */
1168
+ id: string;
1169
+ }
1170
+ }
1171
+
762
1172
  export interface Range {
763
1173
  /**
764
1174
  * Reward amount for this range.
@@ -774,6 +1184,16 @@ export namespace RuleCreateResponse {
774
1184
  * Start value of the range.
775
1185
  */
776
1186
  startRange: number;
1187
+
1188
+ /**
1189
+ * ID of the loyalty badge for this range.
1190
+ */
1191
+ loyaltyBadgeId?: string;
1192
+
1193
+ /**
1194
+ * Amount of the loyalty multiplier for this range.
1195
+ */
1196
+ loyaltyMultiplierAmount?: number;
777
1197
  }
778
1198
 
779
1199
  /**
@@ -826,20 +1246,15 @@ export namespace RuleCreateResponse {
826
1246
  * Object containing details of the associated smart contract.
827
1247
  */
828
1248
  export interface SmartContract {
829
- /**
830
- * ABI of the smart contract.
831
- */
832
- abi?: string | null;
833
-
834
1249
  /**
835
1250
  * Mapping of addresses for the smart contract.
836
1251
  */
837
1252
  addressMapping?: string | null;
838
1253
 
839
1254
  /**
840
- * Array of bonus details applied to the rule.
1255
+ * Object containing details of the amount multiplier from the event.
841
1256
  */
842
- bonus?: Array<SmartContract.Bonus> | null;
1257
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
843
1258
 
844
1259
  /**
845
1260
  * ID of the smart contract.
@@ -851,68 +1266,31 @@ export namespace RuleCreateResponse {
851
1266
  */
852
1267
  criteria?: 'everyEvent' | 'byParameter' | null;
853
1268
 
854
- /**
855
- * Time range applied to the rule.
856
- */
857
- customRange?: SmartContract.CustomRange | null;
858
-
859
1269
  /**
860
1270
  * Event emitted by the smart contract.
861
1271
  */
862
1272
  event?: string | null;
863
1273
 
864
- /**
865
- * Maximum value allowed for the parameter.
866
- */
867
- max?: number | null;
868
-
869
1274
  /**
870
1275
  * Array of parameters for the smart contract.
871
1276
  */
872
1277
  params?: Array<SmartContract.Param> | null;
873
1278
 
874
1279
  /**
875
- * Flag indicating if a bonus is applied.
876
- */
877
- withBonus?: boolean | null;
878
-
879
- /**
880
- * Flag indicating if a custom range is applied.
1280
+ * Type of the smart contract interaction.
881
1281
  */
882
- withCustomRange?: boolean | null;
883
-
884
- /**
885
- * Flag indicating if a maximum limit is applied.
886
- */
887
- withMax?: boolean | null;
1282
+ type?: 'function' | 'event' | null;
888
1283
  }
889
1284
 
890
1285
  export namespace SmartContract {
891
- export interface Bonus {
892
- /**
893
- * Amount of the bonus.
894
- */
895
- amount?: number | null;
896
-
897
- /**
898
- * Number of times the bonus is applied.
899
- */
900
- count?: number | null;
901
- }
902
-
903
1286
  /**
904
- * Time range applied to the rule.
1287
+ * Object containing details of the amount multiplier from the event.
905
1288
  */
906
- export interface CustomRange {
907
- /**
908
- * End time of the custom range.
909
- */
910
- endsAt?: string | null;
911
-
1289
+ export interface AmountMultiplier {
912
1290
  /**
913
- * Start time of the custom range.
1291
+ * Mapping of the value for the smart contract.
914
1292
  */
915
- startsAt?: string | null;
1293
+ valueMapping?: string | null;
916
1294
  }
917
1295
 
918
1296
  export interface Param {
@@ -956,6 +1334,33 @@ export namespace RuleCreateResponse {
956
1334
  */
957
1335
  streakMilestone: number;
958
1336
  }
1337
+
1338
+ /**
1339
+ * Metadata for swap loyalty rules
1340
+ */
1341
+ export interface Swap {
1342
+ provider?: 'any' | 'relay' | 'lifi';
1343
+
1344
+ relayReferrerId?: string;
1345
+
1346
+ requireCrossChainSwap?: boolean;
1347
+
1348
+ swappedToChain?: 'any' | number | string;
1349
+
1350
+ swappedToTokens?: Array<Swap.SwappedToToken>;
1351
+
1352
+ tokenMode?: 'any' | 'specific';
1353
+
1354
+ trackTokenAmount?: boolean;
1355
+ }
1356
+
1357
+ export namespace Swap {
1358
+ export interface SwappedToToken {
1359
+ address: string;
1360
+
1361
+ chainId: string;
1362
+ }
1363
+ }
959
1364
  }
960
1365
 
961
1366
  export interface Collection {
@@ -968,13 +1373,17 @@ export namespace RuleCreateResponse {
968
1373
  * Blockchain network for the collection
969
1374
  */
970
1375
  network:
1376
+ | 'abstract'
1377
+ | 'abstractTestnet'
971
1378
  | 'apechain'
972
1379
  | 'arbitrum'
973
1380
  | 'avalanche'
974
1381
  | 'avalancheFuji'
975
1382
  | 'base'
976
1383
  | 'baseSepolia'
1384
+ | 'berachain'
977
1385
  | 'berachainArtio'
1386
+ | 'berachainBepolia'
978
1387
  | 'binance'
979
1388
  | 'bscTestnet'
980
1389
  | 'campTestnet'
@@ -982,18 +1391,30 @@ export namespace RuleCreateResponse {
982
1391
  | 'fantomTestnet'
983
1392
  | 'flowMainnet'
984
1393
  | 'mainnet'
1394
+ | 'nexusTestnet'
985
1395
  | 'optimism'
986
1396
  | 'polygon'
987
1397
  | 'polygon_mumbai'
988
1398
  | 'skaleNebula'
1399
+ | 'skaleEuropa'
1400
+ | 'skaleCalypso'
989
1401
  | 'solana'
990
1402
  | 'sophon'
1403
+ | 'sophonTestnet'
991
1404
  | 'sui'
992
1405
  | 'superseed'
993
1406
  | 'superseedSepolia'
994
1407
  | 'vanar'
995
1408
  | 'xai'
996
1409
  | 'zksync'
1410
+ | 'coti'
1411
+ | 'cotiTestnet'
1412
+ | 'morph'
1413
+ | 'morphTestnet'
1414
+ | 'morphHolesky'
1415
+ | 'ultra'
1416
+ | 'ultraTestnet'
1417
+ | 'nitrograph'
997
1418
  | 'sepolia'
998
1419
  | 'optimism_sepolia'
999
1420
  | 'arbitrumSepolia'
@@ -1001,7 +1422,13 @@ export namespace RuleCreateResponse {
1001
1422
  | 'optimism_goerli'
1002
1423
  | 'arbitrumGoerli'
1003
1424
  | 'basecamp'
1004
- | 'abstract';
1425
+ | 'somnia'
1426
+ | 'flow_cadence';
1427
+
1428
+ /**
1429
+ * Symbol of the collection.
1430
+ */
1431
+ symbol?: string;
1005
1432
  }
1006
1433
  }
1007
1434
 
@@ -1023,10 +1450,15 @@ export interface RuleUpdateResponse {
1023
1450
  */
1024
1451
  name: string;
1025
1452
 
1453
+ /**
1454
+ * The type of claim for the reward
1455
+ */
1456
+ claimType?: 'manual' | 'auto' | null;
1457
+
1026
1458
  /**
1027
1459
  * Blockchain address of the associated collection
1028
1460
  */
1029
- collectionAddress?: string;
1461
+ collectionAddress?: string | null;
1030
1462
 
1031
1463
  /**
1032
1464
  * List of associated collections
@@ -1058,11 +1490,21 @@ export interface RuleUpdateResponse {
1058
1490
  */
1059
1491
  effectiveStartTime?: string | null;
1060
1492
 
1493
+ /**
1494
+ * ID of the external integration
1495
+ */
1496
+ externalIntegrationId?: string | null;
1497
+
1061
1498
  /**
1062
1499
  * Frequency of the rule execution
1063
1500
  */
1064
1501
  frequency?: 'none' | 'once' | 'daily' | 'weekly' | 'monthly' | 'immediately';
1065
1502
 
1503
+ /**
1504
+ * Optional stratus function id for the rule
1505
+ */
1506
+ functionId?: string | null;
1507
+
1066
1508
  /**
1067
1509
  * Whether to hide this rule in the user interface
1068
1510
  */
@@ -1071,7 +1513,7 @@ export interface RuleUpdateResponse {
1071
1513
  /**
1072
1514
  * Time interval for recurring rule execution
1073
1515
  */
1074
- interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | null;
1516
+ interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | 'unlimited' | null;
1075
1517
 
1076
1518
  /**
1077
1519
  * Whether this rule is required for participation
@@ -1083,6 +1525,18 @@ export interface RuleUpdateResponse {
1083
1525
  */
1084
1526
  loyaltyRuleGroupId?: (string & {}) | 'no-section' | null;
1085
1527
 
1528
+ /**
1529
+ * The interval for the max amount. Available for the smart contract and external
1530
+ * rules.
1531
+ */
1532
+ maxAmountInterval?: 'daily' | 'weekly' | 'monthly' | 'lifetime' | null;
1533
+
1534
+ /**
1535
+ * The maximum amount of points a user can earn per interval. Available for the
1536
+ * smart contract and external rules.
1537
+ */
1538
+ maxAmountPerInterval?: number | null;
1539
+
1086
1540
  /**
1087
1541
  * URL of the media to be displayed
1088
1542
  */
@@ -1097,13 +1551,17 @@ export interface RuleUpdateResponse {
1097
1551
  * Blockchain network where the rule will apply
1098
1552
  */
1099
1553
  network?:
1554
+ | 'abstract'
1555
+ | 'abstractTestnet'
1100
1556
  | 'apechain'
1101
1557
  | 'arbitrum'
1102
1558
  | 'avalanche'
1103
1559
  | 'avalancheFuji'
1104
1560
  | 'base'
1105
1561
  | 'baseSepolia'
1562
+ | 'berachain'
1106
1563
  | 'berachainArtio'
1564
+ | 'berachainBepolia'
1107
1565
  | 'binance'
1108
1566
  | 'bscTestnet'
1109
1567
  | 'campTestnet'
@@ -1111,18 +1569,30 @@ export interface RuleUpdateResponse {
1111
1569
  | 'fantomTestnet'
1112
1570
  | 'flowMainnet'
1113
1571
  | 'mainnet'
1572
+ | 'nexusTestnet'
1114
1573
  | 'optimism'
1115
1574
  | 'polygon'
1116
1575
  | 'polygon_mumbai'
1117
1576
  | 'skaleNebula'
1577
+ | 'skaleEuropa'
1578
+ | 'skaleCalypso'
1118
1579
  | 'solana'
1119
1580
  | 'sophon'
1581
+ | 'sophonTestnet'
1120
1582
  | 'sui'
1121
1583
  | 'superseed'
1122
1584
  | 'superseedSepolia'
1123
1585
  | 'vanar'
1124
1586
  | 'xai'
1125
1587
  | 'zksync'
1588
+ | 'coti'
1589
+ | 'cotiTestnet'
1590
+ | 'morph'
1591
+ | 'morphTestnet'
1592
+ | 'morphHolesky'
1593
+ | 'ultra'
1594
+ | 'ultraTestnet'
1595
+ | 'nitrograph'
1126
1596
  | 'sepolia'
1127
1597
  | 'optimism_sepolia'
1128
1598
  | 'arbitrumSepolia'
@@ -1130,7 +1600,8 @@ export interface RuleUpdateResponse {
1130
1600
  | 'optimism_goerli'
1131
1601
  | 'arbitrumGoerli'
1132
1602
  | 'basecamp'
1133
- | 'abstract';
1603
+ | 'somnia'
1604
+ | 'flow_cadence';
1134
1605
 
1135
1606
  /**
1136
1607
  * ID for associated OAuth credentials
@@ -1138,20 +1609,35 @@ export interface RuleUpdateResponse {
1138
1609
  oauthCredentialsId?: string | null;
1139
1610
 
1140
1611
  /**
1141
- * Type of reward issued by this rule
1612
+ * The lifetime of the reward
1142
1613
  */
1143
- rewardType?: 'points' | 'multiplier';
1614
+ rewardLifetime?: 'permanent' | 'dynamic' | null;
1144
1615
 
1145
1616
  /**
1146
- * Start time for the loyalty rule
1617
+ * Type of reward issued by this rule
1147
1618
  */
1148
- startTime?: string | null;
1619
+ rewardType?: 'points' | 'multiplier' | 'badge';
1149
1620
 
1150
1621
  /**
1151
- * Optional subscription identifier for the rule
1622
+ * URL of the Shopify store
1152
1623
  */
1153
- subscriptionIdentifier?: string | null;
1154
- }
1624
+ shopifyStoreUrl?: string | null;
1625
+
1626
+ /**
1627
+ * Whether to show this rule before the start time
1628
+ */
1629
+ showBeforeStart?: boolean;
1630
+
1631
+ /**
1632
+ * Start time for the loyalty rule
1633
+ */
1634
+ startTime?: string | null;
1635
+
1636
+ /**
1637
+ * Optional stratus subscription id for the rule
1638
+ */
1639
+ subscriptionId?: string | null;
1640
+ }
1155
1641
 
1156
1642
  export namespace RuleUpdateResponse {
1157
1643
  export interface Collection {
@@ -1164,13 +1650,17 @@ export namespace RuleUpdateResponse {
1164
1650
  * Blockchain network for the collection
1165
1651
  */
1166
1652
  network:
1653
+ | 'abstract'
1654
+ | 'abstractTestnet'
1167
1655
  | 'apechain'
1168
1656
  | 'arbitrum'
1169
1657
  | 'avalanche'
1170
1658
  | 'avalancheFuji'
1171
1659
  | 'base'
1172
1660
  | 'baseSepolia'
1661
+ | 'berachain'
1173
1662
  | 'berachainArtio'
1663
+ | 'berachainBepolia'
1174
1664
  | 'binance'
1175
1665
  | 'bscTestnet'
1176
1666
  | 'campTestnet'
@@ -1178,18 +1668,30 @@ export namespace RuleUpdateResponse {
1178
1668
  | 'fantomTestnet'
1179
1669
  | 'flowMainnet'
1180
1670
  | 'mainnet'
1671
+ | 'nexusTestnet'
1181
1672
  | 'optimism'
1182
1673
  | 'polygon'
1183
1674
  | 'polygon_mumbai'
1184
1675
  | 'skaleNebula'
1676
+ | 'skaleEuropa'
1677
+ | 'skaleCalypso'
1185
1678
  | 'solana'
1186
1679
  | 'sophon'
1680
+ | 'sophonTestnet'
1187
1681
  | 'sui'
1188
1682
  | 'superseed'
1189
1683
  | 'superseedSepolia'
1190
1684
  | 'vanar'
1191
1685
  | 'xai'
1192
1686
  | 'zksync'
1687
+ | 'coti'
1688
+ | 'cotiTestnet'
1689
+ | 'morph'
1690
+ | 'morphTestnet'
1691
+ | 'morphHolesky'
1692
+ | 'ultra'
1693
+ | 'ultraTestnet'
1694
+ | 'nitrograph'
1193
1695
  | 'sepolia'
1194
1696
  | 'optimism_sepolia'
1195
1697
  | 'arbitrumSepolia'
@@ -1197,13 +1699,24 @@ export namespace RuleUpdateResponse {
1197
1699
  | 'optimism_goerli'
1198
1700
  | 'arbitrumGoerli'
1199
1701
  | 'basecamp'
1200
- | 'abstract';
1702
+ | 'somnia'
1703
+ | 'flow_cadence';
1704
+
1705
+ /**
1706
+ * Symbol of the collection.
1707
+ */
1708
+ symbol?: string;
1201
1709
  }
1202
1710
 
1203
1711
  /**
1204
1712
  * Additional metadata for the loyalty rule
1205
1713
  */
1206
1714
  export interface Metadata {
1715
+ /**
1716
+ * Number of tokens per batch.
1717
+ */
1718
+ batchSize?: number | null;
1719
+
1207
1720
  /**
1208
1721
  * Text displayed on the action button.
1209
1722
  */
@@ -1227,7 +1740,7 @@ export namespace RuleUpdateResponse {
1227
1740
  /**
1228
1741
  * Text to check in the Twitter post, username, or bio.
1229
1742
  */
1230
- checkText?: string | null;
1743
+ checkText?: string | Array<string> | null;
1231
1744
 
1232
1745
  /**
1233
1746
  * Array of collections associated with the rule.
@@ -1237,7 +1750,12 @@ export namespace RuleUpdateResponse {
1237
1750
  /**
1238
1751
  * Conditions for completing the profile.
1239
1752
  */
1240
- completeProfileConditions?: Record<string, boolean> | null;
1753
+ completeProfileConditions?: { [key: string]: boolean } | null;
1754
+
1755
+ /**
1756
+ * Description of the external rule condition (only for external rules)
1757
+ */
1758
+ conditionDescription?: string;
1241
1759
 
1242
1760
  /**
1243
1761
  * Object containing details for the call-to-action.
@@ -1249,6 +1767,11 @@ export namespace RuleUpdateResponse {
1249
1767
  */
1250
1768
  customRewardsApiKey?: string;
1251
1769
 
1770
+ /**
1771
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
1772
+ */
1773
+ directRpc?: boolean;
1774
+
1252
1775
  /**
1253
1776
  * Array of Discord servers, channels, and roles to join.
1254
1777
  */
@@ -1274,6 +1797,11 @@ export namespace RuleUpdateResponse {
1274
1797
  */
1275
1798
  enableVerifiedMultiplier?: boolean;
1276
1799
 
1800
+ /**
1801
+ * Type of ERC20 token for the loyalty rule.
1802
+ */
1803
+ erc20Type?: 'erc20' | 'native';
1804
+
1277
1805
  /**
1278
1806
  * Fill source of the order for the token sale
1279
1807
  */
@@ -1294,11 +1822,6 @@ export namespace RuleUpdateResponse {
1294
1822
  */
1295
1823
  hasNeverSold?: boolean;
1296
1824
 
1297
- /**
1298
- * Flag indicating whether the order source is included.
1299
- */
1300
- hasOrderSource?: boolean;
1301
-
1302
1825
  /**
1303
1826
  * Indicates if the full royalty has been paid for items.
1304
1827
  */
@@ -1319,11 +1842,21 @@ export namespace RuleUpdateResponse {
1319
1842
  */
1320
1843
  imageUrl?: string | null;
1321
1844
 
1845
+ /**
1846
+ * If enabled, the first transaction done on the platform will complete this rule
1847
+ */
1848
+ isCheckInOnEveryTxn?: boolean;
1849
+
1322
1850
  /**
1323
1851
  * Indicates if the multiplier has been applied to rewards.
1324
1852
  */
1325
1853
  isMultiplierApplied?: boolean;
1326
1854
 
1855
+ /**
1856
+ * Flag indicating if the rule is restricted to new users.
1857
+ */
1858
+ isRestrictedToNewUsers?: boolean;
1859
+
1327
1860
  /**
1328
1861
  * Flag indicating if rewards are applied retroactively.
1329
1862
  */
@@ -1339,6 +1872,11 @@ export namespace RuleUpdateResponse {
1339
1872
  */
1340
1873
  link?: string | null;
1341
1874
 
1875
+ /**
1876
+ * Liquidity pool details.
1877
+ */
1878
+ liquidity?: Metadata.Liquidity;
1879
+
1342
1880
  /**
1343
1881
  * Maximum quantity constraint for token holding.
1344
1882
  */
@@ -1380,14 +1918,24 @@ export namespace RuleUpdateResponse {
1380
1918
  onlyRewardSingleTokenOwnership?: boolean | null;
1381
1919
 
1382
1920
  /**
1383
- * Order source of the order for the token sale
1921
+ * Promotional code associated with the rule.
1922
+ */
1923
+ promoCode?: string;
1924
+
1925
+ /**
1926
+ * URL of the CSV file containing promo codes.
1384
1927
  */
1385
- orderSource?: string;
1928
+ promoCodeCsvUrl?: string;
1386
1929
 
1387
1930
  /**
1388
- * Promotional code associated with the rule.
1931
+ * Numbers of the promotional code to be generated.
1389
1932
  */
1390
- promoCode?: string;
1933
+ promoCodeLength?: number | null;
1934
+
1935
+ /**
1936
+ * Type of the promotional code.
1937
+ */
1938
+ promoCodeType?: 'code' | 'csv' | 'generate';
1391
1939
 
1392
1940
  /**
1393
1941
  * Array defining ranges and corresponding rewards.
@@ -1404,11 +1952,62 @@ export namespace RuleUpdateResponse {
1404
1952
  */
1405
1953
  referrerReward?: number | null;
1406
1954
 
1955
+ /**
1956
+ * Loyalty currency ID of the referrer reward.
1957
+ */
1958
+ referrerRewardLoyaltyCurrencyId?: string | null;
1959
+
1960
+ /**
1961
+ * Flag indicating if the post link is required.
1962
+ */
1963
+ requirePostLink?: boolean | null;
1964
+
1965
+ /**
1966
+ * Flag indicating if media metadata is required.
1967
+ */
1968
+ requirePostMediaLink?: boolean | null;
1969
+
1970
+ /**
1971
+ * Flag indicating if the rule can also reward badges per range.
1972
+ */
1973
+ rewardBadgePerRange?: boolean;
1974
+
1975
+ /**
1976
+ * Flag indicating if the reward is rewarded by batch.
1977
+ */
1978
+ rewardByBatch?: boolean | null;
1979
+
1980
+ /**
1981
+ * Criteria to evaluate the reward.
1982
+ */
1983
+ rewardCriteria?: 'IMPRESSIONS_COUNT' | 'ELIGIBLE_POST' | null;
1984
+
1985
+ /**
1986
+ * Flag indicating if the reward is rewarded per action.
1987
+ */
1988
+ rewardPerAction?: boolean | null;
1989
+
1407
1990
  /**
1408
1991
  * Flag indicating if rewards are given per impression.
1409
1992
  */
1410
1993
  rewardPerImpression?: boolean | null;
1411
1994
 
1995
+ /**
1996
+ * Flag indicating if the rule should reward based on value of traded tokens
1997
+ * instead of count.
1998
+ */
1999
+ rewardPerValue?: boolean;
2000
+
2001
+ /**
2002
+ * Wallet address of the user can only be used if userId is not provided
2003
+ */
2004
+ royaltyAddress?: string;
2005
+
2006
+ /**
2007
+ * Royalty percentage of the item.
2008
+ */
2009
+ royaltyPercentage?: number;
2010
+
1412
2011
  /**
1413
2012
  * Currency associated with sales.
1414
2013
  */
@@ -1448,6 +2047,7 @@ export namespace RuleUpdateResponse {
1448
2047
  | 'Twitch'
1449
2048
  | 'X(Twitter)'
1450
2049
  | 'YouTube'
2050
+ | 'Google'
1451
2051
  | null;
1452
2052
 
1453
2053
  /**
@@ -1460,11 +2060,21 @@ export namespace RuleUpdateResponse {
1460
2060
  */
1461
2061
  socialPlatformName?: string | null;
1462
2062
 
2063
+ /**
2064
+ * ID of the Steam app.
2065
+ */
2066
+ steamAppId?: string | null;
2067
+
1463
2068
  /**
1464
2069
  * Array of streak milestones and corresponding rewards.
1465
2070
  */
1466
2071
  streakArray?: Array<Metadata.StreakArray> | null;
1467
2072
 
2073
+ /**
2074
+ * Metadata for swap loyalty rules
2075
+ */
2076
+ swap?: Metadata.Swap;
2077
+
1468
2078
  /**
1469
2079
  * ID of the Telegram channel.
1470
2080
  */
@@ -1480,6 +2090,12 @@ export namespace RuleUpdateResponse {
1480
2090
  */
1481
2091
  trackAllContracts?: boolean | null;
1482
2092
 
2093
+ /**
2094
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
2095
+ * completed once the progress is 100%.
2096
+ */
2097
+ trackProgress?: boolean | null;
2098
+
1483
2099
  /**
1484
2100
  * URL of the associated Twitter account.
1485
2101
  */
@@ -1523,7 +2139,27 @@ export namespace RuleUpdateResponse {
1523
2139
  /**
1524
2140
  * Type of wallet associated with the rule.
1525
2141
  */
1526
- walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | null;
2142
+ walletType?:
2143
+ | 'evm'
2144
+ | 'solana'
2145
+ | 'imx'
2146
+ | 'sui'
2147
+ | 'ton'
2148
+ | 'cosmos'
2149
+ | 'ultra'
2150
+ | 'agw'
2151
+ | 'flow_cadence'
2152
+ | null;
2153
+
2154
+ /**
2155
+ * ID of the Youtube channel.
2156
+ */
2157
+ youtubeChannelId?: string | null;
2158
+
2159
+ /**
2160
+ * ID of the Youtube video.
2161
+ */
2162
+ youtubeVideoId?: string | null;
1527
2163
  }
1528
2164
 
1529
2165
  export namespace Metadata {
@@ -1542,13 +2178,17 @@ export namespace RuleUpdateResponse {
1542
2178
  * Blockchain network of the collection.
1543
2179
  */
1544
2180
  network?:
2181
+ | 'abstract'
2182
+ | 'abstractTestnet'
1545
2183
  | 'apechain'
1546
2184
  | 'arbitrum'
1547
2185
  | 'avalanche'
1548
2186
  | 'avalancheFuji'
1549
2187
  | 'base'
1550
2188
  | 'baseSepolia'
2189
+ | 'berachain'
1551
2190
  | 'berachainArtio'
2191
+ | 'berachainBepolia'
1552
2192
  | 'binance'
1553
2193
  | 'bscTestnet'
1554
2194
  | 'campTestnet'
@@ -1556,18 +2196,30 @@ export namespace RuleUpdateResponse {
1556
2196
  | 'fantomTestnet'
1557
2197
  | 'flowMainnet'
1558
2198
  | 'mainnet'
2199
+ | 'nexusTestnet'
1559
2200
  | 'optimism'
1560
2201
  | 'polygon'
1561
2202
  | 'polygon_mumbai'
1562
2203
  | 'skaleNebula'
2204
+ | 'skaleEuropa'
2205
+ | 'skaleCalypso'
1563
2206
  | 'solana'
1564
2207
  | 'sophon'
2208
+ | 'sophonTestnet'
1565
2209
  | 'sui'
1566
2210
  | 'superseed'
1567
2211
  | 'superseedSepolia'
1568
2212
  | 'vanar'
1569
2213
  | 'xai'
1570
2214
  | 'zksync'
2215
+ | 'coti'
2216
+ | 'cotiTestnet'
2217
+ | 'morph'
2218
+ | 'morphTestnet'
2219
+ | 'morphHolesky'
2220
+ | 'ultra'
2221
+ | 'ultraTestnet'
2222
+ | 'nitrograph'
1571
2223
  | 'sepolia'
1572
2224
  | 'optimism_sepolia'
1573
2225
  | 'arbitrumSepolia'
@@ -1575,7 +2227,8 @@ export namespace RuleUpdateResponse {
1575
2227
  | 'optimism_goerli'
1576
2228
  | 'arbitrumGoerli'
1577
2229
  | 'basecamp'
1578
- | 'abstract';
2230
+ | 'somnia'
2231
+ | 'flow_cadence';
1579
2232
  }
1580
2233
 
1581
2234
  /**
@@ -1652,6 +2305,108 @@ export namespace RuleUpdateResponse {
1652
2305
  id: string;
1653
2306
  }
1654
2307
 
2308
+ /**
2309
+ * Liquidity pool details.
2310
+ */
2311
+ export interface Liquidity {
2312
+ /**
2313
+ * Calculation type of the liquidity pool.
2314
+ */
2315
+ calculationType?: 'fixed' | 'custom';
2316
+
2317
+ /**
2318
+ * Custom function to calculate the the reward amount based on the liquidity
2319
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
2320
+ * USD.
2321
+ */
2322
+ customFunction?: string;
2323
+
2324
+ /**
2325
+ * Liquidity provided per day in USD
2326
+ */
2327
+ liquidityPerDay?: number;
2328
+
2329
+ /**
2330
+ * Blockchain network of the liquidity pool.
2331
+ */
2332
+ network?:
2333
+ | 'abstract'
2334
+ | 'abstractTestnet'
2335
+ | 'apechain'
2336
+ | 'arbitrum'
2337
+ | 'avalanche'
2338
+ | 'avalancheFuji'
2339
+ | 'base'
2340
+ | 'baseSepolia'
2341
+ | 'berachain'
2342
+ | 'berachainArtio'
2343
+ | 'berachainBepolia'
2344
+ | 'binance'
2345
+ | 'bscTestnet'
2346
+ | 'campTestnet'
2347
+ | 'fantom'
2348
+ | 'fantomTestnet'
2349
+ | 'flowMainnet'
2350
+ | 'mainnet'
2351
+ | 'nexusTestnet'
2352
+ | 'optimism'
2353
+ | 'polygon'
2354
+ | 'polygon_mumbai'
2355
+ | 'skaleNebula'
2356
+ | 'skaleEuropa'
2357
+ | 'skaleCalypso'
2358
+ | 'solana'
2359
+ | 'sophon'
2360
+ | 'sophonTestnet'
2361
+ | 'sui'
2362
+ | 'superseed'
2363
+ | 'superseedSepolia'
2364
+ | 'vanar'
2365
+ | 'xai'
2366
+ | 'zksync'
2367
+ | 'coti'
2368
+ | 'cotiTestnet'
2369
+ | 'morph'
2370
+ | 'morphTestnet'
2371
+ | 'morphHolesky'
2372
+ | 'ultra'
2373
+ | 'ultraTestnet'
2374
+ | 'nitrograph'
2375
+ | 'sepolia'
2376
+ | 'optimism_sepolia'
2377
+ | 'arbitrumSepolia'
2378
+ | 'goerli'
2379
+ | 'optimism_goerli'
2380
+ | 'arbitrumGoerli'
2381
+ | 'basecamp'
2382
+ | 'somnia'
2383
+ | 'flow_cadence';
2384
+
2385
+ /**
2386
+ * Indicates if only in-range liquidity is rewarded.
2387
+ */
2388
+ onlyRewardInRangeLiquidity?: boolean;
2389
+
2390
+ /**
2391
+ * Array of liquidity pools associated with the rule.
2392
+ */
2393
+ pools?: Array<Liquidity.Pool>;
2394
+
2395
+ /**
2396
+ * Protocol of the liquidity pool.
2397
+ */
2398
+ protocol?: string;
2399
+ }
2400
+
2401
+ export namespace Liquidity {
2402
+ export interface Pool {
2403
+ /**
2404
+ * Unique identifier of the liquidity pool.
2405
+ */
2406
+ id: string;
2407
+ }
2408
+ }
2409
+
1655
2410
  export interface Range {
1656
2411
  /**
1657
2412
  * Reward amount for this range.
@@ -1667,6 +2422,16 @@ export namespace RuleUpdateResponse {
1667
2422
  * Start value of the range.
1668
2423
  */
1669
2424
  startRange: number;
2425
+
2426
+ /**
2427
+ * ID of the loyalty badge for this range.
2428
+ */
2429
+ loyaltyBadgeId?: string;
2430
+
2431
+ /**
2432
+ * Amount of the loyalty multiplier for this range.
2433
+ */
2434
+ loyaltyMultiplierAmount?: number;
1670
2435
  }
1671
2436
 
1672
2437
  /**
@@ -1719,20 +2484,15 @@ export namespace RuleUpdateResponse {
1719
2484
  * Object containing details of the associated smart contract.
1720
2485
  */
1721
2486
  export interface SmartContract {
1722
- /**
1723
- * ABI of the smart contract.
1724
- */
1725
- abi?: string | null;
1726
-
1727
2487
  /**
1728
2488
  * Mapping of addresses for the smart contract.
1729
2489
  */
1730
2490
  addressMapping?: string | null;
1731
2491
 
1732
2492
  /**
1733
- * Array of bonus details applied to the rule.
2493
+ * Object containing details of the amount multiplier from the event.
1734
2494
  */
1735
- bonus?: Array<SmartContract.Bonus> | null;
2495
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
1736
2496
 
1737
2497
  /**
1738
2498
  * ID of the smart contract.
@@ -1744,68 +2504,31 @@ export namespace RuleUpdateResponse {
1744
2504
  */
1745
2505
  criteria?: 'everyEvent' | 'byParameter' | null;
1746
2506
 
1747
- /**
1748
- * Time range applied to the rule.
1749
- */
1750
- customRange?: SmartContract.CustomRange | null;
1751
-
1752
2507
  /**
1753
2508
  * Event emitted by the smart contract.
1754
2509
  */
1755
2510
  event?: string | null;
1756
2511
 
1757
- /**
1758
- * Maximum value allowed for the parameter.
1759
- */
1760
- max?: number | null;
1761
-
1762
2512
  /**
1763
2513
  * Array of parameters for the smart contract.
1764
2514
  */
1765
2515
  params?: Array<SmartContract.Param> | null;
1766
2516
 
1767
2517
  /**
1768
- * Flag indicating if a bonus is applied.
2518
+ * Type of the smart contract interaction.
1769
2519
  */
1770
- withBonus?: boolean | null;
1771
-
1772
- /**
1773
- * Flag indicating if a custom range is applied.
1774
- */
1775
- withCustomRange?: boolean | null;
1776
-
1777
- /**
1778
- * Flag indicating if a maximum limit is applied.
1779
- */
1780
- withMax?: boolean | null;
2520
+ type?: 'function' | 'event' | null;
1781
2521
  }
1782
2522
 
1783
2523
  export namespace SmartContract {
1784
- export interface Bonus {
1785
- /**
1786
- * Amount of the bonus.
1787
- */
1788
- amount?: number | null;
1789
-
1790
- /**
1791
- * Number of times the bonus is applied.
1792
- */
1793
- count?: number | null;
1794
- }
1795
-
1796
2524
  /**
1797
- * Time range applied to the rule.
2525
+ * Object containing details of the amount multiplier from the event.
1798
2526
  */
1799
- export interface CustomRange {
1800
- /**
1801
- * End time of the custom range.
1802
- */
1803
- endsAt?: string | null;
1804
-
2527
+ export interface AmountMultiplier {
1805
2528
  /**
1806
- * Start time of the custom range.
2529
+ * Mapping of the value for the smart contract.
1807
2530
  */
1808
- startsAt?: string | null;
2531
+ valueMapping?: string | null;
1809
2532
  }
1810
2533
 
1811
2534
  export interface Param {
@@ -1849,6 +2572,33 @@ export namespace RuleUpdateResponse {
1849
2572
  */
1850
2573
  streakMilestone: number;
1851
2574
  }
2575
+
2576
+ /**
2577
+ * Metadata for swap loyalty rules
2578
+ */
2579
+ export interface Swap {
2580
+ provider?: 'any' | 'relay' | 'lifi';
2581
+
2582
+ relayReferrerId?: string;
2583
+
2584
+ requireCrossChainSwap?: boolean;
2585
+
2586
+ swappedToChain?: 'any' | number | string;
2587
+
2588
+ swappedToTokens?: Array<Swap.SwappedToToken>;
2589
+
2590
+ tokenMode?: 'any' | 'specific';
2591
+
2592
+ trackTokenAmount?: boolean;
2593
+ }
2594
+
2595
+ export namespace Swap {
2596
+ export interface SwappedToToken {
2597
+ address: string;
2598
+
2599
+ chainId: string;
2600
+ }
2601
+ }
1852
2602
  }
1853
2603
  }
1854
2604
 
@@ -1859,9 +2609,6 @@ export interface RuleListResponse {
1859
2609
  }
1860
2610
 
1861
2611
  export namespace RuleListResponse {
1862
- /**
1863
- * Schema for a loyalty rule
1864
- */
1865
2612
  export interface Data {
1866
2613
  /**
1867
2614
  * Unique identifier for the loyalty rule
@@ -1871,7 +2618,7 @@ export namespace RuleListResponse {
1871
2618
  /**
1872
2619
  * Amount associated with the loyalty rule
1873
2620
  */
1874
- amount: number;
2621
+ amount: number | null;
1875
2622
 
1876
2623
  /**
1877
2624
  * Timestamp when the loyalty rule was created
@@ -1883,16 +2630,46 @@ export namespace RuleListResponse {
1883
2630
  */
1884
2631
  deletedAt: string | null;
1885
2632
 
2633
+ /**
2634
+ * Description of the loyalty rule
2635
+ */
2636
+ description: string;
2637
+
2638
+ /**
2639
+ * End time of the loyalty rule
2640
+ */
2641
+ endTime: string | null;
2642
+
1886
2643
  /**
1887
2644
  * Frequency of the loyalty rule
1888
2645
  */
1889
2646
  frequency: string;
1890
2647
 
2648
+ /**
2649
+ * Chains attached to the loyalty rule
2650
+ */
2651
+ loyaltyRuleChain: Array<Data.LoyaltyRuleChain>;
2652
+
2653
+ /**
2654
+ * Name of the loyalty rule
2655
+ */
2656
+ name: string;
2657
+
1891
2658
  /**
1892
2659
  * Unique identifier for the organization
1893
2660
  */
1894
2661
  organizationId: string;
1895
2662
 
2663
+ /**
2664
+ * Type of the reward
2665
+ */
2666
+ rewardType: 'points' | 'multiplier' | 'badge';
2667
+
2668
+ /**
2669
+ * Start time of the loyalty rule
2670
+ */
2671
+ startTime: string | null;
2672
+
1896
2673
  /**
1897
2674
  * Type of the loyalty rule
1898
2675
  */
@@ -1908,15 +2685,1012 @@ export namespace RuleListResponse {
1908
2685
  */
1909
2686
  websiteId: string;
1910
2687
 
1911
- /**
1912
- * Optional address of the collection
1913
- */
1914
- collectionAddress?: string;
2688
+ /**
2689
+ * Optional address of the collection
2690
+ */
2691
+ collectionAddress?: string;
2692
+
2693
+ /**
2694
+ * URL of the media associated with the loyalty rule
2695
+ */
2696
+ mediaUrl?: string | null;
2697
+
2698
+ /**
2699
+ * Optional metadata for the loyalty rule
2700
+ */
2701
+ metadata?: { [key: string]: Data.Metadata };
2702
+ }
2703
+
2704
+ export namespace Data {
2705
+ export interface LoyaltyRuleChain {
2706
+ /**
2707
+ * Unique identifier for the rule chain
2708
+ */
2709
+ id: string;
2710
+
2711
+ loyaltyConditions: Array<LoyaltyRuleChain.LoyaltyCondition>;
2712
+
2713
+ /**
2714
+ * Unique identifier for the loyalty rule
2715
+ */
2716
+ loyaltyRuleId: string;
2717
+
2718
+ /**
2719
+ * Name of the rule chain
2720
+ */
2721
+ name: string;
2722
+ }
2723
+
2724
+ export namespace LoyaltyRuleChain {
2725
+ export interface LoyaltyCondition {
2726
+ /**
2727
+ * Unique identifier for the condition
2728
+ */
2729
+ id: string;
2730
+
2731
+ /**
2732
+ * Amount of the condition
2733
+ */
2734
+ amount: number | null;
2735
+
2736
+ association: Array<LoyaltyCondition.Association>;
2737
+
2738
+ /**
2739
+ * URL of the CSV file
2740
+ */
2741
+ csvUrl: string | null;
2742
+
2743
+ /**
2744
+ * Description of the condition
2745
+ */
2746
+ description: string | null;
2747
+
2748
+ /**
2749
+ * Number of times the condition must be met
2750
+ */
2751
+ repeatCount: number | null;
2752
+
2753
+ /**
2754
+ * Number of times the condition must be met
2755
+ */
2756
+ requiredCount: number | null;
2757
+
2758
+ /**
2759
+ * Type of the condition
2760
+ */
2761
+ type: 'rule' | 'rules' | 'points' | 'section' | 'level' | 'api' | 'badge' | 'badges' | 'csv';
2762
+ }
2763
+
2764
+ export namespace LoyaltyCondition {
2765
+ export interface Association {
2766
+ /**
2767
+ * Unique identifier for the association
2768
+ */
2769
+ id: string;
2770
+
2771
+ /**
2772
+ * Unique identifier for the loyalty badge
2773
+ */
2774
+ loyaltyBadgeId: string | null;
2775
+
2776
+ /**
2777
+ * Unique identifier for the loyalty currency
2778
+ */
2779
+ loyaltyCurrencyId: string | null;
2780
+
2781
+ loyaltyRule: Association.LoyaltyRule | null;
2782
+
2783
+ /**
2784
+ * Unique identifier for the loyalty rule group
2785
+ */
2786
+ loyaltyRuleGroupId: string | null;
2787
+
2788
+ /**
2789
+ * Unique identifier for the loyalty rule
2790
+ */
2791
+ loyaltyRuleId: string | null;
2792
+ }
2793
+
2794
+ export namespace Association {
2795
+ export interface LoyaltyRule {
2796
+ /**
2797
+ * Name of the loyalty rule
2798
+ */
2799
+ name: string;
2800
+ }
2801
+ }
2802
+ }
2803
+ }
2804
+
2805
+ export interface Metadata {
2806
+ /**
2807
+ * Number of tokens per batch.
2808
+ */
2809
+ batchSize?: number | null;
2810
+
2811
+ /**
2812
+ * Text displayed on the action button.
2813
+ */
2814
+ buttonText?: string | null;
2815
+
2816
+ /**
2817
+ * Flag indicating if commenting is required.
2818
+ */
2819
+ checkComment?: boolean | null;
2820
+
2821
+ /**
2822
+ * Flag indicating if liking the post is required.
2823
+ */
2824
+ checkLike?: boolean | null;
2825
+
2826
+ /**
2827
+ * Flag indicating if reposting is required.
2828
+ */
2829
+ checkRepost?: boolean | null;
2830
+
2831
+ /**
2832
+ * Text to check in the Twitter post, username, or bio.
2833
+ */
2834
+ checkText?: string | Array<string> | null;
2835
+
2836
+ /**
2837
+ * Array of collections associated with the rule.
2838
+ */
2839
+ collection?: Array<Metadata.Collection>;
2840
+
2841
+ /**
2842
+ * Conditions for completing the profile.
2843
+ */
2844
+ completeProfileConditions?: { [key: string]: boolean } | null;
2845
+
2846
+ /**
2847
+ * Description of the external rule condition (only for external rules)
2848
+ */
2849
+ conditionDescription?: string;
2850
+
2851
+ /**
2852
+ * Object containing details for the call-to-action.
2853
+ */
2854
+ cta?: Metadata.Cta | null;
2855
+
2856
+ /**
2857
+ * API key for custom rewards integration.
2858
+ */
2859
+ customRewardsApiKey?: string;
2860
+
2861
+ /**
2862
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
2863
+ */
2864
+ directRpc?: boolean;
2865
+
2866
+ /**
2867
+ * Array of Discord servers, channels, and roles to join.
2868
+ */
2869
+ discordServersToJoin?: Array<Metadata.DiscordServersToJoin> | null;
2870
+
2871
+ /**
2872
+ * Array of drip quests required to complete the rule.
2873
+ */
2874
+ dripQuestsToComplete?: Array<Metadata.DripQuestsToComplete> | null;
2875
+
2876
+ /**
2877
+ * Flag indicating whether joining Discord servers is required.
2878
+ */
2879
+ enableJoinDiscordServers?: boolean | null;
2880
+
2881
+ /**
2882
+ * Flag indicating whether streaks are enabled.
2883
+ */
2884
+ enableStreaks?: boolean | null;
2885
+
2886
+ /**
2887
+ * Flag indicating whether the verified multiplier is enabled.
2888
+ */
2889
+ enableVerifiedMultiplier?: boolean;
2890
+
2891
+ /**
2892
+ * Type of ERC20 token for the loyalty rule.
2893
+ */
2894
+ erc20Type?: 'erc20' | 'native';
2895
+
2896
+ /**
2897
+ * Fill source of the order for the token sale
2898
+ */
2899
+ fillSource?: string;
2900
+
2901
+ /**
2902
+ * Percentage reward given to a user for their first referral.
2903
+ */
2904
+ firstReferralReward?: number | null;
2905
+
2906
+ /**
2907
+ * Flag indicating whether the fill source is included.
2908
+ */
2909
+ hasFillSource?: boolean;
2910
+
2911
+ /**
2912
+ * Indicates if the item has never been sold.
2913
+ */
2914
+ hasNeverSold?: boolean;
2915
+
2916
+ /**
2917
+ * Indicates if the full royalty has been paid for items.
2918
+ */
2919
+ hasPaidFullRoyalty?: boolean;
2920
+
2921
+ /**
2922
+ * Flag indicating if the sale currency is included.
2923
+ */
2924
+ hasSaleCurrency?: boolean;
2925
+
2926
+ /**
2927
+ * Indicates if the user has a verified Twitter account.
2928
+ */
2929
+ hasVerifiedTwitter?: boolean;
2930
+
2931
+ /**
2932
+ * URL of the image associated with the rule.
2933
+ */
2934
+ imageUrl?: string | null;
2935
+
2936
+ /**
2937
+ * If enabled, the first transaction done on the platform will complete this rule
2938
+ */
2939
+ isCheckInOnEveryTxn?: boolean;
2940
+
2941
+ /**
2942
+ * Indicates if the multiplier has been applied to rewards.
2943
+ */
2944
+ isMultiplierApplied?: boolean;
2945
+
2946
+ /**
2947
+ * Flag indicating if the rule is restricted to new users.
2948
+ */
2949
+ isRestrictedToNewUsers?: boolean;
2950
+
2951
+ /**
2952
+ * Flag indicating if rewards are applied retroactively.
2953
+ */
2954
+ isRetroactive?: boolean | null;
2955
+
2956
+ /**
2957
+ * Flag indicating if the token hold multiplier is applied.
2958
+ */
2959
+ isTokenHoldMultiplier?: boolean;
2960
+
2961
+ /**
2962
+ * Optional link associated with the metadata.
2963
+ */
2964
+ link?: string | null;
2965
+
2966
+ /**
2967
+ * Liquidity pool details.
2968
+ */
2969
+ liquidity?: Metadata.Liquidity;
2970
+
2971
+ /**
2972
+ * Maximum quantity constraint for token holding.
2973
+ */
2974
+ maxQty?: number | null;
2975
+
2976
+ /**
2977
+ * Minimum quantity constraint for token holding.
2978
+ */
2979
+ minQty?: number | null;
2980
+
2981
+ /**
2982
+ * Array of loyalty currency IDs used for multipliers.
2983
+ */
2984
+ multiplierLoyaltyCurrencyIds?: Array<string> | null;
2985
+
2986
+ /**
2987
+ * Flag indicating whether to include only known users.
2988
+ */
2989
+ onlyKnownUsers?: boolean;
2990
+
2991
+ /**
2992
+ * Flag indicating whether to include only native tokens.
2993
+ */
2994
+ onlyNative?: boolean;
2995
+
2996
+ /**
2997
+ * Flag indicating whether to include only non-listed items.
2998
+ */
2999
+ onlyNonListed?: boolean;
3000
+
3001
+ /**
3002
+ * Indicates if only existing users are rewarded.
3003
+ */
3004
+ onlyRewardExistingUser?: boolean;
3005
+
3006
+ /**
3007
+ * give points for only one token ownership per contract
3008
+ */
3009
+ onlyRewardSingleTokenOwnership?: boolean | null;
3010
+
3011
+ /**
3012
+ * Promotional code associated with the rule.
3013
+ */
3014
+ promoCode?: string;
3015
+
3016
+ /**
3017
+ * URL of the CSV file containing promo codes.
3018
+ */
3019
+ promoCodeCsvUrl?: string;
3020
+
3021
+ /**
3022
+ * Numbers of the promotional code to be generated.
3023
+ */
3024
+ promoCodeLength?: number | null;
3025
+
3026
+ /**
3027
+ * Type of the promotional code.
3028
+ */
3029
+ promoCodeType?: 'code' | 'csv' | 'generate';
3030
+
3031
+ /**
3032
+ * Array defining ranges and corresponding rewards.
3033
+ */
3034
+ range?: Array<Metadata.Range>;
3035
+
3036
+ /**
3037
+ * Object defining referral requirements.
3038
+ */
3039
+ referralRequirements?: Metadata.ReferralRequirements | null;
3040
+
3041
+ /**
3042
+ * Lump sum reward given to a referrer.
3043
+ */
3044
+ referrerReward?: number | null;
3045
+
3046
+ /**
3047
+ * Loyalty currency ID of the referrer reward.
3048
+ */
3049
+ referrerRewardLoyaltyCurrencyId?: string | null;
3050
+
3051
+ /**
3052
+ * Flag indicating if the post link is required.
3053
+ */
3054
+ requirePostLink?: boolean | null;
3055
+
3056
+ /**
3057
+ * Flag indicating if media metadata is required.
3058
+ */
3059
+ requirePostMediaLink?: boolean | null;
3060
+
3061
+ /**
3062
+ * Flag indicating if the rule can also reward badges per range.
3063
+ */
3064
+ rewardBadgePerRange?: boolean;
3065
+
3066
+ /**
3067
+ * Flag indicating if the reward is rewarded by batch.
3068
+ */
3069
+ rewardByBatch?: boolean | null;
3070
+
3071
+ /**
3072
+ * Criteria to evaluate the reward.
3073
+ */
3074
+ rewardCriteria?: 'IMPRESSIONS_COUNT' | 'ELIGIBLE_POST' | null;
3075
+
3076
+ /**
3077
+ * Flag indicating if the reward is rewarded per action.
3078
+ */
3079
+ rewardPerAction?: boolean | null;
3080
+
3081
+ /**
3082
+ * Flag indicating if rewards are given per impression.
3083
+ */
3084
+ rewardPerImpression?: boolean | null;
3085
+
3086
+ /**
3087
+ * Flag indicating if the rule should reward based on value of traded tokens
3088
+ * instead of count.
3089
+ */
3090
+ rewardPerValue?: boolean;
3091
+
3092
+ /**
3093
+ * Wallet address of the user can only be used if userId is not provided
3094
+ */
3095
+ royaltyAddress?: string;
3096
+
3097
+ /**
3098
+ * Royalty percentage of the item.
3099
+ */
3100
+ royaltyPercentage?: number;
3101
+
3102
+ /**
3103
+ * Currency associated with sales.
3104
+ */
3105
+ saleCurrency?: string;
3106
+
3107
+ /**
3108
+ * Percentage reward given for a second-level referral.
3109
+ */
3110
+ secondReferralReward?: number | null;
3111
+
3112
+ /**
3113
+ * Flag indicating if the multiplier is skipped.
3114
+ */
3115
+ skipMultiplier?: boolean | null;
3116
+
3117
+ /**
3118
+ * Object containing details of the associated smart contract.
3119
+ */
3120
+ smartContract?: Metadata.SmartContract;
3121
+
3122
+ /**
3123
+ * Array of snapshot proposals for the rule.
3124
+ */
3125
+ snapshotProposals?: Array<Metadata.SnapshotProposal> | null;
3126
+
3127
+ /**
3128
+ * Social media platform associated with the rule.
3129
+ */
3130
+ socialPlatform?:
3131
+ | 'Custom'
3132
+ | 'Discord'
3133
+ | 'EpicGames'
3134
+ | 'Instagram'
3135
+ | 'Steam'
3136
+ | 'Telegram'
3137
+ | 'TikTok'
3138
+ | 'Twitch'
3139
+ | 'X(Twitter)'
3140
+ | 'YouTube'
3141
+ | 'Google'
3142
+ | null;
3143
+
3144
+ /**
3145
+ * URL of the social platform's logo.
3146
+ */
3147
+ socialPlatformLogo?: string | null;
3148
+
3149
+ /**
3150
+ * Name of the social platform.
3151
+ */
3152
+ socialPlatformName?: string | null;
3153
+
3154
+ /**
3155
+ * ID of the Steam app.
3156
+ */
3157
+ steamAppId?: string | null;
3158
+
3159
+ /**
3160
+ * Array of streak milestones and corresponding rewards.
3161
+ */
3162
+ streakArray?: Array<Metadata.StreakArray> | null;
3163
+
3164
+ /**
3165
+ * Metadata for swap loyalty rules
3166
+ */
3167
+ swap?: Metadata.Swap;
3168
+
3169
+ /**
3170
+ * ID of the Telegram channel.
3171
+ */
3172
+ telegramChannelId?: string | null;
3173
+
3174
+ /**
3175
+ * Time delay in seconds to verify actions.
3176
+ */
3177
+ timeDelayToVerifySeconds?: string | number | null;
3178
+
3179
+ /**
3180
+ * Flag indicating if all contracts are tracked.
3181
+ */
3182
+ trackAllContracts?: boolean | null;
3183
+
3184
+ /**
3185
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
3186
+ * completed once the progress is 100%.
3187
+ */
3188
+ trackProgress?: boolean | null;
3189
+
3190
+ /**
3191
+ * URL of the associated Twitter account.
3192
+ */
3193
+ twitterAccountUrl?: string;
3194
+
3195
+ /**
3196
+ * Hashtag associated with the Twitter post.
3197
+ */
3198
+ twitterHashtag?: string;
3199
+
3200
+ /**
3201
+ * URL of the associated Twitter post.
3202
+ */
3203
+ twitterPostUrl?: string;
3204
+
3205
+ /**
3206
+ * Unique identifier of the Twitter user.
3207
+ */
3208
+ twitterUserId?: string;
3209
+
3210
+ /**
3211
+ * Twitter username of the user.
3212
+ */
3213
+ twitterUsername?: string;
3214
+
3215
+ /**
3216
+ * Minimum length of the verification text.
3217
+ */
3218
+ verificationTextMinimumLength?: number | null;
3219
+
3220
+ /**
3221
+ * Multiplier applied to rewards for verified users.
3222
+ */
3223
+ verifiedMultiplier?: number | null;
3224
+
3225
+ /**
3226
+ * Placeholder text for verification input fields.
3227
+ */
3228
+ verifyPlaceHolderText?: string | null;
3229
+
3230
+ /**
3231
+ * Type of wallet associated with the rule.
3232
+ */
3233
+ walletType?:
3234
+ | 'evm'
3235
+ | 'solana'
3236
+ | 'imx'
3237
+ | 'sui'
3238
+ | 'ton'
3239
+ | 'cosmos'
3240
+ | 'ultra'
3241
+ | 'agw'
3242
+ | 'flow_cadence'
3243
+ | null;
3244
+
3245
+ /**
3246
+ * ID of the Youtube channel.
3247
+ */
3248
+ youtubeChannelId?: string | null;
3249
+
3250
+ /**
3251
+ * ID of the Youtube video.
3252
+ */
3253
+ youtubeVideoId?: string | null;
3254
+ }
3255
+
3256
+ export namespace Metadata {
3257
+ export interface Collection {
3258
+ /**
3259
+ * Blockchain address of the collection.
3260
+ */
3261
+ address?: string;
3262
+
3263
+ /**
3264
+ * Multiplier applied to the rewards for this collection.
3265
+ */
3266
+ multiplier?: number;
3267
+
3268
+ /**
3269
+ * Blockchain network of the collection.
3270
+ */
3271
+ network?:
3272
+ | 'abstract'
3273
+ | 'abstractTestnet'
3274
+ | 'apechain'
3275
+ | 'arbitrum'
3276
+ | 'avalanche'
3277
+ | 'avalancheFuji'
3278
+ | 'base'
3279
+ | 'baseSepolia'
3280
+ | 'berachain'
3281
+ | 'berachainArtio'
3282
+ | 'berachainBepolia'
3283
+ | 'binance'
3284
+ | 'bscTestnet'
3285
+ | 'campTestnet'
3286
+ | 'fantom'
3287
+ | 'fantomTestnet'
3288
+ | 'flowMainnet'
3289
+ | 'mainnet'
3290
+ | 'nexusTestnet'
3291
+ | 'optimism'
3292
+ | 'polygon'
3293
+ | 'polygon_mumbai'
3294
+ | 'skaleNebula'
3295
+ | 'skaleEuropa'
3296
+ | 'skaleCalypso'
3297
+ | 'solana'
3298
+ | 'sophon'
3299
+ | 'sophonTestnet'
3300
+ | 'sui'
3301
+ | 'superseed'
3302
+ | 'superseedSepolia'
3303
+ | 'vanar'
3304
+ | 'xai'
3305
+ | 'zksync'
3306
+ | 'coti'
3307
+ | 'cotiTestnet'
3308
+ | 'morph'
3309
+ | 'morphTestnet'
3310
+ | 'morphHolesky'
3311
+ | 'ultra'
3312
+ | 'ultraTestnet'
3313
+ | 'nitrograph'
3314
+ | 'sepolia'
3315
+ | 'optimism_sepolia'
3316
+ | 'arbitrumSepolia'
3317
+ | 'goerli'
3318
+ | 'optimism_goerli'
3319
+ | 'arbitrumGoerli'
3320
+ | 'basecamp'
3321
+ | 'somnia'
3322
+ | 'flow_cadence';
3323
+ }
3324
+
3325
+ /**
3326
+ * Object containing details for the call-to-action.
3327
+ */
3328
+ export interface Cta {
3329
+ /**
3330
+ * Link for the call-to-action.
3331
+ */
3332
+ href?: string | null;
3333
+
3334
+ /**
3335
+ * Label for the call-to-action.
3336
+ */
3337
+ label?: string | null;
3338
+ }
3339
+
3340
+ export interface DiscordServersToJoin {
3341
+ /**
3342
+ * ID of the Discord server to join.
3343
+ */
3344
+ id?: string;
3345
+
3346
+ /**
3347
+ * Array of Discord channels to join.
3348
+ */
3349
+ channels?: Array<DiscordServersToJoin.Channel>;
3350
+
3351
+ /**
3352
+ * Array of roles to assign in the Discord server.
3353
+ */
3354
+ roles?: Array<DiscordServersToJoin.Role>;
3355
+ }
3356
+
3357
+ export namespace DiscordServersToJoin {
3358
+ export interface Channel {
3359
+ /**
3360
+ * ID of the Discord channel.
3361
+ */
3362
+ id?: string;
3363
+
3364
+ /**
3365
+ * Array of emojis used in the channel.
3366
+ */
3367
+ emojis?: Array<Channel.Emoji>;
3368
+
3369
+ /**
3370
+ * Phrase of text to be present in the discord message
3371
+ */
3372
+ text?: string;
3373
+ }
3374
+
3375
+ export namespace Channel {
3376
+ export interface Emoji {
3377
+ /**
3378
+ * ID of the emoji used in the channel.
3379
+ */
3380
+ id?: string;
3381
+ }
3382
+ }
3383
+
3384
+ export interface Role {
3385
+ /**
3386
+ * ID of the role in the Discord server.
3387
+ */
3388
+ id: string;
3389
+ }
3390
+ }
3391
+
3392
+ export interface DripQuestsToComplete {
3393
+ /**
3394
+ * ID of the drip quest to complete.
3395
+ */
3396
+ id: string;
3397
+ }
3398
+
3399
+ /**
3400
+ * Liquidity pool details.
3401
+ */
3402
+ export interface Liquidity {
3403
+ /**
3404
+ * Calculation type of the liquidity pool.
3405
+ */
3406
+ calculationType?: 'fixed' | 'custom';
3407
+
3408
+ /**
3409
+ * Custom function to calculate the the reward amount based on the liquidity
3410
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
3411
+ * USD.
3412
+ */
3413
+ customFunction?: string;
3414
+
3415
+ /**
3416
+ * Liquidity provided per day in USD
3417
+ */
3418
+ liquidityPerDay?: number;
3419
+
3420
+ /**
3421
+ * Blockchain network of the liquidity pool.
3422
+ */
3423
+ network?:
3424
+ | 'abstract'
3425
+ | 'abstractTestnet'
3426
+ | 'apechain'
3427
+ | 'arbitrum'
3428
+ | 'avalanche'
3429
+ | 'avalancheFuji'
3430
+ | 'base'
3431
+ | 'baseSepolia'
3432
+ | 'berachain'
3433
+ | 'berachainArtio'
3434
+ | 'berachainBepolia'
3435
+ | 'binance'
3436
+ | 'bscTestnet'
3437
+ | 'campTestnet'
3438
+ | 'fantom'
3439
+ | 'fantomTestnet'
3440
+ | 'flowMainnet'
3441
+ | 'mainnet'
3442
+ | 'nexusTestnet'
3443
+ | 'optimism'
3444
+ | 'polygon'
3445
+ | 'polygon_mumbai'
3446
+ | 'skaleNebula'
3447
+ | 'skaleEuropa'
3448
+ | 'skaleCalypso'
3449
+ | 'solana'
3450
+ | 'sophon'
3451
+ | 'sophonTestnet'
3452
+ | 'sui'
3453
+ | 'superseed'
3454
+ | 'superseedSepolia'
3455
+ | 'vanar'
3456
+ | 'xai'
3457
+ | 'zksync'
3458
+ | 'coti'
3459
+ | 'cotiTestnet'
3460
+ | 'morph'
3461
+ | 'morphTestnet'
3462
+ | 'morphHolesky'
3463
+ | 'ultra'
3464
+ | 'ultraTestnet'
3465
+ | 'nitrograph'
3466
+ | 'sepolia'
3467
+ | 'optimism_sepolia'
3468
+ | 'arbitrumSepolia'
3469
+ | 'goerli'
3470
+ | 'optimism_goerli'
3471
+ | 'arbitrumGoerli'
3472
+ | 'basecamp'
3473
+ | 'somnia'
3474
+ | 'flow_cadence';
3475
+
3476
+ /**
3477
+ * Indicates if only in-range liquidity is rewarded.
3478
+ */
3479
+ onlyRewardInRangeLiquidity?: boolean;
3480
+
3481
+ /**
3482
+ * Array of liquidity pools associated with the rule.
3483
+ */
3484
+ pools?: Array<Liquidity.Pool>;
3485
+
3486
+ /**
3487
+ * Protocol of the liquidity pool.
3488
+ */
3489
+ protocol?: string;
3490
+ }
3491
+
3492
+ export namespace Liquidity {
3493
+ export interface Pool {
3494
+ /**
3495
+ * Unique identifier of the liquidity pool.
3496
+ */
3497
+ id: string;
3498
+ }
3499
+ }
3500
+
3501
+ export interface Range {
3502
+ /**
3503
+ * Reward amount for this range.
3504
+ */
3505
+ amount: number;
3506
+
3507
+ /**
3508
+ * End value of the range.
3509
+ */
3510
+ endRange: number;
3511
+
3512
+ /**
3513
+ * Start value of the range.
3514
+ */
3515
+ startRange: number;
3516
+
3517
+ /**
3518
+ * ID of the loyalty badge for this range.
3519
+ */
3520
+ loyaltyBadgeId?: string;
3521
+
3522
+ /**
3523
+ * Amount of the loyalty multiplier for this range.
3524
+ */
3525
+ loyaltyMultiplierAmount?: number;
3526
+ }
3527
+
3528
+ /**
3529
+ * Object defining referral requirements.
3530
+ */
3531
+ export interface ReferralRequirements {
3532
+ /**
3533
+ * Flag indicating if achieving points is required.
3534
+ */
3535
+ achievePoints?: boolean | null;
3536
+
3537
+ /**
3538
+ * Flag indicating if completing the profile is required.
3539
+ */
3540
+ completeProfile?: boolean | null;
3541
+
3542
+ /**
3543
+ * Flag indicating if connecting Discord is required.
3544
+ */
3545
+ connectDiscord?: boolean | null;
3546
+
3547
+ /**
3548
+ * Flag indicating if connecting email is required.
3549
+ */
3550
+ connectEmail?: boolean | null;
3551
+
3552
+ /**
3553
+ * Flag indicating if connecting Twitter is required.
3554
+ */
3555
+ connectTwitter?: boolean | null;
3556
+
3557
+ points?: ReferralRequirements.Points | null;
3558
+ }
3559
+
3560
+ export namespace ReferralRequirements {
3561
+ export interface Points {
3562
+ /**
3563
+ * Points required for referral.
3564
+ */
3565
+ amount?: number | null;
3566
+
3567
+ /**
3568
+ * ID of the loyalty currency for referral.
3569
+ */
3570
+ loyaltyCurrecyId?: string | null;
3571
+ }
3572
+ }
3573
+
3574
+ /**
3575
+ * Object containing details of the associated smart contract.
3576
+ */
3577
+ export interface SmartContract {
3578
+ /**
3579
+ * Mapping of addresses for the smart contract.
3580
+ */
3581
+ addressMapping?: string | null;
3582
+
3583
+ /**
3584
+ * Object containing details of the amount multiplier from the event.
3585
+ */
3586
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
3587
+
3588
+ /**
3589
+ * ID of the smart contract.
3590
+ */
3591
+ contractId?: string | null;
3592
+
3593
+ /**
3594
+ * Criteria to evaluate the smart contract event.
3595
+ */
3596
+ criteria?: 'everyEvent' | 'byParameter' | null;
3597
+
3598
+ /**
3599
+ * Event emitted by the smart contract.
3600
+ */
3601
+ event?: string | null;
3602
+
3603
+ /**
3604
+ * Array of parameters for the smart contract.
3605
+ */
3606
+ params?: Array<SmartContract.Param> | null;
3607
+
3608
+ /**
3609
+ * Type of the smart contract interaction.
3610
+ */
3611
+ type?: 'function' | 'event' | null;
3612
+ }
3613
+
3614
+ export namespace SmartContract {
3615
+ /**
3616
+ * Object containing details of the amount multiplier from the event.
3617
+ */
3618
+ export interface AmountMultiplier {
3619
+ /**
3620
+ * Mapping of the value for the smart contract.
3621
+ */
3622
+ valueMapping?: string | null;
3623
+ }
3624
+
3625
+ export interface Param {
3626
+ /**
3627
+ * Condition to check for the parameter.
3628
+ */
3629
+ condition?: string | null;
3630
+
3631
+ /**
3632
+ * Name of the smart contract parameter.
3633
+ */
3634
+ name?: string | null;
3635
+
3636
+ /**
3637
+ * Value of the parameter.
3638
+ */
3639
+ value?: string | null;
3640
+ }
3641
+ }
3642
+
3643
+ export interface SnapshotProposal {
3644
+ /**
3645
+ * ID of the snapshot proposal.
3646
+ */
3647
+ id: string;
3648
+
3649
+ /**
3650
+ * Space associated with the snapshot proposal.
3651
+ */
3652
+ space: string;
3653
+ }
3654
+
3655
+ export interface StreakArray {
3656
+ /**
3657
+ * Reward amount for achieving the streak milestone.
3658
+ */
3659
+ streakAmount: number;
3660
+
3661
+ /**
3662
+ * Milestone required to achieve the streak.
3663
+ */
3664
+ streakMilestone: number;
3665
+ }
3666
+
3667
+ /**
3668
+ * Metadata for swap loyalty rules
3669
+ */
3670
+ export interface Swap {
3671
+ provider?: 'any' | 'relay' | 'lifi';
3672
+
3673
+ relayReferrerId?: string;
3674
+
3675
+ requireCrossChainSwap?: boolean;
3676
+
3677
+ swappedToChain?: 'any' | number | string;
3678
+
3679
+ swappedToTokens?: Array<Swap.SwappedToToken>;
1915
3680
 
1916
- /**
1917
- * Optional metadata for the loyalty rule
1918
- */
1919
- metadata?: Record<string, unknown>;
3681
+ tokenMode?: 'any' | 'specific';
3682
+
3683
+ trackTokenAmount?: boolean;
3684
+ }
3685
+
3686
+ export namespace Swap {
3687
+ export interface SwappedToToken {
3688
+ address: string;
3689
+
3690
+ chainId: string;
3691
+ }
3692
+ }
3693
+ }
1920
3694
  }
1921
3695
  }
1922
3696
 
@@ -1927,7 +3701,9 @@ export interface RuleDeleteResponse {
1927
3701
  }
1928
3702
 
1929
3703
  export interface RuleCompleteResponse {
1930
- message: string;
3704
+ message:
3705
+ | 'Completion request added to queue'
3706
+ | 'Link click being verified, come back later to check the status';
1931
3707
  }
1932
3708
 
1933
3709
  export interface RuleGetStatusResponse {
@@ -1938,11 +3714,119 @@ export namespace RuleGetStatusResponse {
1938
3714
  export interface Data {
1939
3715
  loyaltyRuleId: string;
1940
3716
 
1941
- status: 'pending' | 'processing' | 'completed' | 'failed';
1942
-
1943
3717
  userId: string;
1944
3718
 
3719
+ /**
3720
+ * The ID of the loyalty rule status for the Progress object
3721
+ */
3722
+ id?: string;
3723
+
3724
+ createdAt?: string;
3725
+
3726
+ fulfilledAt?: string | null;
3727
+
3728
+ /**
3729
+ * Categorized examples of messages that may be returned for a loyalty rule's
3730
+ * processing result.
3731
+ *
3732
+ * User Onboarding
3733
+ *
3734
+ * - Check In: "Streak successful"
3735
+ * - Complete Profile Details: "Profile not complete"
3736
+ *
3737
+ * Connect Accounts
3738
+ *
3739
+ * - Connect TikTok: "TikTok not connected"
3740
+ * - Connect Discord: "Discord not connected", "Discord request timeout"
3741
+ * - Connect X: "Twitter not connected", "Twitter not connected or content url is
3742
+ * required"
3743
+ * - Connect Email: "Email address not connected"
3744
+ * - Connect Telegram: "Telegram not connected", "user has not setup telegram (no
3745
+ * telegramUsername), please setup username in telegram and reconnect.",
3746
+ * "Telegram request rate-limited"
3747
+ * - Connect Steam: "Steam not connected"
3748
+ * - Connect Youtube: "Youtube not connected"
3749
+ *
3750
+ * Social Quests
3751
+ *
3752
+ * - Join Telegram Group: "Telegram Channel not joined", "Telegram Channel joined
3753
+ * successfully"
3754
+ * - Post on TikTok: "TikTok post not verified"
3755
+ * - Comment on an X Post: "Quest Completed: You have commented on the tweet",
3756
+ * "Quest Not Completed: Comment not found for the specified tweet"
3757
+ * - Repost an X Post: "Quest Completed: You have retweeted the tweet", "Quest Not
3758
+ * Completed: Retweet not found for the specified tweet", "Quest Completed: You
3759
+ * have retweeted and commented on the tweet", "Quest Not Completed: You have not
3760
+ * retweeted or commented on the tweet"
3761
+ * - Follow an X Account: "Missing required parameters: twitterUserId,
3762
+ * targetUsername", "Quest Completed: You are a follower of
3763
+ * @${targetUsername}", "Quest Not Completed: Please follow @${targetUsername}
3764
+ * and try again in few minutes"
3765
+ * - React to an X Post: "Missing required parameters: texts, twitterUserId,
3766
+ * userTweetId", "No text provided", "Quest Completed: You have posted {tweetId}
3767
+ * a tweet with the text {text}", "Quest Not Completed: Your all previous {COUNT}
3768
+ * posts are already claimed. Please post a new tweet and try again in a few
3769
+ * minutes.", "Tweet is already claimed", "Tweet does not belong to the user",
3770
+ * "Text not found in tweet", "Tweet is before the quest start time", "Tweet does
3771
+ * not have media", "Text found in tweet"
3772
+ * - Add Text to X Bio: "Missing required parameters: texts, twitterUserId", "User
3773
+ * not found", "Text found in bio", "Text not found in bio"
3774
+ * - Add Text to X Username: "Missing required parameters: texts, twitterUserId",
3775
+ * "User not found", "Text found in username", "Text not found in username"
3776
+ * - Comment on an X Post with Text: "Missing required parameters: texts,
3777
+ * twitterUserId", "Comment is already claimed", "Text found in comment", "Text
3778
+ * not found in comment", "Tweet not found or could not be retrieved"
3779
+ * - Comment on a YouTube Video: "Youtube comment added", "Youtube comment not
3780
+ * added"
3781
+ * - Subscribe to a YouTube Channel: "Youtube channel subscribed", "Quest failed,
3782
+ * please make sure you have made your subscriptions public in youtube"
3783
+ * - Get X post impressions: "You've already claimed the reward for this impression
3784
+ * range."
3785
+ * - Add an Item to Steam Wishlist: "Steam Wishlist item added", "Steam Wishlist
3786
+ * item not added"
3787
+ *
3788
+ * Complex Onchain Logic
3789
+ *
3790
+ * - Token Swap: "Swap rewards calculated successfully", "Swap rule failed"
3791
+ *
3792
+ * Other
3793
+ *
3794
+ * - Answer a Quiz: "Quiz question not configured", "No question response found",
3795
+ * "Incorrect answer", "Correct answer"
3796
+ * - Answer a Poll: "Poll question not configured", "Poll response recorded"
3797
+ * - Spend in Shopify Store: "Shopify not connected"
3798
+ * - Points Airdrop: "Seems like you're not eligible for this points airdrop."
3799
+ *
3800
+ * General
3801
+ *
3802
+ * - "Quest already completed"
3803
+ * - "Quest already completed using the same social account (${socialAccountName}),
3804
+ * with the different user."
3805
+ * - "You've already claimed the reward for this quest."
3806
+ * - "Quest not achieved, please try again."
3807
+ * - "Rule is not setup"
3808
+ * - "Request aborted due to timeout"
3809
+ * - "Google account not connected"
3810
+ * - "Claim failed: Multiplier is already active"
3811
+ */
1945
3812
  message?: string;
3813
+
3814
+ organizationId?: string;
3815
+
3816
+ /**
3817
+ * The progress of the loyalty rule from 0 to 100
3818
+ */
3819
+ progress?: number;
3820
+
3821
+ /**
3822
+ * Status of the queued job, this is only returned if the job is queued and being
3823
+ * processed, this wil be retained for 10 minutes after the job is completed
3824
+ */
3825
+ status?: 'pending' | 'processing' | 'completed' | 'failed';
3826
+
3827
+ updatedAt?: string;
3828
+
3829
+ websiteId?: string;
1946
3830
  }
1947
3831
  }
1948
3832
 
@@ -2053,7 +3937,21 @@ export interface RuleCreateParams {
2053
3937
  | 'twitter_like'
2054
3938
  | 'twitter_post_hashtag'
2055
3939
  | 'quiz'
2056
- | 'poll';
3940
+ | 'poll'
3941
+ | 'steam_wishlist'
3942
+ | 'liquidity_uniswap_v2'
3943
+ | 'liquidity_uniswap_v3'
3944
+ | 'points_airdrop'
3945
+ | 'youtube_subscribers'
3946
+ | 'youtube_comment'
3947
+ | 'shopify_spend'
3948
+ | 'swap'
3949
+ | 'tiktok_post'
3950
+ | 'post_impressions'
3951
+ | 'discord_join'
3952
+ | 'connected_youtube'
3953
+ | 'stratus_function'
3954
+ | 'connected_tiktok';
2057
3955
 
2058
3956
  /**
2059
3957
  * Unique identifier for the associated website
@@ -2065,6 +3963,11 @@ export interface RuleCreateParams {
2065
3963
  */
2066
3964
  backgroundAssetUrl?: string;
2067
3965
 
3966
+ /**
3967
+ * The type of claim for the reward
3968
+ */
3969
+ claimType?: 'manual' | 'auto' | null;
3970
+
2068
3971
  /**
2069
3972
  * Blockchain address of the associated collection
2070
3973
  */
@@ -2090,6 +3993,18 @@ export interface RuleCreateParams {
2090
3993
  */
2091
3994
  description?: string;
2092
3995
 
3996
+ duplicatedFromId?: string | null;
3997
+
3998
+ /**
3999
+ * ID of the external integration
4000
+ */
4001
+ externalIntegrationId?: string | null;
4002
+
4003
+ /**
4004
+ * Optional stratus function id for the rule
4005
+ */
4006
+ functionId?: string | null;
4007
+
2093
4008
  /**
2094
4009
  * Whether to hide this rule in the user interface
2095
4010
  */
@@ -2098,18 +4013,40 @@ export interface RuleCreateParams {
2098
4013
  /**
2099
4014
  * Interval between rule executions
2100
4015
  */
2101
- interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | null;
4016
+ interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | 'unlimited' | null;
2102
4017
 
2103
4018
  /**
2104
4019
  * Whether this rule is mandatory
2105
4020
  */
2106
4021
  isRequired?: boolean;
2107
4022
 
4023
+ /**
4024
+ * Unique identifier for the loyalty badge
4025
+ */
4026
+ loyaltyBadgeId?: string | null;
4027
+
2108
4028
  /**
2109
4029
  * Unique identifier for the loyalty rule group
2110
4030
  */
2111
4031
  loyaltyRuleGroupId?: 'no-section' | (string & {}) | null;
2112
4032
 
4033
+ /**
4034
+ * URL for uploading loyalty user allotment via CSV
4035
+ */
4036
+ loyaltyUserAllotmentCsvUrl?: string;
4037
+
4038
+ /**
4039
+ * The interval for the max amount. Available for the smart contract and external
4040
+ * rules.
4041
+ */
4042
+ maxAmountInterval?: 'daily' | 'weekly' | 'monthly' | 'lifetime' | null;
4043
+
4044
+ /**
4045
+ * The maximum amount of points a user can earn per interval. Available for the
4046
+ * smart contract and external rules.
4047
+ */
4048
+ maxAmountPerInterval?: number | null;
4049
+
2113
4050
  /**
2114
4051
  * URL of the media to be displayed
2115
4052
  */
@@ -2119,13 +4056,17 @@ export interface RuleCreateParams {
2119
4056
  * Blockchain network where the rule will apply
2120
4057
  */
2121
4058
  network?:
4059
+ | 'abstract'
4060
+ | 'abstractTestnet'
2122
4061
  | 'apechain'
2123
4062
  | 'arbitrum'
2124
4063
  | 'avalanche'
2125
4064
  | 'avalancheFuji'
2126
4065
  | 'base'
2127
4066
  | 'baseSepolia'
4067
+ | 'berachain'
2128
4068
  | 'berachainArtio'
4069
+ | 'berachainBepolia'
2129
4070
  | 'binance'
2130
4071
  | 'bscTestnet'
2131
4072
  | 'campTestnet'
@@ -2133,18 +4074,30 @@ export interface RuleCreateParams {
2133
4074
  | 'fantomTestnet'
2134
4075
  | 'flowMainnet'
2135
4076
  | 'mainnet'
4077
+ | 'nexusTestnet'
2136
4078
  | 'optimism'
2137
4079
  | 'polygon'
2138
4080
  | 'polygon_mumbai'
2139
4081
  | 'skaleNebula'
4082
+ | 'skaleEuropa'
4083
+ | 'skaleCalypso'
2140
4084
  | 'solana'
2141
4085
  | 'sophon'
4086
+ | 'sophonTestnet'
2142
4087
  | 'sui'
2143
4088
  | 'superseed'
2144
4089
  | 'superseedSepolia'
2145
4090
  | 'vanar'
2146
4091
  | 'xai'
2147
4092
  | 'zksync'
4093
+ | 'coti'
4094
+ | 'cotiTestnet'
4095
+ | 'morph'
4096
+ | 'morphTestnet'
4097
+ | 'morphHolesky'
4098
+ | 'ultra'
4099
+ | 'ultraTestnet'
4100
+ | 'nitrograph'
2148
4101
  | 'sepolia'
2149
4102
  | 'optimism_sepolia'
2150
4103
  | 'arbitrumSepolia'
@@ -2152,22 +4105,38 @@ export interface RuleCreateParams {
2152
4105
  | 'optimism_goerli'
2153
4106
  | 'arbitrumGoerli'
2154
4107
  | 'basecamp'
2155
- | 'abstract';
4108
+ | 'somnia'
4109
+ | 'flow_cadence';
2156
4110
 
2157
4111
  /**
2158
4112
  * OAuth credentials associated with the rule
2159
4113
  */
2160
4114
  oauthCredentialsId?: string | null;
2161
4115
 
4116
+ /**
4117
+ * The lifetime of the reward
4118
+ */
4119
+ rewardLifetime?: 'permanent' | 'dynamic' | null;
4120
+
2162
4121
  /**
2163
4122
  * Type of reward issued by the rule
2164
4123
  */
2165
- rewardType?: 'points' | 'multiplier';
4124
+ rewardType?: 'points' | 'multiplier' | 'badge';
4125
+
4126
+ /**
4127
+ * URL of the Shopify store
4128
+ */
4129
+ shopifyStoreUrl?: string | null;
4130
+
4131
+ /**
4132
+ * Whether to show this rule before the start time
4133
+ */
4134
+ showBeforeStart?: boolean;
2166
4135
 
2167
4136
  /**
2168
- * Identifier for associated subscriptions
4137
+ * Optional stratus subscription id for the rule
2169
4138
  */
2170
- subscriptionIdentifier?: string | null;
4139
+ subscriptionId?: string | null;
2171
4140
  }
2172
4141
 
2173
4142
  export namespace RuleCreateParams {
@@ -2175,6 +4144,11 @@ export namespace RuleCreateParams {
2175
4144
  * Additional metadata for the loyalty rule
2176
4145
  */
2177
4146
  export interface Metadata {
4147
+ /**
4148
+ * Number of tokens per batch.
4149
+ */
4150
+ batchSize?: number | null;
4151
+
2178
4152
  /**
2179
4153
  * Text displayed on the action button.
2180
4154
  */
@@ -2198,7 +4172,7 @@ export namespace RuleCreateParams {
2198
4172
  /**
2199
4173
  * Text to check in the Twitter post, username, or bio.
2200
4174
  */
2201
- checkText?: string | null;
4175
+ checkText?: string | Array<string> | null;
2202
4176
 
2203
4177
  /**
2204
4178
  * Array of collections associated with the rule.
@@ -2208,7 +4182,12 @@ export namespace RuleCreateParams {
2208
4182
  /**
2209
4183
  * Conditions for completing the profile.
2210
4184
  */
2211
- completeProfileConditions?: Record<string, boolean> | null;
4185
+ completeProfileConditions?: { [key: string]: boolean } | null;
4186
+
4187
+ /**
4188
+ * Description of the external rule condition (only for external rules)
4189
+ */
4190
+ conditionDescription?: string;
2212
4191
 
2213
4192
  /**
2214
4193
  * Object containing details for the call-to-action.
@@ -2220,6 +4199,11 @@ export namespace RuleCreateParams {
2220
4199
  */
2221
4200
  customRewardsApiKey?: string;
2222
4201
 
4202
+ /**
4203
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
4204
+ */
4205
+ directRpc?: boolean;
4206
+
2223
4207
  /**
2224
4208
  * Array of Discord servers, channels, and roles to join.
2225
4209
  */
@@ -2245,6 +4229,11 @@ export namespace RuleCreateParams {
2245
4229
  */
2246
4230
  enableVerifiedMultiplier?: boolean;
2247
4231
 
4232
+ /**
4233
+ * Type of ERC20 token for the loyalty rule.
4234
+ */
4235
+ erc20Type?: 'erc20' | 'native';
4236
+
2248
4237
  /**
2249
4238
  * Fill source of the order for the token sale
2250
4239
  */
@@ -2265,11 +4254,6 @@ export namespace RuleCreateParams {
2265
4254
  */
2266
4255
  hasNeverSold?: boolean;
2267
4256
 
2268
- /**
2269
- * Flag indicating whether the order source is included.
2270
- */
2271
- hasOrderSource?: boolean;
2272
-
2273
4257
  /**
2274
4258
  * Indicates if the full royalty has been paid for items.
2275
4259
  */
@@ -2290,11 +4274,21 @@ export namespace RuleCreateParams {
2290
4274
  */
2291
4275
  imageUrl?: string | null;
2292
4276
 
4277
+ /**
4278
+ * If enabled, the first transaction done on the platform will complete this rule
4279
+ */
4280
+ isCheckInOnEveryTxn?: boolean;
4281
+
2293
4282
  /**
2294
4283
  * Indicates if the multiplier has been applied to rewards.
2295
4284
  */
2296
4285
  isMultiplierApplied?: boolean;
2297
4286
 
4287
+ /**
4288
+ * Flag indicating if the rule is restricted to new users.
4289
+ */
4290
+ isRestrictedToNewUsers?: boolean;
4291
+
2298
4292
  /**
2299
4293
  * Flag indicating if rewards are applied retroactively.
2300
4294
  */
@@ -2310,6 +4304,11 @@ export namespace RuleCreateParams {
2310
4304
  */
2311
4305
  link?: string | null;
2312
4306
 
4307
+ /**
4308
+ * Liquidity pool details.
4309
+ */
4310
+ liquidity?: Metadata.Liquidity;
4311
+
2313
4312
  /**
2314
4313
  * Maximum quantity constraint for token holding.
2315
4314
  */
@@ -2351,14 +4350,24 @@ export namespace RuleCreateParams {
2351
4350
  onlyRewardSingleTokenOwnership?: boolean | null;
2352
4351
 
2353
4352
  /**
2354
- * Order source of the order for the token sale
4353
+ * Promotional code associated with the rule.
2355
4354
  */
2356
- orderSource?: string;
4355
+ promoCode?: string;
2357
4356
 
2358
4357
  /**
2359
- * Promotional code associated with the rule.
4358
+ * URL of the CSV file containing promo codes.
2360
4359
  */
2361
- promoCode?: string;
4360
+ promoCodeCsvUrl?: string;
4361
+
4362
+ /**
4363
+ * Numbers of the promotional code to be generated.
4364
+ */
4365
+ promoCodeLength?: number | null;
4366
+
4367
+ /**
4368
+ * Type of the promotional code.
4369
+ */
4370
+ promoCodeType?: 'code' | 'csv' | 'generate';
2362
4371
 
2363
4372
  /**
2364
4373
  * Array defining ranges and corresponding rewards.
@@ -2375,11 +4384,62 @@ export namespace RuleCreateParams {
2375
4384
  */
2376
4385
  referrerReward?: number | null;
2377
4386
 
4387
+ /**
4388
+ * Loyalty currency ID of the referrer reward.
4389
+ */
4390
+ referrerRewardLoyaltyCurrencyId?: string | null;
4391
+
4392
+ /**
4393
+ * Flag indicating if the post link is required.
4394
+ */
4395
+ requirePostLink?: boolean | null;
4396
+
4397
+ /**
4398
+ * Flag indicating if media metadata is required.
4399
+ */
4400
+ requirePostMediaLink?: boolean | null;
4401
+
4402
+ /**
4403
+ * Flag indicating if the rule can also reward badges per range.
4404
+ */
4405
+ rewardBadgePerRange?: boolean;
4406
+
4407
+ /**
4408
+ * Flag indicating if the reward is rewarded by batch.
4409
+ */
4410
+ rewardByBatch?: boolean | null;
4411
+
4412
+ /**
4413
+ * Criteria to evaluate the reward.
4414
+ */
4415
+ rewardCriteria?: 'IMPRESSIONS_COUNT' | 'ELIGIBLE_POST' | null;
4416
+
4417
+ /**
4418
+ * Flag indicating if the reward is rewarded per action.
4419
+ */
4420
+ rewardPerAction?: boolean | null;
4421
+
2378
4422
  /**
2379
4423
  * Flag indicating if rewards are given per impression.
2380
4424
  */
2381
4425
  rewardPerImpression?: boolean | null;
2382
4426
 
4427
+ /**
4428
+ * Flag indicating if the rule should reward based on value of traded tokens
4429
+ * instead of count.
4430
+ */
4431
+ rewardPerValue?: boolean;
4432
+
4433
+ /**
4434
+ * Wallet address of the user can only be used if userId is not provided
4435
+ */
4436
+ royaltyAddress?: string;
4437
+
4438
+ /**
4439
+ * Royalty percentage of the item.
4440
+ */
4441
+ royaltyPercentage?: number;
4442
+
2383
4443
  /**
2384
4444
  * Currency associated with sales.
2385
4445
  */
@@ -2419,6 +4479,7 @@ export namespace RuleCreateParams {
2419
4479
  | 'Twitch'
2420
4480
  | 'X(Twitter)'
2421
4481
  | 'YouTube'
4482
+ | 'Google'
2422
4483
  | null;
2423
4484
 
2424
4485
  /**
@@ -2431,11 +4492,21 @@ export namespace RuleCreateParams {
2431
4492
  */
2432
4493
  socialPlatformName?: string | null;
2433
4494
 
4495
+ /**
4496
+ * ID of the Steam app.
4497
+ */
4498
+ steamAppId?: string | null;
4499
+
2434
4500
  /**
2435
4501
  * Array of streak milestones and corresponding rewards.
2436
4502
  */
2437
4503
  streakArray?: Array<Metadata.StreakArray> | null;
2438
4504
 
4505
+ /**
4506
+ * Metadata for swap loyalty rules
4507
+ */
4508
+ swap?: Metadata.Swap;
4509
+
2439
4510
  /**
2440
4511
  * ID of the Telegram channel.
2441
4512
  */
@@ -2451,6 +4522,12 @@ export namespace RuleCreateParams {
2451
4522
  */
2452
4523
  trackAllContracts?: boolean | null;
2453
4524
 
4525
+ /**
4526
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
4527
+ * completed once the progress is 100%.
4528
+ */
4529
+ trackProgress?: boolean | null;
4530
+
2454
4531
  /**
2455
4532
  * URL of the associated Twitter account.
2456
4533
  */
@@ -2494,7 +4571,27 @@ export namespace RuleCreateParams {
2494
4571
  /**
2495
4572
  * Type of wallet associated with the rule.
2496
4573
  */
2497
- walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | null;
4574
+ walletType?:
4575
+ | 'evm'
4576
+ | 'solana'
4577
+ | 'imx'
4578
+ | 'sui'
4579
+ | 'ton'
4580
+ | 'cosmos'
4581
+ | 'ultra'
4582
+ | 'agw'
4583
+ | 'flow_cadence'
4584
+ | null;
4585
+
4586
+ /**
4587
+ * ID of the Youtube channel.
4588
+ */
4589
+ youtubeChannelId?: string | null;
4590
+
4591
+ /**
4592
+ * ID of the Youtube video.
4593
+ */
4594
+ youtubeVideoId?: string | null;
2498
4595
  }
2499
4596
 
2500
4597
  export namespace Metadata {
@@ -2513,13 +4610,17 @@ export namespace RuleCreateParams {
2513
4610
  * Blockchain network of the collection.
2514
4611
  */
2515
4612
  network?:
4613
+ | 'abstract'
4614
+ | 'abstractTestnet'
2516
4615
  | 'apechain'
2517
4616
  | 'arbitrum'
2518
4617
  | 'avalanche'
2519
4618
  | 'avalancheFuji'
2520
4619
  | 'base'
2521
4620
  | 'baseSepolia'
4621
+ | 'berachain'
2522
4622
  | 'berachainArtio'
4623
+ | 'berachainBepolia'
2523
4624
  | 'binance'
2524
4625
  | 'bscTestnet'
2525
4626
  | 'campTestnet'
@@ -2527,18 +4628,30 @@ export namespace RuleCreateParams {
2527
4628
  | 'fantomTestnet'
2528
4629
  | 'flowMainnet'
2529
4630
  | 'mainnet'
4631
+ | 'nexusTestnet'
2530
4632
  | 'optimism'
2531
4633
  | 'polygon'
2532
4634
  | 'polygon_mumbai'
2533
4635
  | 'skaleNebula'
4636
+ | 'skaleEuropa'
4637
+ | 'skaleCalypso'
2534
4638
  | 'solana'
2535
4639
  | 'sophon'
4640
+ | 'sophonTestnet'
2536
4641
  | 'sui'
2537
4642
  | 'superseed'
2538
4643
  | 'superseedSepolia'
2539
4644
  | 'vanar'
2540
4645
  | 'xai'
2541
4646
  | 'zksync'
4647
+ | 'coti'
4648
+ | 'cotiTestnet'
4649
+ | 'morph'
4650
+ | 'morphTestnet'
4651
+ | 'morphHolesky'
4652
+ | 'ultra'
4653
+ | 'ultraTestnet'
4654
+ | 'nitrograph'
2542
4655
  | 'sepolia'
2543
4656
  | 'optimism_sepolia'
2544
4657
  | 'arbitrumSepolia'
@@ -2546,7 +4659,8 @@ export namespace RuleCreateParams {
2546
4659
  | 'optimism_goerli'
2547
4660
  | 'arbitrumGoerli'
2548
4661
  | 'basecamp'
2549
- | 'abstract';
4662
+ | 'somnia'
4663
+ | 'flow_cadence';
2550
4664
  }
2551
4665
 
2552
4666
  /**
@@ -2623,6 +4737,108 @@ export namespace RuleCreateParams {
2623
4737
  id: string;
2624
4738
  }
2625
4739
 
4740
+ /**
4741
+ * Liquidity pool details.
4742
+ */
4743
+ export interface Liquidity {
4744
+ /**
4745
+ * Calculation type of the liquidity pool.
4746
+ */
4747
+ calculationType?: 'fixed' | 'custom';
4748
+
4749
+ /**
4750
+ * Custom function to calculate the the reward amount based on the liquidity
4751
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
4752
+ * USD.
4753
+ */
4754
+ customFunction?: string;
4755
+
4756
+ /**
4757
+ * Liquidity provided per day in USD
4758
+ */
4759
+ liquidityPerDay?: number;
4760
+
4761
+ /**
4762
+ * Blockchain network of the liquidity pool.
4763
+ */
4764
+ network?:
4765
+ | 'abstract'
4766
+ | 'abstractTestnet'
4767
+ | 'apechain'
4768
+ | 'arbitrum'
4769
+ | 'avalanche'
4770
+ | 'avalancheFuji'
4771
+ | 'base'
4772
+ | 'baseSepolia'
4773
+ | 'berachain'
4774
+ | 'berachainArtio'
4775
+ | 'berachainBepolia'
4776
+ | 'binance'
4777
+ | 'bscTestnet'
4778
+ | 'campTestnet'
4779
+ | 'fantom'
4780
+ | 'fantomTestnet'
4781
+ | 'flowMainnet'
4782
+ | 'mainnet'
4783
+ | 'nexusTestnet'
4784
+ | 'optimism'
4785
+ | 'polygon'
4786
+ | 'polygon_mumbai'
4787
+ | 'skaleNebula'
4788
+ | 'skaleEuropa'
4789
+ | 'skaleCalypso'
4790
+ | 'solana'
4791
+ | 'sophon'
4792
+ | 'sophonTestnet'
4793
+ | 'sui'
4794
+ | 'superseed'
4795
+ | 'superseedSepolia'
4796
+ | 'vanar'
4797
+ | 'xai'
4798
+ | 'zksync'
4799
+ | 'coti'
4800
+ | 'cotiTestnet'
4801
+ | 'morph'
4802
+ | 'morphTestnet'
4803
+ | 'morphHolesky'
4804
+ | 'ultra'
4805
+ | 'ultraTestnet'
4806
+ | 'nitrograph'
4807
+ | 'sepolia'
4808
+ | 'optimism_sepolia'
4809
+ | 'arbitrumSepolia'
4810
+ | 'goerli'
4811
+ | 'optimism_goerli'
4812
+ | 'arbitrumGoerli'
4813
+ | 'basecamp'
4814
+ | 'somnia'
4815
+ | 'flow_cadence';
4816
+
4817
+ /**
4818
+ * Indicates if only in-range liquidity is rewarded.
4819
+ */
4820
+ onlyRewardInRangeLiquidity?: boolean;
4821
+
4822
+ /**
4823
+ * Array of liquidity pools associated with the rule.
4824
+ */
4825
+ pools?: Array<Liquidity.Pool>;
4826
+
4827
+ /**
4828
+ * Protocol of the liquidity pool.
4829
+ */
4830
+ protocol?: string;
4831
+ }
4832
+
4833
+ export namespace Liquidity {
4834
+ export interface Pool {
4835
+ /**
4836
+ * Unique identifier of the liquidity pool.
4837
+ */
4838
+ id: string;
4839
+ }
4840
+ }
4841
+
2626
4842
  export interface Range {
2627
4843
  /**
2628
4844
  * Reward amount for this range.
@@ -2638,6 +4854,16 @@ export namespace RuleCreateParams {
2638
4854
  * Start value of the range.
2639
4855
  */
2640
4856
  startRange: number;
4857
+
4858
+ /**
4859
+ * ID of the loyalty badge for this range.
4860
+ */
4861
+ loyaltyBadgeId?: string;
4862
+
4863
+ /**
4864
+ * Amount of the loyalty multiplier for this range.
4865
+ */
4866
+ loyaltyMultiplierAmount?: number;
2641
4867
  }
2642
4868
 
2643
4869
  /**
@@ -2690,20 +4916,15 @@ export namespace RuleCreateParams {
2690
4916
  * Object containing details of the associated smart contract.
2691
4917
  */
2692
4918
  export interface SmartContract {
2693
- /**
2694
- * ABI of the smart contract.
2695
- */
2696
- abi?: string | null;
2697
-
2698
4919
  /**
2699
4920
  * Mapping of addresses for the smart contract.
2700
4921
  */
2701
4922
  addressMapping?: string | null;
2702
4923
 
2703
4924
  /**
2704
- * Array of bonus details applied to the rule.
4925
+ * Object containing details of the amount multiplier from the event.
2705
4926
  */
2706
- bonus?: Array<SmartContract.Bonus> | null;
4927
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
2707
4928
 
2708
4929
  /**
2709
4930
  * ID of the smart contract.
@@ -2715,68 +4936,31 @@ export namespace RuleCreateParams {
2715
4936
  */
2716
4937
  criteria?: 'everyEvent' | 'byParameter' | null;
2717
4938
 
2718
- /**
2719
- * Time range applied to the rule.
2720
- */
2721
- customRange?: SmartContract.CustomRange | null;
2722
-
2723
4939
  /**
2724
4940
  * Event emitted by the smart contract.
2725
4941
  */
2726
4942
  event?: string | null;
2727
4943
 
2728
- /**
2729
- * Maximum value allowed for the parameter.
2730
- */
2731
- max?: number | null;
2732
-
2733
4944
  /**
2734
4945
  * Array of parameters for the smart contract.
2735
4946
  */
2736
4947
  params?: Array<SmartContract.Param> | null;
2737
4948
 
2738
4949
  /**
2739
- * Flag indicating if a bonus is applied.
2740
- */
2741
- withBonus?: boolean | null;
2742
-
2743
- /**
2744
- * Flag indicating if a custom range is applied.
2745
- */
2746
- withCustomRange?: boolean | null;
2747
-
2748
- /**
2749
- * Flag indicating if a maximum limit is applied.
4950
+ * Type of the smart contract interaction.
2750
4951
  */
2751
- withMax?: boolean | null;
4952
+ type?: 'function' | 'event' | null;
2752
4953
  }
2753
4954
 
2754
4955
  export namespace SmartContract {
2755
- export interface Bonus {
2756
- /**
2757
- * Amount of the bonus.
2758
- */
2759
- amount?: number | null;
2760
-
2761
- /**
2762
- * Number of times the bonus is applied.
2763
- */
2764
- count?: number | null;
2765
- }
2766
-
2767
4956
  /**
2768
- * Time range applied to the rule.
4957
+ * Object containing details of the amount multiplier from the event.
2769
4958
  */
2770
- export interface CustomRange {
4959
+ export interface AmountMultiplier {
2771
4960
  /**
2772
- * End time of the custom range.
4961
+ * Mapping of the value for the smart contract.
2773
4962
  */
2774
- endsAt?: string | null;
2775
-
2776
- /**
2777
- * Start time of the custom range.
2778
- */
2779
- startsAt?: string | null;
4963
+ valueMapping?: string | null;
2780
4964
  }
2781
4965
 
2782
4966
  export interface Param {
@@ -2820,6 +5004,33 @@ export namespace RuleCreateParams {
2820
5004
  */
2821
5005
  streakMilestone: number;
2822
5006
  }
5007
+
5008
+ /**
5009
+ * Metadata for swap loyalty rules
5010
+ */
5011
+ export interface Swap {
5012
+ provider?: 'any' | 'relay' | 'lifi';
5013
+
5014
+ relayReferrerId?: string;
5015
+
5016
+ requireCrossChainSwap?: boolean;
5017
+
5018
+ swappedToChain?: 'any' | number | string;
5019
+
5020
+ swappedToTokens?: Array<Swap.SwappedToToken>;
5021
+
5022
+ tokenMode?: 'any' | 'specific';
5023
+
5024
+ trackTokenAmount?: boolean;
5025
+ }
5026
+
5027
+ export namespace Swap {
5028
+ export interface SwappedToToken {
5029
+ address: string;
5030
+
5031
+ chainId: string;
5032
+ }
5033
+ }
2823
5034
  }
2824
5035
 
2825
5036
  export interface Collection {
@@ -2832,13 +5043,17 @@ export namespace RuleCreateParams {
2832
5043
  * Blockchain network for the collection
2833
5044
  */
2834
5045
  network:
5046
+ | 'abstract'
5047
+ | 'abstractTestnet'
2835
5048
  | 'apechain'
2836
5049
  | 'arbitrum'
2837
5050
  | 'avalanche'
2838
5051
  | 'avalancheFuji'
2839
5052
  | 'base'
2840
5053
  | 'baseSepolia'
5054
+ | 'berachain'
2841
5055
  | 'berachainArtio'
5056
+ | 'berachainBepolia'
2842
5057
  | 'binance'
2843
5058
  | 'bscTestnet'
2844
5059
  | 'campTestnet'
@@ -2846,18 +5061,30 @@ export namespace RuleCreateParams {
2846
5061
  | 'fantomTestnet'
2847
5062
  | 'flowMainnet'
2848
5063
  | 'mainnet'
5064
+ | 'nexusTestnet'
2849
5065
  | 'optimism'
2850
5066
  | 'polygon'
2851
5067
  | 'polygon_mumbai'
2852
5068
  | 'skaleNebula'
5069
+ | 'skaleEuropa'
5070
+ | 'skaleCalypso'
2853
5071
  | 'solana'
2854
5072
  | 'sophon'
5073
+ | 'sophonTestnet'
2855
5074
  | 'sui'
2856
5075
  | 'superseed'
2857
5076
  | 'superseedSepolia'
2858
5077
  | 'vanar'
2859
5078
  | 'xai'
2860
5079
  | 'zksync'
5080
+ | 'coti'
5081
+ | 'cotiTestnet'
5082
+ | 'morph'
5083
+ | 'morphTestnet'
5084
+ | 'morphHolesky'
5085
+ | 'ultra'
5086
+ | 'ultraTestnet'
5087
+ | 'nitrograph'
2861
5088
  | 'sepolia'
2862
5089
  | 'optimism_sepolia'
2863
5090
  | 'arbitrumSepolia'
@@ -2865,7 +5092,13 @@ export namespace RuleCreateParams {
2865
5092
  | 'optimism_goerli'
2866
5093
  | 'arbitrumGoerli'
2867
5094
  | 'basecamp'
2868
- | 'abstract';
5095
+ | 'somnia'
5096
+ | 'flow_cadence';
5097
+
5098
+ /**
5099
+ * Symbol of the collection.
5100
+ */
5101
+ symbol?: string;
2869
5102
  }
2870
5103
  }
2871
5104
 
@@ -2885,10 +5118,15 @@ export interface RuleUpdateParams {
2885
5118
  */
2886
5119
  name: string;
2887
5120
 
5121
+ /**
5122
+ * The type of claim for the reward
5123
+ */
5124
+ claimType?: 'manual' | 'auto' | null;
5125
+
2888
5126
  /**
2889
5127
  * Blockchain address of the associated collection
2890
5128
  */
2891
- collectionAddress?: string;
5129
+ collectionAddress?: string | null;
2892
5130
 
2893
5131
  /**
2894
5132
  * List of associated collections
@@ -2920,11 +5158,21 @@ export interface RuleUpdateParams {
2920
5158
  */
2921
5159
  effectiveStartTime?: string | null;
2922
5160
 
5161
+ /**
5162
+ * ID of the external integration
5163
+ */
5164
+ externalIntegrationId?: string | null;
5165
+
2923
5166
  /**
2924
5167
  * Frequency of the rule execution
2925
5168
  */
2926
5169
  frequency?: 'none' | 'once' | 'daily' | 'weekly' | 'monthly' | 'immediately';
2927
5170
 
5171
+ /**
5172
+ * Optional stratus function id for the rule
5173
+ */
5174
+ functionId?: string | null;
5175
+
2928
5176
  /**
2929
5177
  * Whether to hide this rule in the user interface
2930
5178
  */
@@ -2933,7 +5181,7 @@ export interface RuleUpdateParams {
2933
5181
  /**
2934
5182
  * Time interval for recurring rule execution
2935
5183
  */
2936
- interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | null;
5184
+ interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | 'unlimited' | null;
2937
5185
 
2938
5186
  /**
2939
5187
  * Whether this rule is required for participation
@@ -2945,6 +5193,18 @@ export interface RuleUpdateParams {
2945
5193
  */
2946
5194
  loyaltyRuleGroupId?: (string & {}) | 'no-section' | null;
2947
5195
 
5196
+ /**
5197
+ * The interval for the max amount. Available for the smart contract and external
5198
+ * rules.
5199
+ */
5200
+ maxAmountInterval?: 'daily' | 'weekly' | 'monthly' | 'lifetime' | null;
5201
+
5202
+ /**
5203
+ * The maximum amount of points a user can earn per interval. Available for the
5204
+ * smart contract and external rules.
5205
+ */
5206
+ maxAmountPerInterval?: number | null;
5207
+
2948
5208
  /**
2949
5209
  * URL of the media to be displayed
2950
5210
  */
@@ -2959,13 +5219,17 @@ export interface RuleUpdateParams {
2959
5219
  * Blockchain network where the rule will apply
2960
5220
  */
2961
5221
  network?:
5222
+ | 'abstract'
5223
+ | 'abstractTestnet'
2962
5224
  | 'apechain'
2963
5225
  | 'arbitrum'
2964
5226
  | 'avalanche'
2965
5227
  | 'avalancheFuji'
2966
5228
  | 'base'
2967
5229
  | 'baseSepolia'
5230
+ | 'berachain'
2968
5231
  | 'berachainArtio'
5232
+ | 'berachainBepolia'
2969
5233
  | 'binance'
2970
5234
  | 'bscTestnet'
2971
5235
  | 'campTestnet'
@@ -2973,18 +5237,30 @@ export interface RuleUpdateParams {
2973
5237
  | 'fantomTestnet'
2974
5238
  | 'flowMainnet'
2975
5239
  | 'mainnet'
5240
+ | 'nexusTestnet'
2976
5241
  | 'optimism'
2977
5242
  | 'polygon'
2978
5243
  | 'polygon_mumbai'
2979
5244
  | 'skaleNebula'
5245
+ | 'skaleEuropa'
5246
+ | 'skaleCalypso'
2980
5247
  | 'solana'
2981
5248
  | 'sophon'
5249
+ | 'sophonTestnet'
2982
5250
  | 'sui'
2983
5251
  | 'superseed'
2984
5252
  | 'superseedSepolia'
2985
5253
  | 'vanar'
2986
5254
  | 'xai'
2987
5255
  | 'zksync'
5256
+ | 'coti'
5257
+ | 'cotiTestnet'
5258
+ | 'morph'
5259
+ | 'morphTestnet'
5260
+ | 'morphHolesky'
5261
+ | 'ultra'
5262
+ | 'ultraTestnet'
5263
+ | 'nitrograph'
2988
5264
  | 'sepolia'
2989
5265
  | 'optimism_sepolia'
2990
5266
  | 'arbitrumSepolia'
@@ -2992,17 +5268,33 @@ export interface RuleUpdateParams {
2992
5268
  | 'optimism_goerli'
2993
5269
  | 'arbitrumGoerli'
2994
5270
  | 'basecamp'
2995
- | 'abstract';
5271
+ | 'somnia'
5272
+ | 'flow_cadence';
2996
5273
 
2997
5274
  /**
2998
5275
  * ID for associated OAuth credentials
2999
5276
  */
3000
5277
  oauthCredentialsId?: string | null;
3001
5278
 
5279
+ /**
5280
+ * The lifetime of the reward
5281
+ */
5282
+ rewardLifetime?: 'permanent' | 'dynamic' | null;
5283
+
3002
5284
  /**
3003
5285
  * Type of reward issued by this rule
3004
5286
  */
3005
- rewardType?: 'points' | 'multiplier';
5287
+ rewardType?: 'points' | 'multiplier' | 'badge';
5288
+
5289
+ /**
5290
+ * URL of the Shopify store
5291
+ */
5292
+ shopifyStoreUrl?: string | null;
5293
+
5294
+ /**
5295
+ * Whether to show this rule before the start time
5296
+ */
5297
+ showBeforeStart?: boolean;
3006
5298
 
3007
5299
  /**
3008
5300
  * Start time for the loyalty rule
@@ -3010,9 +5302,9 @@ export interface RuleUpdateParams {
3010
5302
  startTime?: string | null;
3011
5303
 
3012
5304
  /**
3013
- * Optional subscription identifier for the rule
5305
+ * Optional stratus subscription id for the rule
3014
5306
  */
3015
- subscriptionIdentifier?: string | null;
5307
+ subscriptionId?: string | null;
3016
5308
  }
3017
5309
 
3018
5310
  export namespace RuleUpdateParams {
@@ -3026,13 +5318,17 @@ export namespace RuleUpdateParams {
3026
5318
  * Blockchain network for the collection
3027
5319
  */
3028
5320
  network:
5321
+ | 'abstract'
5322
+ | 'abstractTestnet'
3029
5323
  | 'apechain'
3030
5324
  | 'arbitrum'
3031
5325
  | 'avalanche'
3032
5326
  | 'avalancheFuji'
3033
5327
  | 'base'
3034
5328
  | 'baseSepolia'
5329
+ | 'berachain'
3035
5330
  | 'berachainArtio'
5331
+ | 'berachainBepolia'
3036
5332
  | 'binance'
3037
5333
  | 'bscTestnet'
3038
5334
  | 'campTestnet'
@@ -3040,18 +5336,30 @@ export namespace RuleUpdateParams {
3040
5336
  | 'fantomTestnet'
3041
5337
  | 'flowMainnet'
3042
5338
  | 'mainnet'
5339
+ | 'nexusTestnet'
3043
5340
  | 'optimism'
3044
5341
  | 'polygon'
3045
5342
  | 'polygon_mumbai'
3046
5343
  | 'skaleNebula'
5344
+ | 'skaleEuropa'
5345
+ | 'skaleCalypso'
3047
5346
  | 'solana'
3048
5347
  | 'sophon'
5348
+ | 'sophonTestnet'
3049
5349
  | 'sui'
3050
5350
  | 'superseed'
3051
5351
  | 'superseedSepolia'
3052
5352
  | 'vanar'
3053
5353
  | 'xai'
3054
5354
  | 'zksync'
5355
+ | 'coti'
5356
+ | 'cotiTestnet'
5357
+ | 'morph'
5358
+ | 'morphTestnet'
5359
+ | 'morphHolesky'
5360
+ | 'ultra'
5361
+ | 'ultraTestnet'
5362
+ | 'nitrograph'
3055
5363
  | 'sepolia'
3056
5364
  | 'optimism_sepolia'
3057
5365
  | 'arbitrumSepolia'
@@ -3059,13 +5367,24 @@ export namespace RuleUpdateParams {
3059
5367
  | 'optimism_goerli'
3060
5368
  | 'arbitrumGoerli'
3061
5369
  | 'basecamp'
3062
- | 'abstract';
5370
+ | 'somnia'
5371
+ | 'flow_cadence';
5372
+
5373
+ /**
5374
+ * Symbol of the collection.
5375
+ */
5376
+ symbol?: string;
3063
5377
  }
3064
5378
 
3065
5379
  /**
3066
5380
  * Additional metadata for the loyalty rule
3067
5381
  */
3068
5382
  export interface Metadata {
5383
+ /**
5384
+ * Number of tokens per batch.
5385
+ */
5386
+ batchSize?: number | null;
5387
+
3069
5388
  /**
3070
5389
  * Text displayed on the action button.
3071
5390
  */
@@ -3089,7 +5408,7 @@ export namespace RuleUpdateParams {
3089
5408
  /**
3090
5409
  * Text to check in the Twitter post, username, or bio.
3091
5410
  */
3092
- checkText?: string | null;
5411
+ checkText?: string | Array<string> | null;
3093
5412
 
3094
5413
  /**
3095
5414
  * Array of collections associated with the rule.
@@ -3099,7 +5418,12 @@ export namespace RuleUpdateParams {
3099
5418
  /**
3100
5419
  * Conditions for completing the profile.
3101
5420
  */
3102
- completeProfileConditions?: Record<string, boolean> | null;
5421
+ completeProfileConditions?: { [key: string]: boolean } | null;
5422
+
5423
+ /**
5424
+ * Description of the external rule condition (only for external rules)
5425
+ */
5426
+ conditionDescription?: string;
3103
5427
 
3104
5428
  /**
3105
5429
  * Object containing details for the call-to-action.
@@ -3111,6 +5435,11 @@ export namespace RuleUpdateParams {
3111
5435
  */
3112
5436
  customRewardsApiKey?: string;
3113
5437
 
5438
+ /**
5439
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
5440
+ */
5441
+ directRpc?: boolean;
5442
+
3114
5443
  /**
3115
5444
  * Array of Discord servers, channels, and roles to join.
3116
5445
  */
@@ -3136,6 +5465,11 @@ export namespace RuleUpdateParams {
3136
5465
  */
3137
5466
  enableVerifiedMultiplier?: boolean;
3138
5467
 
5468
+ /**
5469
+ * Type of ERC20 token for the loyalty rule.
5470
+ */
5471
+ erc20Type?: 'erc20' | 'native';
5472
+
3139
5473
  /**
3140
5474
  * Fill source of the order for the token sale
3141
5475
  */
@@ -3156,11 +5490,6 @@ export namespace RuleUpdateParams {
3156
5490
  */
3157
5491
  hasNeverSold?: boolean;
3158
5492
 
3159
- /**
3160
- * Flag indicating whether the order source is included.
3161
- */
3162
- hasOrderSource?: boolean;
3163
-
3164
5493
  /**
3165
5494
  * Indicates if the full royalty has been paid for items.
3166
5495
  */
@@ -3181,11 +5510,21 @@ export namespace RuleUpdateParams {
3181
5510
  */
3182
5511
  imageUrl?: string | null;
3183
5512
 
5513
+ /**
5514
+ * If enabled, the first transaction done on the platform will complete this rule
5515
+ */
5516
+ isCheckInOnEveryTxn?: boolean;
5517
+
3184
5518
  /**
3185
5519
  * Indicates if the multiplier has been applied to rewards.
3186
5520
  */
3187
5521
  isMultiplierApplied?: boolean;
3188
5522
 
5523
+ /**
5524
+ * Flag indicating if the rule is restricted to new users.
5525
+ */
5526
+ isRestrictedToNewUsers?: boolean;
5527
+
3189
5528
  /**
3190
5529
  * Flag indicating if rewards are applied retroactively.
3191
5530
  */
@@ -3201,6 +5540,11 @@ export namespace RuleUpdateParams {
3201
5540
  */
3202
5541
  link?: string | null;
3203
5542
 
5543
+ /**
5544
+ * Liquidity pool details.
5545
+ */
5546
+ liquidity?: Metadata.Liquidity;
5547
+
3204
5548
  /**
3205
5549
  * Maximum quantity constraint for token holding.
3206
5550
  */
@@ -3242,14 +5586,24 @@ export namespace RuleUpdateParams {
3242
5586
  onlyRewardSingleTokenOwnership?: boolean | null;
3243
5587
 
3244
5588
  /**
3245
- * Order source of the order for the token sale
5589
+ * Promotional code associated with the rule.
3246
5590
  */
3247
- orderSource?: string;
5591
+ promoCode?: string;
3248
5592
 
3249
5593
  /**
3250
- * Promotional code associated with the rule.
5594
+ * URL of the CSV file containing promo codes.
3251
5595
  */
3252
- promoCode?: string;
5596
+ promoCodeCsvUrl?: string;
5597
+
5598
+ /**
5599
+ * Numbers of the promotional code to be generated.
5600
+ */
5601
+ promoCodeLength?: number | null;
5602
+
5603
+ /**
5604
+ * Type of the promotional code.
5605
+ */
5606
+ promoCodeType?: 'code' | 'csv' | 'generate';
3253
5607
 
3254
5608
  /**
3255
5609
  * Array defining ranges and corresponding rewards.
@@ -3266,11 +5620,62 @@ export namespace RuleUpdateParams {
3266
5620
  */
3267
5621
  referrerReward?: number | null;
3268
5622
 
5623
+ /**
5624
+ * Loyalty currency ID of the referrer reward.
5625
+ */
5626
+ referrerRewardLoyaltyCurrencyId?: string | null;
5627
+
5628
+ /**
5629
+ * Flag indicating if the post link is required.
5630
+ */
5631
+ requirePostLink?: boolean | null;
5632
+
5633
+ /**
5634
+ * Flag indicating if media metadata is required.
5635
+ */
5636
+ requirePostMediaLink?: boolean | null;
5637
+
5638
+ /**
5639
+ * Flag indicating if the rule can also reward badges per range.
5640
+ */
5641
+ rewardBadgePerRange?: boolean;
5642
+
5643
+ /**
5644
+ * Flag indicating if the reward is rewarded by batch.
5645
+ */
5646
+ rewardByBatch?: boolean | null;
5647
+
5648
+ /**
5649
+ * Criteria to evaluate the reward.
5650
+ */
5651
+ rewardCriteria?: 'IMPRESSIONS_COUNT' | 'ELIGIBLE_POST' | null;
5652
+
5653
+ /**
5654
+ * Flag indicating if the reward is rewarded per action.
5655
+ */
5656
+ rewardPerAction?: boolean | null;
5657
+
3269
5658
  /**
3270
5659
  * Flag indicating if rewards are given per impression.
3271
5660
  */
3272
5661
  rewardPerImpression?: boolean | null;
3273
5662
 
5663
+ /**
5664
+ * Flag indicating if the rule should reward based on value of traded tokens
5665
+ * instead of count.
5666
+ */
5667
+ rewardPerValue?: boolean;
5668
+
5669
+ /**
5670
+ * Wallet address of the user can only be used if userId is not provided
5671
+ */
5672
+ royaltyAddress?: string;
5673
+
5674
+ /**
5675
+ * Royalty percentage of the item.
5676
+ */
5677
+ royaltyPercentage?: number;
5678
+
3274
5679
  /**
3275
5680
  * Currency associated with sales.
3276
5681
  */
@@ -3310,6 +5715,7 @@ export namespace RuleUpdateParams {
3310
5715
  | 'Twitch'
3311
5716
  | 'X(Twitter)'
3312
5717
  | 'YouTube'
5718
+ | 'Google'
3313
5719
  | null;
3314
5720
 
3315
5721
  /**
@@ -3322,11 +5728,21 @@ export namespace RuleUpdateParams {
3322
5728
  */
3323
5729
  socialPlatformName?: string | null;
3324
5730
 
5731
+ /**
5732
+ * ID of the Steam app.
5733
+ */
5734
+ steamAppId?: string | null;
5735
+
3325
5736
  /**
3326
5737
  * Array of streak milestones and corresponding rewards.
3327
5738
  */
3328
5739
  streakArray?: Array<Metadata.StreakArray> | null;
3329
5740
 
5741
+ /**
5742
+ * Metadata for swap loyalty rules
5743
+ */
5744
+ swap?: Metadata.Swap;
5745
+
3330
5746
  /**
3331
5747
  * ID of the Telegram channel.
3332
5748
  */
@@ -3342,6 +5758,12 @@ export namespace RuleUpdateParams {
3342
5758
  */
3343
5759
  trackAllContracts?: boolean | null;
3344
5760
 
5761
+ /**
5762
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
5763
+ * completed once the progress is 100%.
5764
+ */
5765
+ trackProgress?: boolean | null;
5766
+
3345
5767
  /**
3346
5768
  * URL of the associated Twitter account.
3347
5769
  */
@@ -3385,7 +5807,27 @@ export namespace RuleUpdateParams {
3385
5807
  /**
3386
5808
  * Type of wallet associated with the rule.
3387
5809
  */
3388
- walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | null;
5810
+ walletType?:
5811
+ | 'evm'
5812
+ | 'solana'
5813
+ | 'imx'
5814
+ | 'sui'
5815
+ | 'ton'
5816
+ | 'cosmos'
5817
+ | 'ultra'
5818
+ | 'agw'
5819
+ | 'flow_cadence'
5820
+ | null;
5821
+
5822
+ /**
5823
+ * ID of the Youtube channel.
5824
+ */
5825
+ youtubeChannelId?: string | null;
5826
+
5827
+ /**
5828
+ * ID of the Youtube video.
5829
+ */
5830
+ youtubeVideoId?: string | null;
3389
5831
  }
3390
5832
 
3391
5833
  export namespace Metadata {
@@ -3404,13 +5846,17 @@ export namespace RuleUpdateParams {
3404
5846
  * Blockchain network of the collection.
3405
5847
  */
3406
5848
  network?:
5849
+ | 'abstract'
5850
+ | 'abstractTestnet'
3407
5851
  | 'apechain'
3408
5852
  | 'arbitrum'
3409
5853
  | 'avalanche'
3410
5854
  | 'avalancheFuji'
3411
5855
  | 'base'
3412
5856
  | 'baseSepolia'
5857
+ | 'berachain'
3413
5858
  | 'berachainArtio'
5859
+ | 'berachainBepolia'
3414
5860
  | 'binance'
3415
5861
  | 'bscTestnet'
3416
5862
  | 'campTestnet'
@@ -3418,18 +5864,30 @@ export namespace RuleUpdateParams {
3418
5864
  | 'fantomTestnet'
3419
5865
  | 'flowMainnet'
3420
5866
  | 'mainnet'
5867
+ | 'nexusTestnet'
3421
5868
  | 'optimism'
3422
5869
  | 'polygon'
3423
5870
  | 'polygon_mumbai'
3424
5871
  | 'skaleNebula'
5872
+ | 'skaleEuropa'
5873
+ | 'skaleCalypso'
3425
5874
  | 'solana'
3426
5875
  | 'sophon'
5876
+ | 'sophonTestnet'
3427
5877
  | 'sui'
3428
5878
  | 'superseed'
3429
5879
  | 'superseedSepolia'
3430
5880
  | 'vanar'
3431
5881
  | 'xai'
3432
5882
  | 'zksync'
5883
+ | 'coti'
5884
+ | 'cotiTestnet'
5885
+ | 'morph'
5886
+ | 'morphTestnet'
5887
+ | 'morphHolesky'
5888
+ | 'ultra'
5889
+ | 'ultraTestnet'
5890
+ | 'nitrograph'
3433
5891
  | 'sepolia'
3434
5892
  | 'optimism_sepolia'
3435
5893
  | 'arbitrumSepolia'
@@ -3437,7 +5895,8 @@ export namespace RuleUpdateParams {
3437
5895
  | 'optimism_goerli'
3438
5896
  | 'arbitrumGoerli'
3439
5897
  | 'basecamp'
3440
- | 'abstract';
5898
+ | 'somnia'
5899
+ | 'flow_cadence';
3441
5900
  }
3442
5901
 
3443
5902
  /**
@@ -3514,6 +5973,108 @@ export namespace RuleUpdateParams {
3514
5973
  id: string;
3515
5974
  }
3516
5975
 
5976
+ /**
5977
+ * Liquidity pool details.
5978
+ */
5979
+ export interface Liquidity {
5980
+ /**
5981
+ * Calculation type of the liquidity pool.
5982
+ */
5983
+ calculationType?: 'fixed' | 'custom';
5984
+
5985
+ /**
5986
+ * Custom function to calculate the the reward amount based on the liquidity
5987
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
5988
+ * USD.
5989
+ */
5990
+ customFunction?: string;
5991
+
5992
+ /**
5993
+ * Liquidity provided per day in USD
5994
+ */
5995
+ liquidityPerDay?: number;
5996
+
5997
+ /**
5998
+ * Blockchain network of the liquidity pool.
5999
+ */
6000
+ network?:
6001
+ | 'abstract'
6002
+ | 'abstractTestnet'
6003
+ | 'apechain'
6004
+ | 'arbitrum'
6005
+ | 'avalanche'
6006
+ | 'avalancheFuji'
6007
+ | 'base'
6008
+ | 'baseSepolia'
6009
+ | 'berachain'
6010
+ | 'berachainArtio'
6011
+ | 'berachainBepolia'
6012
+ | 'binance'
6013
+ | 'bscTestnet'
6014
+ | 'campTestnet'
6015
+ | 'fantom'
6016
+ | 'fantomTestnet'
6017
+ | 'flowMainnet'
6018
+ | 'mainnet'
6019
+ | 'nexusTestnet'
6020
+ | 'optimism'
6021
+ | 'polygon'
6022
+ | 'polygon_mumbai'
6023
+ | 'skaleNebula'
6024
+ | 'skaleEuropa'
6025
+ | 'skaleCalypso'
6026
+ | 'solana'
6027
+ | 'sophon'
6028
+ | 'sophonTestnet'
6029
+ | 'sui'
6030
+ | 'superseed'
6031
+ | 'superseedSepolia'
6032
+ | 'vanar'
6033
+ | 'xai'
6034
+ | 'zksync'
6035
+ | 'coti'
6036
+ | 'cotiTestnet'
6037
+ | 'morph'
6038
+ | 'morphTestnet'
6039
+ | 'morphHolesky'
6040
+ | 'ultra'
6041
+ | 'ultraTestnet'
6042
+ | 'nitrograph'
6043
+ | 'sepolia'
6044
+ | 'optimism_sepolia'
6045
+ | 'arbitrumSepolia'
6046
+ | 'goerli'
6047
+ | 'optimism_goerli'
6048
+ | 'arbitrumGoerli'
6049
+ | 'basecamp'
6050
+ | 'somnia'
6051
+ | 'flow_cadence';
6052
+
6053
+ /**
6054
+ * Indicates if only in-range liquidity is rewarded.
6055
+ */
6056
+ onlyRewardInRangeLiquidity?: boolean;
6057
+
6058
+ /**
6059
+ * Array of liquidity pools associated with the rule.
6060
+ */
6061
+ pools?: Array<Liquidity.Pool>;
6062
+
6063
+ /**
6064
+ * Protocol of the liquidity pool.
6065
+ */
6066
+ protocol?: string;
6067
+ }
6068
+
6069
+ export namespace Liquidity {
6070
+ export interface Pool {
6071
+ /**
6072
+ * Unique identifier of the liquidity pool.
6073
+ */
6074
+ id: string;
6075
+ }
6076
+ }
6077
+
3517
6078
  export interface Range {
3518
6079
  /**
3519
6080
  * Reward amount for this range.
@@ -3529,6 +6090,16 @@ export namespace RuleUpdateParams {
3529
6090
  * Start value of the range.
3530
6091
  */
3531
6092
  startRange: number;
6093
+
6094
+ /**
6095
+ * ID of the loyalty badge for this range.
6096
+ */
6097
+ loyaltyBadgeId?: string;
6098
+
6099
+ /**
6100
+ * Amount of the loyalty multiplier for this range.
6101
+ */
6102
+ loyaltyMultiplierAmount?: number;
3532
6103
  }
3533
6104
 
3534
6105
  /**
@@ -3581,20 +6152,15 @@ export namespace RuleUpdateParams {
3581
6152
  * Object containing details of the associated smart contract.
3582
6153
  */
3583
6154
  export interface SmartContract {
3584
- /**
3585
- * ABI of the smart contract.
3586
- */
3587
- abi?: string | null;
3588
-
3589
6155
  /**
3590
6156
  * Mapping of addresses for the smart contract.
3591
6157
  */
3592
6158
  addressMapping?: string | null;
3593
6159
 
3594
6160
  /**
3595
- * Array of bonus details applied to the rule.
6161
+ * Object containing details of the amount multiplier from the event.
3596
6162
  */
3597
- bonus?: Array<SmartContract.Bonus> | null;
6163
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
3598
6164
 
3599
6165
  /**
3600
6166
  * ID of the smart contract.
@@ -3606,68 +6172,31 @@ export namespace RuleUpdateParams {
3606
6172
  */
3607
6173
  criteria?: 'everyEvent' | 'byParameter' | null;
3608
6174
 
3609
- /**
3610
- * Time range applied to the rule.
3611
- */
3612
- customRange?: SmartContract.CustomRange | null;
3613
-
3614
6175
  /**
3615
6176
  * Event emitted by the smart contract.
3616
6177
  */
3617
6178
  event?: string | null;
3618
6179
 
3619
- /**
3620
- * Maximum value allowed for the parameter.
3621
- */
3622
- max?: number | null;
3623
-
3624
6180
  /**
3625
6181
  * Array of parameters for the smart contract.
3626
6182
  */
3627
6183
  params?: Array<SmartContract.Param> | null;
3628
6184
 
3629
6185
  /**
3630
- * Flag indicating if a bonus is applied.
3631
- */
3632
- withBonus?: boolean | null;
3633
-
3634
- /**
3635
- * Flag indicating if a custom range is applied.
6186
+ * Type of the smart contract interaction.
3636
6187
  */
3637
- withCustomRange?: boolean | null;
3638
-
3639
- /**
3640
- * Flag indicating if a maximum limit is applied.
3641
- */
3642
- withMax?: boolean | null;
6188
+ type?: 'function' | 'event' | null;
3643
6189
  }
3644
6190
 
3645
6191
  export namespace SmartContract {
3646
- export interface Bonus {
3647
- /**
3648
- * Amount of the bonus.
3649
- */
3650
- amount?: number | null;
3651
-
3652
- /**
3653
- * Number of times the bonus is applied.
3654
- */
3655
- count?: number | null;
3656
- }
3657
-
3658
6192
  /**
3659
- * Time range applied to the rule.
6193
+ * Object containing details of the amount multiplier from the event.
3660
6194
  */
3661
- export interface CustomRange {
3662
- /**
3663
- * End time of the custom range.
3664
- */
3665
- endsAt?: string | null;
3666
-
6195
+ export interface AmountMultiplier {
3667
6196
  /**
3668
- * Start time of the custom range.
6197
+ * Mapping of the value for the smart contract.
3669
6198
  */
3670
- startsAt?: string | null;
6199
+ valueMapping?: string | null;
3671
6200
  }
3672
6201
 
3673
6202
  export interface Param {
@@ -3711,17 +6240,66 @@ export namespace RuleUpdateParams {
3711
6240
  */
3712
6241
  streakMilestone: number;
3713
6242
  }
6243
+
6244
+ /**
6245
+ * Metadata for swap loyalty rules
6246
+ */
6247
+ export interface Swap {
6248
+ provider?: 'any' | 'relay' | 'lifi';
6249
+
6250
+ relayReferrerId?: string;
6251
+
6252
+ requireCrossChainSwap?: boolean;
6253
+
6254
+ swappedToChain?: 'any' | number | string;
6255
+
6256
+ swappedToTokens?: Array<Swap.SwappedToToken>;
6257
+
6258
+ tokenMode?: 'any' | 'specific';
6259
+
6260
+ trackTokenAmount?: boolean;
6261
+ }
6262
+
6263
+ export namespace Swap {
6264
+ export interface SwappedToToken {
6265
+ address: string;
6266
+
6267
+ chainId: string;
6268
+ }
6269
+ }
3714
6270
  }
3715
6271
  }
3716
6272
 
3717
6273
  export interface RuleListParams {
6274
+ /**
6275
+ * IDs of the users to filter results by
6276
+ */
6277
+ allotedToUserId?: string | Array<string>;
6278
+
6279
+ /**
6280
+ * ID of the user group to filter results by
6281
+ */
6282
+ allotedUserGroupId?: string;
6283
+
3718
6284
  /**
3719
6285
  * Address of the collection to filter by
3720
6286
  */
3721
6287
  collectionAddress?: string;
3722
6288
 
3723
6289
  /**
3724
- * Maximum number of records to return (max 1000)
6290
+ * If true this will only return active rules, the rules for which the startTime is
6291
+ * in the past and the endTime is in the future
6292
+ */
6293
+ isActive?: 'true' | 'false';
6294
+
6295
+ /**
6296
+ * If true this will only return special rules, special rules are the rules that
6297
+ * are used for anti sybil as honey pot
6298
+ */
6299
+ isSpecial?: 'true' | 'false';
6300
+
6301
+ /**
6302
+ * Maximum number of records to return (max 100)
3725
6303
  */
3726
6304
  limit?: number;
3727
6305
 
@@ -3751,6 +6329,13 @@ export interface RuleListParams {
3751
6329
  websiteId?: string;
3752
6330
  }
3753
6331
 
6332
+ export interface RuleDeleteParams {
6333
+ /**
6334
+ * Whether to debit loyalty points
6335
+ */
6336
+ debitLoyaltyPoints?: string;
6337
+ }
6338
+
3754
6339
  export interface RuleCompleteParams {
3755
6340
  /**
3756
6341
  * Override amount for the reward (rounded to nearest whole number). This will
@@ -3759,15 +6344,25 @@ export interface RuleCompleteParams {
3759
6344
  amount?: number | null;
3760
6345
 
3761
6346
  /**
3762
- * Link to the comment made by user
6347
+ * Link to the post/comment made by user
3763
6348
  */
3764
- commentLink?: string;
6349
+ contentUrl?: string;
6350
+
6351
+ /**
6352
+ * Unique key to ensure idempotent requests.
6353
+ */
6354
+ idempotencyKey?: string;
3765
6355
 
3766
6356
  /**
3767
6357
  * ID of the choice selected by the user
3768
6358
  */
3769
6359
  loyaltyQuestionChoiceId?: string;
3770
6360
 
6361
+ /**
6362
+ * Value to compare with the range
6363
+ */
6364
+ rangeValue?: number | null;
6365
+
3771
6366
  /**
3772
6367
  * Unique identifier for the user
3773
6368
  */
@@ -3780,7 +6375,7 @@ export interface RuleCompleteParams {
3780
6375
 
3781
6376
  /**
3782
6377
  * Flag indicating if only verification is required, this will not create a
3783
- * transaction and reward the user
6378
+ * transaction and reward the user.
3784
6379
  */
3785
6380
  verifyOnly?: string;
3786
6381
 
@@ -3791,11 +6386,30 @@ export interface RuleCompleteParams {
3791
6386
  }
3792
6387
 
3793
6388
  export interface RuleGetStatusParams {
3794
- organizationId: string;
6389
+ /**
6390
+ * Number of items to return
6391
+ */
6392
+ limit?: number | null;
3795
6393
 
3796
- websiteId: string;
6394
+ /**
6395
+ * Unique identifier for the loyalty rule[s]
6396
+ */
6397
+ loyaltyRuleId?: string | Array<string>;
6398
+
6399
+ organizationId?: string;
6400
+
6401
+ /**
6402
+ * Starting after item
6403
+ */
6404
+ startingAfter?: string;
6405
+
6406
+ userGroupId?: string;
3797
6407
 
3798
6408
  userId?: string;
6409
+
6410
+ walletAddress?: string;
6411
+
6412
+ websiteId?: string;
3799
6413
  }
3800
6414
 
3801
6415
  export declare namespace Rules {
@@ -3809,6 +6423,7 @@ export declare namespace Rules {
3809
6423
  type RuleCreateParams as RuleCreateParams,
3810
6424
  type RuleUpdateParams as RuleUpdateParams,
3811
6425
  type RuleListParams as RuleListParams,
6426
+ type RuleDeleteParams as RuleDeleteParams,
3812
6427
  type RuleCompleteParams as RuleCompleteParams,
3813
6428
  type RuleGetStatusParams as RuleGetStatusParams,
3814
6429
  };