@snagsolutions/sdk 0.1.0-alpha.20 → 0.1.0-alpha.201

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 +1634 -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 +368 -0
  28. package/resources/auctions/auctions.d.ts.map +1 -0
  29. package/resources/auctions/auctions.js +72 -0
  30. package/resources/auctions/auctions.js.map +1 -0
  31. package/resources/auctions/auctions.mjs +45 -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 +126 -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 +136 -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 +666 -135
  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 +55 -4
  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 +52 -6
  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 +2646 -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 +283 -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 +1930 -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 +29 -3
  184. package/resources/referral/users.d.ts.map +1 -1
  185. package/resources/referral/users.js +12 -4
  186. package/resources/referral/users.js.map +1 -1
  187. package/resources/referral/users.mjs +12 -4
  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 +36 -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 +184 -35
  198. package/resources/users/users.d.ts.map +1 -1
  199. package/resources/users/users.js +58 -1
  200. package/resources/users/users.js.map +1 -1
  201. package/resources/users/users.mjs +58 -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 +24 -1
  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 +31 -2
  223. package/src/resource.ts +1 -1
  224. package/src/resources/assets.ts +18 -3
  225. package/src/resources/auctions/auctions.ts +561 -0
  226. package/src/resources/auctions/index.ts +19 -0
  227. package/src/resources/auctions/website-user-attributes/index.ts +18 -0
  228. package/src/resources/auctions/website-user-attributes/values.ts +170 -0
  229. package/src/resources/auctions/website-user-attributes/website-user-attributes.ts +212 -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 +12 -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 +790 -146
  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 +64 -4
  242. package/src/resources/loyalty/questions.ts +56 -6
  243. package/src/resources/loyalty/rule-edits.ts +3854 -100
  244. package/src/resources/loyalty/rule-groups.ts +500 -76
  245. package/src/resources/loyalty/rules.ts +3040 -318
  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 +689 -0
  249. package/src/resources/loyalty/transactions.ts +1 -330
  250. package/src/resources/minting.ts +25 -5
  251. package/src/resources/referral/referral.ts +13 -11
  252. package/src/resources/referral/users.ts +43 -5
  253. package/src/resources/users/index.ts +4 -0
  254. package/src/resources/users/metadatas.ts +61 -3
  255. package/src/resources/users/users.ts +249 -38
  256. package/src/resources/websites/website-collections.ts +42 -1
  257. package/src/resources/websites/website-user-roles.ts +25 -1
  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, discord_role_grant
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
  }
@@ -160,6 +238,7 @@ export interface RuleCreateResponse {
160
238
  | 'connected_discord'
161
239
  | 'connected_email'
162
240
  | 'connected_epic'
241
+ | 'connected_github'
163
242
  | 'connected_steam'
164
243
  | 'connected_telegram'
165
244
  | 'connected_twitter'
@@ -189,7 +268,24 @@ export interface RuleCreateResponse {
189
268
  | 'twitter_like'
190
269
  | 'twitter_post_hashtag'
191
270
  | 'quiz'
192
- | 'poll';
271
+ | 'poll'
272
+ | 'steam_wishlist'
273
+ | 'liquidity_uniswap_v2'
274
+ | 'liquidity_uniswap_v3'
275
+ | 'points_airdrop'
276
+ | 'youtube_subscribers'
277
+ | 'youtube_comment'
278
+ | 'shopify_spend'
279
+ | 'swap'
280
+ | 'tiktok_post'
281
+ | 'post_impressions'
282
+ | 'discord_join'
283
+ | 'connected_youtube'
284
+ | 'stratus_function'
285
+ | 'connected_tiktok'
286
+ | 'tiktok_follow'
287
+ | 'github_repo_star'
288
+ | 'discord_role_grant';
193
289
 
194
290
  /**
195
291
  * Unique identifier for the associated website
@@ -201,6 +297,11 @@ export interface RuleCreateResponse {
201
297
  */
202
298
  backgroundAssetUrl?: string;
203
299
 
300
+ /**
301
+ * The type of claim for the reward
302
+ */
303
+ claimType?: 'manual' | 'auto' | null;
304
+
204
305
  /**
205
306
  * Blockchain address of the associated collection
206
307
  */
@@ -226,6 +327,18 @@ export interface RuleCreateResponse {
226
327
  */
227
328
  description?: string;
228
329
 
330
+ duplicatedFromId?: string | null;
331
+
332
+ /**
333
+ * ID of the external integration
334
+ */
335
+ externalIntegrationId?: string | null;
336
+
337
+ /**
338
+ * Optional stratus function id for the rule
339
+ */
340
+ functionId?: string | null;
341
+
229
342
  /**
230
343
  * Whether to hide this rule in the user interface
231
344
  */
@@ -234,18 +347,40 @@ export interface RuleCreateResponse {
234
347
  /**
235
348
  * Interval between rule executions
236
349
  */
237
- interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | null;
350
+ interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | 'unlimited' | null;
238
351
 
239
352
  /**
240
353
  * Whether this rule is mandatory
241
354
  */
242
355
  isRequired?: boolean;
243
356
 
357
+ /**
358
+ * Unique identifier for the loyalty badge
359
+ */
360
+ loyaltyBadgeId?: string | null;
361
+
244
362
  /**
245
363
  * Unique identifier for the loyalty rule group
246
364
  */
247
365
  loyaltyRuleGroupId?: 'no-section' | (string & {}) | null;
248
366
 
367
+ /**
368
+ * URL for uploading loyalty user allotment via CSV
369
+ */
370
+ loyaltyUserAllotmentCsvUrl?: string;
371
+
372
+ /**
373
+ * The interval for the max amount. Available for the smart contract and external
374
+ * rules.
375
+ */
376
+ maxAmountInterval?: 'daily' | 'weekly' | 'monthly' | 'lifetime' | null;
377
+
378
+ /**
379
+ * The maximum amount of points a user can earn per interval. Available for the
380
+ * smart contract and external rules.
381
+ */
382
+ maxAmountPerInterval?: number | null;
383
+
249
384
  /**
250
385
  * URL of the media to be displayed
251
386
  */
@@ -255,13 +390,17 @@ export interface RuleCreateResponse {
255
390
  * Blockchain network where the rule will apply
256
391
  */
257
392
  network?:
393
+ | 'abstract'
394
+ | 'abstractTestnet'
258
395
  | 'apechain'
259
396
  | 'arbitrum'
260
397
  | 'avalanche'
261
398
  | 'avalancheFuji'
262
399
  | 'base'
263
400
  | 'baseSepolia'
401
+ | 'berachain'
264
402
  | 'berachainArtio'
403
+ | 'berachainBepolia'
265
404
  | 'binance'
266
405
  | 'bscTestnet'
267
406
  | 'campTestnet'
@@ -269,18 +408,30 @@ export interface RuleCreateResponse {
269
408
  | 'fantomTestnet'
270
409
  | 'flowMainnet'
271
410
  | 'mainnet'
411
+ | 'nexusTestnet'
272
412
  | 'optimism'
273
413
  | 'polygon'
274
414
  | 'polygon_mumbai'
275
415
  | 'skaleNebula'
416
+ | 'skaleEuropa'
417
+ | 'skaleCalypso'
276
418
  | 'solana'
277
419
  | 'sophon'
420
+ | 'sophonTestnet'
278
421
  | 'sui'
279
422
  | 'superseed'
280
423
  | 'superseedSepolia'
281
424
  | 'vanar'
282
425
  | 'xai'
283
426
  | 'zksync'
427
+ | 'coti'
428
+ | 'cotiTestnet'
429
+ | 'morph'
430
+ | 'morphTestnet'
431
+ | 'morphHolesky'
432
+ | 'ultra'
433
+ | 'ultraTestnet'
434
+ | 'nitrograph'
284
435
  | 'sepolia'
285
436
  | 'optimism_sepolia'
286
437
  | 'arbitrumSepolia'
@@ -288,22 +439,41 @@ export interface RuleCreateResponse {
288
439
  | 'optimism_goerli'
289
440
  | 'arbitrumGoerli'
290
441
  | 'basecamp'
291
- | 'abstract';
442
+ | 'somnia'
443
+ | 'zkverify'
444
+ | 'polkadot'
445
+ | 'kusama'
446
+ | 'flow_cadence';
292
447
 
293
448
  /**
294
449
  * OAuth credentials associated with the rule
295
450
  */
296
451
  oauthCredentialsId?: string | null;
297
452
 
453
+ /**
454
+ * The lifetime of the reward
455
+ */
456
+ rewardLifetime?: 'permanent' | 'dynamic' | null;
457
+
298
458
  /**
299
459
  * Type of reward issued by the rule
300
460
  */
301
- rewardType?: 'points' | 'multiplier';
461
+ rewardType?: 'points' | 'multiplier' | 'badge';
462
+
463
+ /**
464
+ * URL of the Shopify store
465
+ */
466
+ shopifyStoreUrl?: string | null;
467
+
468
+ /**
469
+ * Whether to show this rule before the start time
470
+ */
471
+ showBeforeStart?: boolean;
302
472
 
303
473
  /**
304
- * Identifier for associated subscriptions
474
+ * Optional stratus subscription id for the rule
305
475
  */
306
- subscriptionIdentifier?: string | null;
476
+ subscriptionId?: string | null;
307
477
  }
308
478
 
309
479
  export namespace RuleCreateResponse {
@@ -311,6 +481,11 @@ export namespace RuleCreateResponse {
311
481
  * Additional metadata for the loyalty rule
312
482
  */
313
483
  export interface Metadata {
484
+ /**
485
+ * Number of tokens per batch.
486
+ */
487
+ batchSize?: number | null;
488
+
314
489
  /**
315
490
  * Text displayed on the action button.
316
491
  */
@@ -334,7 +509,7 @@ export namespace RuleCreateResponse {
334
509
  /**
335
510
  * Text to check in the Twitter post, username, or bio.
336
511
  */
337
- checkText?: string | null;
512
+ checkText?: string | Array<string> | null;
338
513
 
339
514
  /**
340
515
  * Array of collections associated with the rule.
@@ -344,7 +519,12 @@ export namespace RuleCreateResponse {
344
519
  /**
345
520
  * Conditions for completing the profile.
346
521
  */
347
- completeProfileConditions?: Record<string, boolean> | null;
522
+ completeProfileConditions?: { [key: string]: boolean } | null;
523
+
524
+ /**
525
+ * Description of the external rule condition (only for external rules)
526
+ */
527
+ conditionDescription?: string;
348
528
 
349
529
  /**
350
530
  * Object containing details for the call-to-action.
@@ -356,6 +536,11 @@ export namespace RuleCreateResponse {
356
536
  */
357
537
  customRewardsApiKey?: string;
358
538
 
539
+ /**
540
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
541
+ */
542
+ directRpc?: boolean;
543
+
359
544
  /**
360
545
  * Array of Discord servers, channels, and roles to join.
361
546
  */
@@ -381,6 +566,11 @@ export namespace RuleCreateResponse {
381
566
  */
382
567
  enableVerifiedMultiplier?: boolean;
383
568
 
569
+ /**
570
+ * Type of ERC20 token for the loyalty rule.
571
+ */
572
+ erc20Type?: 'erc20' | 'native';
573
+
384
574
  /**
385
575
  * Fill source of the order for the token sale
386
576
  */
@@ -391,6 +581,11 @@ export namespace RuleCreateResponse {
391
581
  */
392
582
  firstReferralReward?: number | null;
393
583
 
584
+ /**
585
+ * URL of the GitHub repository to check for star.
586
+ */
587
+ githubRepoUrl?: string | null;
588
+
394
589
  /**
395
590
  * Flag indicating whether the fill source is included.
396
591
  */
@@ -401,11 +596,6 @@ export namespace RuleCreateResponse {
401
596
  */
402
597
  hasNeverSold?: boolean;
403
598
 
404
- /**
405
- * Flag indicating whether the order source is included.
406
- */
407
- hasOrderSource?: boolean;
408
-
409
599
  /**
410
600
  * Indicates if the full royalty has been paid for items.
411
601
  */
@@ -426,11 +616,21 @@ export namespace RuleCreateResponse {
426
616
  */
427
617
  imageUrl?: string | null;
428
618
 
619
+ /**
620
+ * If enabled, the first transaction done on the platform will complete this rule
621
+ */
622
+ isCheckInOnEveryTxn?: boolean;
623
+
429
624
  /**
430
625
  * Indicates if the multiplier has been applied to rewards.
431
626
  */
432
627
  isMultiplierApplied?: boolean;
433
628
 
629
+ /**
630
+ * Flag indicating if the rule is restricted to new users.
631
+ */
632
+ isRestrictedToNewUsers?: boolean;
633
+
434
634
  /**
435
635
  * Flag indicating if rewards are applied retroactively.
436
636
  */
@@ -446,6 +646,11 @@ export namespace RuleCreateResponse {
446
646
  */
447
647
  link?: string | null;
448
648
 
649
+ /**
650
+ * Liquidity pool details.
651
+ */
652
+ liquidity?: Metadata.Liquidity;
653
+
449
654
  /**
450
655
  * Maximum quantity constraint for token holding.
451
656
  */
@@ -487,14 +692,24 @@ export namespace RuleCreateResponse {
487
692
  onlyRewardSingleTokenOwnership?: boolean | null;
488
693
 
489
694
  /**
490
- * Order source of the order for the token sale
695
+ * Promotional code associated with the rule.
491
696
  */
492
- orderSource?: string;
697
+ promoCode?: string;
493
698
 
494
699
  /**
495
- * Promotional code associated with the rule.
700
+ * URL of the CSV file containing promo codes.
496
701
  */
497
- promoCode?: string;
702
+ promoCodeCsvUrl?: string;
703
+
704
+ /**
705
+ * Numbers of the promotional code to be generated.
706
+ */
707
+ promoCodeLength?: number | null;
708
+
709
+ /**
710
+ * Type of the promotional code.
711
+ */
712
+ promoCodeType?: 'code' | 'csv' | 'generate';
498
713
 
499
714
  /**
500
715
  * Array defining ranges and corresponding rewards.
@@ -511,11 +726,62 @@ export namespace RuleCreateResponse {
511
726
  */
512
727
  referrerReward?: number | null;
513
728
 
729
+ /**
730
+ * Loyalty currency ID of the referrer reward.
731
+ */
732
+ referrerRewardLoyaltyCurrencyId?: string | null;
733
+
734
+ /**
735
+ * Flag indicating if the post link is required.
736
+ */
737
+ requirePostLink?: boolean | null;
738
+
739
+ /**
740
+ * Flag indicating if media metadata is required.
741
+ */
742
+ requirePostMediaLink?: boolean | null;
743
+
744
+ /**
745
+ * Flag indicating if the rule can also reward badges per range.
746
+ */
747
+ rewardBadgePerRange?: boolean;
748
+
749
+ /**
750
+ * Flag indicating if the reward is rewarded by batch.
751
+ */
752
+ rewardByBatch?: boolean | null;
753
+
754
+ /**
755
+ * Criteria to evaluate the reward.
756
+ */
757
+ rewardCriteria?: 'IMPRESSIONS_COUNT' | 'ELIGIBLE_POST' | null;
758
+
759
+ /**
760
+ * Flag indicating if the reward is rewarded per action.
761
+ */
762
+ rewardPerAction?: boolean | null;
763
+
514
764
  /**
515
765
  * Flag indicating if rewards are given per impression.
516
766
  */
517
767
  rewardPerImpression?: boolean | null;
518
768
 
769
+ /**
770
+ * Flag indicating if the rule should reward based on value of traded tokens
771
+ * instead of count.
772
+ */
773
+ rewardPerValue?: boolean;
774
+
775
+ /**
776
+ * Wallet address of the user can only be used if userId is not provided
777
+ */
778
+ royaltyAddress?: string;
779
+
780
+ /**
781
+ * Royalty percentage of the item.
782
+ */
783
+ royaltyPercentage?: number;
784
+
519
785
  /**
520
786
  * Currency associated with sales.
521
787
  */
@@ -555,6 +821,8 @@ export namespace RuleCreateResponse {
555
821
  | 'Twitch'
556
822
  | 'X(Twitter)'
557
823
  | 'YouTube'
824
+ | 'Google'
825
+ | 'GitHub'
558
826
  | null;
559
827
 
560
828
  /**
@@ -567,11 +835,21 @@ export namespace RuleCreateResponse {
567
835
  */
568
836
  socialPlatformName?: string | null;
569
837
 
838
+ /**
839
+ * ID of the Steam app.
840
+ */
841
+ steamAppId?: string | null;
842
+
570
843
  /**
571
844
  * Array of streak milestones and corresponding rewards.
572
845
  */
573
846
  streakArray?: Array<Metadata.StreakArray> | null;
574
847
 
848
+ /**
849
+ * Metadata for swap loyalty rules
850
+ */
851
+ swap?: Metadata.Swap;
852
+
575
853
  /**
576
854
  * ID of the Telegram channel.
577
855
  */
@@ -587,6 +865,12 @@ export namespace RuleCreateResponse {
587
865
  */
588
866
  trackAllContracts?: boolean | null;
589
867
 
868
+ /**
869
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
870
+ * completed once the progress is 100%.
871
+ */
872
+ trackProgress?: boolean | null;
873
+
590
874
  /**
591
875
  * URL of the associated Twitter account.
592
876
  */
@@ -630,7 +914,28 @@ export namespace RuleCreateResponse {
630
914
  /**
631
915
  * Type of wallet associated with the rule.
632
916
  */
633
- walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | null;
917
+ walletType?:
918
+ | 'evm'
919
+ | 'solana'
920
+ | 'imx'
921
+ | 'sui'
922
+ | 'ton'
923
+ | 'cosmos'
924
+ | 'ultra'
925
+ | 'agw'
926
+ | 'flow_cadence'
927
+ | 'substrate'
928
+ | null;
929
+
930
+ /**
931
+ * ID of the Youtube channel.
932
+ */
933
+ youtubeChannelId?: string | null;
934
+
935
+ /**
936
+ * ID of the Youtube video.
937
+ */
938
+ youtubeVideoId?: string | null;
634
939
  }
635
940
 
636
941
  export namespace Metadata {
@@ -649,13 +954,17 @@ export namespace RuleCreateResponse {
649
954
  * Blockchain network of the collection.
650
955
  */
651
956
  network?:
957
+ | 'abstract'
958
+ | 'abstractTestnet'
652
959
  | 'apechain'
653
960
  | 'arbitrum'
654
961
  | 'avalanche'
655
962
  | 'avalancheFuji'
656
963
  | 'base'
657
964
  | 'baseSepolia'
965
+ | 'berachain'
658
966
  | 'berachainArtio'
967
+ | 'berachainBepolia'
659
968
  | 'binance'
660
969
  | 'bscTestnet'
661
970
  | 'campTestnet'
@@ -663,18 +972,30 @@ export namespace RuleCreateResponse {
663
972
  | 'fantomTestnet'
664
973
  | 'flowMainnet'
665
974
  | 'mainnet'
975
+ | 'nexusTestnet'
666
976
  | 'optimism'
667
977
  | 'polygon'
668
978
  | 'polygon_mumbai'
669
979
  | 'skaleNebula'
980
+ | 'skaleEuropa'
981
+ | 'skaleCalypso'
670
982
  | 'solana'
671
983
  | 'sophon'
984
+ | 'sophonTestnet'
672
985
  | 'sui'
673
986
  | 'superseed'
674
987
  | 'superseedSepolia'
675
988
  | 'vanar'
676
989
  | 'xai'
677
990
  | 'zksync'
991
+ | 'coti'
992
+ | 'cotiTestnet'
993
+ | 'morph'
994
+ | 'morphTestnet'
995
+ | 'morphHolesky'
996
+ | 'ultra'
997
+ | 'ultraTestnet'
998
+ | 'nitrograph'
678
999
  | 'sepolia'
679
1000
  | 'optimism_sepolia'
680
1001
  | 'arbitrumSepolia'
@@ -682,7 +1003,11 @@ export namespace RuleCreateResponse {
682
1003
  | 'optimism_goerli'
683
1004
  | 'arbitrumGoerli'
684
1005
  | 'basecamp'
685
- | 'abstract';
1006
+ | 'somnia'
1007
+ | 'zkverify'
1008
+ | 'polkadot'
1009
+ | 'kusama'
1010
+ | 'flow_cadence';
686
1011
  }
687
1012
 
688
1013
  /**
@@ -759,6 +1084,111 @@ export namespace RuleCreateResponse {
759
1084
  id: string;
760
1085
  }
761
1086
 
1087
+ /**
1088
+ * Liquidity pool details.
1089
+ */
1090
+ export interface Liquidity {
1091
+ /**
1092
+ * Calculation type of the liquidity pool.
1093
+ */
1094
+ calculationType?: 'fixed' | 'custom';
1095
+
1096
+ /**
1097
+ * Custom function to calculate the the reward amount based on the liquidity
1098
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
1099
+ * USD.
1100
+ */
1101
+ customFunction?: string;
1102
+
1103
+ /**
1104
+ * Liquidity provided per day in USD
1105
+ */
1106
+ liquidityPerDay?: number;
1107
+
1108
+ /**
1109
+ * Blockchain network of the liquidity pool.
1110
+ */
1111
+ network?:
1112
+ | 'abstract'
1113
+ | 'abstractTestnet'
1114
+ | 'apechain'
1115
+ | 'arbitrum'
1116
+ | 'avalanche'
1117
+ | 'avalancheFuji'
1118
+ | 'base'
1119
+ | 'baseSepolia'
1120
+ | 'berachain'
1121
+ | 'berachainArtio'
1122
+ | 'berachainBepolia'
1123
+ | 'binance'
1124
+ | 'bscTestnet'
1125
+ | 'campTestnet'
1126
+ | 'fantom'
1127
+ | 'fantomTestnet'
1128
+ | 'flowMainnet'
1129
+ | 'mainnet'
1130
+ | 'nexusTestnet'
1131
+ | 'optimism'
1132
+ | 'polygon'
1133
+ | 'polygon_mumbai'
1134
+ | 'skaleNebula'
1135
+ | 'skaleEuropa'
1136
+ | 'skaleCalypso'
1137
+ | 'solana'
1138
+ | 'sophon'
1139
+ | 'sophonTestnet'
1140
+ | 'sui'
1141
+ | 'superseed'
1142
+ | 'superseedSepolia'
1143
+ | 'vanar'
1144
+ | 'xai'
1145
+ | 'zksync'
1146
+ | 'coti'
1147
+ | 'cotiTestnet'
1148
+ | 'morph'
1149
+ | 'morphTestnet'
1150
+ | 'morphHolesky'
1151
+ | 'ultra'
1152
+ | 'ultraTestnet'
1153
+ | 'nitrograph'
1154
+ | 'sepolia'
1155
+ | 'optimism_sepolia'
1156
+ | 'arbitrumSepolia'
1157
+ | 'goerli'
1158
+ | 'optimism_goerli'
1159
+ | 'arbitrumGoerli'
1160
+ | 'basecamp'
1161
+ | 'somnia'
1162
+ | 'zkverify'
1163
+ | 'polkadot'
1164
+ | 'kusama'
1165
+ | 'flow_cadence';
1166
+
1167
+ /**
1168
+ * Indicates if only in-range liquidity is rewarded.
1169
+ */
1170
+ onlyRewardInRangeLiquidity?: boolean;
1171
+
1172
+ /**
1173
+ * Array of liquidity pools associated with the rule.
1174
+ */
1175
+ pools?: Array<Liquidity.Pool>;
1176
+
1177
+ /**
1178
+ * Protocol of the liquidity pool.
1179
+ */
1180
+ protocol?: string;
1181
+ }
1182
+
1183
+ export namespace Liquidity {
1184
+ export interface Pool {
1185
+ /**
1186
+ * Unique identifier of the liquidity pool.
1187
+ */
1188
+ id: string;
1189
+ }
1190
+ }
1191
+
762
1192
  export interface Range {
763
1193
  /**
764
1194
  * Reward amount for this range.
@@ -774,6 +1204,16 @@ export namespace RuleCreateResponse {
774
1204
  * Start value of the range.
775
1205
  */
776
1206
  startRange: number;
1207
+
1208
+ /**
1209
+ * ID of the loyalty badge for this range.
1210
+ */
1211
+ loyaltyBadgeId?: string;
1212
+
1213
+ /**
1214
+ * Amount of the loyalty multiplier for this range.
1215
+ */
1216
+ loyaltyMultiplierAmount?: number;
777
1217
  }
778
1218
 
779
1219
  /**
@@ -826,20 +1266,15 @@ export namespace RuleCreateResponse {
826
1266
  * Object containing details of the associated smart contract.
827
1267
  */
828
1268
  export interface SmartContract {
829
- /**
830
- * ABI of the smart contract.
831
- */
832
- abi?: string | null;
833
-
834
1269
  /**
835
1270
  * Mapping of addresses for the smart contract.
836
1271
  */
837
1272
  addressMapping?: string | null;
838
1273
 
839
1274
  /**
840
- * Array of bonus details applied to the rule.
1275
+ * Object containing details of the amount multiplier from the event.
841
1276
  */
842
- bonus?: Array<SmartContract.Bonus> | null;
1277
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
843
1278
 
844
1279
  /**
845
1280
  * ID of the smart contract.
@@ -851,68 +1286,31 @@ export namespace RuleCreateResponse {
851
1286
  */
852
1287
  criteria?: 'everyEvent' | 'byParameter' | null;
853
1288
 
854
- /**
855
- * Time range applied to the rule.
856
- */
857
- customRange?: SmartContract.CustomRange | null;
858
-
859
1289
  /**
860
1290
  * Event emitted by the smart contract.
861
1291
  */
862
1292
  event?: string | null;
863
1293
 
864
- /**
865
- * Maximum value allowed for the parameter.
866
- */
867
- max?: number | null;
868
-
869
1294
  /**
870
1295
  * Array of parameters for the smart contract.
871
1296
  */
872
1297
  params?: Array<SmartContract.Param> | null;
873
1298
 
874
1299
  /**
875
- * Flag indicating if a bonus is applied.
876
- */
877
- withBonus?: boolean | null;
878
-
879
- /**
880
- * Flag indicating if a custom range is applied.
881
- */
882
- withCustomRange?: boolean | null;
883
-
884
- /**
885
- * Flag indicating if a maximum limit is applied.
1300
+ * Type of the smart contract interaction.
886
1301
  */
887
- withMax?: boolean | null;
1302
+ type?: 'function' | 'event' | null;
888
1303
  }
889
1304
 
890
1305
  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
1306
  /**
904
- * Time range applied to the rule.
1307
+ * Object containing details of the amount multiplier from the event.
905
1308
  */
906
- export interface CustomRange {
907
- /**
908
- * End time of the custom range.
909
- */
910
- endsAt?: string | null;
911
-
1309
+ export interface AmountMultiplier {
912
1310
  /**
913
- * Start time of the custom range.
1311
+ * Mapping of the value for the smart contract.
914
1312
  */
915
- startsAt?: string | null;
1313
+ valueMapping?: string | null;
916
1314
  }
917
1315
 
918
1316
  export interface Param {
@@ -956,6 +1354,33 @@ export namespace RuleCreateResponse {
956
1354
  */
957
1355
  streakMilestone: number;
958
1356
  }
1357
+
1358
+ /**
1359
+ * Metadata for swap loyalty rules
1360
+ */
1361
+ export interface Swap {
1362
+ provider?: 'any' | 'relay' | 'lifi';
1363
+
1364
+ relayReferrerId?: string;
1365
+
1366
+ requireCrossChainSwap?: boolean;
1367
+
1368
+ swappedToChain?: 'any' | number | string;
1369
+
1370
+ swappedToTokens?: Array<Swap.SwappedToToken>;
1371
+
1372
+ tokenMode?: 'any' | 'specific';
1373
+
1374
+ trackTokenAmount?: boolean;
1375
+ }
1376
+
1377
+ export namespace Swap {
1378
+ export interface SwappedToToken {
1379
+ address: string;
1380
+
1381
+ chainId: string;
1382
+ }
1383
+ }
959
1384
  }
960
1385
 
961
1386
  export interface Collection {
@@ -968,13 +1393,17 @@ export namespace RuleCreateResponse {
968
1393
  * Blockchain network for the collection
969
1394
  */
970
1395
  network:
1396
+ | 'abstract'
1397
+ | 'abstractTestnet'
971
1398
  | 'apechain'
972
1399
  | 'arbitrum'
973
1400
  | 'avalanche'
974
1401
  | 'avalancheFuji'
975
1402
  | 'base'
976
1403
  | 'baseSepolia'
1404
+ | 'berachain'
977
1405
  | 'berachainArtio'
1406
+ | 'berachainBepolia'
978
1407
  | 'binance'
979
1408
  | 'bscTestnet'
980
1409
  | 'campTestnet'
@@ -982,18 +1411,30 @@ export namespace RuleCreateResponse {
982
1411
  | 'fantomTestnet'
983
1412
  | 'flowMainnet'
984
1413
  | 'mainnet'
1414
+ | 'nexusTestnet'
985
1415
  | 'optimism'
986
1416
  | 'polygon'
987
1417
  | 'polygon_mumbai'
988
1418
  | 'skaleNebula'
1419
+ | 'skaleEuropa'
1420
+ | 'skaleCalypso'
989
1421
  | 'solana'
990
1422
  | 'sophon'
1423
+ | 'sophonTestnet'
991
1424
  | 'sui'
992
1425
  | 'superseed'
993
1426
  | 'superseedSepolia'
994
1427
  | 'vanar'
995
1428
  | 'xai'
996
1429
  | 'zksync'
1430
+ | 'coti'
1431
+ | 'cotiTestnet'
1432
+ | 'morph'
1433
+ | 'morphTestnet'
1434
+ | 'morphHolesky'
1435
+ | 'ultra'
1436
+ | 'ultraTestnet'
1437
+ | 'nitrograph'
997
1438
  | 'sepolia'
998
1439
  | 'optimism_sepolia'
999
1440
  | 'arbitrumSepolia'
@@ -1001,7 +1442,16 @@ export namespace RuleCreateResponse {
1001
1442
  | 'optimism_goerli'
1002
1443
  | 'arbitrumGoerli'
1003
1444
  | 'basecamp'
1004
- | 'abstract';
1445
+ | 'somnia'
1446
+ | 'zkverify'
1447
+ | 'polkadot'
1448
+ | 'kusama'
1449
+ | 'flow_cadence';
1450
+
1451
+ /**
1452
+ * Symbol of the collection.
1453
+ */
1454
+ symbol?: string;
1005
1455
  }
1006
1456
  }
1007
1457
 
@@ -1023,10 +1473,15 @@ export interface RuleUpdateResponse {
1023
1473
  */
1024
1474
  name: string;
1025
1475
 
1476
+ /**
1477
+ * The type of claim for the reward
1478
+ */
1479
+ claimType?: 'manual' | 'auto' | null;
1480
+
1026
1481
  /**
1027
1482
  * Blockchain address of the associated collection
1028
1483
  */
1029
- collectionAddress?: string;
1484
+ collectionAddress?: string | null;
1030
1485
 
1031
1486
  /**
1032
1487
  * List of associated collections
@@ -1058,11 +1513,21 @@ export interface RuleUpdateResponse {
1058
1513
  */
1059
1514
  effectiveStartTime?: string | null;
1060
1515
 
1516
+ /**
1517
+ * ID of the external integration
1518
+ */
1519
+ externalIntegrationId?: string | null;
1520
+
1061
1521
  /**
1062
1522
  * Frequency of the rule execution
1063
1523
  */
1064
1524
  frequency?: 'none' | 'once' | 'daily' | 'weekly' | 'monthly' | 'immediately';
1065
1525
 
1526
+ /**
1527
+ * Optional stratus function id for the rule
1528
+ */
1529
+ functionId?: string | null;
1530
+
1066
1531
  /**
1067
1532
  * Whether to hide this rule in the user interface
1068
1533
  */
@@ -1071,7 +1536,7 @@ export interface RuleUpdateResponse {
1071
1536
  /**
1072
1537
  * Time interval for recurring rule execution
1073
1538
  */
1074
- interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | null;
1539
+ interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | 'unlimited' | null;
1075
1540
 
1076
1541
  /**
1077
1542
  * Whether this rule is required for participation
@@ -1083,6 +1548,18 @@ export interface RuleUpdateResponse {
1083
1548
  */
1084
1549
  loyaltyRuleGroupId?: (string & {}) | 'no-section' | null;
1085
1550
 
1551
+ /**
1552
+ * The interval for the max amount. Available for the smart contract and external
1553
+ * rules.
1554
+ */
1555
+ maxAmountInterval?: 'daily' | 'weekly' | 'monthly' | 'lifetime' | null;
1556
+
1557
+ /**
1558
+ * The maximum amount of points a user can earn per interval. Available for the
1559
+ * smart contract and external rules.
1560
+ */
1561
+ maxAmountPerInterval?: number | null;
1562
+
1086
1563
  /**
1087
1564
  * URL of the media to be displayed
1088
1565
  */
@@ -1097,13 +1574,17 @@ export interface RuleUpdateResponse {
1097
1574
  * Blockchain network where the rule will apply
1098
1575
  */
1099
1576
  network?:
1577
+ | 'abstract'
1578
+ | 'abstractTestnet'
1100
1579
  | 'apechain'
1101
1580
  | 'arbitrum'
1102
1581
  | 'avalanche'
1103
1582
  | 'avalancheFuji'
1104
1583
  | 'base'
1105
1584
  | 'baseSepolia'
1585
+ | 'berachain'
1106
1586
  | 'berachainArtio'
1587
+ | 'berachainBepolia'
1107
1588
  | 'binance'
1108
1589
  | 'bscTestnet'
1109
1590
  | 'campTestnet'
@@ -1111,18 +1592,30 @@ export interface RuleUpdateResponse {
1111
1592
  | 'fantomTestnet'
1112
1593
  | 'flowMainnet'
1113
1594
  | 'mainnet'
1595
+ | 'nexusTestnet'
1114
1596
  | 'optimism'
1115
1597
  | 'polygon'
1116
1598
  | 'polygon_mumbai'
1117
1599
  | 'skaleNebula'
1600
+ | 'skaleEuropa'
1601
+ | 'skaleCalypso'
1118
1602
  | 'solana'
1119
1603
  | 'sophon'
1604
+ | 'sophonTestnet'
1120
1605
  | 'sui'
1121
1606
  | 'superseed'
1122
1607
  | 'superseedSepolia'
1123
1608
  | 'vanar'
1124
1609
  | 'xai'
1125
1610
  | 'zksync'
1611
+ | 'coti'
1612
+ | 'cotiTestnet'
1613
+ | 'morph'
1614
+ | 'morphTestnet'
1615
+ | 'morphHolesky'
1616
+ | 'ultra'
1617
+ | 'ultraTestnet'
1618
+ | 'nitrograph'
1126
1619
  | 'sepolia'
1127
1620
  | 'optimism_sepolia'
1128
1621
  | 'arbitrumSepolia'
@@ -1130,7 +1623,11 @@ export interface RuleUpdateResponse {
1130
1623
  | 'optimism_goerli'
1131
1624
  | 'arbitrumGoerli'
1132
1625
  | 'basecamp'
1133
- | 'abstract';
1626
+ | 'somnia'
1627
+ | 'zkverify'
1628
+ | 'polkadot'
1629
+ | 'kusama'
1630
+ | 'flow_cadence';
1134
1631
 
1135
1632
  /**
1136
1633
  * ID for associated OAuth credentials
@@ -1138,19 +1635,34 @@ export interface RuleUpdateResponse {
1138
1635
  oauthCredentialsId?: string | null;
1139
1636
 
1140
1637
  /**
1141
- * Type of reward issued by this rule
1638
+ * The lifetime of the reward
1142
1639
  */
1143
- rewardType?: 'points' | 'multiplier';
1640
+ rewardLifetime?: 'permanent' | 'dynamic' | null;
1144
1641
 
1145
1642
  /**
1146
- * Start time for the loyalty rule
1643
+ * Type of reward issued by this rule
1644
+ */
1645
+ rewardType?: 'points' | 'multiplier' | 'badge';
1646
+
1647
+ /**
1648
+ * URL of the Shopify store
1649
+ */
1650
+ shopifyStoreUrl?: string | null;
1651
+
1652
+ /**
1653
+ * Whether to show this rule before the start time
1654
+ */
1655
+ showBeforeStart?: boolean;
1656
+
1657
+ /**
1658
+ * Start time for the loyalty rule
1147
1659
  */
1148
1660
  startTime?: string | null;
1149
1661
 
1150
1662
  /**
1151
- * Optional subscription identifier for the rule
1663
+ * Optional stratus subscription id for the rule
1152
1664
  */
1153
- subscriptionIdentifier?: string | null;
1665
+ subscriptionId?: string | null;
1154
1666
  }
1155
1667
 
1156
1668
  export namespace RuleUpdateResponse {
@@ -1164,13 +1676,17 @@ export namespace RuleUpdateResponse {
1164
1676
  * Blockchain network for the collection
1165
1677
  */
1166
1678
  network:
1679
+ | 'abstract'
1680
+ | 'abstractTestnet'
1167
1681
  | 'apechain'
1168
1682
  | 'arbitrum'
1169
1683
  | 'avalanche'
1170
1684
  | 'avalancheFuji'
1171
1685
  | 'base'
1172
1686
  | 'baseSepolia'
1687
+ | 'berachain'
1173
1688
  | 'berachainArtio'
1689
+ | 'berachainBepolia'
1174
1690
  | 'binance'
1175
1691
  | 'bscTestnet'
1176
1692
  | 'campTestnet'
@@ -1178,18 +1694,30 @@ export namespace RuleUpdateResponse {
1178
1694
  | 'fantomTestnet'
1179
1695
  | 'flowMainnet'
1180
1696
  | 'mainnet'
1697
+ | 'nexusTestnet'
1181
1698
  | 'optimism'
1182
1699
  | 'polygon'
1183
1700
  | 'polygon_mumbai'
1184
1701
  | 'skaleNebula'
1702
+ | 'skaleEuropa'
1703
+ | 'skaleCalypso'
1185
1704
  | 'solana'
1186
1705
  | 'sophon'
1706
+ | 'sophonTestnet'
1187
1707
  | 'sui'
1188
1708
  | 'superseed'
1189
1709
  | 'superseedSepolia'
1190
1710
  | 'vanar'
1191
1711
  | 'xai'
1192
1712
  | 'zksync'
1713
+ | 'coti'
1714
+ | 'cotiTestnet'
1715
+ | 'morph'
1716
+ | 'morphTestnet'
1717
+ | 'morphHolesky'
1718
+ | 'ultra'
1719
+ | 'ultraTestnet'
1720
+ | 'nitrograph'
1193
1721
  | 'sepolia'
1194
1722
  | 'optimism_sepolia'
1195
1723
  | 'arbitrumSepolia'
@@ -1197,13 +1725,27 @@ export namespace RuleUpdateResponse {
1197
1725
  | 'optimism_goerli'
1198
1726
  | 'arbitrumGoerli'
1199
1727
  | 'basecamp'
1200
- | 'abstract';
1728
+ | 'somnia'
1729
+ | 'zkverify'
1730
+ | 'polkadot'
1731
+ | 'kusama'
1732
+ | 'flow_cadence';
1733
+
1734
+ /**
1735
+ * Symbol of the collection.
1736
+ */
1737
+ symbol?: string;
1201
1738
  }
1202
1739
 
1203
1740
  /**
1204
1741
  * Additional metadata for the loyalty rule
1205
1742
  */
1206
1743
  export interface Metadata {
1744
+ /**
1745
+ * Number of tokens per batch.
1746
+ */
1747
+ batchSize?: number | null;
1748
+
1207
1749
  /**
1208
1750
  * Text displayed on the action button.
1209
1751
  */
@@ -1227,7 +1769,7 @@ export namespace RuleUpdateResponse {
1227
1769
  /**
1228
1770
  * Text to check in the Twitter post, username, or bio.
1229
1771
  */
1230
- checkText?: string | null;
1772
+ checkText?: string | Array<string> | null;
1231
1773
 
1232
1774
  /**
1233
1775
  * Array of collections associated with the rule.
@@ -1237,7 +1779,12 @@ export namespace RuleUpdateResponse {
1237
1779
  /**
1238
1780
  * Conditions for completing the profile.
1239
1781
  */
1240
- completeProfileConditions?: Record<string, boolean> | null;
1782
+ completeProfileConditions?: { [key: string]: boolean } | null;
1783
+
1784
+ /**
1785
+ * Description of the external rule condition (only for external rules)
1786
+ */
1787
+ conditionDescription?: string;
1241
1788
 
1242
1789
  /**
1243
1790
  * Object containing details for the call-to-action.
@@ -1249,6 +1796,11 @@ export namespace RuleUpdateResponse {
1249
1796
  */
1250
1797
  customRewardsApiKey?: string;
1251
1798
 
1799
+ /**
1800
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
1801
+ */
1802
+ directRpc?: boolean;
1803
+
1252
1804
  /**
1253
1805
  * Array of Discord servers, channels, and roles to join.
1254
1806
  */
@@ -1274,6 +1826,11 @@ export namespace RuleUpdateResponse {
1274
1826
  */
1275
1827
  enableVerifiedMultiplier?: boolean;
1276
1828
 
1829
+ /**
1830
+ * Type of ERC20 token for the loyalty rule.
1831
+ */
1832
+ erc20Type?: 'erc20' | 'native';
1833
+
1277
1834
  /**
1278
1835
  * Fill source of the order for the token sale
1279
1836
  */
@@ -1284,6 +1841,11 @@ export namespace RuleUpdateResponse {
1284
1841
  */
1285
1842
  firstReferralReward?: number | null;
1286
1843
 
1844
+ /**
1845
+ * URL of the GitHub repository to check for star.
1846
+ */
1847
+ githubRepoUrl?: string | null;
1848
+
1287
1849
  /**
1288
1850
  * Flag indicating whether the fill source is included.
1289
1851
  */
@@ -1294,11 +1856,6 @@ export namespace RuleUpdateResponse {
1294
1856
  */
1295
1857
  hasNeverSold?: boolean;
1296
1858
 
1297
- /**
1298
- * Flag indicating whether the order source is included.
1299
- */
1300
- hasOrderSource?: boolean;
1301
-
1302
1859
  /**
1303
1860
  * Indicates if the full royalty has been paid for items.
1304
1861
  */
@@ -1319,11 +1876,21 @@ export namespace RuleUpdateResponse {
1319
1876
  */
1320
1877
  imageUrl?: string | null;
1321
1878
 
1879
+ /**
1880
+ * If enabled, the first transaction done on the platform will complete this rule
1881
+ */
1882
+ isCheckInOnEveryTxn?: boolean;
1883
+
1322
1884
  /**
1323
1885
  * Indicates if the multiplier has been applied to rewards.
1324
1886
  */
1325
1887
  isMultiplierApplied?: boolean;
1326
1888
 
1889
+ /**
1890
+ * Flag indicating if the rule is restricted to new users.
1891
+ */
1892
+ isRestrictedToNewUsers?: boolean;
1893
+
1327
1894
  /**
1328
1895
  * Flag indicating if rewards are applied retroactively.
1329
1896
  */
@@ -1339,6 +1906,11 @@ export namespace RuleUpdateResponse {
1339
1906
  */
1340
1907
  link?: string | null;
1341
1908
 
1909
+ /**
1910
+ * Liquidity pool details.
1911
+ */
1912
+ liquidity?: Metadata.Liquidity;
1913
+
1342
1914
  /**
1343
1915
  * Maximum quantity constraint for token holding.
1344
1916
  */
@@ -1380,14 +1952,24 @@ export namespace RuleUpdateResponse {
1380
1952
  onlyRewardSingleTokenOwnership?: boolean | null;
1381
1953
 
1382
1954
  /**
1383
- * Order source of the order for the token sale
1955
+ * Promotional code associated with the rule.
1384
1956
  */
1385
- orderSource?: string;
1957
+ promoCode?: string;
1386
1958
 
1387
1959
  /**
1388
- * Promotional code associated with the rule.
1960
+ * URL of the CSV file containing promo codes.
1389
1961
  */
1390
- promoCode?: string;
1962
+ promoCodeCsvUrl?: string;
1963
+
1964
+ /**
1965
+ * Numbers of the promotional code to be generated.
1966
+ */
1967
+ promoCodeLength?: number | null;
1968
+
1969
+ /**
1970
+ * Type of the promotional code.
1971
+ */
1972
+ promoCodeType?: 'code' | 'csv' | 'generate';
1391
1973
 
1392
1974
  /**
1393
1975
  * Array defining ranges and corresponding rewards.
@@ -1404,11 +1986,62 @@ export namespace RuleUpdateResponse {
1404
1986
  */
1405
1987
  referrerReward?: number | null;
1406
1988
 
1989
+ /**
1990
+ * Loyalty currency ID of the referrer reward.
1991
+ */
1992
+ referrerRewardLoyaltyCurrencyId?: string | null;
1993
+
1994
+ /**
1995
+ * Flag indicating if the post link is required.
1996
+ */
1997
+ requirePostLink?: boolean | null;
1998
+
1999
+ /**
2000
+ * Flag indicating if media metadata is required.
2001
+ */
2002
+ requirePostMediaLink?: boolean | null;
2003
+
2004
+ /**
2005
+ * Flag indicating if the rule can also reward badges per range.
2006
+ */
2007
+ rewardBadgePerRange?: boolean;
2008
+
2009
+ /**
2010
+ * Flag indicating if the reward is rewarded by batch.
2011
+ */
2012
+ rewardByBatch?: boolean | null;
2013
+
2014
+ /**
2015
+ * Criteria to evaluate the reward.
2016
+ */
2017
+ rewardCriteria?: 'IMPRESSIONS_COUNT' | 'ELIGIBLE_POST' | null;
2018
+
2019
+ /**
2020
+ * Flag indicating if the reward is rewarded per action.
2021
+ */
2022
+ rewardPerAction?: boolean | null;
2023
+
1407
2024
  /**
1408
2025
  * Flag indicating if rewards are given per impression.
1409
2026
  */
1410
2027
  rewardPerImpression?: boolean | null;
1411
2028
 
2029
+ /**
2030
+ * Flag indicating if the rule should reward based on value of traded tokens
2031
+ * instead of count.
2032
+ */
2033
+ rewardPerValue?: boolean;
2034
+
2035
+ /**
2036
+ * Wallet address of the user can only be used if userId is not provided
2037
+ */
2038
+ royaltyAddress?: string;
2039
+
2040
+ /**
2041
+ * Royalty percentage of the item.
2042
+ */
2043
+ royaltyPercentage?: number;
2044
+
1412
2045
  /**
1413
2046
  * Currency associated with sales.
1414
2047
  */
@@ -1448,6 +2081,8 @@ export namespace RuleUpdateResponse {
1448
2081
  | 'Twitch'
1449
2082
  | 'X(Twitter)'
1450
2083
  | 'YouTube'
2084
+ | 'Google'
2085
+ | 'GitHub'
1451
2086
  | null;
1452
2087
 
1453
2088
  /**
@@ -1460,11 +2095,21 @@ export namespace RuleUpdateResponse {
1460
2095
  */
1461
2096
  socialPlatformName?: string | null;
1462
2097
 
2098
+ /**
2099
+ * ID of the Steam app.
2100
+ */
2101
+ steamAppId?: string | null;
2102
+
1463
2103
  /**
1464
2104
  * Array of streak milestones and corresponding rewards.
1465
2105
  */
1466
2106
  streakArray?: Array<Metadata.StreakArray> | null;
1467
2107
 
2108
+ /**
2109
+ * Metadata for swap loyalty rules
2110
+ */
2111
+ swap?: Metadata.Swap;
2112
+
1468
2113
  /**
1469
2114
  * ID of the Telegram channel.
1470
2115
  */
@@ -1480,6 +2125,12 @@ export namespace RuleUpdateResponse {
1480
2125
  */
1481
2126
  trackAllContracts?: boolean | null;
1482
2127
 
2128
+ /**
2129
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
2130
+ * completed once the progress is 100%.
2131
+ */
2132
+ trackProgress?: boolean | null;
2133
+
1483
2134
  /**
1484
2135
  * URL of the associated Twitter account.
1485
2136
  */
@@ -1523,7 +2174,28 @@ export namespace RuleUpdateResponse {
1523
2174
  /**
1524
2175
  * Type of wallet associated with the rule.
1525
2176
  */
1526
- walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | null;
2177
+ walletType?:
2178
+ | 'evm'
2179
+ | 'solana'
2180
+ | 'imx'
2181
+ | 'sui'
2182
+ | 'ton'
2183
+ | 'cosmos'
2184
+ | 'ultra'
2185
+ | 'agw'
2186
+ | 'flow_cadence'
2187
+ | 'substrate'
2188
+ | null;
2189
+
2190
+ /**
2191
+ * ID of the Youtube channel.
2192
+ */
2193
+ youtubeChannelId?: string | null;
2194
+
2195
+ /**
2196
+ * ID of the Youtube video.
2197
+ */
2198
+ youtubeVideoId?: string | null;
1527
2199
  }
1528
2200
 
1529
2201
  export namespace Metadata {
@@ -1542,13 +2214,17 @@ export namespace RuleUpdateResponse {
1542
2214
  * Blockchain network of the collection.
1543
2215
  */
1544
2216
  network?:
2217
+ | 'abstract'
2218
+ | 'abstractTestnet'
1545
2219
  | 'apechain'
1546
2220
  | 'arbitrum'
1547
2221
  | 'avalanche'
1548
2222
  | 'avalancheFuji'
1549
2223
  | 'base'
1550
2224
  | 'baseSepolia'
2225
+ | 'berachain'
1551
2226
  | 'berachainArtio'
2227
+ | 'berachainBepolia'
1552
2228
  | 'binance'
1553
2229
  | 'bscTestnet'
1554
2230
  | 'campTestnet'
@@ -1556,18 +2232,30 @@ export namespace RuleUpdateResponse {
1556
2232
  | 'fantomTestnet'
1557
2233
  | 'flowMainnet'
1558
2234
  | 'mainnet'
2235
+ | 'nexusTestnet'
1559
2236
  | 'optimism'
1560
2237
  | 'polygon'
1561
2238
  | 'polygon_mumbai'
1562
2239
  | 'skaleNebula'
2240
+ | 'skaleEuropa'
2241
+ | 'skaleCalypso'
1563
2242
  | 'solana'
1564
2243
  | 'sophon'
2244
+ | 'sophonTestnet'
1565
2245
  | 'sui'
1566
2246
  | 'superseed'
1567
2247
  | 'superseedSepolia'
1568
2248
  | 'vanar'
1569
2249
  | 'xai'
1570
2250
  | 'zksync'
2251
+ | 'coti'
2252
+ | 'cotiTestnet'
2253
+ | 'morph'
2254
+ | 'morphTestnet'
2255
+ | 'morphHolesky'
2256
+ | 'ultra'
2257
+ | 'ultraTestnet'
2258
+ | 'nitrograph'
1571
2259
  | 'sepolia'
1572
2260
  | 'optimism_sepolia'
1573
2261
  | 'arbitrumSepolia'
@@ -1575,7 +2263,11 @@ export namespace RuleUpdateResponse {
1575
2263
  | 'optimism_goerli'
1576
2264
  | 'arbitrumGoerli'
1577
2265
  | 'basecamp'
1578
- | 'abstract';
2266
+ | 'somnia'
2267
+ | 'zkverify'
2268
+ | 'polkadot'
2269
+ | 'kusama'
2270
+ | 'flow_cadence';
1579
2271
  }
1580
2272
 
1581
2273
  /**
@@ -1652,6 +2344,111 @@ export namespace RuleUpdateResponse {
1652
2344
  id: string;
1653
2345
  }
1654
2346
 
2347
+ /**
2348
+ * Liquidity pool details.
2349
+ */
2350
+ export interface Liquidity {
2351
+ /**
2352
+ * Calculation type of the liquidity pool.
2353
+ */
2354
+ calculationType?: 'fixed' | 'custom';
2355
+
2356
+ /**
2357
+ * Custom function to calculate the the reward amount based on the liquidity
2358
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
2359
+ * USD.
2360
+ */
2361
+ customFunction?: string;
2362
+
2363
+ /**
2364
+ * Liquidity provided per day in USD
2365
+ */
2366
+ liquidityPerDay?: number;
2367
+
2368
+ /**
2369
+ * Blockchain network of the liquidity pool.
2370
+ */
2371
+ network?:
2372
+ | 'abstract'
2373
+ | 'abstractTestnet'
2374
+ | 'apechain'
2375
+ | 'arbitrum'
2376
+ | 'avalanche'
2377
+ | 'avalancheFuji'
2378
+ | 'base'
2379
+ | 'baseSepolia'
2380
+ | 'berachain'
2381
+ | 'berachainArtio'
2382
+ | 'berachainBepolia'
2383
+ | 'binance'
2384
+ | 'bscTestnet'
2385
+ | 'campTestnet'
2386
+ | 'fantom'
2387
+ | 'fantomTestnet'
2388
+ | 'flowMainnet'
2389
+ | 'mainnet'
2390
+ | 'nexusTestnet'
2391
+ | 'optimism'
2392
+ | 'polygon'
2393
+ | 'polygon_mumbai'
2394
+ | 'skaleNebula'
2395
+ | 'skaleEuropa'
2396
+ | 'skaleCalypso'
2397
+ | 'solana'
2398
+ | 'sophon'
2399
+ | 'sophonTestnet'
2400
+ | 'sui'
2401
+ | 'superseed'
2402
+ | 'superseedSepolia'
2403
+ | 'vanar'
2404
+ | 'xai'
2405
+ | 'zksync'
2406
+ | 'coti'
2407
+ | 'cotiTestnet'
2408
+ | 'morph'
2409
+ | 'morphTestnet'
2410
+ | 'morphHolesky'
2411
+ | 'ultra'
2412
+ | 'ultraTestnet'
2413
+ | 'nitrograph'
2414
+ | 'sepolia'
2415
+ | 'optimism_sepolia'
2416
+ | 'arbitrumSepolia'
2417
+ | 'goerli'
2418
+ | 'optimism_goerli'
2419
+ | 'arbitrumGoerli'
2420
+ | 'basecamp'
2421
+ | 'somnia'
2422
+ | 'zkverify'
2423
+ | 'polkadot'
2424
+ | 'kusama'
2425
+ | 'flow_cadence';
2426
+
2427
+ /**
2428
+ * Indicates if only in-range liquidity is rewarded.
2429
+ */
2430
+ onlyRewardInRangeLiquidity?: boolean;
2431
+
2432
+ /**
2433
+ * Array of liquidity pools associated with the rule.
2434
+ */
2435
+ pools?: Array<Liquidity.Pool>;
2436
+
2437
+ /**
2438
+ * Protocol of the liquidity pool.
2439
+ */
2440
+ protocol?: string;
2441
+ }
2442
+
2443
+ export namespace Liquidity {
2444
+ export interface Pool {
2445
+ /**
2446
+ * Unique identifier of the liquidity pool.
2447
+ */
2448
+ id: string;
2449
+ }
2450
+ }
2451
+
1655
2452
  export interface Range {
1656
2453
  /**
1657
2454
  * Reward amount for this range.
@@ -1667,6 +2464,16 @@ export namespace RuleUpdateResponse {
1667
2464
  * Start value of the range.
1668
2465
  */
1669
2466
  startRange: number;
2467
+
2468
+ /**
2469
+ * ID of the loyalty badge for this range.
2470
+ */
2471
+ loyaltyBadgeId?: string;
2472
+
2473
+ /**
2474
+ * Amount of the loyalty multiplier for this range.
2475
+ */
2476
+ loyaltyMultiplierAmount?: number;
1670
2477
  }
1671
2478
 
1672
2479
  /**
@@ -1719,20 +2526,15 @@ export namespace RuleUpdateResponse {
1719
2526
  * Object containing details of the associated smart contract.
1720
2527
  */
1721
2528
  export interface SmartContract {
1722
- /**
1723
- * ABI of the smart contract.
1724
- */
1725
- abi?: string | null;
1726
-
1727
2529
  /**
1728
2530
  * Mapping of addresses for the smart contract.
1729
2531
  */
1730
2532
  addressMapping?: string | null;
1731
2533
 
1732
2534
  /**
1733
- * Array of bonus details applied to the rule.
2535
+ * Object containing details of the amount multiplier from the event.
1734
2536
  */
1735
- bonus?: Array<SmartContract.Bonus> | null;
2537
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
1736
2538
 
1737
2539
  /**
1738
2540
  * ID of the smart contract.
@@ -1744,68 +2546,31 @@ export namespace RuleUpdateResponse {
1744
2546
  */
1745
2547
  criteria?: 'everyEvent' | 'byParameter' | null;
1746
2548
 
1747
- /**
1748
- * Time range applied to the rule.
1749
- */
1750
- customRange?: SmartContract.CustomRange | null;
1751
-
1752
2549
  /**
1753
2550
  * Event emitted by the smart contract.
1754
2551
  */
1755
2552
  event?: string | null;
1756
2553
 
1757
- /**
1758
- * Maximum value allowed for the parameter.
1759
- */
1760
- max?: number | null;
1761
-
1762
2554
  /**
1763
2555
  * Array of parameters for the smart contract.
1764
2556
  */
1765
2557
  params?: Array<SmartContract.Param> | null;
1766
2558
 
1767
2559
  /**
1768
- * Flag indicating if a bonus is applied.
1769
- */
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.
2560
+ * Type of the smart contract interaction.
1779
2561
  */
1780
- withMax?: boolean | null;
2562
+ type?: 'function' | 'event' | null;
1781
2563
  }
1782
2564
 
1783
2565
  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
2566
  /**
1797
- * Time range applied to the rule.
2567
+ * Object containing details of the amount multiplier from the event.
1798
2568
  */
1799
- export interface CustomRange {
2569
+ export interface AmountMultiplier {
1800
2570
  /**
1801
- * End time of the custom range.
2571
+ * Mapping of the value for the smart contract.
1802
2572
  */
1803
- endsAt?: string | null;
1804
-
1805
- /**
1806
- * Start time of the custom range.
1807
- */
1808
- startsAt?: string | null;
2573
+ valueMapping?: string | null;
1809
2574
  }
1810
2575
 
1811
2576
  export interface Param {
@@ -1849,6 +2614,33 @@ export namespace RuleUpdateResponse {
1849
2614
  */
1850
2615
  streakMilestone: number;
1851
2616
  }
2617
+
2618
+ /**
2619
+ * Metadata for swap loyalty rules
2620
+ */
2621
+ export interface Swap {
2622
+ provider?: 'any' | 'relay' | 'lifi';
2623
+
2624
+ relayReferrerId?: string;
2625
+
2626
+ requireCrossChainSwap?: boolean;
2627
+
2628
+ swappedToChain?: 'any' | number | string;
2629
+
2630
+ swappedToTokens?: Array<Swap.SwappedToToken>;
2631
+
2632
+ tokenMode?: 'any' | 'specific';
2633
+
2634
+ trackTokenAmount?: boolean;
2635
+ }
2636
+
2637
+ export namespace Swap {
2638
+ export interface SwappedToToken {
2639
+ address: string;
2640
+
2641
+ chainId: string;
2642
+ }
2643
+ }
1852
2644
  }
1853
2645
  }
1854
2646
 
@@ -1859,9 +2651,6 @@ export interface RuleListResponse {
1859
2651
  }
1860
2652
 
1861
2653
  export namespace RuleListResponse {
1862
- /**
1863
- * Schema for a loyalty rule
1864
- */
1865
2654
  export interface Data {
1866
2655
  /**
1867
2656
  * Unique identifier for the loyalty rule
@@ -1871,7 +2660,7 @@ export namespace RuleListResponse {
1871
2660
  /**
1872
2661
  * Amount associated with the loyalty rule
1873
2662
  */
1874
- amount: number;
2663
+ amount: number | null;
1875
2664
 
1876
2665
  /**
1877
2666
  * Timestamp when the loyalty rule was created
@@ -1883,16 +2672,46 @@ export namespace RuleListResponse {
1883
2672
  */
1884
2673
  deletedAt: string | null;
1885
2674
 
2675
+ /**
2676
+ * Description of the loyalty rule
2677
+ */
2678
+ description: string;
2679
+
2680
+ /**
2681
+ * End time of the loyalty rule
2682
+ */
2683
+ endTime: string | null;
2684
+
1886
2685
  /**
1887
2686
  * Frequency of the loyalty rule
1888
2687
  */
1889
2688
  frequency: string;
1890
2689
 
2690
+ /**
2691
+ * Chains attached to the loyalty rule
2692
+ */
2693
+ loyaltyRuleChain: Array<Data.LoyaltyRuleChain>;
2694
+
2695
+ /**
2696
+ * Name of the loyalty rule
2697
+ */
2698
+ name: string;
2699
+
1891
2700
  /**
1892
2701
  * Unique identifier for the organization
1893
2702
  */
1894
2703
  organizationId: string;
1895
2704
 
2705
+ /**
2706
+ * Type of the reward
2707
+ */
2708
+ rewardType: 'points' | 'multiplier' | 'badge';
2709
+
2710
+ /**
2711
+ * Start time of the loyalty rule
2712
+ */
2713
+ startTime: string | null;
2714
+
1896
2715
  /**
1897
2716
  * Type of the loyalty rule
1898
2717
  */
@@ -1913,36 +2732,1156 @@ export namespace RuleListResponse {
1913
2732
  */
1914
2733
  collectionAddress?: string;
1915
2734
 
2735
+ /**
2736
+ * URL of the media associated with the loyalty rule
2737
+ */
2738
+ mediaUrl?: string | null;
2739
+
1916
2740
  /**
1917
2741
  * Optional metadata for the loyalty rule
1918
2742
  */
1919
- metadata?: Record<string, unknown>;
2743
+ metadata?: { [key: string]: Data.Metadata };
1920
2744
  }
1921
- }
1922
2745
 
1923
- export interface RuleDeleteResponse {
1924
- id: string;
2746
+ export namespace Data {
2747
+ export interface LoyaltyRuleChain {
2748
+ /**
2749
+ * Unique identifier for the rule chain
2750
+ */
2751
+ id: string;
1925
2752
 
1926
- deletedAt: string;
1927
- }
2753
+ loyaltyConditions: Array<LoyaltyRuleChain.LoyaltyCondition>;
1928
2754
 
1929
- export interface RuleCompleteResponse {
1930
- message: string;
1931
- }
2755
+ /**
2756
+ * Unique identifier for the loyalty rule
2757
+ */
2758
+ loyaltyRuleId: string;
1932
2759
 
1933
- export interface RuleGetStatusResponse {
1934
- data: Array<RuleGetStatusResponse.Data>;
1935
- }
2760
+ /**
2761
+ * Name of the rule chain
2762
+ */
2763
+ name: string;
2764
+ }
1936
2765
 
1937
- export namespace RuleGetStatusResponse {
1938
- export interface Data {
1939
- loyaltyRuleId: string;
2766
+ export namespace LoyaltyRuleChain {
2767
+ export interface LoyaltyCondition {
2768
+ /**
2769
+ * Unique identifier for the condition
2770
+ */
2771
+ id: string;
2772
+
2773
+ /**
2774
+ * Amount of the condition
2775
+ */
2776
+ amount: number | null;
2777
+
2778
+ association: Array<LoyaltyCondition.Association>;
2779
+
2780
+ /**
2781
+ * URL of the CSV file
2782
+ */
2783
+ csvUrl: string | null;
2784
+
2785
+ /**
2786
+ * Description of the condition
2787
+ */
2788
+ description: string | null;
2789
+
2790
+ /**
2791
+ * Number of times the condition must be met
2792
+ */
2793
+ repeatCount: number | null;
2794
+
2795
+ /**
2796
+ * Number of times the condition must be met
2797
+ */
2798
+ requiredCount: number | null;
2799
+
2800
+ /**
2801
+ * Type of the condition
2802
+ */
2803
+ type: 'rule' | 'rules' | 'points' | 'section' | 'level' | 'api' | 'badge' | 'badges' | 'csv';
2804
+ }
2805
+
2806
+ export namespace LoyaltyCondition {
2807
+ export interface Association {
2808
+ /**
2809
+ * Unique identifier for the association
2810
+ */
2811
+ id: string;
2812
+
2813
+ /**
2814
+ * Unique identifier for the loyalty badge
2815
+ */
2816
+ loyaltyBadgeId: string | null;
2817
+
2818
+ /**
2819
+ * Unique identifier for the loyalty currency
2820
+ */
2821
+ loyaltyCurrencyId: string | null;
2822
+
2823
+ loyaltyRule: Association.LoyaltyRule | null;
2824
+
2825
+ /**
2826
+ * Unique identifier for the loyalty rule group
2827
+ */
2828
+ loyaltyRuleGroupId: string | null;
2829
+
2830
+ /**
2831
+ * Unique identifier for the loyalty rule
2832
+ */
2833
+ loyaltyRuleId: string | null;
2834
+ }
2835
+
2836
+ export namespace Association {
2837
+ export interface LoyaltyRule {
2838
+ /**
2839
+ * Name of the loyalty rule
2840
+ */
2841
+ name: string;
2842
+ }
2843
+ }
2844
+ }
2845
+ }
2846
+
2847
+ export interface Metadata {
2848
+ /**
2849
+ * Number of tokens per batch.
2850
+ */
2851
+ batchSize?: number | null;
2852
+
2853
+ /**
2854
+ * Text displayed on the action button.
2855
+ */
2856
+ buttonText?: string | null;
2857
+
2858
+ /**
2859
+ * Flag indicating if commenting is required.
2860
+ */
2861
+ checkComment?: boolean | null;
2862
+
2863
+ /**
2864
+ * Flag indicating if liking the post is required.
2865
+ */
2866
+ checkLike?: boolean | null;
2867
+
2868
+ /**
2869
+ * Flag indicating if reposting is required.
2870
+ */
2871
+ checkRepost?: boolean | null;
2872
+
2873
+ /**
2874
+ * Text to check in the Twitter post, username, or bio.
2875
+ */
2876
+ checkText?: string | Array<string> | null;
2877
+
2878
+ /**
2879
+ * Array of collections associated with the rule.
2880
+ */
2881
+ collection?: Array<Metadata.Collection>;
2882
+
2883
+ /**
2884
+ * Conditions for completing the profile.
2885
+ */
2886
+ completeProfileConditions?: { [key: string]: boolean } | null;
2887
+
2888
+ /**
2889
+ * Description of the external rule condition (only for external rules)
2890
+ */
2891
+ conditionDescription?: string;
2892
+
2893
+ /**
2894
+ * Object containing details for the call-to-action.
2895
+ */
2896
+ cta?: Metadata.Cta | null;
2897
+
2898
+ /**
2899
+ * API key for custom rewards integration.
2900
+ */
2901
+ customRewardsApiKey?: string;
2902
+
2903
+ /**
2904
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
2905
+ */
2906
+ directRpc?: boolean;
2907
+
2908
+ /**
2909
+ * Array of Discord servers, channels, and roles to join.
2910
+ */
2911
+ discordServersToJoin?: Array<Metadata.DiscordServersToJoin> | null;
2912
+
2913
+ /**
2914
+ * Array of drip quests required to complete the rule.
2915
+ */
2916
+ dripQuestsToComplete?: Array<Metadata.DripQuestsToComplete> | null;
2917
+
2918
+ /**
2919
+ * Flag indicating whether joining Discord servers is required.
2920
+ */
2921
+ enableJoinDiscordServers?: boolean | null;
2922
+
2923
+ /**
2924
+ * Flag indicating whether streaks are enabled.
2925
+ */
2926
+ enableStreaks?: boolean | null;
2927
+
2928
+ /**
2929
+ * Flag indicating whether the verified multiplier is enabled.
2930
+ */
2931
+ enableVerifiedMultiplier?: boolean;
2932
+
2933
+ /**
2934
+ * Type of ERC20 token for the loyalty rule.
2935
+ */
2936
+ erc20Type?: 'erc20' | 'native';
2937
+
2938
+ /**
2939
+ * Fill source of the order for the token sale
2940
+ */
2941
+ fillSource?: string;
2942
+
2943
+ /**
2944
+ * Percentage reward given to a user for their first referral.
2945
+ */
2946
+ firstReferralReward?: number | null;
2947
+
2948
+ /**
2949
+ * URL of the GitHub repository to check for star.
2950
+ */
2951
+ githubRepoUrl?: string | null;
2952
+
2953
+ /**
2954
+ * Flag indicating whether the fill source is included.
2955
+ */
2956
+ hasFillSource?: boolean;
2957
+
2958
+ /**
2959
+ * Indicates if the item has never been sold.
2960
+ */
2961
+ hasNeverSold?: boolean;
2962
+
2963
+ /**
2964
+ * Indicates if the full royalty has been paid for items.
2965
+ */
2966
+ hasPaidFullRoyalty?: boolean;
2967
+
2968
+ /**
2969
+ * Flag indicating if the sale currency is included.
2970
+ */
2971
+ hasSaleCurrency?: boolean;
2972
+
2973
+ /**
2974
+ * Indicates if the user has a verified Twitter account.
2975
+ */
2976
+ hasVerifiedTwitter?: boolean;
2977
+
2978
+ /**
2979
+ * URL of the image associated with the rule.
2980
+ */
2981
+ imageUrl?: string | null;
2982
+
2983
+ /**
2984
+ * If enabled, the first transaction done on the platform will complete this rule
2985
+ */
2986
+ isCheckInOnEveryTxn?: boolean;
2987
+
2988
+ /**
2989
+ * Indicates if the multiplier has been applied to rewards.
2990
+ */
2991
+ isMultiplierApplied?: boolean;
2992
+
2993
+ /**
2994
+ * Flag indicating if the rule is restricted to new users.
2995
+ */
2996
+ isRestrictedToNewUsers?: boolean;
2997
+
2998
+ /**
2999
+ * Flag indicating if rewards are applied retroactively.
3000
+ */
3001
+ isRetroactive?: boolean | null;
3002
+
3003
+ /**
3004
+ * Flag indicating if the token hold multiplier is applied.
3005
+ */
3006
+ isTokenHoldMultiplier?: boolean;
3007
+
3008
+ /**
3009
+ * Optional link associated with the metadata.
3010
+ */
3011
+ link?: string | null;
3012
+
3013
+ /**
3014
+ * Liquidity pool details.
3015
+ */
3016
+ liquidity?: Metadata.Liquidity;
3017
+
3018
+ /**
3019
+ * Maximum quantity constraint for token holding.
3020
+ */
3021
+ maxQty?: number | null;
3022
+
3023
+ /**
3024
+ * Minimum quantity constraint for token holding.
3025
+ */
3026
+ minQty?: number | null;
3027
+
3028
+ /**
3029
+ * Array of loyalty currency IDs used for multipliers.
3030
+ */
3031
+ multiplierLoyaltyCurrencyIds?: Array<string> | null;
3032
+
3033
+ /**
3034
+ * Flag indicating whether to include only known users.
3035
+ */
3036
+ onlyKnownUsers?: boolean;
3037
+
3038
+ /**
3039
+ * Flag indicating whether to include only native tokens.
3040
+ */
3041
+ onlyNative?: boolean;
3042
+
3043
+ /**
3044
+ * Flag indicating whether to include only non-listed items.
3045
+ */
3046
+ onlyNonListed?: boolean;
3047
+
3048
+ /**
3049
+ * Indicates if only existing users are rewarded.
3050
+ */
3051
+ onlyRewardExistingUser?: boolean;
3052
+
3053
+ /**
3054
+ * give points for only one token ownership per contract
3055
+ */
3056
+ onlyRewardSingleTokenOwnership?: boolean | null;
3057
+
3058
+ /**
3059
+ * Promotional code associated with the rule.
3060
+ */
3061
+ promoCode?: string;
3062
+
3063
+ /**
3064
+ * URL of the CSV file containing promo codes.
3065
+ */
3066
+ promoCodeCsvUrl?: string;
3067
+
3068
+ /**
3069
+ * Numbers of the promotional code to be generated.
3070
+ */
3071
+ promoCodeLength?: number | null;
3072
+
3073
+ /**
3074
+ * Type of the promotional code.
3075
+ */
3076
+ promoCodeType?: 'code' | 'csv' | 'generate';
3077
+
3078
+ /**
3079
+ * Array defining ranges and corresponding rewards.
3080
+ */
3081
+ range?: Array<Metadata.Range>;
3082
+
3083
+ /**
3084
+ * Object defining referral requirements.
3085
+ */
3086
+ referralRequirements?: Metadata.ReferralRequirements | null;
3087
+
3088
+ /**
3089
+ * Lump sum reward given to a referrer.
3090
+ */
3091
+ referrerReward?: number | null;
3092
+
3093
+ /**
3094
+ * Loyalty currency ID of the referrer reward.
3095
+ */
3096
+ referrerRewardLoyaltyCurrencyId?: string | null;
3097
+
3098
+ /**
3099
+ * Flag indicating if the post link is required.
3100
+ */
3101
+ requirePostLink?: boolean | null;
3102
+
3103
+ /**
3104
+ * Flag indicating if media metadata is required.
3105
+ */
3106
+ requirePostMediaLink?: boolean | null;
3107
+
3108
+ /**
3109
+ * Flag indicating if the rule can also reward badges per range.
3110
+ */
3111
+ rewardBadgePerRange?: boolean;
3112
+
3113
+ /**
3114
+ * Flag indicating if the reward is rewarded by batch.
3115
+ */
3116
+ rewardByBatch?: boolean | null;
3117
+
3118
+ /**
3119
+ * Criteria to evaluate the reward.
3120
+ */
3121
+ rewardCriteria?: 'IMPRESSIONS_COUNT' | 'ELIGIBLE_POST' | null;
3122
+
3123
+ /**
3124
+ * Flag indicating if the reward is rewarded per action.
3125
+ */
3126
+ rewardPerAction?: boolean | null;
3127
+
3128
+ /**
3129
+ * Flag indicating if rewards are given per impression.
3130
+ */
3131
+ rewardPerImpression?: boolean | null;
3132
+
3133
+ /**
3134
+ * Flag indicating if the rule should reward based on value of traded tokens
3135
+ * instead of count.
3136
+ */
3137
+ rewardPerValue?: boolean;
3138
+
3139
+ /**
3140
+ * Wallet address of the user can only be used if userId is not provided
3141
+ */
3142
+ royaltyAddress?: string;
3143
+
3144
+ /**
3145
+ * Royalty percentage of the item.
3146
+ */
3147
+ royaltyPercentage?: number;
3148
+
3149
+ /**
3150
+ * Currency associated with sales.
3151
+ */
3152
+ saleCurrency?: string;
3153
+
3154
+ /**
3155
+ * Percentage reward given for a second-level referral.
3156
+ */
3157
+ secondReferralReward?: number | null;
3158
+
3159
+ /**
3160
+ * Flag indicating if the multiplier is skipped.
3161
+ */
3162
+ skipMultiplier?: boolean | null;
3163
+
3164
+ /**
3165
+ * Object containing details of the associated smart contract.
3166
+ */
3167
+ smartContract?: Metadata.SmartContract;
3168
+
3169
+ /**
3170
+ * Array of snapshot proposals for the rule.
3171
+ */
3172
+ snapshotProposals?: Array<Metadata.SnapshotProposal> | null;
3173
+
3174
+ /**
3175
+ * Social media platform associated with the rule.
3176
+ */
3177
+ socialPlatform?:
3178
+ | 'Custom'
3179
+ | 'Discord'
3180
+ | 'EpicGames'
3181
+ | 'Instagram'
3182
+ | 'Steam'
3183
+ | 'Telegram'
3184
+ | 'TikTok'
3185
+ | 'Twitch'
3186
+ | 'X(Twitter)'
3187
+ | 'YouTube'
3188
+ | 'Google'
3189
+ | 'GitHub'
3190
+ | null;
3191
+
3192
+ /**
3193
+ * URL of the social platform's logo.
3194
+ */
3195
+ socialPlatformLogo?: string | null;
3196
+
3197
+ /**
3198
+ * Name of the social platform.
3199
+ */
3200
+ socialPlatformName?: string | null;
3201
+
3202
+ /**
3203
+ * ID of the Steam app.
3204
+ */
3205
+ steamAppId?: string | null;
3206
+
3207
+ /**
3208
+ * Array of streak milestones and corresponding rewards.
3209
+ */
3210
+ streakArray?: Array<Metadata.StreakArray> | null;
3211
+
3212
+ /**
3213
+ * Metadata for swap loyalty rules
3214
+ */
3215
+ swap?: Metadata.Swap;
3216
+
3217
+ /**
3218
+ * ID of the Telegram channel.
3219
+ */
3220
+ telegramChannelId?: string | null;
3221
+
3222
+ /**
3223
+ * Time delay in seconds to verify actions.
3224
+ */
3225
+ timeDelayToVerifySeconds?: string | number | null;
3226
+
3227
+ /**
3228
+ * Flag indicating if all contracts are tracked.
3229
+ */
3230
+ trackAllContracts?: boolean | null;
3231
+
3232
+ /**
3233
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
3234
+ * completed once the progress is 100%.
3235
+ */
3236
+ trackProgress?: boolean | null;
3237
+
3238
+ /**
3239
+ * URL of the associated Twitter account.
3240
+ */
3241
+ twitterAccountUrl?: string;
3242
+
3243
+ /**
3244
+ * Hashtag associated with the Twitter post.
3245
+ */
3246
+ twitterHashtag?: string;
3247
+
3248
+ /**
3249
+ * URL of the associated Twitter post.
3250
+ */
3251
+ twitterPostUrl?: string;
3252
+
3253
+ /**
3254
+ * Unique identifier of the Twitter user.
3255
+ */
3256
+ twitterUserId?: string;
3257
+
3258
+ /**
3259
+ * Twitter username of the user.
3260
+ */
3261
+ twitterUsername?: string;
3262
+
3263
+ /**
3264
+ * Minimum length of the verification text.
3265
+ */
3266
+ verificationTextMinimumLength?: number | null;
3267
+
3268
+ /**
3269
+ * Multiplier applied to rewards for verified users.
3270
+ */
3271
+ verifiedMultiplier?: number | null;
3272
+
3273
+ /**
3274
+ * Placeholder text for verification input fields.
3275
+ */
3276
+ verifyPlaceHolderText?: string | null;
3277
+
3278
+ /**
3279
+ * Type of wallet associated with the rule.
3280
+ */
3281
+ walletType?:
3282
+ | 'evm'
3283
+ | 'solana'
3284
+ | 'imx'
3285
+ | 'sui'
3286
+ | 'ton'
3287
+ | 'cosmos'
3288
+ | 'ultra'
3289
+ | 'agw'
3290
+ | 'flow_cadence'
3291
+ | 'substrate'
3292
+ | null;
3293
+
3294
+ /**
3295
+ * ID of the Youtube channel.
3296
+ */
3297
+ youtubeChannelId?: string | null;
3298
+
3299
+ /**
3300
+ * ID of the Youtube video.
3301
+ */
3302
+ youtubeVideoId?: string | null;
3303
+ }
3304
+
3305
+ export namespace Metadata {
3306
+ export interface Collection {
3307
+ /**
3308
+ * Blockchain address of the collection.
3309
+ */
3310
+ address?: string;
3311
+
3312
+ /**
3313
+ * Multiplier applied to the rewards for this collection.
3314
+ */
3315
+ multiplier?: number;
3316
+
3317
+ /**
3318
+ * Blockchain network of the collection.
3319
+ */
3320
+ network?:
3321
+ | 'abstract'
3322
+ | 'abstractTestnet'
3323
+ | 'apechain'
3324
+ | 'arbitrum'
3325
+ | 'avalanche'
3326
+ | 'avalancheFuji'
3327
+ | 'base'
3328
+ | 'baseSepolia'
3329
+ | 'berachain'
3330
+ | 'berachainArtio'
3331
+ | 'berachainBepolia'
3332
+ | 'binance'
3333
+ | 'bscTestnet'
3334
+ | 'campTestnet'
3335
+ | 'fantom'
3336
+ | 'fantomTestnet'
3337
+ | 'flowMainnet'
3338
+ | 'mainnet'
3339
+ | 'nexusTestnet'
3340
+ | 'optimism'
3341
+ | 'polygon'
3342
+ | 'polygon_mumbai'
3343
+ | 'skaleNebula'
3344
+ | 'skaleEuropa'
3345
+ | 'skaleCalypso'
3346
+ | 'solana'
3347
+ | 'sophon'
3348
+ | 'sophonTestnet'
3349
+ | 'sui'
3350
+ | 'superseed'
3351
+ | 'superseedSepolia'
3352
+ | 'vanar'
3353
+ | 'xai'
3354
+ | 'zksync'
3355
+ | 'coti'
3356
+ | 'cotiTestnet'
3357
+ | 'morph'
3358
+ | 'morphTestnet'
3359
+ | 'morphHolesky'
3360
+ | 'ultra'
3361
+ | 'ultraTestnet'
3362
+ | 'nitrograph'
3363
+ | 'sepolia'
3364
+ | 'optimism_sepolia'
3365
+ | 'arbitrumSepolia'
3366
+ | 'goerli'
3367
+ | 'optimism_goerli'
3368
+ | 'arbitrumGoerli'
3369
+ | 'basecamp'
3370
+ | 'somnia'
3371
+ | 'zkverify'
3372
+ | 'polkadot'
3373
+ | 'kusama'
3374
+ | 'flow_cadence';
3375
+ }
3376
+
3377
+ /**
3378
+ * Object containing details for the call-to-action.
3379
+ */
3380
+ export interface Cta {
3381
+ /**
3382
+ * Link for the call-to-action.
3383
+ */
3384
+ href?: string | null;
3385
+
3386
+ /**
3387
+ * Label for the call-to-action.
3388
+ */
3389
+ label?: string | null;
3390
+ }
3391
+
3392
+ export interface DiscordServersToJoin {
3393
+ /**
3394
+ * ID of the Discord server to join.
3395
+ */
3396
+ id?: string;
3397
+
3398
+ /**
3399
+ * Array of Discord channels to join.
3400
+ */
3401
+ channels?: Array<DiscordServersToJoin.Channel>;
3402
+
3403
+ /**
3404
+ * Array of roles to assign in the Discord server.
3405
+ */
3406
+ roles?: Array<DiscordServersToJoin.Role>;
3407
+ }
3408
+
3409
+ export namespace DiscordServersToJoin {
3410
+ export interface Channel {
3411
+ /**
3412
+ * ID of the Discord channel.
3413
+ */
3414
+ id?: string;
3415
+
3416
+ /**
3417
+ * Array of emojis used in the channel.
3418
+ */
3419
+ emojis?: Array<Channel.Emoji>;
3420
+
3421
+ /**
3422
+ * Phrase of text to be present in the discord message
3423
+ */
3424
+ text?: string;
3425
+ }
3426
+
3427
+ export namespace Channel {
3428
+ export interface Emoji {
3429
+ /**
3430
+ * ID of the emoji used in the channel.
3431
+ */
3432
+ id?: string;
3433
+ }
3434
+ }
3435
+
3436
+ export interface Role {
3437
+ /**
3438
+ * ID of the role in the Discord server.
3439
+ */
3440
+ id: string;
3441
+ }
3442
+ }
3443
+
3444
+ export interface DripQuestsToComplete {
3445
+ /**
3446
+ * ID of the drip quest to complete.
3447
+ */
3448
+ id: string;
3449
+ }
3450
+
3451
+ /**
3452
+ * Liquidity pool details.
3453
+ */
3454
+ export interface Liquidity {
3455
+ /**
3456
+ * Calculation type of the liquidity pool.
3457
+ */
3458
+ calculationType?: 'fixed' | 'custom';
3459
+
3460
+ /**
3461
+ * Custom function to calculate the the reward amount based on the liquidity
3462
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
3463
+ * USD.
3464
+ */
3465
+ customFunction?: string;
3466
+
3467
+ /**
3468
+ * Liquidity provided per day in USD
3469
+ */
3470
+ liquidityPerDay?: number;
3471
+
3472
+ /**
3473
+ * Blockchain network of the liquidity pool.
3474
+ */
3475
+ network?:
3476
+ | 'abstract'
3477
+ | 'abstractTestnet'
3478
+ | 'apechain'
3479
+ | 'arbitrum'
3480
+ | 'avalanche'
3481
+ | 'avalancheFuji'
3482
+ | 'base'
3483
+ | 'baseSepolia'
3484
+ | 'berachain'
3485
+ | 'berachainArtio'
3486
+ | 'berachainBepolia'
3487
+ | 'binance'
3488
+ | 'bscTestnet'
3489
+ | 'campTestnet'
3490
+ | 'fantom'
3491
+ | 'fantomTestnet'
3492
+ | 'flowMainnet'
3493
+ | 'mainnet'
3494
+ | 'nexusTestnet'
3495
+ | 'optimism'
3496
+ | 'polygon'
3497
+ | 'polygon_mumbai'
3498
+ | 'skaleNebula'
3499
+ | 'skaleEuropa'
3500
+ | 'skaleCalypso'
3501
+ | 'solana'
3502
+ | 'sophon'
3503
+ | 'sophonTestnet'
3504
+ | 'sui'
3505
+ | 'superseed'
3506
+ | 'superseedSepolia'
3507
+ | 'vanar'
3508
+ | 'xai'
3509
+ | 'zksync'
3510
+ | 'coti'
3511
+ | 'cotiTestnet'
3512
+ | 'morph'
3513
+ | 'morphTestnet'
3514
+ | 'morphHolesky'
3515
+ | 'ultra'
3516
+ | 'ultraTestnet'
3517
+ | 'nitrograph'
3518
+ | 'sepolia'
3519
+ | 'optimism_sepolia'
3520
+ | 'arbitrumSepolia'
3521
+ | 'goerli'
3522
+ | 'optimism_goerli'
3523
+ | 'arbitrumGoerli'
3524
+ | 'basecamp'
3525
+ | 'somnia'
3526
+ | 'zkverify'
3527
+ | 'polkadot'
3528
+ | 'kusama'
3529
+ | 'flow_cadence';
3530
+
3531
+ /**
3532
+ * Indicates if only in-range liquidity is rewarded.
3533
+ */
3534
+ onlyRewardInRangeLiquidity?: boolean;
3535
+
3536
+ /**
3537
+ * Array of liquidity pools associated with the rule.
3538
+ */
3539
+ pools?: Array<Liquidity.Pool>;
3540
+
3541
+ /**
3542
+ * Protocol of the liquidity pool.
3543
+ */
3544
+ protocol?: string;
3545
+ }
3546
+
3547
+ export namespace Liquidity {
3548
+ export interface Pool {
3549
+ /**
3550
+ * Unique identifier of the liquidity pool.
3551
+ */
3552
+ id: string;
3553
+ }
3554
+ }
3555
+
3556
+ export interface Range {
3557
+ /**
3558
+ * Reward amount for this range.
3559
+ */
3560
+ amount: number;
3561
+
3562
+ /**
3563
+ * End value of the range.
3564
+ */
3565
+ endRange: number;
3566
+
3567
+ /**
3568
+ * Start value of the range.
3569
+ */
3570
+ startRange: number;
3571
+
3572
+ /**
3573
+ * ID of the loyalty badge for this range.
3574
+ */
3575
+ loyaltyBadgeId?: string;
3576
+
3577
+ /**
3578
+ * Amount of the loyalty multiplier for this range.
3579
+ */
3580
+ loyaltyMultiplierAmount?: number;
3581
+ }
3582
+
3583
+ /**
3584
+ * Object defining referral requirements.
3585
+ */
3586
+ export interface ReferralRequirements {
3587
+ /**
3588
+ * Flag indicating if achieving points is required.
3589
+ */
3590
+ achievePoints?: boolean | null;
3591
+
3592
+ /**
3593
+ * Flag indicating if completing the profile is required.
3594
+ */
3595
+ completeProfile?: boolean | null;
3596
+
3597
+ /**
3598
+ * Flag indicating if connecting Discord is required.
3599
+ */
3600
+ connectDiscord?: boolean | null;
3601
+
3602
+ /**
3603
+ * Flag indicating if connecting email is required.
3604
+ */
3605
+ connectEmail?: boolean | null;
3606
+
3607
+ /**
3608
+ * Flag indicating if connecting Twitter is required.
3609
+ */
3610
+ connectTwitter?: boolean | null;
3611
+
3612
+ points?: ReferralRequirements.Points | null;
3613
+ }
3614
+
3615
+ export namespace ReferralRequirements {
3616
+ export interface Points {
3617
+ /**
3618
+ * Points required for referral.
3619
+ */
3620
+ amount?: number | null;
3621
+
3622
+ /**
3623
+ * ID of the loyalty currency for referral.
3624
+ */
3625
+ loyaltyCurrecyId?: string | null;
3626
+ }
3627
+ }
3628
+
3629
+ /**
3630
+ * Object containing details of the associated smart contract.
3631
+ */
3632
+ export interface SmartContract {
3633
+ /**
3634
+ * Mapping of addresses for the smart contract.
3635
+ */
3636
+ addressMapping?: string | null;
3637
+
3638
+ /**
3639
+ * Object containing details of the amount multiplier from the event.
3640
+ */
3641
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
3642
+
3643
+ /**
3644
+ * ID of the smart contract.
3645
+ */
3646
+ contractId?: string | null;
3647
+
3648
+ /**
3649
+ * Criteria to evaluate the smart contract event.
3650
+ */
3651
+ criteria?: 'everyEvent' | 'byParameter' | null;
3652
+
3653
+ /**
3654
+ * Event emitted by the smart contract.
3655
+ */
3656
+ event?: string | null;
3657
+
3658
+ /**
3659
+ * Array of parameters for the smart contract.
3660
+ */
3661
+ params?: Array<SmartContract.Param> | null;
3662
+
3663
+ /**
3664
+ * Type of the smart contract interaction.
3665
+ */
3666
+ type?: 'function' | 'event' | null;
3667
+ }
3668
+
3669
+ export namespace SmartContract {
3670
+ /**
3671
+ * Object containing details of the amount multiplier from the event.
3672
+ */
3673
+ export interface AmountMultiplier {
3674
+ /**
3675
+ * Mapping of the value for the smart contract.
3676
+ */
3677
+ valueMapping?: string | null;
3678
+ }
3679
+
3680
+ export interface Param {
3681
+ /**
3682
+ * Condition to check for the parameter.
3683
+ */
3684
+ condition?: string | null;
3685
+
3686
+ /**
3687
+ * Name of the smart contract parameter.
3688
+ */
3689
+ name?: string | null;
3690
+
3691
+ /**
3692
+ * Value of the parameter.
3693
+ */
3694
+ value?: string | null;
3695
+ }
3696
+ }
3697
+
3698
+ export interface SnapshotProposal {
3699
+ /**
3700
+ * ID of the snapshot proposal.
3701
+ */
3702
+ id: string;
3703
+
3704
+ /**
3705
+ * Space associated with the snapshot proposal.
3706
+ */
3707
+ space: string;
3708
+ }
3709
+
3710
+ export interface StreakArray {
3711
+ /**
3712
+ * Reward amount for achieving the streak milestone.
3713
+ */
3714
+ streakAmount: number;
3715
+
3716
+ /**
3717
+ * Milestone required to achieve the streak.
3718
+ */
3719
+ streakMilestone: number;
3720
+ }
3721
+
3722
+ /**
3723
+ * Metadata for swap loyalty rules
3724
+ */
3725
+ export interface Swap {
3726
+ provider?: 'any' | 'relay' | 'lifi';
3727
+
3728
+ relayReferrerId?: string;
3729
+
3730
+ requireCrossChainSwap?: boolean;
3731
+
3732
+ swappedToChain?: 'any' | number | string;
3733
+
3734
+ swappedToTokens?: Array<Swap.SwappedToToken>;
3735
+
3736
+ tokenMode?: 'any' | 'specific';
3737
+
3738
+ trackTokenAmount?: boolean;
3739
+ }
3740
+
3741
+ export namespace Swap {
3742
+ export interface SwappedToToken {
3743
+ address: string;
3744
+
3745
+ chainId: string;
3746
+ }
3747
+ }
3748
+ }
3749
+ }
3750
+ }
3751
+
3752
+ export interface RuleDeleteResponse {
3753
+ id: string;
3754
+
3755
+ deletedAt: string;
3756
+ }
3757
+
3758
+ export interface RuleCompleteResponse {
3759
+ message:
3760
+ | 'Completion request added to queue'
3761
+ | 'Link click being verified, come back later to check the status';
3762
+ }
3763
+
3764
+ export interface RuleGetStatusResponse {
3765
+ data: Array<RuleGetStatusResponse.Data>;
3766
+ }
3767
+
3768
+ export namespace RuleGetStatusResponse {
3769
+ export interface Data {
3770
+ loyaltyRuleId: string;
3771
+
3772
+ userId: string;
3773
+
3774
+ /**
3775
+ * The ID of the loyalty rule status for the Progress object
3776
+ */
3777
+ id?: string;
3778
+
3779
+ createdAt?: string;
3780
+
3781
+ fulfilledAt?: string | null;
3782
+
3783
+ /**
3784
+ * Categorized examples of messages that may be returned for a loyalty rule's
3785
+ * processing result.
3786
+ *
3787
+ * User Onboarding
3788
+ *
3789
+ * - Check In: "Streak successful"
3790
+ * - Complete Profile Details: "Profile not complete"
3791
+ *
3792
+ * Connect Accounts
3793
+ *
3794
+ * - Connect TikTok: "TikTok not connected"
3795
+ * - Connect Discord: "Discord not connected", "Discord request timeout"
3796
+ * - Connect X: "Twitter not connected", "Twitter not connected or content url is
3797
+ * required"
3798
+ * - Connect Email: "Email address not connected"
3799
+ * - Connect Telegram: "Telegram not connected", "user has not setup telegram (no
3800
+ * telegramUsername), please setup username in telegram and reconnect.",
3801
+ * "Telegram request rate-limited"
3802
+ * - Connect Steam: "Steam not connected"
3803
+ * - Connect Youtube: "Youtube not connected"
3804
+ *
3805
+ * Social Quests
3806
+ *
3807
+ * - Join Telegram Group: "Telegram Channel not joined", "Telegram Channel joined
3808
+ * successfully"
3809
+ * - Post on TikTok: "TikTok post not verified"
3810
+ * - Comment on an X Post: "Quest Completed: You have commented on the tweet",
3811
+ * "Quest Not Completed: Comment not found for the specified tweet"
3812
+ * - Repost an X Post: "Quest Completed: You have retweeted the tweet", "Quest Not
3813
+ * Completed: Retweet not found for the specified tweet", "Quest Completed: You
3814
+ * have retweeted and commented on the tweet", "Quest Not Completed: You have not
3815
+ * retweeted or commented on the tweet"
3816
+ * - Follow an X Account: "Missing required parameters: twitterUserId,
3817
+ * targetUsername", "Quest Completed: You are a follower of
3818
+ * @${targetUsername}", "Quest Not Completed: Please follow @${targetUsername}
3819
+ * and try again in few minutes"
3820
+ * - React to an X Post: "Missing required parameters: texts, twitterUserId,
3821
+ * userTweetId", "No text provided", "Quest Completed: You have posted {tweetId}
3822
+ * a tweet with the text {text}", "Quest Not Completed: Your all previous {COUNT}
3823
+ * posts are already claimed. Please post a new tweet and try again in a few
3824
+ * minutes.", "Tweet is already claimed", "Tweet does not belong to the user",
3825
+ * "Text not found in tweet", "Tweet is before the quest start time", "Tweet does
3826
+ * not have media", "Text found in tweet"
3827
+ * - Add Text to X Bio: "Missing required parameters: texts, twitterUserId", "User
3828
+ * not found", "Text found in bio", "Text not found in bio"
3829
+ * - Add Text to X Username: "Missing required parameters: texts, twitterUserId",
3830
+ * "User not found", "Text found in username", "Text not found in username"
3831
+ * - Comment on an X Post with Text: "Missing required parameters: texts,
3832
+ * twitterUserId", "Comment is already claimed", "Text found in comment", "Text
3833
+ * not found in comment", "Tweet not found or could not be retrieved"
3834
+ * - Comment on a YouTube Video: "Youtube comment added", "Youtube comment not
3835
+ * added"
3836
+ * - Subscribe to a YouTube Channel: "Youtube channel subscribed", "Quest failed,
3837
+ * please make sure you have made your subscriptions public in youtube"
3838
+ * - Get X post impressions: "You've already claimed the reward for this impression
3839
+ * range."
3840
+ * - Add an Item to Steam Wishlist: "Steam Wishlist item added", "Steam Wishlist
3841
+ * item not added"
3842
+ *
3843
+ * Complex Onchain Logic
3844
+ *
3845
+ * - Token Swap: "Swap rewards calculated successfully", "Swap rule failed"
3846
+ *
3847
+ * Other
3848
+ *
3849
+ * - Answer a Quiz: "Quiz question not configured", "No question response found",
3850
+ * "Incorrect answer", "Correct answer"
3851
+ * - Answer a Poll: "Poll question not configured", "Poll response recorded"
3852
+ * - Spend in Shopify Store: "Shopify not connected"
3853
+ * - Points Airdrop: "Seems like you're not eligible for this points airdrop."
3854
+ *
3855
+ * General
3856
+ *
3857
+ * - "Quest already completed"
3858
+ * - "Quest already completed using the same social account (${socialAccountName}),
3859
+ * with the different user."
3860
+ * - "You've already claimed the reward for this quest."
3861
+ * - "Quest not achieved, please try again."
3862
+ * - "Rule is not setup"
3863
+ * - "Request aborted due to timeout"
3864
+ * - "Google account not connected"
3865
+ * - "Claim failed: Multiplier is already active"
3866
+ */
3867
+ message?: string;
1940
3868
 
1941
- status: 'pending' | 'processing' | 'completed' | 'failed';
3869
+ organizationId?: string;
1942
3870
 
1943
- userId: string;
3871
+ /**
3872
+ * The progress of the loyalty rule from 0 to 100
3873
+ */
3874
+ progress?: number;
1944
3875
 
1945
- message?: string;
3876
+ /**
3877
+ * Status of the queued job, this is only returned if the job is queued and being
3878
+ * processed, this wil be retained for 10 minutes after the job is completed
3879
+ */
3880
+ status?: 'pending' | 'processing' | 'completed' | 'failed';
3881
+
3882
+ updatedAt?: string;
3883
+
3884
+ websiteId?: string;
1946
3885
  }
1947
3886
  }
1948
3887
 
@@ -2024,6 +3963,7 @@ export interface RuleCreateParams {
2024
3963
  | 'connected_discord'
2025
3964
  | 'connected_email'
2026
3965
  | 'connected_epic'
3966
+ | 'connected_github'
2027
3967
  | 'connected_steam'
2028
3968
  | 'connected_telegram'
2029
3969
  | 'connected_twitter'
@@ -2053,7 +3993,24 @@ export interface RuleCreateParams {
2053
3993
  | 'twitter_like'
2054
3994
  | 'twitter_post_hashtag'
2055
3995
  | 'quiz'
2056
- | 'poll';
3996
+ | 'poll'
3997
+ | 'steam_wishlist'
3998
+ | 'liquidity_uniswap_v2'
3999
+ | 'liquidity_uniswap_v3'
4000
+ | 'points_airdrop'
4001
+ | 'youtube_subscribers'
4002
+ | 'youtube_comment'
4003
+ | 'shopify_spend'
4004
+ | 'swap'
4005
+ | 'tiktok_post'
4006
+ | 'post_impressions'
4007
+ | 'discord_join'
4008
+ | 'connected_youtube'
4009
+ | 'stratus_function'
4010
+ | 'connected_tiktok'
4011
+ | 'tiktok_follow'
4012
+ | 'github_repo_star'
4013
+ | 'discord_role_grant';
2057
4014
 
2058
4015
  /**
2059
4016
  * Unique identifier for the associated website
@@ -2065,6 +4022,11 @@ export interface RuleCreateParams {
2065
4022
  */
2066
4023
  backgroundAssetUrl?: string;
2067
4024
 
4025
+ /**
4026
+ * The type of claim for the reward
4027
+ */
4028
+ claimType?: 'manual' | 'auto' | null;
4029
+
2068
4030
  /**
2069
4031
  * Blockchain address of the associated collection
2070
4032
  */
@@ -2090,6 +4052,18 @@ export interface RuleCreateParams {
2090
4052
  */
2091
4053
  description?: string;
2092
4054
 
4055
+ duplicatedFromId?: string | null;
4056
+
4057
+ /**
4058
+ * ID of the external integration
4059
+ */
4060
+ externalIntegrationId?: string | null;
4061
+
4062
+ /**
4063
+ * Optional stratus function id for the rule
4064
+ */
4065
+ functionId?: string | null;
4066
+
2093
4067
  /**
2094
4068
  * Whether to hide this rule in the user interface
2095
4069
  */
@@ -2098,18 +4072,40 @@ export interface RuleCreateParams {
2098
4072
  /**
2099
4073
  * Interval between rule executions
2100
4074
  */
2101
- interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | null;
4075
+ interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | 'unlimited' | null;
2102
4076
 
2103
4077
  /**
2104
4078
  * Whether this rule is mandatory
2105
4079
  */
2106
4080
  isRequired?: boolean;
2107
4081
 
4082
+ /**
4083
+ * Unique identifier for the loyalty badge
4084
+ */
4085
+ loyaltyBadgeId?: string | null;
4086
+
2108
4087
  /**
2109
4088
  * Unique identifier for the loyalty rule group
2110
4089
  */
2111
4090
  loyaltyRuleGroupId?: 'no-section' | (string & {}) | null;
2112
4091
 
4092
+ /**
4093
+ * URL for uploading loyalty user allotment via CSV
4094
+ */
4095
+ loyaltyUserAllotmentCsvUrl?: string;
4096
+
4097
+ /**
4098
+ * The interval for the max amount. Available for the smart contract and external
4099
+ * rules.
4100
+ */
4101
+ maxAmountInterval?: 'daily' | 'weekly' | 'monthly' | 'lifetime' | null;
4102
+
4103
+ /**
4104
+ * The maximum amount of points a user can earn per interval. Available for the
4105
+ * smart contract and external rules.
4106
+ */
4107
+ maxAmountPerInterval?: number | null;
4108
+
2113
4109
  /**
2114
4110
  * URL of the media to be displayed
2115
4111
  */
@@ -2119,13 +4115,17 @@ export interface RuleCreateParams {
2119
4115
  * Blockchain network where the rule will apply
2120
4116
  */
2121
4117
  network?:
4118
+ | 'abstract'
4119
+ | 'abstractTestnet'
2122
4120
  | 'apechain'
2123
4121
  | 'arbitrum'
2124
4122
  | 'avalanche'
2125
4123
  | 'avalancheFuji'
2126
4124
  | 'base'
2127
4125
  | 'baseSepolia'
4126
+ | 'berachain'
2128
4127
  | 'berachainArtio'
4128
+ | 'berachainBepolia'
2129
4129
  | 'binance'
2130
4130
  | 'bscTestnet'
2131
4131
  | 'campTestnet'
@@ -2133,18 +4133,30 @@ export interface RuleCreateParams {
2133
4133
  | 'fantomTestnet'
2134
4134
  | 'flowMainnet'
2135
4135
  | 'mainnet'
4136
+ | 'nexusTestnet'
2136
4137
  | 'optimism'
2137
4138
  | 'polygon'
2138
4139
  | 'polygon_mumbai'
2139
4140
  | 'skaleNebula'
4141
+ | 'skaleEuropa'
4142
+ | 'skaleCalypso'
2140
4143
  | 'solana'
2141
4144
  | 'sophon'
4145
+ | 'sophonTestnet'
2142
4146
  | 'sui'
2143
4147
  | 'superseed'
2144
4148
  | 'superseedSepolia'
2145
4149
  | 'vanar'
2146
4150
  | 'xai'
2147
4151
  | 'zksync'
4152
+ | 'coti'
4153
+ | 'cotiTestnet'
4154
+ | 'morph'
4155
+ | 'morphTestnet'
4156
+ | 'morphHolesky'
4157
+ | 'ultra'
4158
+ | 'ultraTestnet'
4159
+ | 'nitrograph'
2148
4160
  | 'sepolia'
2149
4161
  | 'optimism_sepolia'
2150
4162
  | 'arbitrumSepolia'
@@ -2152,22 +4164,41 @@ export interface RuleCreateParams {
2152
4164
  | 'optimism_goerli'
2153
4165
  | 'arbitrumGoerli'
2154
4166
  | 'basecamp'
2155
- | 'abstract';
4167
+ | 'somnia'
4168
+ | 'zkverify'
4169
+ | 'polkadot'
4170
+ | 'kusama'
4171
+ | 'flow_cadence';
2156
4172
 
2157
4173
  /**
2158
4174
  * OAuth credentials associated with the rule
2159
4175
  */
2160
4176
  oauthCredentialsId?: string | null;
2161
4177
 
4178
+ /**
4179
+ * The lifetime of the reward
4180
+ */
4181
+ rewardLifetime?: 'permanent' | 'dynamic' | null;
4182
+
2162
4183
  /**
2163
4184
  * Type of reward issued by the rule
2164
4185
  */
2165
- rewardType?: 'points' | 'multiplier';
4186
+ rewardType?: 'points' | 'multiplier' | 'badge';
4187
+
4188
+ /**
4189
+ * URL of the Shopify store
4190
+ */
4191
+ shopifyStoreUrl?: string | null;
2166
4192
 
2167
4193
  /**
2168
- * Identifier for associated subscriptions
4194
+ * Whether to show this rule before the start time
2169
4195
  */
2170
- subscriptionIdentifier?: string | null;
4196
+ showBeforeStart?: boolean;
4197
+
4198
+ /**
4199
+ * Optional stratus subscription id for the rule
4200
+ */
4201
+ subscriptionId?: string | null;
2171
4202
  }
2172
4203
 
2173
4204
  export namespace RuleCreateParams {
@@ -2175,6 +4206,11 @@ export namespace RuleCreateParams {
2175
4206
  * Additional metadata for the loyalty rule
2176
4207
  */
2177
4208
  export interface Metadata {
4209
+ /**
4210
+ * Number of tokens per batch.
4211
+ */
4212
+ batchSize?: number | null;
4213
+
2178
4214
  /**
2179
4215
  * Text displayed on the action button.
2180
4216
  */
@@ -2198,7 +4234,7 @@ export namespace RuleCreateParams {
2198
4234
  /**
2199
4235
  * Text to check in the Twitter post, username, or bio.
2200
4236
  */
2201
- checkText?: string | null;
4237
+ checkText?: string | Array<string> | null;
2202
4238
 
2203
4239
  /**
2204
4240
  * Array of collections associated with the rule.
@@ -2208,7 +4244,12 @@ export namespace RuleCreateParams {
2208
4244
  /**
2209
4245
  * Conditions for completing the profile.
2210
4246
  */
2211
- completeProfileConditions?: Record<string, boolean> | null;
4247
+ completeProfileConditions?: { [key: string]: boolean } | null;
4248
+
4249
+ /**
4250
+ * Description of the external rule condition (only for external rules)
4251
+ */
4252
+ conditionDescription?: string;
2212
4253
 
2213
4254
  /**
2214
4255
  * Object containing details for the call-to-action.
@@ -2220,6 +4261,11 @@ export namespace RuleCreateParams {
2220
4261
  */
2221
4262
  customRewardsApiKey?: string;
2222
4263
 
4264
+ /**
4265
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
4266
+ */
4267
+ directRpc?: boolean;
4268
+
2223
4269
  /**
2224
4270
  * Array of Discord servers, channels, and roles to join.
2225
4271
  */
@@ -2245,6 +4291,11 @@ export namespace RuleCreateParams {
2245
4291
  */
2246
4292
  enableVerifiedMultiplier?: boolean;
2247
4293
 
4294
+ /**
4295
+ * Type of ERC20 token for the loyalty rule.
4296
+ */
4297
+ erc20Type?: 'erc20' | 'native';
4298
+
2248
4299
  /**
2249
4300
  * Fill source of the order for the token sale
2250
4301
  */
@@ -2255,6 +4306,11 @@ export namespace RuleCreateParams {
2255
4306
  */
2256
4307
  firstReferralReward?: number | null;
2257
4308
 
4309
+ /**
4310
+ * URL of the GitHub repository to check for star.
4311
+ */
4312
+ githubRepoUrl?: string | null;
4313
+
2258
4314
  /**
2259
4315
  * Flag indicating whether the fill source is included.
2260
4316
  */
@@ -2265,11 +4321,6 @@ export namespace RuleCreateParams {
2265
4321
  */
2266
4322
  hasNeverSold?: boolean;
2267
4323
 
2268
- /**
2269
- * Flag indicating whether the order source is included.
2270
- */
2271
- hasOrderSource?: boolean;
2272
-
2273
4324
  /**
2274
4325
  * Indicates if the full royalty has been paid for items.
2275
4326
  */
@@ -2290,11 +4341,21 @@ export namespace RuleCreateParams {
2290
4341
  */
2291
4342
  imageUrl?: string | null;
2292
4343
 
4344
+ /**
4345
+ * If enabled, the first transaction done on the platform will complete this rule
4346
+ */
4347
+ isCheckInOnEveryTxn?: boolean;
4348
+
2293
4349
  /**
2294
4350
  * Indicates if the multiplier has been applied to rewards.
2295
4351
  */
2296
4352
  isMultiplierApplied?: boolean;
2297
4353
 
4354
+ /**
4355
+ * Flag indicating if the rule is restricted to new users.
4356
+ */
4357
+ isRestrictedToNewUsers?: boolean;
4358
+
2298
4359
  /**
2299
4360
  * Flag indicating if rewards are applied retroactively.
2300
4361
  */
@@ -2310,6 +4371,11 @@ export namespace RuleCreateParams {
2310
4371
  */
2311
4372
  link?: string | null;
2312
4373
 
4374
+ /**
4375
+ * Liquidity pool details.
4376
+ */
4377
+ liquidity?: Metadata.Liquidity;
4378
+
2313
4379
  /**
2314
4380
  * Maximum quantity constraint for token holding.
2315
4381
  */
@@ -2351,14 +4417,24 @@ export namespace RuleCreateParams {
2351
4417
  onlyRewardSingleTokenOwnership?: boolean | null;
2352
4418
 
2353
4419
  /**
2354
- * Order source of the order for the token sale
4420
+ * Promotional code associated with the rule.
2355
4421
  */
2356
- orderSource?: string;
4422
+ promoCode?: string;
2357
4423
 
2358
4424
  /**
2359
- * Promotional code associated with the rule.
4425
+ * URL of the CSV file containing promo codes.
2360
4426
  */
2361
- promoCode?: string;
4427
+ promoCodeCsvUrl?: string;
4428
+
4429
+ /**
4430
+ * Numbers of the promotional code to be generated.
4431
+ */
4432
+ promoCodeLength?: number | null;
4433
+
4434
+ /**
4435
+ * Type of the promotional code.
4436
+ */
4437
+ promoCodeType?: 'code' | 'csv' | 'generate';
2362
4438
 
2363
4439
  /**
2364
4440
  * Array defining ranges and corresponding rewards.
@@ -2375,11 +4451,62 @@ export namespace RuleCreateParams {
2375
4451
  */
2376
4452
  referrerReward?: number | null;
2377
4453
 
4454
+ /**
4455
+ * Loyalty currency ID of the referrer reward.
4456
+ */
4457
+ referrerRewardLoyaltyCurrencyId?: string | null;
4458
+
4459
+ /**
4460
+ * Flag indicating if the post link is required.
4461
+ */
4462
+ requirePostLink?: boolean | null;
4463
+
4464
+ /**
4465
+ * Flag indicating if media metadata is required.
4466
+ */
4467
+ requirePostMediaLink?: boolean | null;
4468
+
4469
+ /**
4470
+ * Flag indicating if the rule can also reward badges per range.
4471
+ */
4472
+ rewardBadgePerRange?: boolean;
4473
+
4474
+ /**
4475
+ * Flag indicating if the reward is rewarded by batch.
4476
+ */
4477
+ rewardByBatch?: boolean | null;
4478
+
4479
+ /**
4480
+ * Criteria to evaluate the reward.
4481
+ */
4482
+ rewardCriteria?: 'IMPRESSIONS_COUNT' | 'ELIGIBLE_POST' | null;
4483
+
4484
+ /**
4485
+ * Flag indicating if the reward is rewarded per action.
4486
+ */
4487
+ rewardPerAction?: boolean | null;
4488
+
2378
4489
  /**
2379
4490
  * Flag indicating if rewards are given per impression.
2380
4491
  */
2381
4492
  rewardPerImpression?: boolean | null;
2382
4493
 
4494
+ /**
4495
+ * Flag indicating if the rule should reward based on value of traded tokens
4496
+ * instead of count.
4497
+ */
4498
+ rewardPerValue?: boolean;
4499
+
4500
+ /**
4501
+ * Wallet address of the user can only be used if userId is not provided
4502
+ */
4503
+ royaltyAddress?: string;
4504
+
4505
+ /**
4506
+ * Royalty percentage of the item.
4507
+ */
4508
+ royaltyPercentage?: number;
4509
+
2383
4510
  /**
2384
4511
  * Currency associated with sales.
2385
4512
  */
@@ -2419,6 +4546,8 @@ export namespace RuleCreateParams {
2419
4546
  | 'Twitch'
2420
4547
  | 'X(Twitter)'
2421
4548
  | 'YouTube'
4549
+ | 'Google'
4550
+ | 'GitHub'
2422
4551
  | null;
2423
4552
 
2424
4553
  /**
@@ -2431,11 +4560,21 @@ export namespace RuleCreateParams {
2431
4560
  */
2432
4561
  socialPlatformName?: string | null;
2433
4562
 
4563
+ /**
4564
+ * ID of the Steam app.
4565
+ */
4566
+ steamAppId?: string | null;
4567
+
2434
4568
  /**
2435
4569
  * Array of streak milestones and corresponding rewards.
2436
4570
  */
2437
4571
  streakArray?: Array<Metadata.StreakArray> | null;
2438
4572
 
4573
+ /**
4574
+ * Metadata for swap loyalty rules
4575
+ */
4576
+ swap?: Metadata.Swap;
4577
+
2439
4578
  /**
2440
4579
  * ID of the Telegram channel.
2441
4580
  */
@@ -2451,6 +4590,12 @@ export namespace RuleCreateParams {
2451
4590
  */
2452
4591
  trackAllContracts?: boolean | null;
2453
4592
 
4593
+ /**
4594
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
4595
+ * completed once the progress is 100%.
4596
+ */
4597
+ trackProgress?: boolean | null;
4598
+
2454
4599
  /**
2455
4600
  * URL of the associated Twitter account.
2456
4601
  */
@@ -2494,7 +4639,28 @@ export namespace RuleCreateParams {
2494
4639
  /**
2495
4640
  * Type of wallet associated with the rule.
2496
4641
  */
2497
- walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | null;
4642
+ walletType?:
4643
+ | 'evm'
4644
+ | 'solana'
4645
+ | 'imx'
4646
+ | 'sui'
4647
+ | 'ton'
4648
+ | 'cosmos'
4649
+ | 'ultra'
4650
+ | 'agw'
4651
+ | 'flow_cadence'
4652
+ | 'substrate'
4653
+ | null;
4654
+
4655
+ /**
4656
+ * ID of the Youtube channel.
4657
+ */
4658
+ youtubeChannelId?: string | null;
4659
+
4660
+ /**
4661
+ * ID of the Youtube video.
4662
+ */
4663
+ youtubeVideoId?: string | null;
2498
4664
  }
2499
4665
 
2500
4666
  export namespace Metadata {
@@ -2513,13 +4679,17 @@ export namespace RuleCreateParams {
2513
4679
  * Blockchain network of the collection.
2514
4680
  */
2515
4681
  network?:
4682
+ | 'abstract'
4683
+ | 'abstractTestnet'
2516
4684
  | 'apechain'
2517
4685
  | 'arbitrum'
2518
4686
  | 'avalanche'
2519
4687
  | 'avalancheFuji'
2520
4688
  | 'base'
2521
4689
  | 'baseSepolia'
4690
+ | 'berachain'
2522
4691
  | 'berachainArtio'
4692
+ | 'berachainBepolia'
2523
4693
  | 'binance'
2524
4694
  | 'bscTestnet'
2525
4695
  | 'campTestnet'
@@ -2527,18 +4697,30 @@ export namespace RuleCreateParams {
2527
4697
  | 'fantomTestnet'
2528
4698
  | 'flowMainnet'
2529
4699
  | 'mainnet'
4700
+ | 'nexusTestnet'
2530
4701
  | 'optimism'
2531
4702
  | 'polygon'
2532
4703
  | 'polygon_mumbai'
2533
4704
  | 'skaleNebula'
4705
+ | 'skaleEuropa'
4706
+ | 'skaleCalypso'
2534
4707
  | 'solana'
2535
4708
  | 'sophon'
4709
+ | 'sophonTestnet'
2536
4710
  | 'sui'
2537
4711
  | 'superseed'
2538
4712
  | 'superseedSepolia'
2539
4713
  | 'vanar'
2540
4714
  | 'xai'
2541
4715
  | 'zksync'
4716
+ | 'coti'
4717
+ | 'cotiTestnet'
4718
+ | 'morph'
4719
+ | 'morphTestnet'
4720
+ | 'morphHolesky'
4721
+ | 'ultra'
4722
+ | 'ultraTestnet'
4723
+ | 'nitrograph'
2542
4724
  | 'sepolia'
2543
4725
  | 'optimism_sepolia'
2544
4726
  | 'arbitrumSepolia'
@@ -2546,7 +4728,11 @@ export namespace RuleCreateParams {
2546
4728
  | 'optimism_goerli'
2547
4729
  | 'arbitrumGoerli'
2548
4730
  | 'basecamp'
2549
- | 'abstract';
4731
+ | 'somnia'
4732
+ | 'zkverify'
4733
+ | 'polkadot'
4734
+ | 'kusama'
4735
+ | 'flow_cadence';
2550
4736
  }
2551
4737
 
2552
4738
  /**
@@ -2623,6 +4809,111 @@ export namespace RuleCreateParams {
2623
4809
  id: string;
2624
4810
  }
2625
4811
 
4812
+ /**
4813
+ * Liquidity pool details.
4814
+ */
4815
+ export interface Liquidity {
4816
+ /**
4817
+ * Calculation type of the liquidity pool.
4818
+ */
4819
+ calculationType?: 'fixed' | 'custom';
4820
+
4821
+ /**
4822
+ * Custom function to calculate the the reward amount based on the liquidity
4823
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
4824
+ * USD.
4825
+ */
4826
+ customFunction?: string;
4827
+
4828
+ /**
4829
+ * Liquidity provided per day in USD
4830
+ */
4831
+ liquidityPerDay?: number;
4832
+
4833
+ /**
4834
+ * Blockchain network of the liquidity pool.
4835
+ */
4836
+ network?:
4837
+ | 'abstract'
4838
+ | 'abstractTestnet'
4839
+ | 'apechain'
4840
+ | 'arbitrum'
4841
+ | 'avalanche'
4842
+ | 'avalancheFuji'
4843
+ | 'base'
4844
+ | 'baseSepolia'
4845
+ | 'berachain'
4846
+ | 'berachainArtio'
4847
+ | 'berachainBepolia'
4848
+ | 'binance'
4849
+ | 'bscTestnet'
4850
+ | 'campTestnet'
4851
+ | 'fantom'
4852
+ | 'fantomTestnet'
4853
+ | 'flowMainnet'
4854
+ | 'mainnet'
4855
+ | 'nexusTestnet'
4856
+ | 'optimism'
4857
+ | 'polygon'
4858
+ | 'polygon_mumbai'
4859
+ | 'skaleNebula'
4860
+ | 'skaleEuropa'
4861
+ | 'skaleCalypso'
4862
+ | 'solana'
4863
+ | 'sophon'
4864
+ | 'sophonTestnet'
4865
+ | 'sui'
4866
+ | 'superseed'
4867
+ | 'superseedSepolia'
4868
+ | 'vanar'
4869
+ | 'xai'
4870
+ | 'zksync'
4871
+ | 'coti'
4872
+ | 'cotiTestnet'
4873
+ | 'morph'
4874
+ | 'morphTestnet'
4875
+ | 'morphHolesky'
4876
+ | 'ultra'
4877
+ | 'ultraTestnet'
4878
+ | 'nitrograph'
4879
+ | 'sepolia'
4880
+ | 'optimism_sepolia'
4881
+ | 'arbitrumSepolia'
4882
+ | 'goerli'
4883
+ | 'optimism_goerli'
4884
+ | 'arbitrumGoerli'
4885
+ | 'basecamp'
4886
+ | 'somnia'
4887
+ | 'zkverify'
4888
+ | 'polkadot'
4889
+ | 'kusama'
4890
+ | 'flow_cadence';
4891
+
4892
+ /**
4893
+ * Indicates if only in-range liquidity is rewarded.
4894
+ */
4895
+ onlyRewardInRangeLiquidity?: boolean;
4896
+
4897
+ /**
4898
+ * Array of liquidity pools associated with the rule.
4899
+ */
4900
+ pools?: Array<Liquidity.Pool>;
4901
+
4902
+ /**
4903
+ * Protocol of the liquidity pool.
4904
+ */
4905
+ protocol?: string;
4906
+ }
4907
+
4908
+ export namespace Liquidity {
4909
+ export interface Pool {
4910
+ /**
4911
+ * Unique identifier of the liquidity pool.
4912
+ */
4913
+ id: string;
4914
+ }
4915
+ }
4916
+
2626
4917
  export interface Range {
2627
4918
  /**
2628
4919
  * Reward amount for this range.
@@ -2638,6 +4929,16 @@ export namespace RuleCreateParams {
2638
4929
  * Start value of the range.
2639
4930
  */
2640
4931
  startRange: number;
4932
+
4933
+ /**
4934
+ * ID of the loyalty badge for this range.
4935
+ */
4936
+ loyaltyBadgeId?: string;
4937
+
4938
+ /**
4939
+ * Amount of the loyalty multiplier for this range.
4940
+ */
4941
+ loyaltyMultiplierAmount?: number;
2641
4942
  }
2642
4943
 
2643
4944
  /**
@@ -2690,20 +4991,15 @@ export namespace RuleCreateParams {
2690
4991
  * Object containing details of the associated smart contract.
2691
4992
  */
2692
4993
  export interface SmartContract {
2693
- /**
2694
- * ABI of the smart contract.
2695
- */
2696
- abi?: string | null;
2697
-
2698
4994
  /**
2699
4995
  * Mapping of addresses for the smart contract.
2700
4996
  */
2701
4997
  addressMapping?: string | null;
2702
4998
 
2703
4999
  /**
2704
- * Array of bonus details applied to the rule.
5000
+ * Object containing details of the amount multiplier from the event.
2705
5001
  */
2706
- bonus?: Array<SmartContract.Bonus> | null;
5002
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
2707
5003
 
2708
5004
  /**
2709
5005
  * ID of the smart contract.
@@ -2715,68 +5011,31 @@ export namespace RuleCreateParams {
2715
5011
  */
2716
5012
  criteria?: 'everyEvent' | 'byParameter' | null;
2717
5013
 
2718
- /**
2719
- * Time range applied to the rule.
2720
- */
2721
- customRange?: SmartContract.CustomRange | null;
2722
-
2723
5014
  /**
2724
5015
  * Event emitted by the smart contract.
2725
5016
  */
2726
5017
  event?: string | null;
2727
5018
 
2728
- /**
2729
- * Maximum value allowed for the parameter.
2730
- */
2731
- max?: number | null;
2732
-
2733
5019
  /**
2734
5020
  * Array of parameters for the smart contract.
2735
5021
  */
2736
5022
  params?: Array<SmartContract.Param> | null;
2737
5023
 
2738
5024
  /**
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.
5025
+ * Type of the smart contract interaction.
2750
5026
  */
2751
- withMax?: boolean | null;
5027
+ type?: 'function' | 'event' | null;
2752
5028
  }
2753
5029
 
2754
5030
  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
5031
  /**
2768
- * Time range applied to the rule.
5032
+ * Object containing details of the amount multiplier from the event.
2769
5033
  */
2770
- export interface CustomRange {
2771
- /**
2772
- * End time of the custom range.
2773
- */
2774
- endsAt?: string | null;
2775
-
5034
+ export interface AmountMultiplier {
2776
5035
  /**
2777
- * Start time of the custom range.
5036
+ * Mapping of the value for the smart contract.
2778
5037
  */
2779
- startsAt?: string | null;
5038
+ valueMapping?: string | null;
2780
5039
  }
2781
5040
 
2782
5041
  export interface Param {
@@ -2820,6 +5079,33 @@ export namespace RuleCreateParams {
2820
5079
  */
2821
5080
  streakMilestone: number;
2822
5081
  }
5082
+
5083
+ /**
5084
+ * Metadata for swap loyalty rules
5085
+ */
5086
+ export interface Swap {
5087
+ provider?: 'any' | 'relay' | 'lifi';
5088
+
5089
+ relayReferrerId?: string;
5090
+
5091
+ requireCrossChainSwap?: boolean;
5092
+
5093
+ swappedToChain?: 'any' | number | string;
5094
+
5095
+ swappedToTokens?: Array<Swap.SwappedToToken>;
5096
+
5097
+ tokenMode?: 'any' | 'specific';
5098
+
5099
+ trackTokenAmount?: boolean;
5100
+ }
5101
+
5102
+ export namespace Swap {
5103
+ export interface SwappedToToken {
5104
+ address: string;
5105
+
5106
+ chainId: string;
5107
+ }
5108
+ }
2823
5109
  }
2824
5110
 
2825
5111
  export interface Collection {
@@ -2832,13 +5118,17 @@ export namespace RuleCreateParams {
2832
5118
  * Blockchain network for the collection
2833
5119
  */
2834
5120
  network:
5121
+ | 'abstract'
5122
+ | 'abstractTestnet'
2835
5123
  | 'apechain'
2836
5124
  | 'arbitrum'
2837
5125
  | 'avalanche'
2838
5126
  | 'avalancheFuji'
2839
5127
  | 'base'
2840
5128
  | 'baseSepolia'
5129
+ | 'berachain'
2841
5130
  | 'berachainArtio'
5131
+ | 'berachainBepolia'
2842
5132
  | 'binance'
2843
5133
  | 'bscTestnet'
2844
5134
  | 'campTestnet'
@@ -2846,18 +5136,30 @@ export namespace RuleCreateParams {
2846
5136
  | 'fantomTestnet'
2847
5137
  | 'flowMainnet'
2848
5138
  | 'mainnet'
5139
+ | 'nexusTestnet'
2849
5140
  | 'optimism'
2850
5141
  | 'polygon'
2851
5142
  | 'polygon_mumbai'
2852
5143
  | 'skaleNebula'
5144
+ | 'skaleEuropa'
5145
+ | 'skaleCalypso'
2853
5146
  | 'solana'
2854
5147
  | 'sophon'
5148
+ | 'sophonTestnet'
2855
5149
  | 'sui'
2856
5150
  | 'superseed'
2857
5151
  | 'superseedSepolia'
2858
5152
  | 'vanar'
2859
5153
  | 'xai'
2860
5154
  | 'zksync'
5155
+ | 'coti'
5156
+ | 'cotiTestnet'
5157
+ | 'morph'
5158
+ | 'morphTestnet'
5159
+ | 'morphHolesky'
5160
+ | 'ultra'
5161
+ | 'ultraTestnet'
5162
+ | 'nitrograph'
2861
5163
  | 'sepolia'
2862
5164
  | 'optimism_sepolia'
2863
5165
  | 'arbitrumSepolia'
@@ -2865,7 +5167,16 @@ export namespace RuleCreateParams {
2865
5167
  | 'optimism_goerli'
2866
5168
  | 'arbitrumGoerli'
2867
5169
  | 'basecamp'
2868
- | 'abstract';
5170
+ | 'somnia'
5171
+ | 'zkverify'
5172
+ | 'polkadot'
5173
+ | 'kusama'
5174
+ | 'flow_cadence';
5175
+
5176
+ /**
5177
+ * Symbol of the collection.
5178
+ */
5179
+ symbol?: string;
2869
5180
  }
2870
5181
  }
2871
5182
 
@@ -2885,10 +5196,15 @@ export interface RuleUpdateParams {
2885
5196
  */
2886
5197
  name: string;
2887
5198
 
5199
+ /**
5200
+ * The type of claim for the reward
5201
+ */
5202
+ claimType?: 'manual' | 'auto' | null;
5203
+
2888
5204
  /**
2889
5205
  * Blockchain address of the associated collection
2890
5206
  */
2891
- collectionAddress?: string;
5207
+ collectionAddress?: string | null;
2892
5208
 
2893
5209
  /**
2894
5210
  * List of associated collections
@@ -2920,11 +5236,21 @@ export interface RuleUpdateParams {
2920
5236
  */
2921
5237
  effectiveStartTime?: string | null;
2922
5238
 
5239
+ /**
5240
+ * ID of the external integration
5241
+ */
5242
+ externalIntegrationId?: string | null;
5243
+
2923
5244
  /**
2924
5245
  * Frequency of the rule execution
2925
5246
  */
2926
5247
  frequency?: 'none' | 'once' | 'daily' | 'weekly' | 'monthly' | 'immediately';
2927
5248
 
5249
+ /**
5250
+ * Optional stratus function id for the rule
5251
+ */
5252
+ functionId?: string | null;
5253
+
2928
5254
  /**
2929
5255
  * Whether to hide this rule in the user interface
2930
5256
  */
@@ -2933,17 +5259,29 @@ export interface RuleUpdateParams {
2933
5259
  /**
2934
5260
  * Time interval for recurring rule execution
2935
5261
  */
2936
- interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | null;
5262
+ interval?: 'daily' | 'weekly' | 'monthly' | 'once' | 'custom' | 'every_message' | 'unlimited' | null;
2937
5263
 
2938
5264
  /**
2939
5265
  * Whether this rule is required for participation
2940
5266
  */
2941
- isRequired?: boolean;
5267
+ isRequired?: boolean;
5268
+
5269
+ /**
5270
+ * ID of the rule group section to associate with the rule
5271
+ */
5272
+ loyaltyRuleGroupId?: (string & {}) | 'no-section' | null;
5273
+
5274
+ /**
5275
+ * The interval for the max amount. Available for the smart contract and external
5276
+ * rules.
5277
+ */
5278
+ maxAmountInterval?: 'daily' | 'weekly' | 'monthly' | 'lifetime' | null;
2942
5279
 
2943
5280
  /**
2944
- * ID of the rule group section to associate with the rule
5281
+ * The maximum amount of points a user can earn per interval. Available for the
5282
+ * smart contract and external rules.
2945
5283
  */
2946
- loyaltyRuleGroupId?: (string & {}) | 'no-section' | null;
5284
+ maxAmountPerInterval?: number | null;
2947
5285
 
2948
5286
  /**
2949
5287
  * URL of the media to be displayed
@@ -2959,13 +5297,17 @@ export interface RuleUpdateParams {
2959
5297
  * Blockchain network where the rule will apply
2960
5298
  */
2961
5299
  network?:
5300
+ | 'abstract'
5301
+ | 'abstractTestnet'
2962
5302
  | 'apechain'
2963
5303
  | 'arbitrum'
2964
5304
  | 'avalanche'
2965
5305
  | 'avalancheFuji'
2966
5306
  | 'base'
2967
5307
  | 'baseSepolia'
5308
+ | 'berachain'
2968
5309
  | 'berachainArtio'
5310
+ | 'berachainBepolia'
2969
5311
  | 'binance'
2970
5312
  | 'bscTestnet'
2971
5313
  | 'campTestnet'
@@ -2973,18 +5315,30 @@ export interface RuleUpdateParams {
2973
5315
  | 'fantomTestnet'
2974
5316
  | 'flowMainnet'
2975
5317
  | 'mainnet'
5318
+ | 'nexusTestnet'
2976
5319
  | 'optimism'
2977
5320
  | 'polygon'
2978
5321
  | 'polygon_mumbai'
2979
5322
  | 'skaleNebula'
5323
+ | 'skaleEuropa'
5324
+ | 'skaleCalypso'
2980
5325
  | 'solana'
2981
5326
  | 'sophon'
5327
+ | 'sophonTestnet'
2982
5328
  | 'sui'
2983
5329
  | 'superseed'
2984
5330
  | 'superseedSepolia'
2985
5331
  | 'vanar'
2986
5332
  | 'xai'
2987
5333
  | 'zksync'
5334
+ | 'coti'
5335
+ | 'cotiTestnet'
5336
+ | 'morph'
5337
+ | 'morphTestnet'
5338
+ | 'morphHolesky'
5339
+ | 'ultra'
5340
+ | 'ultraTestnet'
5341
+ | 'nitrograph'
2988
5342
  | 'sepolia'
2989
5343
  | 'optimism_sepolia'
2990
5344
  | 'arbitrumSepolia'
@@ -2992,17 +5346,36 @@ export interface RuleUpdateParams {
2992
5346
  | 'optimism_goerli'
2993
5347
  | 'arbitrumGoerli'
2994
5348
  | 'basecamp'
2995
- | 'abstract';
5349
+ | 'somnia'
5350
+ | 'zkverify'
5351
+ | 'polkadot'
5352
+ | 'kusama'
5353
+ | 'flow_cadence';
2996
5354
 
2997
5355
  /**
2998
5356
  * ID for associated OAuth credentials
2999
5357
  */
3000
5358
  oauthCredentialsId?: string | null;
3001
5359
 
5360
+ /**
5361
+ * The lifetime of the reward
5362
+ */
5363
+ rewardLifetime?: 'permanent' | 'dynamic' | null;
5364
+
3002
5365
  /**
3003
5366
  * Type of reward issued by this rule
3004
5367
  */
3005
- rewardType?: 'points' | 'multiplier';
5368
+ rewardType?: 'points' | 'multiplier' | 'badge';
5369
+
5370
+ /**
5371
+ * URL of the Shopify store
5372
+ */
5373
+ shopifyStoreUrl?: string | null;
5374
+
5375
+ /**
5376
+ * Whether to show this rule before the start time
5377
+ */
5378
+ showBeforeStart?: boolean;
3006
5379
 
3007
5380
  /**
3008
5381
  * Start time for the loyalty rule
@@ -3010,9 +5383,9 @@ export interface RuleUpdateParams {
3010
5383
  startTime?: string | null;
3011
5384
 
3012
5385
  /**
3013
- * Optional subscription identifier for the rule
5386
+ * Optional stratus subscription id for the rule
3014
5387
  */
3015
- subscriptionIdentifier?: string | null;
5388
+ subscriptionId?: string | null;
3016
5389
  }
3017
5390
 
3018
5391
  export namespace RuleUpdateParams {
@@ -3026,13 +5399,17 @@ export namespace RuleUpdateParams {
3026
5399
  * Blockchain network for the collection
3027
5400
  */
3028
5401
  network:
5402
+ | 'abstract'
5403
+ | 'abstractTestnet'
3029
5404
  | 'apechain'
3030
5405
  | 'arbitrum'
3031
5406
  | 'avalanche'
3032
5407
  | 'avalancheFuji'
3033
5408
  | 'base'
3034
5409
  | 'baseSepolia'
5410
+ | 'berachain'
3035
5411
  | 'berachainArtio'
5412
+ | 'berachainBepolia'
3036
5413
  | 'binance'
3037
5414
  | 'bscTestnet'
3038
5415
  | 'campTestnet'
@@ -3040,18 +5417,30 @@ export namespace RuleUpdateParams {
3040
5417
  | 'fantomTestnet'
3041
5418
  | 'flowMainnet'
3042
5419
  | 'mainnet'
5420
+ | 'nexusTestnet'
3043
5421
  | 'optimism'
3044
5422
  | 'polygon'
3045
5423
  | 'polygon_mumbai'
3046
5424
  | 'skaleNebula'
5425
+ | 'skaleEuropa'
5426
+ | 'skaleCalypso'
3047
5427
  | 'solana'
3048
5428
  | 'sophon'
5429
+ | 'sophonTestnet'
3049
5430
  | 'sui'
3050
5431
  | 'superseed'
3051
5432
  | 'superseedSepolia'
3052
5433
  | 'vanar'
3053
5434
  | 'xai'
3054
5435
  | 'zksync'
5436
+ | 'coti'
5437
+ | 'cotiTestnet'
5438
+ | 'morph'
5439
+ | 'morphTestnet'
5440
+ | 'morphHolesky'
5441
+ | 'ultra'
5442
+ | 'ultraTestnet'
5443
+ | 'nitrograph'
3055
5444
  | 'sepolia'
3056
5445
  | 'optimism_sepolia'
3057
5446
  | 'arbitrumSepolia'
@@ -3059,13 +5448,27 @@ export namespace RuleUpdateParams {
3059
5448
  | 'optimism_goerli'
3060
5449
  | 'arbitrumGoerli'
3061
5450
  | 'basecamp'
3062
- | 'abstract';
5451
+ | 'somnia'
5452
+ | 'zkverify'
5453
+ | 'polkadot'
5454
+ | 'kusama'
5455
+ | 'flow_cadence';
5456
+
5457
+ /**
5458
+ * Symbol of the collection.
5459
+ */
5460
+ symbol?: string;
3063
5461
  }
3064
5462
 
3065
5463
  /**
3066
5464
  * Additional metadata for the loyalty rule
3067
5465
  */
3068
5466
  export interface Metadata {
5467
+ /**
5468
+ * Number of tokens per batch.
5469
+ */
5470
+ batchSize?: number | null;
5471
+
3069
5472
  /**
3070
5473
  * Text displayed on the action button.
3071
5474
  */
@@ -3089,7 +5492,7 @@ export namespace RuleUpdateParams {
3089
5492
  /**
3090
5493
  * Text to check in the Twitter post, username, or bio.
3091
5494
  */
3092
- checkText?: string | null;
5495
+ checkText?: string | Array<string> | null;
3093
5496
 
3094
5497
  /**
3095
5498
  * Array of collections associated with the rule.
@@ -3099,7 +5502,12 @@ export namespace RuleUpdateParams {
3099
5502
  /**
3100
5503
  * Conditions for completing the profile.
3101
5504
  */
3102
- completeProfileConditions?: Record<string, boolean> | null;
5505
+ completeProfileConditions?: { [key: string]: boolean } | null;
5506
+
5507
+ /**
5508
+ * Description of the external rule condition (only for external rules)
5509
+ */
5510
+ conditionDescription?: string;
3103
5511
 
3104
5512
  /**
3105
5513
  * Object containing details for the call-to-action.
@@ -3111,6 +5519,11 @@ export namespace RuleUpdateParams {
3111
5519
  */
3112
5520
  customRewardsApiKey?: string;
3113
5521
 
5522
+ /**
5523
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
5524
+ */
5525
+ directRpc?: boolean;
5526
+
3114
5527
  /**
3115
5528
  * Array of Discord servers, channels, and roles to join.
3116
5529
  */
@@ -3136,6 +5549,11 @@ export namespace RuleUpdateParams {
3136
5549
  */
3137
5550
  enableVerifiedMultiplier?: boolean;
3138
5551
 
5552
+ /**
5553
+ * Type of ERC20 token for the loyalty rule.
5554
+ */
5555
+ erc20Type?: 'erc20' | 'native';
5556
+
3139
5557
  /**
3140
5558
  * Fill source of the order for the token sale
3141
5559
  */
@@ -3146,6 +5564,11 @@ export namespace RuleUpdateParams {
3146
5564
  */
3147
5565
  firstReferralReward?: number | null;
3148
5566
 
5567
+ /**
5568
+ * URL of the GitHub repository to check for star.
5569
+ */
5570
+ githubRepoUrl?: string | null;
5571
+
3149
5572
  /**
3150
5573
  * Flag indicating whether the fill source is included.
3151
5574
  */
@@ -3156,11 +5579,6 @@ export namespace RuleUpdateParams {
3156
5579
  */
3157
5580
  hasNeverSold?: boolean;
3158
5581
 
3159
- /**
3160
- * Flag indicating whether the order source is included.
3161
- */
3162
- hasOrderSource?: boolean;
3163
-
3164
5582
  /**
3165
5583
  * Indicates if the full royalty has been paid for items.
3166
5584
  */
@@ -3181,11 +5599,21 @@ export namespace RuleUpdateParams {
3181
5599
  */
3182
5600
  imageUrl?: string | null;
3183
5601
 
5602
+ /**
5603
+ * If enabled, the first transaction done on the platform will complete this rule
5604
+ */
5605
+ isCheckInOnEveryTxn?: boolean;
5606
+
3184
5607
  /**
3185
5608
  * Indicates if the multiplier has been applied to rewards.
3186
5609
  */
3187
5610
  isMultiplierApplied?: boolean;
3188
5611
 
5612
+ /**
5613
+ * Flag indicating if the rule is restricted to new users.
5614
+ */
5615
+ isRestrictedToNewUsers?: boolean;
5616
+
3189
5617
  /**
3190
5618
  * Flag indicating if rewards are applied retroactively.
3191
5619
  */
@@ -3201,6 +5629,11 @@ export namespace RuleUpdateParams {
3201
5629
  */
3202
5630
  link?: string | null;
3203
5631
 
5632
+ /**
5633
+ * Liquidity pool details.
5634
+ */
5635
+ liquidity?: Metadata.Liquidity;
5636
+
3204
5637
  /**
3205
5638
  * Maximum quantity constraint for token holding.
3206
5639
  */
@@ -3242,14 +5675,24 @@ export namespace RuleUpdateParams {
3242
5675
  onlyRewardSingleTokenOwnership?: boolean | null;
3243
5676
 
3244
5677
  /**
3245
- * Order source of the order for the token sale
5678
+ * Promotional code associated with the rule.
3246
5679
  */
3247
- orderSource?: string;
5680
+ promoCode?: string;
3248
5681
 
3249
5682
  /**
3250
- * Promotional code associated with the rule.
5683
+ * URL of the CSV file containing promo codes.
3251
5684
  */
3252
- promoCode?: string;
5685
+ promoCodeCsvUrl?: string;
5686
+
5687
+ /**
5688
+ * Numbers of the promotional code to be generated.
5689
+ */
5690
+ promoCodeLength?: number | null;
5691
+
5692
+ /**
5693
+ * Type of the promotional code.
5694
+ */
5695
+ promoCodeType?: 'code' | 'csv' | 'generate';
3253
5696
 
3254
5697
  /**
3255
5698
  * Array defining ranges and corresponding rewards.
@@ -3266,11 +5709,62 @@ export namespace RuleUpdateParams {
3266
5709
  */
3267
5710
  referrerReward?: number | null;
3268
5711
 
5712
+ /**
5713
+ * Loyalty currency ID of the referrer reward.
5714
+ */
5715
+ referrerRewardLoyaltyCurrencyId?: string | null;
5716
+
5717
+ /**
5718
+ * Flag indicating if the post link is required.
5719
+ */
5720
+ requirePostLink?: boolean | null;
5721
+
5722
+ /**
5723
+ * Flag indicating if media metadata is required.
5724
+ */
5725
+ requirePostMediaLink?: boolean | null;
5726
+
5727
+ /**
5728
+ * Flag indicating if the rule can also reward badges per range.
5729
+ */
5730
+ rewardBadgePerRange?: boolean;
5731
+
5732
+ /**
5733
+ * Flag indicating if the reward is rewarded by batch.
5734
+ */
5735
+ rewardByBatch?: boolean | null;
5736
+
5737
+ /**
5738
+ * Criteria to evaluate the reward.
5739
+ */
5740
+ rewardCriteria?: 'IMPRESSIONS_COUNT' | 'ELIGIBLE_POST' | null;
5741
+
5742
+ /**
5743
+ * Flag indicating if the reward is rewarded per action.
5744
+ */
5745
+ rewardPerAction?: boolean | null;
5746
+
3269
5747
  /**
3270
5748
  * Flag indicating if rewards are given per impression.
3271
5749
  */
3272
5750
  rewardPerImpression?: boolean | null;
3273
5751
 
5752
+ /**
5753
+ * Flag indicating if the rule should reward based on value of traded tokens
5754
+ * instead of count.
5755
+ */
5756
+ rewardPerValue?: boolean;
5757
+
5758
+ /**
5759
+ * Wallet address of the user can only be used if userId is not provided
5760
+ */
5761
+ royaltyAddress?: string;
5762
+
5763
+ /**
5764
+ * Royalty percentage of the item.
5765
+ */
5766
+ royaltyPercentage?: number;
5767
+
3274
5768
  /**
3275
5769
  * Currency associated with sales.
3276
5770
  */
@@ -3310,6 +5804,8 @@ export namespace RuleUpdateParams {
3310
5804
  | 'Twitch'
3311
5805
  | 'X(Twitter)'
3312
5806
  | 'YouTube'
5807
+ | 'Google'
5808
+ | 'GitHub'
3313
5809
  | null;
3314
5810
 
3315
5811
  /**
@@ -3322,11 +5818,21 @@ export namespace RuleUpdateParams {
3322
5818
  */
3323
5819
  socialPlatformName?: string | null;
3324
5820
 
5821
+ /**
5822
+ * ID of the Steam app.
5823
+ */
5824
+ steamAppId?: string | null;
5825
+
3325
5826
  /**
3326
5827
  * Array of streak milestones and corresponding rewards.
3327
5828
  */
3328
5829
  streakArray?: Array<Metadata.StreakArray> | null;
3329
5830
 
5831
+ /**
5832
+ * Metadata for swap loyalty rules
5833
+ */
5834
+ swap?: Metadata.Swap;
5835
+
3330
5836
  /**
3331
5837
  * ID of the Telegram channel.
3332
5838
  */
@@ -3342,6 +5848,12 @@ export namespace RuleUpdateParams {
3342
5848
  */
3343
5849
  trackAllContracts?: boolean | null;
3344
5850
 
5851
+ /**
5852
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
5853
+ * completed once the progress is 100%.
5854
+ */
5855
+ trackProgress?: boolean | null;
5856
+
3345
5857
  /**
3346
5858
  * URL of the associated Twitter account.
3347
5859
  */
@@ -3385,7 +5897,28 @@ export namespace RuleUpdateParams {
3385
5897
  /**
3386
5898
  * Type of wallet associated with the rule.
3387
5899
  */
3388
- walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | null;
5900
+ walletType?:
5901
+ | 'evm'
5902
+ | 'solana'
5903
+ | 'imx'
5904
+ | 'sui'
5905
+ | 'ton'
5906
+ | 'cosmos'
5907
+ | 'ultra'
5908
+ | 'agw'
5909
+ | 'flow_cadence'
5910
+ | 'substrate'
5911
+ | null;
5912
+
5913
+ /**
5914
+ * ID of the Youtube channel.
5915
+ */
5916
+ youtubeChannelId?: string | null;
5917
+
5918
+ /**
5919
+ * ID of the Youtube video.
5920
+ */
5921
+ youtubeVideoId?: string | null;
3389
5922
  }
3390
5923
 
3391
5924
  export namespace Metadata {
@@ -3404,13 +5937,17 @@ export namespace RuleUpdateParams {
3404
5937
  * Blockchain network of the collection.
3405
5938
  */
3406
5939
  network?:
5940
+ | 'abstract'
5941
+ | 'abstractTestnet'
3407
5942
  | 'apechain'
3408
5943
  | 'arbitrum'
3409
5944
  | 'avalanche'
3410
5945
  | 'avalancheFuji'
3411
5946
  | 'base'
3412
5947
  | 'baseSepolia'
5948
+ | 'berachain'
3413
5949
  | 'berachainArtio'
5950
+ | 'berachainBepolia'
3414
5951
  | 'binance'
3415
5952
  | 'bscTestnet'
3416
5953
  | 'campTestnet'
@@ -3418,18 +5955,30 @@ export namespace RuleUpdateParams {
3418
5955
  | 'fantomTestnet'
3419
5956
  | 'flowMainnet'
3420
5957
  | 'mainnet'
5958
+ | 'nexusTestnet'
3421
5959
  | 'optimism'
3422
5960
  | 'polygon'
3423
5961
  | 'polygon_mumbai'
3424
5962
  | 'skaleNebula'
5963
+ | 'skaleEuropa'
5964
+ | 'skaleCalypso'
3425
5965
  | 'solana'
3426
5966
  | 'sophon'
5967
+ | 'sophonTestnet'
3427
5968
  | 'sui'
3428
5969
  | 'superseed'
3429
5970
  | 'superseedSepolia'
3430
5971
  | 'vanar'
3431
5972
  | 'xai'
3432
5973
  | 'zksync'
5974
+ | 'coti'
5975
+ | 'cotiTestnet'
5976
+ | 'morph'
5977
+ | 'morphTestnet'
5978
+ | 'morphHolesky'
5979
+ | 'ultra'
5980
+ | 'ultraTestnet'
5981
+ | 'nitrograph'
3433
5982
  | 'sepolia'
3434
5983
  | 'optimism_sepolia'
3435
5984
  | 'arbitrumSepolia'
@@ -3437,7 +5986,11 @@ export namespace RuleUpdateParams {
3437
5986
  | 'optimism_goerli'
3438
5987
  | 'arbitrumGoerli'
3439
5988
  | 'basecamp'
3440
- | 'abstract';
5989
+ | 'somnia'
5990
+ | 'zkverify'
5991
+ | 'polkadot'
5992
+ | 'kusama'
5993
+ | 'flow_cadence';
3441
5994
  }
3442
5995
 
3443
5996
  /**
@@ -3514,6 +6067,111 @@ export namespace RuleUpdateParams {
3514
6067
  id: string;
3515
6068
  }
3516
6069
 
6070
+ /**
6071
+ * Liquidity pool details.
6072
+ */
6073
+ export interface Liquidity {
6074
+ /**
6075
+ * Calculation type of the liquidity pool.
6076
+ */
6077
+ calculationType?: 'fixed' | 'custom';
6078
+
6079
+ /**
6080
+ * Custom function to calculate the the reward amount based on the liquidity
6081
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
6082
+ * USD.
6083
+ */
6084
+ customFunction?: string;
6085
+
6086
+ /**
6087
+ * Liquidity provided per day in USD
6088
+ */
6089
+ liquidityPerDay?: number;
6090
+
6091
+ /**
6092
+ * Blockchain network of the liquidity pool.
6093
+ */
6094
+ network?:
6095
+ | 'abstract'
6096
+ | 'abstractTestnet'
6097
+ | 'apechain'
6098
+ | 'arbitrum'
6099
+ | 'avalanche'
6100
+ | 'avalancheFuji'
6101
+ | 'base'
6102
+ | 'baseSepolia'
6103
+ | 'berachain'
6104
+ | 'berachainArtio'
6105
+ | 'berachainBepolia'
6106
+ | 'binance'
6107
+ | 'bscTestnet'
6108
+ | 'campTestnet'
6109
+ | 'fantom'
6110
+ | 'fantomTestnet'
6111
+ | 'flowMainnet'
6112
+ | 'mainnet'
6113
+ | 'nexusTestnet'
6114
+ | 'optimism'
6115
+ | 'polygon'
6116
+ | 'polygon_mumbai'
6117
+ | 'skaleNebula'
6118
+ | 'skaleEuropa'
6119
+ | 'skaleCalypso'
6120
+ | 'solana'
6121
+ | 'sophon'
6122
+ | 'sophonTestnet'
6123
+ | 'sui'
6124
+ | 'superseed'
6125
+ | 'superseedSepolia'
6126
+ | 'vanar'
6127
+ | 'xai'
6128
+ | 'zksync'
6129
+ | 'coti'
6130
+ | 'cotiTestnet'
6131
+ | 'morph'
6132
+ | 'morphTestnet'
6133
+ | 'morphHolesky'
6134
+ | 'ultra'
6135
+ | 'ultraTestnet'
6136
+ | 'nitrograph'
6137
+ | 'sepolia'
6138
+ | 'optimism_sepolia'
6139
+ | 'arbitrumSepolia'
6140
+ | 'goerli'
6141
+ | 'optimism_goerli'
6142
+ | 'arbitrumGoerli'
6143
+ | 'basecamp'
6144
+ | 'somnia'
6145
+ | 'zkverify'
6146
+ | 'polkadot'
6147
+ | 'kusama'
6148
+ | 'flow_cadence';
6149
+
6150
+ /**
6151
+ * Indicates if only in-range liquidity is rewarded.
6152
+ */
6153
+ onlyRewardInRangeLiquidity?: boolean;
6154
+
6155
+ /**
6156
+ * Array of liquidity pools associated with the rule.
6157
+ */
6158
+ pools?: Array<Liquidity.Pool>;
6159
+
6160
+ /**
6161
+ * Protocol of the liquidity pool.
6162
+ */
6163
+ protocol?: string;
6164
+ }
6165
+
6166
+ export namespace Liquidity {
6167
+ export interface Pool {
6168
+ /**
6169
+ * Unique identifier of the liquidity pool.
6170
+ */
6171
+ id: string;
6172
+ }
6173
+ }
6174
+
3517
6175
  export interface Range {
3518
6176
  /**
3519
6177
  * Reward amount for this range.
@@ -3529,6 +6187,16 @@ export namespace RuleUpdateParams {
3529
6187
  * Start value of the range.
3530
6188
  */
3531
6189
  startRange: number;
6190
+
6191
+ /**
6192
+ * ID of the loyalty badge for this range.
6193
+ */
6194
+ loyaltyBadgeId?: string;
6195
+
6196
+ /**
6197
+ * Amount of the loyalty multiplier for this range.
6198
+ */
6199
+ loyaltyMultiplierAmount?: number;
3532
6200
  }
3533
6201
 
3534
6202
  /**
@@ -3581,20 +6249,15 @@ export namespace RuleUpdateParams {
3581
6249
  * Object containing details of the associated smart contract.
3582
6250
  */
3583
6251
  export interface SmartContract {
3584
- /**
3585
- * ABI of the smart contract.
3586
- */
3587
- abi?: string | null;
3588
-
3589
6252
  /**
3590
6253
  * Mapping of addresses for the smart contract.
3591
6254
  */
3592
6255
  addressMapping?: string | null;
3593
6256
 
3594
6257
  /**
3595
- * Array of bonus details applied to the rule.
6258
+ * Object containing details of the amount multiplier from the event.
3596
6259
  */
3597
- bonus?: Array<SmartContract.Bonus> | null;
6260
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
3598
6261
 
3599
6262
  /**
3600
6263
  * ID of the smart contract.
@@ -3606,68 +6269,31 @@ export namespace RuleUpdateParams {
3606
6269
  */
3607
6270
  criteria?: 'everyEvent' | 'byParameter' | null;
3608
6271
 
3609
- /**
3610
- * Time range applied to the rule.
3611
- */
3612
- customRange?: SmartContract.CustomRange | null;
3613
-
3614
6272
  /**
3615
6273
  * Event emitted by the smart contract.
3616
6274
  */
3617
6275
  event?: string | null;
3618
6276
 
3619
- /**
3620
- * Maximum value allowed for the parameter.
3621
- */
3622
- max?: number | null;
3623
-
3624
6277
  /**
3625
6278
  * Array of parameters for the smart contract.
3626
6279
  */
3627
6280
  params?: Array<SmartContract.Param> | null;
3628
6281
 
3629
6282
  /**
3630
- * Flag indicating if a bonus is applied.
3631
- */
3632
- withBonus?: boolean | null;
3633
-
3634
- /**
3635
- * Flag indicating if a custom range is applied.
3636
- */
3637
- withCustomRange?: boolean | null;
3638
-
3639
- /**
3640
- * Flag indicating if a maximum limit is applied.
6283
+ * Type of the smart contract interaction.
3641
6284
  */
3642
- withMax?: boolean | null;
6285
+ type?: 'function' | 'event' | null;
3643
6286
  }
3644
6287
 
3645
6288
  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
6289
  /**
3659
- * Time range applied to the rule.
6290
+ * Object containing details of the amount multiplier from the event.
3660
6291
  */
3661
- export interface CustomRange {
3662
- /**
3663
- * End time of the custom range.
3664
- */
3665
- endsAt?: string | null;
3666
-
6292
+ export interface AmountMultiplier {
3667
6293
  /**
3668
- * Start time of the custom range.
6294
+ * Mapping of the value for the smart contract.
3669
6295
  */
3670
- startsAt?: string | null;
6296
+ valueMapping?: string | null;
3671
6297
  }
3672
6298
 
3673
6299
  export interface Param {
@@ -3711,17 +6337,71 @@ export namespace RuleUpdateParams {
3711
6337
  */
3712
6338
  streakMilestone: number;
3713
6339
  }
6340
+
6341
+ /**
6342
+ * Metadata for swap loyalty rules
6343
+ */
6344
+ export interface Swap {
6345
+ provider?: 'any' | 'relay' | 'lifi';
6346
+
6347
+ relayReferrerId?: string;
6348
+
6349
+ requireCrossChainSwap?: boolean;
6350
+
6351
+ swappedToChain?: 'any' | number | string;
6352
+
6353
+ swappedToTokens?: Array<Swap.SwappedToToken>;
6354
+
6355
+ tokenMode?: 'any' | 'specific';
6356
+
6357
+ trackTokenAmount?: boolean;
6358
+ }
6359
+
6360
+ export namespace Swap {
6361
+ export interface SwappedToToken {
6362
+ address: string;
6363
+
6364
+ chainId: string;
6365
+ }
6366
+ }
3714
6367
  }
3715
6368
  }
3716
6369
 
3717
6370
  export interface RuleListParams {
6371
+ /**
6372
+ * IDs of the users to filter results by
6373
+ */
6374
+ allotedToUserId?: string | Array<string>;
6375
+
6376
+ /**
6377
+ * ID of the user group to filter results by
6378
+ */
6379
+ allotedUserGroupId?: string;
6380
+
3718
6381
  /**
3719
6382
  * Address of the collection to filter by
3720
6383
  */
3721
6384
  collectionAddress?: string;
3722
6385
 
3723
6386
  /**
3724
- * Maximum number of records to return (max 1000)
6387
+ * Whether to include deleted/archived records
6388
+ */
6389
+ includeDeleted?: boolean | null;
6390
+
6391
+ /**
6392
+ * If true this will only return active rules, the rules for which the startTime is
6393
+ * in the past and the endTime is in the future
6394
+ */
6395
+ isActive?: 'true' | 'false';
6396
+
6397
+ /**
6398
+ * If true this will only return special rules, special rules are the rules that
6399
+ * are used for anti sybil as honey pot
6400
+ */
6401
+ isSpecial?: 'true' | 'false';
6402
+
6403
+ /**
6404
+ * Maximum number of records to return (max 100)
3725
6405
  */
3726
6406
  limit?: number;
3727
6407
 
@@ -3751,6 +6431,13 @@ export interface RuleListParams {
3751
6431
  websiteId?: string;
3752
6432
  }
3753
6433
 
6434
+ export interface RuleDeleteParams {
6435
+ /**
6436
+ * Whether to debit loyalty points
6437
+ */
6438
+ debitLoyaltyPoints?: string;
6439
+ }
6440
+
3754
6441
  export interface RuleCompleteParams {
3755
6442
  /**
3756
6443
  * Override amount for the reward (rounded to nearest whole number). This will
@@ -3759,15 +6446,30 @@ export interface RuleCompleteParams {
3759
6446
  amount?: number | null;
3760
6447
 
3761
6448
  /**
3762
- * Link to the comment made by user
6449
+ * Link to the post/comment made by user
6450
+ */
6451
+ contentUrl?: string;
6452
+
6453
+ /**
6454
+ * Unique key to ensure idempotent requests.
3763
6455
  */
3764
- commentLink?: string;
6456
+ idempotencyKey?: string;
3765
6457
 
3766
6458
  /**
3767
6459
  * ID of the choice selected by the user
3768
6460
  */
3769
6461
  loyaltyQuestionChoiceId?: string;
3770
6462
 
6463
+ /**
6464
+ * Value to compare with the range
6465
+ */
6466
+ rangeValue?: number | null;
6467
+
6468
+ /**
6469
+ * Flag indicating if the chain or required check should be skipped.
6470
+ */
6471
+ skipChainOrRequiredCheck?: boolean;
6472
+
3771
6473
  /**
3772
6474
  * Unique identifier for the user
3773
6475
  */
@@ -3780,7 +6482,7 @@ export interface RuleCompleteParams {
3780
6482
 
3781
6483
  /**
3782
6484
  * Flag indicating if only verification is required, this will not create a
3783
- * transaction and reward the user
6485
+ * transaction and reward the user.
3784
6486
  */
3785
6487
  verifyOnly?: string;
3786
6488
 
@@ -3791,11 +6493,30 @@ export interface RuleCompleteParams {
3791
6493
  }
3792
6494
 
3793
6495
  export interface RuleGetStatusParams {
3794
- organizationId: string;
6496
+ /**
6497
+ * Number of items to return
6498
+ */
6499
+ limit?: number | null;
3795
6500
 
3796
- websiteId: string;
6501
+ /**
6502
+ * Unique identifier for the loyalty rule[s]
6503
+ */
6504
+ loyaltyRuleId?: string | Array<string>;
6505
+
6506
+ organizationId?: string;
6507
+
6508
+ /**
6509
+ * Starting after item
6510
+ */
6511
+ startingAfter?: string;
6512
+
6513
+ userGroupId?: string;
3797
6514
 
3798
6515
  userId?: string;
6516
+
6517
+ walletAddress?: string;
6518
+
6519
+ websiteId?: string;
3799
6520
  }
3800
6521
 
3801
6522
  export declare namespace Rules {
@@ -3809,6 +6530,7 @@ export declare namespace Rules {
3809
6530
  type RuleCreateParams as RuleCreateParams,
3810
6531
  type RuleUpdateParams as RuleUpdateParams,
3811
6532
  type RuleListParams as RuleListParams,
6533
+ type RuleDeleteParams as RuleDeleteParams,
3812
6534
  type RuleCompleteParams as RuleCompleteParams,
3813
6535
  type RuleGetStatusParams as RuleGetStatusParams,
3814
6536
  };