@snagsolutions/sdk 0.1.0-alpha.15 → 0.1.0-alpha.151

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 (426) hide show
  1. package/CHANGELOG.md +1261 -45
  2. package/README.md +17 -29
  3. package/_shims/index.d.ts +2 -0
  4. package/_shims/index.js +5 -1
  5. package/_shims/index.mjs +5 -1
  6. package/core.d.ts +19 -5
  7. package/core.d.ts.map +1 -1
  8. package/core.js +26 -17
  9. package/core.js.map +1 -1
  10. package/core.mjs +27 -18
  11. package/core.mjs.map +1 -1
  12. package/index.d.mts +30 -6
  13. package/index.d.ts +30 -6
  14. package/index.d.ts.map +1 -1
  15. package/index.js +36 -11
  16. package/index.js.map +1 -1
  17. package/index.mjs +36 -11
  18. package/index.mjs.map +1 -1
  19. package/package.json +4 -5
  20. package/resource.d.ts +1 -1
  21. package/resource.d.ts.map +1 -1
  22. package/resource.js.map +1 -1
  23. package/resource.mjs.map +1 -1
  24. package/resources/assets.d.ts +64 -0
  25. package/resources/assets.d.ts.map +1 -0
  26. package/resources/assets.js +25 -0
  27. package/resources/assets.js.map +1 -0
  28. package/resources/assets.mjs +21 -0
  29. package/resources/assets.mjs.map +1 -0
  30. package/resources/auctions/auctions.d.ts +285 -0
  31. package/resources/auctions/auctions.d.ts.map +1 -0
  32. package/resources/auctions/auctions.js +76 -0
  33. package/resources/auctions/auctions.js.map +1 -0
  34. package/resources/auctions/auctions.mjs +49 -0
  35. package/resources/auctions/auctions.mjs.map +1 -0
  36. package/resources/auctions/index.d.ts +3 -0
  37. package/resources/auctions/index.d.ts.map +1 -0
  38. package/resources/auctions/index.js +9 -0
  39. package/resources/auctions/index.js.map +1 -0
  40. package/resources/auctions/index.mjs +4 -0
  41. package/resources/auctions/index.mjs.map +1 -0
  42. package/resources/auctions/website-user-attributes/index.d.ts +3 -0
  43. package/resources/auctions/website-user-attributes/index.d.ts.map +1 -0
  44. package/resources/auctions/website-user-attributes/index.js +9 -0
  45. package/resources/auctions/website-user-attributes/index.js.map +1 -0
  46. package/resources/auctions/website-user-attributes/index.mjs +4 -0
  47. package/resources/auctions/website-user-attributes/index.mjs.map +1 -0
  48. package/resources/auctions/website-user-attributes/values.d.ts +122 -0
  49. package/resources/auctions/website-user-attributes/values.d.ts.map +1 -0
  50. package/resources/auctions/website-user-attributes/values.js +49 -0
  51. package/resources/auctions/website-user-attributes/values.js.map +1 -0
  52. package/resources/auctions/website-user-attributes/values.mjs +45 -0
  53. package/resources/auctions/website-user-attributes/values.mjs.map +1 -0
  54. package/resources/auctions/website-user-attributes/website-user-attributes.d.ts +132 -0
  55. package/resources/auctions/website-user-attributes/website-user-attributes.d.ts.map +1 -0
  56. package/resources/auctions/website-user-attributes/website-user-attributes.js +76 -0
  57. package/resources/auctions/website-user-attributes/website-user-attributes.js.map +1 -0
  58. package/resources/auctions/website-user-attributes/website-user-attributes.mjs +49 -0
  59. package/resources/auctions/website-user-attributes/website-user-attributes.mjs.map +1 -0
  60. package/resources/auctions/website-user-attributes.d.ts +2 -0
  61. package/resources/auctions/website-user-attributes.d.ts.map +1 -0
  62. package/resources/auctions/website-user-attributes.js +19 -0
  63. package/resources/auctions/website-user-attributes.js.map +1 -0
  64. package/resources/auctions/website-user-attributes.mjs +3 -0
  65. package/resources/auctions/website-user-attributes.mjs.map +1 -0
  66. package/resources/auctions.d.ts +2 -0
  67. package/resources/auctions.d.ts.map +1 -0
  68. package/resources/{api.js → auctions.js} +2 -2
  69. package/resources/auctions.js.map +1 -0
  70. package/resources/{api.mjs → auctions.mjs} +2 -2
  71. package/resources/auctions.mjs.map +1 -0
  72. package/resources/auth.d.ts +48 -0
  73. package/resources/auth.d.ts.map +1 -0
  74. package/resources/auth.js +16 -0
  75. package/resources/auth.js.map +1 -0
  76. package/resources/auth.mjs +12 -0
  77. package/resources/auth.mjs.map +1 -0
  78. package/resources/index.d.ts +8 -1
  79. package/resources/index.d.ts.map +1 -1
  80. package/resources/index.js +17 -3
  81. package/resources/index.js.map +1 -1
  82. package/resources/index.mjs +8 -1
  83. package/resources/index.mjs.map +1 -1
  84. package/resources/loyalty/account-streaks.d.ts +81 -0
  85. package/resources/loyalty/account-streaks.d.ts.map +1 -0
  86. package/resources/loyalty/account-streaks.js +24 -0
  87. package/resources/loyalty/account-streaks.js.map +1 -0
  88. package/resources/loyalty/account-streaks.mjs +20 -0
  89. package/resources/loyalty/account-streaks.mjs.map +1 -0
  90. package/resources/{api/loyalty → loyalty}/accounts.d.ts +36 -27
  91. package/resources/loyalty/accounts.d.ts.map +1 -0
  92. package/resources/{api/loyalty → loyalty}/accounts.js +17 -4
  93. package/resources/loyalty/accounts.js.map +1 -0
  94. package/resources/loyalty/accounts.mjs +33 -0
  95. package/resources/loyalty/accounts.mjs.map +1 -0
  96. package/resources/{api/loyalty → loyalty}/badges.d.ts +474 -24
  97. package/resources/loyalty/badges.d.ts.map +1 -0
  98. package/resources/{api/loyalty → loyalty}/badges.js +21 -3
  99. package/resources/loyalty/badges.js.map +1 -0
  100. package/resources/{api/loyalty → loyalty}/badges.mjs +21 -3
  101. package/resources/loyalty/badges.mjs.map +1 -0
  102. package/resources/{api/loyalty → loyalty}/currencies.d.ts +27 -2
  103. package/resources/loyalty/currencies.d.ts.map +1 -0
  104. package/resources/loyalty/currencies.js +40 -0
  105. package/resources/loyalty/currencies.js.map +1 -0
  106. package/resources/loyalty/currencies.mjs +36 -0
  107. package/resources/loyalty/currencies.mjs.map +1 -0
  108. package/resources/{api/loyalty → loyalty}/index.d.ts +6 -3
  109. package/resources/loyalty/index.d.ts.map +1 -0
  110. package/resources/{api/loyalty → loyalty}/index.js +7 -1
  111. package/resources/loyalty/index.js.map +1 -0
  112. package/resources/{api/loyalty → loyalty}/index.mjs +4 -1
  113. package/resources/loyalty/index.mjs.map +1 -0
  114. package/resources/loyalty/loyalty.d.ts +50 -0
  115. package/resources/loyalty/loyalty.d.ts.map +1 -0
  116. package/resources/{api/loyalty → loyalty}/loyalty.js +13 -20
  117. package/resources/loyalty/loyalty.js.map +1 -0
  118. package/resources/{api/loyalty → loyalty}/loyalty.mjs +13 -20
  119. package/resources/loyalty/loyalty.mjs.map +1 -0
  120. package/resources/{api/loyalty → loyalty}/multipliers.d.ts +65 -4
  121. package/resources/loyalty/multipliers.d.ts.map +1 -0
  122. package/resources/{api/loyalty → loyalty}/multipliers.js +25 -2
  123. package/resources/loyalty/multipliers.js.map +1 -0
  124. package/resources/{api/loyalty → loyalty}/multipliers.mjs +25 -2
  125. package/resources/loyalty/multipliers.mjs.map +1 -0
  126. package/resources/{api/loyalty → loyalty}/questions-responses.d.ts +41 -2
  127. package/resources/loyalty/questions-responses.d.ts.map +1 -0
  128. package/resources/{api/loyalty → loyalty}/questions-responses.js +11 -2
  129. package/resources/loyalty/questions-responses.js.map +1 -0
  130. package/resources/{api/loyalty → loyalty}/questions-responses.mjs +11 -2
  131. package/resources/loyalty/questions-responses.mjs.map +1 -0
  132. package/resources/{api/loyalty → loyalty}/questions.d.ts +39 -4
  133. package/resources/loyalty/questions.d.ts.map +1 -0
  134. package/resources/loyalty/questions.js +58 -0
  135. package/resources/loyalty/questions.js.map +1 -0
  136. package/resources/loyalty/questions.mjs +54 -0
  137. package/resources/loyalty/questions.mjs.map +1 -0
  138. package/resources/loyalty/rule-edits.d.ts +2920 -0
  139. package/resources/loyalty/rule-edits.d.ts.map +1 -0
  140. package/resources/{api/loyalty → loyalty}/rule-edits.js +15 -1
  141. package/resources/loyalty/rule-edits.js.map +1 -0
  142. package/resources/{api/loyalty → loyalty}/rule-edits.mjs +15 -1
  143. package/resources/loyalty/rule-edits.mjs.map +1 -0
  144. package/resources/{api/loyalty/loyalty.d.ts → loyalty/rule-groups.d.ts} +280 -321
  145. package/resources/loyalty/rule-groups.d.ts.map +1 -0
  146. package/resources/loyalty/rule-groups.js +52 -0
  147. package/resources/loyalty/rule-groups.js.map +1 -0
  148. package/resources/loyalty/rule-groups.mjs +48 -0
  149. package/resources/loyalty/rule-groups.mjs.map +1 -0
  150. package/resources/{api/loyalty → loyalty}/rules.d.ts +1778 -239
  151. package/resources/loyalty/rules.d.ts.map +1 -0
  152. package/resources/loyalty/rules.js +77 -0
  153. package/resources/loyalty/rules.js.map +1 -0
  154. package/resources/loyalty/rules.mjs +73 -0
  155. package/resources/loyalty/rules.mjs.map +1 -0
  156. package/resources/loyalty/transactions/index.d.ts +3 -0
  157. package/resources/loyalty/transactions/index.d.ts.map +1 -0
  158. package/resources/loyalty/transactions/index.js +9 -0
  159. package/resources/loyalty/transactions/index.js.map +1 -0
  160. package/resources/loyalty/transactions/index.mjs +4 -0
  161. package/resources/loyalty/transactions/index.mjs.map +1 -0
  162. package/resources/loyalty/transactions/rule-statuses.d.ts +120 -0
  163. package/resources/loyalty/transactions/rule-statuses.d.ts.map +1 -0
  164. package/resources/loyalty/transactions/rule-statuses.js +30 -0
  165. package/resources/loyalty/transactions/rule-statuses.js.map +1 -0
  166. package/resources/loyalty/transactions/rule-statuses.mjs +26 -0
  167. package/resources/loyalty/transactions/rule-statuses.mjs.map +1 -0
  168. package/resources/loyalty/transactions/transactions.d.ts +410 -0
  169. package/resources/loyalty/transactions/transactions.d.ts.map +1 -0
  170. package/resources/loyalty/transactions/transactions.js +76 -0
  171. package/resources/loyalty/transactions/transactions.js.map +1 -0
  172. package/resources/loyalty/transactions/transactions.mjs +49 -0
  173. package/resources/loyalty/transactions/transactions.mjs.map +1 -0
  174. package/resources/loyalty/transactions.d.ts +2 -0
  175. package/resources/loyalty/transactions.d.ts.map +1 -0
  176. package/resources/loyalty/transactions.js +19 -0
  177. package/resources/loyalty/transactions.js.map +1 -0
  178. package/resources/loyalty/transactions.mjs +3 -0
  179. package/resources/loyalty/transactions.mjs.map +1 -0
  180. package/resources/loyalty.d.ts.map +1 -0
  181. package/resources/loyalty.js.map +1 -0
  182. package/resources/loyalty.mjs.map +1 -0
  183. package/resources/{api/minting.d.ts → minting.d.ts} +7 -7
  184. package/resources/minting.d.ts.map +1 -0
  185. package/resources/{api/minting.js → minting.js} +1 -1
  186. package/resources/minting.js.map +1 -0
  187. package/resources/{api/minting.mjs → minting.mjs} +1 -1
  188. package/resources/minting.mjs.map +1 -0
  189. package/resources/referral/index.d.ts.map +1 -0
  190. package/resources/referral/index.js.map +1 -0
  191. package/resources/referral/index.mjs.map +1 -0
  192. package/resources/{api/referral → referral}/referral.d.ts +13 -5
  193. package/resources/referral/referral.d.ts.map +1 -0
  194. package/resources/{api/referral → referral}/referral.js +12 -6
  195. package/resources/referral/referral.js.map +1 -0
  196. package/resources/{api/referral → referral}/referral.mjs +12 -6
  197. package/resources/referral/referral.mjs.map +1 -0
  198. package/resources/{api/referral → referral}/users.d.ts +30 -3
  199. package/resources/referral/users.d.ts.map +1 -0
  200. package/resources/{api/referral → referral}/users.js +15 -1
  201. package/resources/referral/users.js.map +1 -0
  202. package/resources/{api/referral → referral}/users.mjs +15 -1
  203. package/resources/referral/users.mjs.map +1 -0
  204. package/resources/referral.d.ts.map +1 -0
  205. package/resources/referral.js.map +1 -0
  206. package/resources/referral.mjs.map +1 -0
  207. package/resources/users/index.d.ts +3 -0
  208. package/resources/users/index.d.ts.map +1 -0
  209. package/resources/users/index.js.map +1 -0
  210. package/resources/users/index.mjs.map +1 -0
  211. package/resources/{api/users → users}/metadatas.d.ts +34 -2
  212. package/resources/users/metadatas.d.ts.map +1 -0
  213. package/resources/{api/users → users}/metadatas.js +2 -2
  214. package/resources/users/metadatas.js.map +1 -0
  215. package/resources/{api/users → users}/metadatas.mjs +2 -2
  216. package/resources/users/metadatas.mjs.map +1 -0
  217. package/resources/users/users.d.ts +422 -0
  218. package/resources/users/users.d.ts.map +1 -0
  219. package/resources/{api/users → users}/users.js +61 -2
  220. package/resources/users/users.js.map +1 -0
  221. package/resources/users/users.mjs +89 -0
  222. package/resources/users/users.mjs.map +1 -0
  223. package/resources/users.d.ts.map +1 -0
  224. package/resources/users.js.map +1 -0
  225. package/resources/users.mjs.map +1 -0
  226. package/resources/websites/index.d.ts +4 -0
  227. package/resources/websites/index.d.ts.map +1 -0
  228. package/resources/websites/index.js +11 -0
  229. package/resources/websites/index.js.map +1 -0
  230. package/resources/{api → websites}/index.mjs +0 -5
  231. package/resources/websites/index.mjs.map +1 -0
  232. package/resources/{api → websites}/website-collections.d.ts +22 -1
  233. package/resources/websites/website-collections.d.ts.map +1 -0
  234. package/resources/{api → websites}/website-collections.js +21 -0
  235. package/resources/websites/website-collections.js.map +1 -0
  236. package/resources/websites/website-collections.mjs +42 -0
  237. package/resources/websites/website-collections.mjs.map +1 -0
  238. package/resources/{api → websites}/website-user-roles.d.ts +23 -0
  239. package/resources/websites/website-user-roles.d.ts.map +1 -0
  240. package/resources/{api → websites}/website-user-roles.js +23 -0
  241. package/resources/websites/website-user-roles.js.map +1 -0
  242. package/resources/websites/website-user-roles.mjs +41 -0
  243. package/resources/websites/website-user-roles.mjs.map +1 -0
  244. package/resources/{api → websites}/websites.d.ts +20 -0
  245. package/resources/websites/websites.d.ts.map +1 -0
  246. package/resources/websites/websites.js +63 -0
  247. package/resources/websites/websites.js.map +1 -0
  248. package/resources/websites/websites.mjs +36 -0
  249. package/resources/websites/websites.mjs.map +1 -0
  250. package/resources/websites.d.ts +2 -0
  251. package/resources/websites.d.ts.map +1 -0
  252. package/resources/websites.js +19 -0
  253. package/resources/websites.js.map +1 -0
  254. package/resources/websites.mjs +3 -0
  255. package/resources/websites.mjs.map +1 -0
  256. package/src/_shims/index.d.ts +2 -0
  257. package/src/_shims/index.js +5 -1
  258. package/src/_shims/index.mjs +5 -1
  259. package/src/core.ts +45 -17
  260. package/src/index.ts +126 -24
  261. package/src/resource.ts +1 -1
  262. package/src/resources/assets.ts +93 -0
  263. package/src/resources/auctions/auctions.ts +436 -0
  264. package/src/resources/auctions/index.ts +18 -0
  265. package/src/resources/auctions/website-user-attributes/index.ts +18 -0
  266. package/src/resources/auctions/website-user-attributes/values.ts +165 -0
  267. package/src/resources/auctions/website-user-attributes/website-user-attributes.ts +207 -0
  268. package/src/resources/auctions/website-user-attributes.ts +3 -0
  269. package/src/resources/{api.ts → auctions.ts} +1 -1
  270. package/src/resources/auth.ts +79 -0
  271. package/src/resources/index.ts +37 -8
  272. package/src/resources/loyalty/account-streaks.ts +110 -0
  273. package/src/resources/{api/loyalty → loyalty}/accounts.ts +41 -35
  274. package/src/resources/{api/loyalty → loyalty}/badges.ts +570 -27
  275. package/src/resources/{api/loyalty → loyalty}/currencies.ts +27 -2
  276. package/src/resources/{api/loyalty → loyalty}/index.ts +28 -11
  277. package/src/resources/loyalty/loyalty.ts +259 -0
  278. package/src/resources/{api/loyalty → loyalty}/multipliers.ts +70 -7
  279. package/src/resources/{api/loyalty → loyalty}/questions-responses.ts +48 -3
  280. package/src/resources/{api/loyalty → loyalty}/questions.ts +40 -4
  281. package/src/resources/loyalty/rule-edits.ts +4008 -0
  282. package/src/resources/{api/loyalty/loyalty.ts → loyalty/rule-groups.ts} +443 -551
  283. package/src/resources/{api/loyalty → loyalty}/rules.ts +2927 -526
  284. package/src/resources/loyalty/transactions/index.ts +18 -0
  285. package/src/resources/loyalty/transactions/rule-statuses.ts +178 -0
  286. package/src/resources/loyalty/transactions/transactions.ts +677 -0
  287. package/src/resources/loyalty/transactions.ts +3 -0
  288. package/src/resources/{api/minting.ts → minting.ts} +37 -23
  289. package/src/resources/{api/referral → referral}/referral.ts +15 -13
  290. package/src/resources/{api/referral → referral}/users.ts +35 -4
  291. package/src/resources/{api/users → users}/index.ts +6 -0
  292. package/src/resources/{api/users → users}/metadatas.ts +62 -3
  293. package/src/resources/users/users.ts +603 -0
  294. package/src/resources/websites/index.ts +22 -0
  295. package/src/resources/{api → websites}/website-collections.ts +52 -17
  296. package/src/resources/{api → websites}/website-user-roles.ts +23 -0
  297. package/src/resources/{api → websites}/websites.ts +52 -0
  298. package/src/resources/websites.ts +3 -0
  299. package/src/version.ts +1 -1
  300. package/version.d.ts +1 -1
  301. package/version.d.ts.map +1 -1
  302. package/version.js +1 -1
  303. package/version.js.map +1 -1
  304. package/version.mjs +1 -1
  305. package/version.mjs.map +1 -1
  306. package/resources/api/api.d.ts +0 -365
  307. package/resources/api/api.d.ts.map +0 -1
  308. package/resources/api/api.js +0 -94
  309. package/resources/api/api.js.map +0 -1
  310. package/resources/api/api.mjs +0 -67
  311. package/resources/api/api.mjs.map +0 -1
  312. package/resources/api/index.d.ts +0 -9
  313. package/resources/api/index.d.ts.map +0 -1
  314. package/resources/api/index.js +0 -21
  315. package/resources/api/index.js.map +0 -1
  316. package/resources/api/index.mjs.map +0 -1
  317. package/resources/api/loyalty/accounts.d.ts.map +0 -1
  318. package/resources/api/loyalty/accounts.js.map +0 -1
  319. package/resources/api/loyalty/accounts.mjs +0 -20
  320. package/resources/api/loyalty/accounts.mjs.map +0 -1
  321. package/resources/api/loyalty/badges.d.ts.map +0 -1
  322. package/resources/api/loyalty/badges.js.map +0 -1
  323. package/resources/api/loyalty/badges.mjs.map +0 -1
  324. package/resources/api/loyalty/currencies.d.ts.map +0 -1
  325. package/resources/api/loyalty/currencies.js +0 -21
  326. package/resources/api/loyalty/currencies.js.map +0 -1
  327. package/resources/api/loyalty/currencies.mjs +0 -17
  328. package/resources/api/loyalty/currencies.mjs.map +0 -1
  329. package/resources/api/loyalty/index.d.ts.map +0 -1
  330. package/resources/api/loyalty/index.js.map +0 -1
  331. package/resources/api/loyalty/index.mjs.map +0 -1
  332. package/resources/api/loyalty/loyalty.d.ts.map +0 -1
  333. package/resources/api/loyalty/loyalty.js.map +0 -1
  334. package/resources/api/loyalty/loyalty.mjs.map +0 -1
  335. package/resources/api/loyalty/multipliers.d.ts.map +0 -1
  336. package/resources/api/loyalty/multipliers.js.map +0 -1
  337. package/resources/api/loyalty/multipliers.mjs.map +0 -1
  338. package/resources/api/loyalty/questions-responses.d.ts.map +0 -1
  339. package/resources/api/loyalty/questions-responses.js.map +0 -1
  340. package/resources/api/loyalty/questions-responses.mjs.map +0 -1
  341. package/resources/api/loyalty/questions.d.ts.map +0 -1
  342. package/resources/api/loyalty/questions.js +0 -27
  343. package/resources/api/loyalty/questions.js.map +0 -1
  344. package/resources/api/loyalty/questions.mjs +0 -23
  345. package/resources/api/loyalty/questions.mjs.map +0 -1
  346. package/resources/api/loyalty/rule-edits.d.ts +0 -330
  347. package/resources/api/loyalty/rule-edits.d.ts.map +0 -1
  348. package/resources/api/loyalty/rule-edits.js.map +0 -1
  349. package/resources/api/loyalty/rule-edits.mjs.map +0 -1
  350. package/resources/api/loyalty/rules.d.ts.map +0 -1
  351. package/resources/api/loyalty/rules.js +0 -46
  352. package/resources/api/loyalty/rules.js.map +0 -1
  353. package/resources/api/loyalty/rules.mjs +0 -42
  354. package/resources/api/loyalty/rules.mjs.map +0 -1
  355. package/resources/api/loyalty.d.ts.map +0 -1
  356. package/resources/api/loyalty.js.map +0 -1
  357. package/resources/api/loyalty.mjs.map +0 -1
  358. package/resources/api/minting.d.ts.map +0 -1
  359. package/resources/api/minting.js.map +0 -1
  360. package/resources/api/minting.mjs.map +0 -1
  361. package/resources/api/referral/index.d.ts.map +0 -1
  362. package/resources/api/referral/index.js.map +0 -1
  363. package/resources/api/referral/index.mjs.map +0 -1
  364. package/resources/api/referral/referral.d.ts.map +0 -1
  365. package/resources/api/referral/referral.js.map +0 -1
  366. package/resources/api/referral/referral.mjs.map +0 -1
  367. package/resources/api/referral/users.d.ts.map +0 -1
  368. package/resources/api/referral/users.js.map +0 -1
  369. package/resources/api/referral/users.mjs.map +0 -1
  370. package/resources/api/referral.d.ts.map +0 -1
  371. package/resources/api/referral.js.map +0 -1
  372. package/resources/api/referral.mjs.map +0 -1
  373. package/resources/api/users/index.d.ts +0 -3
  374. package/resources/api/users/index.d.ts.map +0 -1
  375. package/resources/api/users/index.js.map +0 -1
  376. package/resources/api/users/index.mjs.map +0 -1
  377. package/resources/api/users/metadatas.d.ts.map +0 -1
  378. package/resources/api/users/metadatas.js.map +0 -1
  379. package/resources/api/users/metadatas.mjs.map +0 -1
  380. package/resources/api/users/users.d.ts +0 -133
  381. package/resources/api/users/users.d.ts.map +0 -1
  382. package/resources/api/users/users.js.map +0 -1
  383. package/resources/api/users/users.mjs +0 -30
  384. package/resources/api/users/users.mjs.map +0 -1
  385. package/resources/api/users.d.ts.map +0 -1
  386. package/resources/api/users.js.map +0 -1
  387. package/resources/api/users.mjs.map +0 -1
  388. package/resources/api/website-collections.d.ts.map +0 -1
  389. package/resources/api/website-collections.js.map +0 -1
  390. package/resources/api/website-collections.mjs +0 -21
  391. package/resources/api/website-collections.mjs.map +0 -1
  392. package/resources/api/website-user-roles.d.ts.map +0 -1
  393. package/resources/api/website-user-roles.js.map +0 -1
  394. package/resources/api/website-user-roles.mjs +0 -18
  395. package/resources/api/website-user-roles.mjs.map +0 -1
  396. package/resources/api/websites.d.ts.map +0 -1
  397. package/resources/api/websites.js +0 -22
  398. package/resources/api/websites.js.map +0 -1
  399. package/resources/api/websites.mjs +0 -18
  400. package/resources/api/websites.mjs.map +0 -1
  401. package/resources/api.d.ts +0 -2
  402. package/resources/api.d.ts.map +0 -1
  403. package/resources/api.js.map +0 -1
  404. package/resources/api.mjs.map +0 -1
  405. package/src/resources/api/api.ts +0 -629
  406. package/src/resources/api/index.ts +0 -51
  407. package/src/resources/api/loyalty/rule-edits.ts +0 -418
  408. package/src/resources/api/users/users.ts +0 -203
  409. /package/resources/{api/loyalty.d.ts → loyalty.d.ts} +0 -0
  410. /package/resources/{api/loyalty.js → loyalty.js} +0 -0
  411. /package/resources/{api/loyalty.mjs → loyalty.mjs} +0 -0
  412. /package/resources/{api/referral → referral}/index.d.ts +0 -0
  413. /package/resources/{api/referral → referral}/index.js +0 -0
  414. /package/resources/{api/referral → referral}/index.mjs +0 -0
  415. /package/resources/{api/referral.d.ts → referral.d.ts} +0 -0
  416. /package/resources/{api/referral.js → referral.js} +0 -0
  417. /package/resources/{api/referral.mjs → referral.mjs} +0 -0
  418. /package/resources/{api/users → users}/index.js +0 -0
  419. /package/resources/{api/users → users}/index.mjs +0 -0
  420. /package/resources/{api/users.d.ts → users.d.ts} +0 -0
  421. /package/resources/{api/users.js → users.js} +0 -0
  422. /package/resources/{api/users.mjs → users.mjs} +0 -0
  423. /package/src/resources/{api/loyalty.ts → loyalty.ts} +0 -0
  424. /package/src/resources/{api/referral → referral}/index.ts +0 -0
  425. /package/src/resources/{api/referral.ts → referral.ts} +0 -0
  426. /package/src/resources/{api/users.ts → users.ts} +0 -0
@@ -0,0 +1,4008 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../resource';
4
+ import * as Core from '../../core';
5
+
6
+ export class RuleEdits extends APIResource {
7
+ /**
8
+ * Retrieve configured loyalty rule edits with optional pagination and filters
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * const ruleEdits = await client.loyalty.ruleEdits.list({
13
+ * loyaltyRuleId: true,
14
+ * });
15
+ * ```
16
+ */
17
+ list(query: RuleEditListParams, options?: Core.RequestOptions): Core.APIPromise<RuleEditListResponse> {
18
+ return this._client.get('/api/loyalty/rule_edits', { query, ...options });
19
+ }
20
+
21
+ /**
22
+ * Restore a loyalty rule from a rule edit
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * const response = await client.loyalty.ruleEdits.restore(
27
+ * '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
28
+ * );
29
+ * ```
30
+ */
31
+ restore(
32
+ id: string,
33
+ body?: RuleEditRestoreParams | null | undefined,
34
+ options?: Core.RequestOptions,
35
+ ): Core.APIPromise<RuleEditRestoreResponse> {
36
+ return this._client.post(`/api/loyalty/rule_edits/${id}/restore`, { body, ...options });
37
+ }
38
+ }
39
+
40
+ export interface RuleEditListResponse {
41
+ data: Array<RuleEditListResponse.Data>;
42
+
43
+ hasNextPage: boolean;
44
+ }
45
+
46
+ export namespace RuleEditListResponse {
47
+ export interface Data {
48
+ /**
49
+ * Unique identifier for the rule edit
50
+ */
51
+ id: string;
52
+
53
+ /**
54
+ * Type of action that was made on the rule
55
+ */
56
+ action: 'create' | 'update' | 'delete' | 'restore';
57
+
58
+ /**
59
+ * Data that was changed on the rule
60
+ */
61
+ data: Data.Data;
62
+
63
+ /**
64
+ * Timestamp of when the rule edit was made
65
+ */
66
+ editedAt: string;
67
+
68
+ /**
69
+ * User ID of the user who made the edit
70
+ */
71
+ editedByUserId: string;
72
+
73
+ /**
74
+ * ID of the loyalty rule
75
+ */
76
+ loyaltyRuleId: string;
77
+
78
+ /**
79
+ * Unique identifier for the organization
80
+ */
81
+ organizationId: string;
82
+
83
+ /**
84
+ * Unique identifier for the website
85
+ */
86
+ websiteId: string;
87
+
88
+ /**
89
+ * Comment that was made on the edit
90
+ */
91
+ comment?: string;
92
+
93
+ /**
94
+ * Previous data of the rule before the edit
95
+ */
96
+ previousData?: Data.PreviousData;
97
+ }
98
+
99
+ export namespace Data {
100
+ /**
101
+ * Data that was changed on the rule
102
+ */
103
+ export interface Data {
104
+ /**
105
+ * Unique identifier for the loyalty rule
106
+ */
107
+ id: string;
108
+
109
+ /**
110
+ * Amount associated with the loyalty rule
111
+ */
112
+ amount: number;
113
+
114
+ /**
115
+ * Timestamp when the loyalty rule was created
116
+ */
117
+ createdAt: string;
118
+
119
+ /**
120
+ * Timestamp when the loyalty rule was deleted (if applicable)
121
+ */
122
+ deletedAt: string | null;
123
+
124
+ /**
125
+ * Description of the loyalty rule
126
+ */
127
+ description: string;
128
+
129
+ /**
130
+ * End time of the loyalty rule
131
+ */
132
+ endTime: string;
133
+
134
+ /**
135
+ * Frequency of the loyalty rule
136
+ */
137
+ frequency: string;
138
+
139
+ /**
140
+ * Name of the loyalty rule
141
+ */
142
+ name: string;
143
+
144
+ /**
145
+ * Unique identifier for the organization
146
+ */
147
+ organizationId: string;
148
+
149
+ /**
150
+ * Type of the reward
151
+ */
152
+ rewardType: 'points' | 'multiplier' | 'badge';
153
+
154
+ /**
155
+ * Start time of the loyalty rule
156
+ */
157
+ startTime: string;
158
+
159
+ /**
160
+ * Type of the loyalty rule
161
+ */
162
+ type: string;
163
+
164
+ /**
165
+ * Timestamp when the loyalty rule was last updated
166
+ */
167
+ updatedAt: string;
168
+
169
+ /**
170
+ * Unique identifier for the website
171
+ */
172
+ websiteId: string;
173
+
174
+ /**
175
+ * Optional address of the collection
176
+ */
177
+ collectionAddress?: string;
178
+
179
+ /**
180
+ * URL of the media associated with the loyalty rule
181
+ */
182
+ mediaUrl?: string | null;
183
+
184
+ /**
185
+ * Optional metadata for the loyalty rule
186
+ */
187
+ metadata?: { [key: string]: Data.Metadata };
188
+ }
189
+
190
+ export namespace Data {
191
+ export interface Metadata {
192
+ /**
193
+ * Number of tokens per batch.
194
+ */
195
+ batchSize?: number | null;
196
+
197
+ /**
198
+ * Text displayed on the action button.
199
+ */
200
+ buttonText?: string | null;
201
+
202
+ /**
203
+ * Flag indicating if commenting is required.
204
+ */
205
+ checkComment?: boolean | null;
206
+
207
+ /**
208
+ * Flag indicating if liking the post is required.
209
+ */
210
+ checkLike?: boolean | null;
211
+
212
+ /**
213
+ * Flag indicating if reposting is required.
214
+ */
215
+ checkRepost?: boolean | null;
216
+
217
+ /**
218
+ * Text to check in the Twitter post, username, or bio.
219
+ */
220
+ checkText?: string | Array<string> | null;
221
+
222
+ /**
223
+ * Array of collections associated with the rule.
224
+ */
225
+ collection?: Array<Metadata.Collection>;
226
+
227
+ /**
228
+ * Conditions for completing the profile.
229
+ */
230
+ completeProfileConditions?: { [key: string]: boolean } | null;
231
+
232
+ /**
233
+ * Description of the external rule condition (only for external rules)
234
+ */
235
+ conditionDescription?: string;
236
+
237
+ /**
238
+ * Object containing details for the call-to-action.
239
+ */
240
+ cta?: Metadata.Cta | null;
241
+
242
+ /**
243
+ * API key for custom rewards integration.
244
+ */
245
+ customRewardsApiKey?: string;
246
+
247
+ /**
248
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
249
+ */
250
+ directRpc?: boolean;
251
+
252
+ /**
253
+ * Array of Discord servers, channels, and roles to join.
254
+ */
255
+ discordServersToJoin?: Array<Metadata.DiscordServersToJoin> | null;
256
+
257
+ /**
258
+ * Array of drip quests required to complete the rule.
259
+ */
260
+ dripQuestsToComplete?: Array<Metadata.DripQuestsToComplete> | null;
261
+
262
+ /**
263
+ * Flag indicating whether joining Discord servers is required.
264
+ */
265
+ enableJoinDiscordServers?: boolean | null;
266
+
267
+ /**
268
+ * Flag indicating whether streaks are enabled.
269
+ */
270
+ enableStreaks?: boolean | null;
271
+
272
+ /**
273
+ * Flag indicating whether the verified multiplier is enabled.
274
+ */
275
+ enableVerifiedMultiplier?: boolean;
276
+
277
+ /**
278
+ * Fill source of the order for the token sale
279
+ */
280
+ fillSource?: string;
281
+
282
+ /**
283
+ * Percentage reward given to a user for their first referral.
284
+ */
285
+ firstReferralReward?: number | null;
286
+
287
+ /**
288
+ * Flag indicating whether the fill source is included.
289
+ */
290
+ hasFillSource?: boolean;
291
+
292
+ /**
293
+ * Indicates if the item has never been sold.
294
+ */
295
+ hasNeverSold?: boolean;
296
+
297
+ /**
298
+ * Indicates if the full royalty has been paid for items.
299
+ */
300
+ hasPaidFullRoyalty?: boolean;
301
+
302
+ /**
303
+ * Flag indicating if the sale currency is included.
304
+ */
305
+ hasSaleCurrency?: boolean;
306
+
307
+ /**
308
+ * Indicates if the user has a verified Twitter account.
309
+ */
310
+ hasVerifiedTwitter?: boolean;
311
+
312
+ /**
313
+ * URL of the image associated with the rule.
314
+ */
315
+ imageUrl?: string | null;
316
+
317
+ /**
318
+ * If enabled, the first transaction done on the platform will complete this rule
319
+ */
320
+ isCheckInOnEveryTxn?: boolean;
321
+
322
+ /**
323
+ * Indicates if the multiplier has been applied to rewards.
324
+ */
325
+ isMultiplierApplied?: boolean;
326
+
327
+ /**
328
+ * Flag indicating if the rule is restricted to new users.
329
+ */
330
+ isRestrictedToNewUsers?: boolean;
331
+
332
+ /**
333
+ * Flag indicating if rewards are applied retroactively.
334
+ */
335
+ isRetroactive?: boolean | null;
336
+
337
+ /**
338
+ * Flag indicating if the token hold multiplier is applied.
339
+ */
340
+ isTokenHoldMultiplier?: boolean;
341
+
342
+ /**
343
+ * Optional link associated with the metadata.
344
+ */
345
+ link?: string | null;
346
+
347
+ /**
348
+ * Liquidity pool details.
349
+ */
350
+ liquidity?: Metadata.Liquidity;
351
+
352
+ /**
353
+ * Maximum quantity constraint for token holding.
354
+ */
355
+ maxQty?: number | null;
356
+
357
+ /**
358
+ * Minimum quantity constraint for token holding.
359
+ */
360
+ minQty?: number | null;
361
+
362
+ /**
363
+ * Array of loyalty currency IDs used for multipliers.
364
+ */
365
+ multiplierLoyaltyCurrencyIds?: Array<string> | null;
366
+
367
+ /**
368
+ * Flag indicating whether to include only known users.
369
+ */
370
+ onlyKnownUsers?: boolean;
371
+
372
+ /**
373
+ * Flag indicating whether to include only native tokens.
374
+ */
375
+ onlyNative?: boolean;
376
+
377
+ /**
378
+ * Flag indicating whether to include only non-listed items.
379
+ */
380
+ onlyNonListed?: boolean;
381
+
382
+ /**
383
+ * Indicates if only existing users are rewarded.
384
+ */
385
+ onlyRewardExistingUser?: boolean;
386
+
387
+ /**
388
+ * give points for only one token ownership per contract
389
+ */
390
+ onlyRewardSingleTokenOwnership?: boolean | null;
391
+
392
+ /**
393
+ * Promotional code associated with the rule.
394
+ */
395
+ promoCode?: string;
396
+
397
+ /**
398
+ * URL of the CSV file containing promo codes.
399
+ */
400
+ promoCodeCsvUrl?: string;
401
+
402
+ /**
403
+ * Numbers of the promotional code to be generated.
404
+ */
405
+ promoCodeLength?: number | null;
406
+
407
+ /**
408
+ * Type of the promotional code.
409
+ */
410
+ promoCodeType?: 'code' | 'csv' | 'generate';
411
+
412
+ /**
413
+ * Array defining ranges and corresponding rewards.
414
+ */
415
+ range?: Array<Metadata.Range>;
416
+
417
+ /**
418
+ * Object defining referral requirements.
419
+ */
420
+ referralRequirements?: Metadata.ReferralRequirements | null;
421
+
422
+ /**
423
+ * Lump sum reward given to a referrer.
424
+ */
425
+ referrerReward?: number | null;
426
+
427
+ /**
428
+ * Loyalty currency ID of the referrer reward.
429
+ */
430
+ referrerRewardLoyaltyCurrencyId?: string | null;
431
+
432
+ /**
433
+ * Flag indicating if the post link is required.
434
+ */
435
+ requirePostLink?: boolean | null;
436
+
437
+ /**
438
+ * Flag indicating if media metadata is required.
439
+ */
440
+ requirePostMediaLink?: boolean | null;
441
+
442
+ /**
443
+ * Flag indicating if the rule can also reward badges per range.
444
+ */
445
+ rewardBadgePerRange?: boolean;
446
+
447
+ /**
448
+ * Flag indicating if the reward is rewarded by batch.
449
+ */
450
+ rewardByBatch?: boolean | null;
451
+
452
+ /**
453
+ * Flag indicating if the reward is rewarded per action.
454
+ */
455
+ rewardPerAction?: boolean | null;
456
+
457
+ /**
458
+ * Flag indicating if rewards are given per impression.
459
+ */
460
+ rewardPerImpression?: boolean | null;
461
+
462
+ /**
463
+ * Flag indicating if the rule should reward based on value of traded tokens
464
+ * instead of count.
465
+ */
466
+ rewardPerValue?: boolean;
467
+
468
+ /**
469
+ * Wallet address of the user can only be used if userId is not provided
470
+ */
471
+ royaltyAddress?: string;
472
+
473
+ /**
474
+ * Royalty percentage of the item.
475
+ */
476
+ royaltyPercentage?: number;
477
+
478
+ /**
479
+ * Currency associated with sales.
480
+ */
481
+ saleCurrency?: string;
482
+
483
+ /**
484
+ * Percentage reward given for a second-level referral.
485
+ */
486
+ secondReferralReward?: number | null;
487
+
488
+ /**
489
+ * Flag indicating if the multiplier is skipped.
490
+ */
491
+ skipMultiplier?: boolean | null;
492
+
493
+ /**
494
+ * Object containing details of the associated smart contract.
495
+ */
496
+ smartContract?: Metadata.SmartContract;
497
+
498
+ /**
499
+ * Array of snapshot proposals for the rule.
500
+ */
501
+ snapshotProposals?: Array<Metadata.SnapshotProposal> | null;
502
+
503
+ /**
504
+ * Social media platform associated with the rule.
505
+ */
506
+ socialPlatform?:
507
+ | 'Custom'
508
+ | 'Discord'
509
+ | 'EpicGames'
510
+ | 'Instagram'
511
+ | 'Steam'
512
+ | 'Telegram'
513
+ | 'TikTok'
514
+ | 'Twitch'
515
+ | 'X(Twitter)'
516
+ | 'YouTube'
517
+ | 'Google'
518
+ | null;
519
+
520
+ /**
521
+ * URL of the social platform's logo.
522
+ */
523
+ socialPlatformLogo?: string | null;
524
+
525
+ /**
526
+ * Name of the social platform.
527
+ */
528
+ socialPlatformName?: string | null;
529
+
530
+ /**
531
+ * ID of the Steam app.
532
+ */
533
+ steamAppId?: string | null;
534
+
535
+ /**
536
+ * Array of streak milestones and corresponding rewards.
537
+ */
538
+ streakArray?: Array<Metadata.StreakArray> | null;
539
+
540
+ /**
541
+ * Metadata for swap loyalty rules
542
+ */
543
+ swap?: Metadata.Swap;
544
+
545
+ /**
546
+ * ID of the Telegram channel.
547
+ */
548
+ telegramChannelId?: string | null;
549
+
550
+ /**
551
+ * Time delay in seconds to verify actions.
552
+ */
553
+ timeDelayToVerifySeconds?: string | number | null;
554
+
555
+ /**
556
+ * Flag indicating if all contracts are tracked.
557
+ */
558
+ trackAllContracts?: boolean | null;
559
+
560
+ /**
561
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
562
+ * completed once the progress is 100%.
563
+ */
564
+ trackProgress?: boolean | null;
565
+
566
+ /**
567
+ * URL of the associated Twitter account.
568
+ */
569
+ twitterAccountUrl?: string;
570
+
571
+ /**
572
+ * Hashtag associated with the Twitter post.
573
+ */
574
+ twitterHashtag?: string;
575
+
576
+ /**
577
+ * URL of the associated Twitter post.
578
+ */
579
+ twitterPostUrl?: string;
580
+
581
+ /**
582
+ * Unique identifier of the Twitter user.
583
+ */
584
+ twitterUserId?: string;
585
+
586
+ /**
587
+ * Twitter username of the user.
588
+ */
589
+ twitterUsername?: string;
590
+
591
+ /**
592
+ * Minimum length of the verification text.
593
+ */
594
+ verificationTextMinimumLength?: number | null;
595
+
596
+ /**
597
+ * Multiplier applied to rewards for verified users.
598
+ */
599
+ verifiedMultiplier?: number | null;
600
+
601
+ /**
602
+ * Placeholder text for verification input fields.
603
+ */
604
+ verifyPlaceHolderText?: string | null;
605
+
606
+ /**
607
+ * Type of wallet associated with the rule.
608
+ */
609
+ walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | 'cosmos' | 'ultra' | 'agw' | null;
610
+
611
+ /**
612
+ * ID of the Youtube channel.
613
+ */
614
+ youtubeChannelId?: string | null;
615
+
616
+ /**
617
+ * ID of the Youtube video.
618
+ */
619
+ youtubeVideoId?: string | null;
620
+ }
621
+
622
+ export namespace Metadata {
623
+ export interface Collection {
624
+ /**
625
+ * Blockchain address of the collection.
626
+ */
627
+ address?: string;
628
+
629
+ /**
630
+ * Multiplier applied to the rewards for this collection.
631
+ */
632
+ multiplier?: number;
633
+
634
+ /**
635
+ * Blockchain network of the collection.
636
+ */
637
+ network?:
638
+ | 'abstract'
639
+ | 'abstractTestnet'
640
+ | 'apechain'
641
+ | 'arbitrum'
642
+ | 'avalanche'
643
+ | 'avalancheFuji'
644
+ | 'base'
645
+ | 'baseSepolia'
646
+ | 'berachain'
647
+ | 'berachainArtio'
648
+ | 'berachainBepolia'
649
+ | 'binance'
650
+ | 'bscTestnet'
651
+ | 'campTestnet'
652
+ | 'fantom'
653
+ | 'fantomTestnet'
654
+ | 'flowMainnet'
655
+ | 'mainnet'
656
+ | 'nexusTestnet'
657
+ | 'optimism'
658
+ | 'polygon'
659
+ | 'polygon_mumbai'
660
+ | 'skaleNebula'
661
+ | 'solana'
662
+ | 'sophon'
663
+ | 'sophonTestnet'
664
+ | 'sui'
665
+ | 'superseed'
666
+ | 'superseedSepolia'
667
+ | 'vanar'
668
+ | 'xai'
669
+ | 'zksync'
670
+ | 'coti'
671
+ | 'cotiTestnet'
672
+ | 'morph'
673
+ | 'morphTestnet'
674
+ | 'morphHolesky'
675
+ | 'ultra'
676
+ | 'ultraTestnet'
677
+ | 'nitrograph'
678
+ | 'sepolia'
679
+ | 'optimism_sepolia'
680
+ | 'arbitrumSepolia'
681
+ | 'goerli'
682
+ | 'optimism_goerli'
683
+ | 'arbitrumGoerli'
684
+ | 'basecamp';
685
+ }
686
+
687
+ /**
688
+ * Object containing details for the call-to-action.
689
+ */
690
+ export interface Cta {
691
+ /**
692
+ * Link for the call-to-action.
693
+ */
694
+ href?: string | null;
695
+
696
+ /**
697
+ * Label for the call-to-action.
698
+ */
699
+ label?: string | null;
700
+ }
701
+
702
+ export interface DiscordServersToJoin {
703
+ /**
704
+ * ID of the Discord server to join.
705
+ */
706
+ id?: string;
707
+
708
+ /**
709
+ * Array of Discord channels to join.
710
+ */
711
+ channels?: Array<DiscordServersToJoin.Channel>;
712
+
713
+ /**
714
+ * Array of roles to assign in the Discord server.
715
+ */
716
+ roles?: Array<DiscordServersToJoin.Role>;
717
+ }
718
+
719
+ export namespace DiscordServersToJoin {
720
+ export interface Channel {
721
+ /**
722
+ * ID of the Discord channel.
723
+ */
724
+ id?: string;
725
+
726
+ /**
727
+ * Array of emojis used in the channel.
728
+ */
729
+ emojis?: Array<Channel.Emoji>;
730
+
731
+ /**
732
+ * Phrase of text to be present in the discord message
733
+ */
734
+ text?: string;
735
+ }
736
+
737
+ export namespace Channel {
738
+ export interface Emoji {
739
+ /**
740
+ * ID of the emoji used in the channel.
741
+ */
742
+ id?: string;
743
+ }
744
+ }
745
+
746
+ export interface Role {
747
+ /**
748
+ * ID of the role in the Discord server.
749
+ */
750
+ id: string;
751
+ }
752
+ }
753
+
754
+ export interface DripQuestsToComplete {
755
+ /**
756
+ * ID of the drip quest to complete.
757
+ */
758
+ id: string;
759
+ }
760
+
761
+ /**
762
+ * Liquidity pool details.
763
+ */
764
+ export interface Liquidity {
765
+ /**
766
+ * Calculation type of the liquidity pool.
767
+ */
768
+ calculationType?: 'fixed' | 'custom';
769
+
770
+ /**
771
+ * Custom function to calculate the the reward amount based on the liquidity
772
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
773
+ * USD.
774
+ */
775
+ customFunction?: string;
776
+
777
+ /**
778
+ * Liquidity provided per day in USD
779
+ */
780
+ liquidityPerDay?: number;
781
+
782
+ /**
783
+ * Blockchain network of the liquidity pool.
784
+ */
785
+ network?:
786
+ | 'abstract'
787
+ | 'abstractTestnet'
788
+ | 'apechain'
789
+ | 'arbitrum'
790
+ | 'avalanche'
791
+ | 'avalancheFuji'
792
+ | 'base'
793
+ | 'baseSepolia'
794
+ | 'berachain'
795
+ | 'berachainArtio'
796
+ | 'berachainBepolia'
797
+ | 'binance'
798
+ | 'bscTestnet'
799
+ | 'campTestnet'
800
+ | 'fantom'
801
+ | 'fantomTestnet'
802
+ | 'flowMainnet'
803
+ | 'mainnet'
804
+ | 'nexusTestnet'
805
+ | 'optimism'
806
+ | 'polygon'
807
+ | 'polygon_mumbai'
808
+ | 'skaleNebula'
809
+ | 'solana'
810
+ | 'sophon'
811
+ | 'sophonTestnet'
812
+ | 'sui'
813
+ | 'superseed'
814
+ | 'superseedSepolia'
815
+ | 'vanar'
816
+ | 'xai'
817
+ | 'zksync'
818
+ | 'coti'
819
+ | 'cotiTestnet'
820
+ | 'morph'
821
+ | 'morphTestnet'
822
+ | 'morphHolesky'
823
+ | 'ultra'
824
+ | 'ultraTestnet'
825
+ | 'nitrograph'
826
+ | 'sepolia'
827
+ | 'optimism_sepolia'
828
+ | 'arbitrumSepolia'
829
+ | 'goerli'
830
+ | 'optimism_goerli'
831
+ | 'arbitrumGoerli'
832
+ | 'basecamp';
833
+
834
+ /**
835
+ * Indicates if only in-range liquidity is rewarded.
836
+ */
837
+ onlyRewardInRangeLiquidity?: boolean;
838
+
839
+ /**
840
+ * Array of liquidity pools associated with the rule.
841
+ */
842
+ pools?: Array<Liquidity.Pool>;
843
+
844
+ /**
845
+ * Protocol of the liquidity pool.
846
+ */
847
+ protocol?: string;
848
+ }
849
+
850
+ export namespace Liquidity {
851
+ export interface Pool {
852
+ /**
853
+ * Unique identifier of the liquidity pool.
854
+ */
855
+ id: string;
856
+ }
857
+ }
858
+
859
+ export interface Range {
860
+ /**
861
+ * Reward amount for this range.
862
+ */
863
+ amount: number;
864
+
865
+ /**
866
+ * End value of the range.
867
+ */
868
+ endRange: number;
869
+
870
+ /**
871
+ * Start value of the range.
872
+ */
873
+ startRange: number;
874
+
875
+ /**
876
+ * ID of the loyalty badge for this range.
877
+ */
878
+ loyaltyBadgeId?: string;
879
+
880
+ /**
881
+ * Amount of the loyalty multiplier for this range.
882
+ */
883
+ loyaltyMultiplierAmount?: number;
884
+ }
885
+
886
+ /**
887
+ * Object defining referral requirements.
888
+ */
889
+ export interface ReferralRequirements {
890
+ /**
891
+ * Flag indicating if achieving points is required.
892
+ */
893
+ achievePoints?: boolean | null;
894
+
895
+ /**
896
+ * Flag indicating if completing the profile is required.
897
+ */
898
+ completeProfile?: boolean | null;
899
+
900
+ /**
901
+ * Flag indicating if connecting Discord is required.
902
+ */
903
+ connectDiscord?: boolean | null;
904
+
905
+ /**
906
+ * Flag indicating if connecting email is required.
907
+ */
908
+ connectEmail?: boolean | null;
909
+
910
+ /**
911
+ * Flag indicating if connecting Twitter is required.
912
+ */
913
+ connectTwitter?: boolean | null;
914
+
915
+ points?: ReferralRequirements.Points | null;
916
+ }
917
+
918
+ export namespace ReferralRequirements {
919
+ export interface Points {
920
+ /**
921
+ * Points required for referral.
922
+ */
923
+ amount?: number | null;
924
+
925
+ /**
926
+ * ID of the loyalty currency for referral.
927
+ */
928
+ loyaltyCurrecyId?: string | null;
929
+ }
930
+ }
931
+
932
+ /**
933
+ * Object containing details of the associated smart contract.
934
+ */
935
+ export interface SmartContract {
936
+ /**
937
+ * Mapping of addresses for the smart contract.
938
+ */
939
+ addressMapping?: string | null;
940
+
941
+ /**
942
+ * Object containing details of the amount multiplier from the event.
943
+ */
944
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
945
+
946
+ /**
947
+ * ID of the smart contract.
948
+ */
949
+ contractId?: string | null;
950
+
951
+ /**
952
+ * Criteria to evaluate the smart contract event.
953
+ */
954
+ criteria?: 'everyEvent' | 'byParameter' | null;
955
+
956
+ /**
957
+ * Event emitted by the smart contract.
958
+ */
959
+ event?: string | null;
960
+
961
+ /**
962
+ * Array of parameters for the smart contract.
963
+ */
964
+ params?: Array<SmartContract.Param> | null;
965
+
966
+ /**
967
+ * Type of the smart contract interaction.
968
+ */
969
+ type?: 'function' | 'event' | null;
970
+ }
971
+
972
+ export namespace SmartContract {
973
+ /**
974
+ * Object containing details of the amount multiplier from the event.
975
+ */
976
+ export interface AmountMultiplier {
977
+ /**
978
+ * Mapping of the value for the smart contract.
979
+ */
980
+ valueMapping?: string | null;
981
+ }
982
+
983
+ export interface Param {
984
+ /**
985
+ * Condition to check for the parameter.
986
+ */
987
+ condition?: string | null;
988
+
989
+ /**
990
+ * Name of the smart contract parameter.
991
+ */
992
+ name?: string | null;
993
+
994
+ /**
995
+ * Value of the parameter.
996
+ */
997
+ value?: string | null;
998
+ }
999
+ }
1000
+
1001
+ export interface SnapshotProposal {
1002
+ /**
1003
+ * ID of the snapshot proposal.
1004
+ */
1005
+ id: string;
1006
+
1007
+ /**
1008
+ * Space associated with the snapshot proposal.
1009
+ */
1010
+ space: string;
1011
+ }
1012
+
1013
+ export interface StreakArray {
1014
+ /**
1015
+ * Reward amount for achieving the streak milestone.
1016
+ */
1017
+ streakAmount: number;
1018
+
1019
+ /**
1020
+ * Milestone required to achieve the streak.
1021
+ */
1022
+ streakMilestone: number;
1023
+ }
1024
+
1025
+ /**
1026
+ * Metadata for swap loyalty rules
1027
+ */
1028
+ export interface Swap {
1029
+ provider?: 'any' | 'relay' | 'lifi';
1030
+
1031
+ relayReferrerId?: string;
1032
+
1033
+ requireCrossChainSwap?: boolean;
1034
+
1035
+ swappedToChain?: 'any' | number | string;
1036
+
1037
+ swappedToTokens?: Array<Swap.SwappedToToken>;
1038
+
1039
+ tokenMode?: 'any' | 'specific';
1040
+
1041
+ trackTokenAmount?: boolean;
1042
+ }
1043
+
1044
+ export namespace Swap {
1045
+ export interface SwappedToToken {
1046
+ address: string;
1047
+
1048
+ chainId: string;
1049
+ }
1050
+ }
1051
+ }
1052
+ }
1053
+
1054
+ /**
1055
+ * Previous data of the rule before the edit
1056
+ */
1057
+ export interface PreviousData {
1058
+ /**
1059
+ * Unique identifier for the loyalty rule
1060
+ */
1061
+ id: string;
1062
+
1063
+ /**
1064
+ * Amount associated with the loyalty rule
1065
+ */
1066
+ amount: number;
1067
+
1068
+ /**
1069
+ * Timestamp when the loyalty rule was created
1070
+ */
1071
+ createdAt: string;
1072
+
1073
+ /**
1074
+ * Timestamp when the loyalty rule was deleted (if applicable)
1075
+ */
1076
+ deletedAt: string | null;
1077
+
1078
+ /**
1079
+ * Description of the loyalty rule
1080
+ */
1081
+ description: string;
1082
+
1083
+ /**
1084
+ * End time of the loyalty rule
1085
+ */
1086
+ endTime: string;
1087
+
1088
+ /**
1089
+ * Frequency of the loyalty rule
1090
+ */
1091
+ frequency: string;
1092
+
1093
+ /**
1094
+ * Name of the loyalty rule
1095
+ */
1096
+ name: string;
1097
+
1098
+ /**
1099
+ * Unique identifier for the organization
1100
+ */
1101
+ organizationId: string;
1102
+
1103
+ /**
1104
+ * Type of the reward
1105
+ */
1106
+ rewardType: 'points' | 'multiplier' | 'badge';
1107
+
1108
+ /**
1109
+ * Start time of the loyalty rule
1110
+ */
1111
+ startTime: string;
1112
+
1113
+ /**
1114
+ * Type of the loyalty rule
1115
+ */
1116
+ type: string;
1117
+
1118
+ /**
1119
+ * Timestamp when the loyalty rule was last updated
1120
+ */
1121
+ updatedAt: string;
1122
+
1123
+ /**
1124
+ * Unique identifier for the website
1125
+ */
1126
+ websiteId: string;
1127
+
1128
+ /**
1129
+ * Optional address of the collection
1130
+ */
1131
+ collectionAddress?: string;
1132
+
1133
+ /**
1134
+ * URL of the media associated with the loyalty rule
1135
+ */
1136
+ mediaUrl?: string | null;
1137
+
1138
+ /**
1139
+ * Optional metadata for the loyalty rule
1140
+ */
1141
+ metadata?: { [key: string]: PreviousData.Metadata };
1142
+ }
1143
+
1144
+ export namespace PreviousData {
1145
+ export interface Metadata {
1146
+ /**
1147
+ * Number of tokens per batch.
1148
+ */
1149
+ batchSize?: number | null;
1150
+
1151
+ /**
1152
+ * Text displayed on the action button.
1153
+ */
1154
+ buttonText?: string | null;
1155
+
1156
+ /**
1157
+ * Flag indicating if commenting is required.
1158
+ */
1159
+ checkComment?: boolean | null;
1160
+
1161
+ /**
1162
+ * Flag indicating if liking the post is required.
1163
+ */
1164
+ checkLike?: boolean | null;
1165
+
1166
+ /**
1167
+ * Flag indicating if reposting is required.
1168
+ */
1169
+ checkRepost?: boolean | null;
1170
+
1171
+ /**
1172
+ * Text to check in the Twitter post, username, or bio.
1173
+ */
1174
+ checkText?: string | Array<string> | null;
1175
+
1176
+ /**
1177
+ * Array of collections associated with the rule.
1178
+ */
1179
+ collection?: Array<Metadata.Collection>;
1180
+
1181
+ /**
1182
+ * Conditions for completing the profile.
1183
+ */
1184
+ completeProfileConditions?: { [key: string]: boolean } | null;
1185
+
1186
+ /**
1187
+ * Description of the external rule condition (only for external rules)
1188
+ */
1189
+ conditionDescription?: string;
1190
+
1191
+ /**
1192
+ * Object containing details for the call-to-action.
1193
+ */
1194
+ cta?: Metadata.Cta | null;
1195
+
1196
+ /**
1197
+ * API key for custom rewards integration.
1198
+ */
1199
+ customRewardsApiKey?: string;
1200
+
1201
+ /**
1202
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
1203
+ */
1204
+ directRpc?: boolean;
1205
+
1206
+ /**
1207
+ * Array of Discord servers, channels, and roles to join.
1208
+ */
1209
+ discordServersToJoin?: Array<Metadata.DiscordServersToJoin> | null;
1210
+
1211
+ /**
1212
+ * Array of drip quests required to complete the rule.
1213
+ */
1214
+ dripQuestsToComplete?: Array<Metadata.DripQuestsToComplete> | null;
1215
+
1216
+ /**
1217
+ * Flag indicating whether joining Discord servers is required.
1218
+ */
1219
+ enableJoinDiscordServers?: boolean | null;
1220
+
1221
+ /**
1222
+ * Flag indicating whether streaks are enabled.
1223
+ */
1224
+ enableStreaks?: boolean | null;
1225
+
1226
+ /**
1227
+ * Flag indicating whether the verified multiplier is enabled.
1228
+ */
1229
+ enableVerifiedMultiplier?: boolean;
1230
+
1231
+ /**
1232
+ * Fill source of the order for the token sale
1233
+ */
1234
+ fillSource?: string;
1235
+
1236
+ /**
1237
+ * Percentage reward given to a user for their first referral.
1238
+ */
1239
+ firstReferralReward?: number | null;
1240
+
1241
+ /**
1242
+ * Flag indicating whether the fill source is included.
1243
+ */
1244
+ hasFillSource?: boolean;
1245
+
1246
+ /**
1247
+ * Indicates if the item has never been sold.
1248
+ */
1249
+ hasNeverSold?: boolean;
1250
+
1251
+ /**
1252
+ * Indicates if the full royalty has been paid for items.
1253
+ */
1254
+ hasPaidFullRoyalty?: boolean;
1255
+
1256
+ /**
1257
+ * Flag indicating if the sale currency is included.
1258
+ */
1259
+ hasSaleCurrency?: boolean;
1260
+
1261
+ /**
1262
+ * Indicates if the user has a verified Twitter account.
1263
+ */
1264
+ hasVerifiedTwitter?: boolean;
1265
+
1266
+ /**
1267
+ * URL of the image associated with the rule.
1268
+ */
1269
+ imageUrl?: string | null;
1270
+
1271
+ /**
1272
+ * If enabled, the first transaction done on the platform will complete this rule
1273
+ */
1274
+ isCheckInOnEveryTxn?: boolean;
1275
+
1276
+ /**
1277
+ * Indicates if the multiplier has been applied to rewards.
1278
+ */
1279
+ isMultiplierApplied?: boolean;
1280
+
1281
+ /**
1282
+ * Flag indicating if the rule is restricted to new users.
1283
+ */
1284
+ isRestrictedToNewUsers?: boolean;
1285
+
1286
+ /**
1287
+ * Flag indicating if rewards are applied retroactively.
1288
+ */
1289
+ isRetroactive?: boolean | null;
1290
+
1291
+ /**
1292
+ * Flag indicating if the token hold multiplier is applied.
1293
+ */
1294
+ isTokenHoldMultiplier?: boolean;
1295
+
1296
+ /**
1297
+ * Optional link associated with the metadata.
1298
+ */
1299
+ link?: string | null;
1300
+
1301
+ /**
1302
+ * Liquidity pool details.
1303
+ */
1304
+ liquidity?: Metadata.Liquidity;
1305
+
1306
+ /**
1307
+ * Maximum quantity constraint for token holding.
1308
+ */
1309
+ maxQty?: number | null;
1310
+
1311
+ /**
1312
+ * Minimum quantity constraint for token holding.
1313
+ */
1314
+ minQty?: number | null;
1315
+
1316
+ /**
1317
+ * Array of loyalty currency IDs used for multipliers.
1318
+ */
1319
+ multiplierLoyaltyCurrencyIds?: Array<string> | null;
1320
+
1321
+ /**
1322
+ * Flag indicating whether to include only known users.
1323
+ */
1324
+ onlyKnownUsers?: boolean;
1325
+
1326
+ /**
1327
+ * Flag indicating whether to include only native tokens.
1328
+ */
1329
+ onlyNative?: boolean;
1330
+
1331
+ /**
1332
+ * Flag indicating whether to include only non-listed items.
1333
+ */
1334
+ onlyNonListed?: boolean;
1335
+
1336
+ /**
1337
+ * Indicates if only existing users are rewarded.
1338
+ */
1339
+ onlyRewardExistingUser?: boolean;
1340
+
1341
+ /**
1342
+ * give points for only one token ownership per contract
1343
+ */
1344
+ onlyRewardSingleTokenOwnership?: boolean | null;
1345
+
1346
+ /**
1347
+ * Promotional code associated with the rule.
1348
+ */
1349
+ promoCode?: string;
1350
+
1351
+ /**
1352
+ * URL of the CSV file containing promo codes.
1353
+ */
1354
+ promoCodeCsvUrl?: string;
1355
+
1356
+ /**
1357
+ * Numbers of the promotional code to be generated.
1358
+ */
1359
+ promoCodeLength?: number | null;
1360
+
1361
+ /**
1362
+ * Type of the promotional code.
1363
+ */
1364
+ promoCodeType?: 'code' | 'csv' | 'generate';
1365
+
1366
+ /**
1367
+ * Array defining ranges and corresponding rewards.
1368
+ */
1369
+ range?: Array<Metadata.Range>;
1370
+
1371
+ /**
1372
+ * Object defining referral requirements.
1373
+ */
1374
+ referralRequirements?: Metadata.ReferralRequirements | null;
1375
+
1376
+ /**
1377
+ * Lump sum reward given to a referrer.
1378
+ */
1379
+ referrerReward?: number | null;
1380
+
1381
+ /**
1382
+ * Loyalty currency ID of the referrer reward.
1383
+ */
1384
+ referrerRewardLoyaltyCurrencyId?: string | null;
1385
+
1386
+ /**
1387
+ * Flag indicating if the post link is required.
1388
+ */
1389
+ requirePostLink?: boolean | null;
1390
+
1391
+ /**
1392
+ * Flag indicating if media metadata is required.
1393
+ */
1394
+ requirePostMediaLink?: boolean | null;
1395
+
1396
+ /**
1397
+ * Flag indicating if the rule can also reward badges per range.
1398
+ */
1399
+ rewardBadgePerRange?: boolean;
1400
+
1401
+ /**
1402
+ * Flag indicating if the reward is rewarded by batch.
1403
+ */
1404
+ rewardByBatch?: boolean | null;
1405
+
1406
+ /**
1407
+ * Flag indicating if the reward is rewarded per action.
1408
+ */
1409
+ rewardPerAction?: boolean | null;
1410
+
1411
+ /**
1412
+ * Flag indicating if rewards are given per impression.
1413
+ */
1414
+ rewardPerImpression?: boolean | null;
1415
+
1416
+ /**
1417
+ * Flag indicating if the rule should reward based on value of traded tokens
1418
+ * instead of count.
1419
+ */
1420
+ rewardPerValue?: boolean;
1421
+
1422
+ /**
1423
+ * Wallet address of the user can only be used if userId is not provided
1424
+ */
1425
+ royaltyAddress?: string;
1426
+
1427
+ /**
1428
+ * Royalty percentage of the item.
1429
+ */
1430
+ royaltyPercentage?: number;
1431
+
1432
+ /**
1433
+ * Currency associated with sales.
1434
+ */
1435
+ saleCurrency?: string;
1436
+
1437
+ /**
1438
+ * Percentage reward given for a second-level referral.
1439
+ */
1440
+ secondReferralReward?: number | null;
1441
+
1442
+ /**
1443
+ * Flag indicating if the multiplier is skipped.
1444
+ */
1445
+ skipMultiplier?: boolean | null;
1446
+
1447
+ /**
1448
+ * Object containing details of the associated smart contract.
1449
+ */
1450
+ smartContract?: Metadata.SmartContract;
1451
+
1452
+ /**
1453
+ * Array of snapshot proposals for the rule.
1454
+ */
1455
+ snapshotProposals?: Array<Metadata.SnapshotProposal> | null;
1456
+
1457
+ /**
1458
+ * Social media platform associated with the rule.
1459
+ */
1460
+ socialPlatform?:
1461
+ | 'Custom'
1462
+ | 'Discord'
1463
+ | 'EpicGames'
1464
+ | 'Instagram'
1465
+ | 'Steam'
1466
+ | 'Telegram'
1467
+ | 'TikTok'
1468
+ | 'Twitch'
1469
+ | 'X(Twitter)'
1470
+ | 'YouTube'
1471
+ | 'Google'
1472
+ | null;
1473
+
1474
+ /**
1475
+ * URL of the social platform's logo.
1476
+ */
1477
+ socialPlatformLogo?: string | null;
1478
+
1479
+ /**
1480
+ * Name of the social platform.
1481
+ */
1482
+ socialPlatformName?: string | null;
1483
+
1484
+ /**
1485
+ * ID of the Steam app.
1486
+ */
1487
+ steamAppId?: string | null;
1488
+
1489
+ /**
1490
+ * Array of streak milestones and corresponding rewards.
1491
+ */
1492
+ streakArray?: Array<Metadata.StreakArray> | null;
1493
+
1494
+ /**
1495
+ * Metadata for swap loyalty rules
1496
+ */
1497
+ swap?: Metadata.Swap;
1498
+
1499
+ /**
1500
+ * ID of the Telegram channel.
1501
+ */
1502
+ telegramChannelId?: string | null;
1503
+
1504
+ /**
1505
+ * Time delay in seconds to verify actions.
1506
+ */
1507
+ timeDelayToVerifySeconds?: string | number | null;
1508
+
1509
+ /**
1510
+ * Flag indicating if all contracts are tracked.
1511
+ */
1512
+ trackAllContracts?: boolean | null;
1513
+
1514
+ /**
1515
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
1516
+ * completed once the progress is 100%.
1517
+ */
1518
+ trackProgress?: boolean | null;
1519
+
1520
+ /**
1521
+ * URL of the associated Twitter account.
1522
+ */
1523
+ twitterAccountUrl?: string;
1524
+
1525
+ /**
1526
+ * Hashtag associated with the Twitter post.
1527
+ */
1528
+ twitterHashtag?: string;
1529
+
1530
+ /**
1531
+ * URL of the associated Twitter post.
1532
+ */
1533
+ twitterPostUrl?: string;
1534
+
1535
+ /**
1536
+ * Unique identifier of the Twitter user.
1537
+ */
1538
+ twitterUserId?: string;
1539
+
1540
+ /**
1541
+ * Twitter username of the user.
1542
+ */
1543
+ twitterUsername?: string;
1544
+
1545
+ /**
1546
+ * Minimum length of the verification text.
1547
+ */
1548
+ verificationTextMinimumLength?: number | null;
1549
+
1550
+ /**
1551
+ * Multiplier applied to rewards for verified users.
1552
+ */
1553
+ verifiedMultiplier?: number | null;
1554
+
1555
+ /**
1556
+ * Placeholder text for verification input fields.
1557
+ */
1558
+ verifyPlaceHolderText?: string | null;
1559
+
1560
+ /**
1561
+ * Type of wallet associated with the rule.
1562
+ */
1563
+ walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | 'cosmos' | 'ultra' | 'agw' | null;
1564
+
1565
+ /**
1566
+ * ID of the Youtube channel.
1567
+ */
1568
+ youtubeChannelId?: string | null;
1569
+
1570
+ /**
1571
+ * ID of the Youtube video.
1572
+ */
1573
+ youtubeVideoId?: string | null;
1574
+ }
1575
+
1576
+ export namespace Metadata {
1577
+ export interface Collection {
1578
+ /**
1579
+ * Blockchain address of the collection.
1580
+ */
1581
+ address?: string;
1582
+
1583
+ /**
1584
+ * Multiplier applied to the rewards for this collection.
1585
+ */
1586
+ multiplier?: number;
1587
+
1588
+ /**
1589
+ * Blockchain network of the collection.
1590
+ */
1591
+ network?:
1592
+ | 'abstract'
1593
+ | 'abstractTestnet'
1594
+ | 'apechain'
1595
+ | 'arbitrum'
1596
+ | 'avalanche'
1597
+ | 'avalancheFuji'
1598
+ | 'base'
1599
+ | 'baseSepolia'
1600
+ | 'berachain'
1601
+ | 'berachainArtio'
1602
+ | 'berachainBepolia'
1603
+ | 'binance'
1604
+ | 'bscTestnet'
1605
+ | 'campTestnet'
1606
+ | 'fantom'
1607
+ | 'fantomTestnet'
1608
+ | 'flowMainnet'
1609
+ | 'mainnet'
1610
+ | 'nexusTestnet'
1611
+ | 'optimism'
1612
+ | 'polygon'
1613
+ | 'polygon_mumbai'
1614
+ | 'skaleNebula'
1615
+ | 'solana'
1616
+ | 'sophon'
1617
+ | 'sophonTestnet'
1618
+ | 'sui'
1619
+ | 'superseed'
1620
+ | 'superseedSepolia'
1621
+ | 'vanar'
1622
+ | 'xai'
1623
+ | 'zksync'
1624
+ | 'coti'
1625
+ | 'cotiTestnet'
1626
+ | 'morph'
1627
+ | 'morphTestnet'
1628
+ | 'morphHolesky'
1629
+ | 'ultra'
1630
+ | 'ultraTestnet'
1631
+ | 'nitrograph'
1632
+ | 'sepolia'
1633
+ | 'optimism_sepolia'
1634
+ | 'arbitrumSepolia'
1635
+ | 'goerli'
1636
+ | 'optimism_goerli'
1637
+ | 'arbitrumGoerli'
1638
+ | 'basecamp';
1639
+ }
1640
+
1641
+ /**
1642
+ * Object containing details for the call-to-action.
1643
+ */
1644
+ export interface Cta {
1645
+ /**
1646
+ * Link for the call-to-action.
1647
+ */
1648
+ href?: string | null;
1649
+
1650
+ /**
1651
+ * Label for the call-to-action.
1652
+ */
1653
+ label?: string | null;
1654
+ }
1655
+
1656
+ export interface DiscordServersToJoin {
1657
+ /**
1658
+ * ID of the Discord server to join.
1659
+ */
1660
+ id?: string;
1661
+
1662
+ /**
1663
+ * Array of Discord channels to join.
1664
+ */
1665
+ channels?: Array<DiscordServersToJoin.Channel>;
1666
+
1667
+ /**
1668
+ * Array of roles to assign in the Discord server.
1669
+ */
1670
+ roles?: Array<DiscordServersToJoin.Role>;
1671
+ }
1672
+
1673
+ export namespace DiscordServersToJoin {
1674
+ export interface Channel {
1675
+ /**
1676
+ * ID of the Discord channel.
1677
+ */
1678
+ id?: string;
1679
+
1680
+ /**
1681
+ * Array of emojis used in the channel.
1682
+ */
1683
+ emojis?: Array<Channel.Emoji>;
1684
+
1685
+ /**
1686
+ * Phrase of text to be present in the discord message
1687
+ */
1688
+ text?: string;
1689
+ }
1690
+
1691
+ export namespace Channel {
1692
+ export interface Emoji {
1693
+ /**
1694
+ * ID of the emoji used in the channel.
1695
+ */
1696
+ id?: string;
1697
+ }
1698
+ }
1699
+
1700
+ export interface Role {
1701
+ /**
1702
+ * ID of the role in the Discord server.
1703
+ */
1704
+ id: string;
1705
+ }
1706
+ }
1707
+
1708
+ export interface DripQuestsToComplete {
1709
+ /**
1710
+ * ID of the drip quest to complete.
1711
+ */
1712
+ id: string;
1713
+ }
1714
+
1715
+ /**
1716
+ * Liquidity pool details.
1717
+ */
1718
+ export interface Liquidity {
1719
+ /**
1720
+ * Calculation type of the liquidity pool.
1721
+ */
1722
+ calculationType?: 'fixed' | 'custom';
1723
+
1724
+ /**
1725
+ * Custom function to calculate the the reward amount based on the liquidity
1726
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
1727
+ * USD.
1728
+ */
1729
+ customFunction?: string;
1730
+
1731
+ /**
1732
+ * Liquidity provided per day in USD
1733
+ */
1734
+ liquidityPerDay?: number;
1735
+
1736
+ /**
1737
+ * Blockchain network of the liquidity pool.
1738
+ */
1739
+ network?:
1740
+ | 'abstract'
1741
+ | 'abstractTestnet'
1742
+ | 'apechain'
1743
+ | 'arbitrum'
1744
+ | 'avalanche'
1745
+ | 'avalancheFuji'
1746
+ | 'base'
1747
+ | 'baseSepolia'
1748
+ | 'berachain'
1749
+ | 'berachainArtio'
1750
+ | 'berachainBepolia'
1751
+ | 'binance'
1752
+ | 'bscTestnet'
1753
+ | 'campTestnet'
1754
+ | 'fantom'
1755
+ | 'fantomTestnet'
1756
+ | 'flowMainnet'
1757
+ | 'mainnet'
1758
+ | 'nexusTestnet'
1759
+ | 'optimism'
1760
+ | 'polygon'
1761
+ | 'polygon_mumbai'
1762
+ | 'skaleNebula'
1763
+ | 'solana'
1764
+ | 'sophon'
1765
+ | 'sophonTestnet'
1766
+ | 'sui'
1767
+ | 'superseed'
1768
+ | 'superseedSepolia'
1769
+ | 'vanar'
1770
+ | 'xai'
1771
+ | 'zksync'
1772
+ | 'coti'
1773
+ | 'cotiTestnet'
1774
+ | 'morph'
1775
+ | 'morphTestnet'
1776
+ | 'morphHolesky'
1777
+ | 'ultra'
1778
+ | 'ultraTestnet'
1779
+ | 'nitrograph'
1780
+ | 'sepolia'
1781
+ | 'optimism_sepolia'
1782
+ | 'arbitrumSepolia'
1783
+ | 'goerli'
1784
+ | 'optimism_goerli'
1785
+ | 'arbitrumGoerli'
1786
+ | 'basecamp';
1787
+
1788
+ /**
1789
+ * Indicates if only in-range liquidity is rewarded.
1790
+ */
1791
+ onlyRewardInRangeLiquidity?: boolean;
1792
+
1793
+ /**
1794
+ * Array of liquidity pools associated with the rule.
1795
+ */
1796
+ pools?: Array<Liquidity.Pool>;
1797
+
1798
+ /**
1799
+ * Protocol of the liquidity pool.
1800
+ */
1801
+ protocol?: string;
1802
+ }
1803
+
1804
+ export namespace Liquidity {
1805
+ export interface Pool {
1806
+ /**
1807
+ * Unique identifier of the liquidity pool.
1808
+ */
1809
+ id: string;
1810
+ }
1811
+ }
1812
+
1813
+ export interface Range {
1814
+ /**
1815
+ * Reward amount for this range.
1816
+ */
1817
+ amount: number;
1818
+
1819
+ /**
1820
+ * End value of the range.
1821
+ */
1822
+ endRange: number;
1823
+
1824
+ /**
1825
+ * Start value of the range.
1826
+ */
1827
+ startRange: number;
1828
+
1829
+ /**
1830
+ * ID of the loyalty badge for this range.
1831
+ */
1832
+ loyaltyBadgeId?: string;
1833
+
1834
+ /**
1835
+ * Amount of the loyalty multiplier for this range.
1836
+ */
1837
+ loyaltyMultiplierAmount?: number;
1838
+ }
1839
+
1840
+ /**
1841
+ * Object defining referral requirements.
1842
+ */
1843
+ export interface ReferralRequirements {
1844
+ /**
1845
+ * Flag indicating if achieving points is required.
1846
+ */
1847
+ achievePoints?: boolean | null;
1848
+
1849
+ /**
1850
+ * Flag indicating if completing the profile is required.
1851
+ */
1852
+ completeProfile?: boolean | null;
1853
+
1854
+ /**
1855
+ * Flag indicating if connecting Discord is required.
1856
+ */
1857
+ connectDiscord?: boolean | null;
1858
+
1859
+ /**
1860
+ * Flag indicating if connecting email is required.
1861
+ */
1862
+ connectEmail?: boolean | null;
1863
+
1864
+ /**
1865
+ * Flag indicating if connecting Twitter is required.
1866
+ */
1867
+ connectTwitter?: boolean | null;
1868
+
1869
+ points?: ReferralRequirements.Points | null;
1870
+ }
1871
+
1872
+ export namespace ReferralRequirements {
1873
+ export interface Points {
1874
+ /**
1875
+ * Points required for referral.
1876
+ */
1877
+ amount?: number | null;
1878
+
1879
+ /**
1880
+ * ID of the loyalty currency for referral.
1881
+ */
1882
+ loyaltyCurrecyId?: string | null;
1883
+ }
1884
+ }
1885
+
1886
+ /**
1887
+ * Object containing details of the associated smart contract.
1888
+ */
1889
+ export interface SmartContract {
1890
+ /**
1891
+ * Mapping of addresses for the smart contract.
1892
+ */
1893
+ addressMapping?: string | null;
1894
+
1895
+ /**
1896
+ * Object containing details of the amount multiplier from the event.
1897
+ */
1898
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
1899
+
1900
+ /**
1901
+ * ID of the smart contract.
1902
+ */
1903
+ contractId?: string | null;
1904
+
1905
+ /**
1906
+ * Criteria to evaluate the smart contract event.
1907
+ */
1908
+ criteria?: 'everyEvent' | 'byParameter' | null;
1909
+
1910
+ /**
1911
+ * Event emitted by the smart contract.
1912
+ */
1913
+ event?: string | null;
1914
+
1915
+ /**
1916
+ * Array of parameters for the smart contract.
1917
+ */
1918
+ params?: Array<SmartContract.Param> | null;
1919
+
1920
+ /**
1921
+ * Type of the smart contract interaction.
1922
+ */
1923
+ type?: 'function' | 'event' | null;
1924
+ }
1925
+
1926
+ export namespace SmartContract {
1927
+ /**
1928
+ * Object containing details of the amount multiplier from the event.
1929
+ */
1930
+ export interface AmountMultiplier {
1931
+ /**
1932
+ * Mapping of the value for the smart contract.
1933
+ */
1934
+ valueMapping?: string | null;
1935
+ }
1936
+
1937
+ export interface Param {
1938
+ /**
1939
+ * Condition to check for the parameter.
1940
+ */
1941
+ condition?: string | null;
1942
+
1943
+ /**
1944
+ * Name of the smart contract parameter.
1945
+ */
1946
+ name?: string | null;
1947
+
1948
+ /**
1949
+ * Value of the parameter.
1950
+ */
1951
+ value?: string | null;
1952
+ }
1953
+ }
1954
+
1955
+ export interface SnapshotProposal {
1956
+ /**
1957
+ * ID of the snapshot proposal.
1958
+ */
1959
+ id: string;
1960
+
1961
+ /**
1962
+ * Space associated with the snapshot proposal.
1963
+ */
1964
+ space: string;
1965
+ }
1966
+
1967
+ export interface StreakArray {
1968
+ /**
1969
+ * Reward amount for achieving the streak milestone.
1970
+ */
1971
+ streakAmount: number;
1972
+
1973
+ /**
1974
+ * Milestone required to achieve the streak.
1975
+ */
1976
+ streakMilestone: number;
1977
+ }
1978
+
1979
+ /**
1980
+ * Metadata for swap loyalty rules
1981
+ */
1982
+ export interface Swap {
1983
+ provider?: 'any' | 'relay' | 'lifi';
1984
+
1985
+ relayReferrerId?: string;
1986
+
1987
+ requireCrossChainSwap?: boolean;
1988
+
1989
+ swappedToChain?: 'any' | number | string;
1990
+
1991
+ swappedToTokens?: Array<Swap.SwappedToToken>;
1992
+
1993
+ tokenMode?: 'any' | 'specific';
1994
+
1995
+ trackTokenAmount?: boolean;
1996
+ }
1997
+
1998
+ export namespace Swap {
1999
+ export interface SwappedToToken {
2000
+ address: string;
2001
+
2002
+ chainId: string;
2003
+ }
2004
+ }
2005
+ }
2006
+ }
2007
+ }
2008
+ }
2009
+
2010
+ export interface RuleEditRestoreResponse {
2011
+ /**
2012
+ * Unique identifier for the rule edit
2013
+ */
2014
+ id: string;
2015
+
2016
+ /**
2017
+ * Type of action that was made on the rule
2018
+ */
2019
+ action: 'create' | 'update' | 'delete' | 'restore';
2020
+
2021
+ /**
2022
+ * Data that was changed on the rule
2023
+ */
2024
+ data: RuleEditRestoreResponse.Data;
2025
+
2026
+ /**
2027
+ * Timestamp of when the rule edit was made
2028
+ */
2029
+ editedAt: string;
2030
+
2031
+ /**
2032
+ * User ID of the user who made the edit
2033
+ */
2034
+ editedByUserId: string;
2035
+
2036
+ /**
2037
+ * ID of the loyalty rule
2038
+ */
2039
+ loyaltyRuleId: string;
2040
+
2041
+ /**
2042
+ * Unique identifier for the organization
2043
+ */
2044
+ organizationId: string;
2045
+
2046
+ /**
2047
+ * Unique identifier for the website
2048
+ */
2049
+ websiteId: string;
2050
+
2051
+ /**
2052
+ * Comment that was made on the edit
2053
+ */
2054
+ comment?: string;
2055
+
2056
+ /**
2057
+ * Previous data of the rule before the edit
2058
+ */
2059
+ previousData?: RuleEditRestoreResponse.PreviousData;
2060
+ }
2061
+
2062
+ export namespace RuleEditRestoreResponse {
2063
+ /**
2064
+ * Data that was changed on the rule
2065
+ */
2066
+ export interface Data {
2067
+ /**
2068
+ * Unique identifier for the loyalty rule
2069
+ */
2070
+ id: string;
2071
+
2072
+ /**
2073
+ * Amount associated with the loyalty rule
2074
+ */
2075
+ amount: number;
2076
+
2077
+ /**
2078
+ * Timestamp when the loyalty rule was created
2079
+ */
2080
+ createdAt: string;
2081
+
2082
+ /**
2083
+ * Timestamp when the loyalty rule was deleted (if applicable)
2084
+ */
2085
+ deletedAt: string | null;
2086
+
2087
+ /**
2088
+ * Description of the loyalty rule
2089
+ */
2090
+ description: string;
2091
+
2092
+ /**
2093
+ * End time of the loyalty rule
2094
+ */
2095
+ endTime: string;
2096
+
2097
+ /**
2098
+ * Frequency of the loyalty rule
2099
+ */
2100
+ frequency: string;
2101
+
2102
+ /**
2103
+ * Name of the loyalty rule
2104
+ */
2105
+ name: string;
2106
+
2107
+ /**
2108
+ * Unique identifier for the organization
2109
+ */
2110
+ organizationId: string;
2111
+
2112
+ /**
2113
+ * Type of the reward
2114
+ */
2115
+ rewardType: 'points' | 'multiplier' | 'badge';
2116
+
2117
+ /**
2118
+ * Start time of the loyalty rule
2119
+ */
2120
+ startTime: string;
2121
+
2122
+ /**
2123
+ * Type of the loyalty rule
2124
+ */
2125
+ type: string;
2126
+
2127
+ /**
2128
+ * Timestamp when the loyalty rule was last updated
2129
+ */
2130
+ updatedAt: string;
2131
+
2132
+ /**
2133
+ * Unique identifier for the website
2134
+ */
2135
+ websiteId: string;
2136
+
2137
+ /**
2138
+ * Optional address of the collection
2139
+ */
2140
+ collectionAddress?: string;
2141
+
2142
+ /**
2143
+ * URL of the media associated with the loyalty rule
2144
+ */
2145
+ mediaUrl?: string | null;
2146
+
2147
+ /**
2148
+ * Optional metadata for the loyalty rule
2149
+ */
2150
+ metadata?: { [key: string]: Data.Metadata };
2151
+ }
2152
+
2153
+ export namespace Data {
2154
+ export interface Metadata {
2155
+ /**
2156
+ * Number of tokens per batch.
2157
+ */
2158
+ batchSize?: number | null;
2159
+
2160
+ /**
2161
+ * Text displayed on the action button.
2162
+ */
2163
+ buttonText?: string | null;
2164
+
2165
+ /**
2166
+ * Flag indicating if commenting is required.
2167
+ */
2168
+ checkComment?: boolean | null;
2169
+
2170
+ /**
2171
+ * Flag indicating if liking the post is required.
2172
+ */
2173
+ checkLike?: boolean | null;
2174
+
2175
+ /**
2176
+ * Flag indicating if reposting is required.
2177
+ */
2178
+ checkRepost?: boolean | null;
2179
+
2180
+ /**
2181
+ * Text to check in the Twitter post, username, or bio.
2182
+ */
2183
+ checkText?: string | Array<string> | null;
2184
+
2185
+ /**
2186
+ * Array of collections associated with the rule.
2187
+ */
2188
+ collection?: Array<Metadata.Collection>;
2189
+
2190
+ /**
2191
+ * Conditions for completing the profile.
2192
+ */
2193
+ completeProfileConditions?: { [key: string]: boolean } | null;
2194
+
2195
+ /**
2196
+ * Description of the external rule condition (only for external rules)
2197
+ */
2198
+ conditionDescription?: string;
2199
+
2200
+ /**
2201
+ * Object containing details for the call-to-action.
2202
+ */
2203
+ cta?: Metadata.Cta | null;
2204
+
2205
+ /**
2206
+ * API key for custom rewards integration.
2207
+ */
2208
+ customRewardsApiKey?: string;
2209
+
2210
+ /**
2211
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
2212
+ */
2213
+ directRpc?: boolean;
2214
+
2215
+ /**
2216
+ * Array of Discord servers, channels, and roles to join.
2217
+ */
2218
+ discordServersToJoin?: Array<Metadata.DiscordServersToJoin> | null;
2219
+
2220
+ /**
2221
+ * Array of drip quests required to complete the rule.
2222
+ */
2223
+ dripQuestsToComplete?: Array<Metadata.DripQuestsToComplete> | null;
2224
+
2225
+ /**
2226
+ * Flag indicating whether joining Discord servers is required.
2227
+ */
2228
+ enableJoinDiscordServers?: boolean | null;
2229
+
2230
+ /**
2231
+ * Flag indicating whether streaks are enabled.
2232
+ */
2233
+ enableStreaks?: boolean | null;
2234
+
2235
+ /**
2236
+ * Flag indicating whether the verified multiplier is enabled.
2237
+ */
2238
+ enableVerifiedMultiplier?: boolean;
2239
+
2240
+ /**
2241
+ * Fill source of the order for the token sale
2242
+ */
2243
+ fillSource?: string;
2244
+
2245
+ /**
2246
+ * Percentage reward given to a user for their first referral.
2247
+ */
2248
+ firstReferralReward?: number | null;
2249
+
2250
+ /**
2251
+ * Flag indicating whether the fill source is included.
2252
+ */
2253
+ hasFillSource?: boolean;
2254
+
2255
+ /**
2256
+ * Indicates if the item has never been sold.
2257
+ */
2258
+ hasNeverSold?: boolean;
2259
+
2260
+ /**
2261
+ * Indicates if the full royalty has been paid for items.
2262
+ */
2263
+ hasPaidFullRoyalty?: boolean;
2264
+
2265
+ /**
2266
+ * Flag indicating if the sale currency is included.
2267
+ */
2268
+ hasSaleCurrency?: boolean;
2269
+
2270
+ /**
2271
+ * Indicates if the user has a verified Twitter account.
2272
+ */
2273
+ hasVerifiedTwitter?: boolean;
2274
+
2275
+ /**
2276
+ * URL of the image associated with the rule.
2277
+ */
2278
+ imageUrl?: string | null;
2279
+
2280
+ /**
2281
+ * If enabled, the first transaction done on the platform will complete this rule
2282
+ */
2283
+ isCheckInOnEveryTxn?: boolean;
2284
+
2285
+ /**
2286
+ * Indicates if the multiplier has been applied to rewards.
2287
+ */
2288
+ isMultiplierApplied?: boolean;
2289
+
2290
+ /**
2291
+ * Flag indicating if the rule is restricted to new users.
2292
+ */
2293
+ isRestrictedToNewUsers?: boolean;
2294
+
2295
+ /**
2296
+ * Flag indicating if rewards are applied retroactively.
2297
+ */
2298
+ isRetroactive?: boolean | null;
2299
+
2300
+ /**
2301
+ * Flag indicating if the token hold multiplier is applied.
2302
+ */
2303
+ isTokenHoldMultiplier?: boolean;
2304
+
2305
+ /**
2306
+ * Optional link associated with the metadata.
2307
+ */
2308
+ link?: string | null;
2309
+
2310
+ /**
2311
+ * Liquidity pool details.
2312
+ */
2313
+ liquidity?: Metadata.Liquidity;
2314
+
2315
+ /**
2316
+ * Maximum quantity constraint for token holding.
2317
+ */
2318
+ maxQty?: number | null;
2319
+
2320
+ /**
2321
+ * Minimum quantity constraint for token holding.
2322
+ */
2323
+ minQty?: number | null;
2324
+
2325
+ /**
2326
+ * Array of loyalty currency IDs used for multipliers.
2327
+ */
2328
+ multiplierLoyaltyCurrencyIds?: Array<string> | null;
2329
+
2330
+ /**
2331
+ * Flag indicating whether to include only known users.
2332
+ */
2333
+ onlyKnownUsers?: boolean;
2334
+
2335
+ /**
2336
+ * Flag indicating whether to include only native tokens.
2337
+ */
2338
+ onlyNative?: boolean;
2339
+
2340
+ /**
2341
+ * Flag indicating whether to include only non-listed items.
2342
+ */
2343
+ onlyNonListed?: boolean;
2344
+
2345
+ /**
2346
+ * Indicates if only existing users are rewarded.
2347
+ */
2348
+ onlyRewardExistingUser?: boolean;
2349
+
2350
+ /**
2351
+ * give points for only one token ownership per contract
2352
+ */
2353
+ onlyRewardSingleTokenOwnership?: boolean | null;
2354
+
2355
+ /**
2356
+ * Promotional code associated with the rule.
2357
+ */
2358
+ promoCode?: string;
2359
+
2360
+ /**
2361
+ * URL of the CSV file containing promo codes.
2362
+ */
2363
+ promoCodeCsvUrl?: string;
2364
+
2365
+ /**
2366
+ * Numbers of the promotional code to be generated.
2367
+ */
2368
+ promoCodeLength?: number | null;
2369
+
2370
+ /**
2371
+ * Type of the promotional code.
2372
+ */
2373
+ promoCodeType?: 'code' | 'csv' | 'generate';
2374
+
2375
+ /**
2376
+ * Array defining ranges and corresponding rewards.
2377
+ */
2378
+ range?: Array<Metadata.Range>;
2379
+
2380
+ /**
2381
+ * Object defining referral requirements.
2382
+ */
2383
+ referralRequirements?: Metadata.ReferralRequirements | null;
2384
+
2385
+ /**
2386
+ * Lump sum reward given to a referrer.
2387
+ */
2388
+ referrerReward?: number | null;
2389
+
2390
+ /**
2391
+ * Loyalty currency ID of the referrer reward.
2392
+ */
2393
+ referrerRewardLoyaltyCurrencyId?: string | null;
2394
+
2395
+ /**
2396
+ * Flag indicating if the post link is required.
2397
+ */
2398
+ requirePostLink?: boolean | null;
2399
+
2400
+ /**
2401
+ * Flag indicating if media metadata is required.
2402
+ */
2403
+ requirePostMediaLink?: boolean | null;
2404
+
2405
+ /**
2406
+ * Flag indicating if the rule can also reward badges per range.
2407
+ */
2408
+ rewardBadgePerRange?: boolean;
2409
+
2410
+ /**
2411
+ * Flag indicating if the reward is rewarded by batch.
2412
+ */
2413
+ rewardByBatch?: boolean | null;
2414
+
2415
+ /**
2416
+ * Flag indicating if the reward is rewarded per action.
2417
+ */
2418
+ rewardPerAction?: boolean | null;
2419
+
2420
+ /**
2421
+ * Flag indicating if rewards are given per impression.
2422
+ */
2423
+ rewardPerImpression?: boolean | null;
2424
+
2425
+ /**
2426
+ * Flag indicating if the rule should reward based on value of traded tokens
2427
+ * instead of count.
2428
+ */
2429
+ rewardPerValue?: boolean;
2430
+
2431
+ /**
2432
+ * Wallet address of the user can only be used if userId is not provided
2433
+ */
2434
+ royaltyAddress?: string;
2435
+
2436
+ /**
2437
+ * Royalty percentage of the item.
2438
+ */
2439
+ royaltyPercentage?: number;
2440
+
2441
+ /**
2442
+ * Currency associated with sales.
2443
+ */
2444
+ saleCurrency?: string;
2445
+
2446
+ /**
2447
+ * Percentage reward given for a second-level referral.
2448
+ */
2449
+ secondReferralReward?: number | null;
2450
+
2451
+ /**
2452
+ * Flag indicating if the multiplier is skipped.
2453
+ */
2454
+ skipMultiplier?: boolean | null;
2455
+
2456
+ /**
2457
+ * Object containing details of the associated smart contract.
2458
+ */
2459
+ smartContract?: Metadata.SmartContract;
2460
+
2461
+ /**
2462
+ * Array of snapshot proposals for the rule.
2463
+ */
2464
+ snapshotProposals?: Array<Metadata.SnapshotProposal> | null;
2465
+
2466
+ /**
2467
+ * Social media platform associated with the rule.
2468
+ */
2469
+ socialPlatform?:
2470
+ | 'Custom'
2471
+ | 'Discord'
2472
+ | 'EpicGames'
2473
+ | 'Instagram'
2474
+ | 'Steam'
2475
+ | 'Telegram'
2476
+ | 'TikTok'
2477
+ | 'Twitch'
2478
+ | 'X(Twitter)'
2479
+ | 'YouTube'
2480
+ | 'Google'
2481
+ | null;
2482
+
2483
+ /**
2484
+ * URL of the social platform's logo.
2485
+ */
2486
+ socialPlatformLogo?: string | null;
2487
+
2488
+ /**
2489
+ * Name of the social platform.
2490
+ */
2491
+ socialPlatformName?: string | null;
2492
+
2493
+ /**
2494
+ * ID of the Steam app.
2495
+ */
2496
+ steamAppId?: string | null;
2497
+
2498
+ /**
2499
+ * Array of streak milestones and corresponding rewards.
2500
+ */
2501
+ streakArray?: Array<Metadata.StreakArray> | null;
2502
+
2503
+ /**
2504
+ * Metadata for swap loyalty rules
2505
+ */
2506
+ swap?: Metadata.Swap;
2507
+
2508
+ /**
2509
+ * ID of the Telegram channel.
2510
+ */
2511
+ telegramChannelId?: string | null;
2512
+
2513
+ /**
2514
+ * Time delay in seconds to verify actions.
2515
+ */
2516
+ timeDelayToVerifySeconds?: string | number | null;
2517
+
2518
+ /**
2519
+ * Flag indicating if all contracts are tracked.
2520
+ */
2521
+ trackAllContracts?: boolean | null;
2522
+
2523
+ /**
2524
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
2525
+ * completed once the progress is 100%.
2526
+ */
2527
+ trackProgress?: boolean | null;
2528
+
2529
+ /**
2530
+ * URL of the associated Twitter account.
2531
+ */
2532
+ twitterAccountUrl?: string;
2533
+
2534
+ /**
2535
+ * Hashtag associated with the Twitter post.
2536
+ */
2537
+ twitterHashtag?: string;
2538
+
2539
+ /**
2540
+ * URL of the associated Twitter post.
2541
+ */
2542
+ twitterPostUrl?: string;
2543
+
2544
+ /**
2545
+ * Unique identifier of the Twitter user.
2546
+ */
2547
+ twitterUserId?: string;
2548
+
2549
+ /**
2550
+ * Twitter username of the user.
2551
+ */
2552
+ twitterUsername?: string;
2553
+
2554
+ /**
2555
+ * Minimum length of the verification text.
2556
+ */
2557
+ verificationTextMinimumLength?: number | null;
2558
+
2559
+ /**
2560
+ * Multiplier applied to rewards for verified users.
2561
+ */
2562
+ verifiedMultiplier?: number | null;
2563
+
2564
+ /**
2565
+ * Placeholder text for verification input fields.
2566
+ */
2567
+ verifyPlaceHolderText?: string | null;
2568
+
2569
+ /**
2570
+ * Type of wallet associated with the rule.
2571
+ */
2572
+ walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | 'cosmos' | 'ultra' | 'agw' | null;
2573
+
2574
+ /**
2575
+ * ID of the Youtube channel.
2576
+ */
2577
+ youtubeChannelId?: string | null;
2578
+
2579
+ /**
2580
+ * ID of the Youtube video.
2581
+ */
2582
+ youtubeVideoId?: string | null;
2583
+ }
2584
+
2585
+ export namespace Metadata {
2586
+ export interface Collection {
2587
+ /**
2588
+ * Blockchain address of the collection.
2589
+ */
2590
+ address?: string;
2591
+
2592
+ /**
2593
+ * Multiplier applied to the rewards for this collection.
2594
+ */
2595
+ multiplier?: number;
2596
+
2597
+ /**
2598
+ * Blockchain network of the collection.
2599
+ */
2600
+ network?:
2601
+ | 'abstract'
2602
+ | 'abstractTestnet'
2603
+ | 'apechain'
2604
+ | 'arbitrum'
2605
+ | 'avalanche'
2606
+ | 'avalancheFuji'
2607
+ | 'base'
2608
+ | 'baseSepolia'
2609
+ | 'berachain'
2610
+ | 'berachainArtio'
2611
+ | 'berachainBepolia'
2612
+ | 'binance'
2613
+ | 'bscTestnet'
2614
+ | 'campTestnet'
2615
+ | 'fantom'
2616
+ | 'fantomTestnet'
2617
+ | 'flowMainnet'
2618
+ | 'mainnet'
2619
+ | 'nexusTestnet'
2620
+ | 'optimism'
2621
+ | 'polygon'
2622
+ | 'polygon_mumbai'
2623
+ | 'skaleNebula'
2624
+ | 'solana'
2625
+ | 'sophon'
2626
+ | 'sophonTestnet'
2627
+ | 'sui'
2628
+ | 'superseed'
2629
+ | 'superseedSepolia'
2630
+ | 'vanar'
2631
+ | 'xai'
2632
+ | 'zksync'
2633
+ | 'coti'
2634
+ | 'cotiTestnet'
2635
+ | 'morph'
2636
+ | 'morphTestnet'
2637
+ | 'morphHolesky'
2638
+ | 'ultra'
2639
+ | 'ultraTestnet'
2640
+ | 'nitrograph'
2641
+ | 'sepolia'
2642
+ | 'optimism_sepolia'
2643
+ | 'arbitrumSepolia'
2644
+ | 'goerli'
2645
+ | 'optimism_goerli'
2646
+ | 'arbitrumGoerli'
2647
+ | 'basecamp';
2648
+ }
2649
+
2650
+ /**
2651
+ * Object containing details for the call-to-action.
2652
+ */
2653
+ export interface Cta {
2654
+ /**
2655
+ * Link for the call-to-action.
2656
+ */
2657
+ href?: string | null;
2658
+
2659
+ /**
2660
+ * Label for the call-to-action.
2661
+ */
2662
+ label?: string | null;
2663
+ }
2664
+
2665
+ export interface DiscordServersToJoin {
2666
+ /**
2667
+ * ID of the Discord server to join.
2668
+ */
2669
+ id?: string;
2670
+
2671
+ /**
2672
+ * Array of Discord channels to join.
2673
+ */
2674
+ channels?: Array<DiscordServersToJoin.Channel>;
2675
+
2676
+ /**
2677
+ * Array of roles to assign in the Discord server.
2678
+ */
2679
+ roles?: Array<DiscordServersToJoin.Role>;
2680
+ }
2681
+
2682
+ export namespace DiscordServersToJoin {
2683
+ export interface Channel {
2684
+ /**
2685
+ * ID of the Discord channel.
2686
+ */
2687
+ id?: string;
2688
+
2689
+ /**
2690
+ * Array of emojis used in the channel.
2691
+ */
2692
+ emojis?: Array<Channel.Emoji>;
2693
+
2694
+ /**
2695
+ * Phrase of text to be present in the discord message
2696
+ */
2697
+ text?: string;
2698
+ }
2699
+
2700
+ export namespace Channel {
2701
+ export interface Emoji {
2702
+ /**
2703
+ * ID of the emoji used in the channel.
2704
+ */
2705
+ id?: string;
2706
+ }
2707
+ }
2708
+
2709
+ export interface Role {
2710
+ /**
2711
+ * ID of the role in the Discord server.
2712
+ */
2713
+ id: string;
2714
+ }
2715
+ }
2716
+
2717
+ export interface DripQuestsToComplete {
2718
+ /**
2719
+ * ID of the drip quest to complete.
2720
+ */
2721
+ id: string;
2722
+ }
2723
+
2724
+ /**
2725
+ * Liquidity pool details.
2726
+ */
2727
+ export interface Liquidity {
2728
+ /**
2729
+ * Calculation type of the liquidity pool.
2730
+ */
2731
+ calculationType?: 'fixed' | 'custom';
2732
+
2733
+ /**
2734
+ * Custom function to calculate the the reward amount based on the liquidity
2735
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
2736
+ * USD.
2737
+ */
2738
+ customFunction?: string;
2739
+
2740
+ /**
2741
+ * Liquidity provided per day in USD
2742
+ */
2743
+ liquidityPerDay?: number;
2744
+
2745
+ /**
2746
+ * Blockchain network of the liquidity pool.
2747
+ */
2748
+ network?:
2749
+ | 'abstract'
2750
+ | 'abstractTestnet'
2751
+ | 'apechain'
2752
+ | 'arbitrum'
2753
+ | 'avalanche'
2754
+ | 'avalancheFuji'
2755
+ | 'base'
2756
+ | 'baseSepolia'
2757
+ | 'berachain'
2758
+ | 'berachainArtio'
2759
+ | 'berachainBepolia'
2760
+ | 'binance'
2761
+ | 'bscTestnet'
2762
+ | 'campTestnet'
2763
+ | 'fantom'
2764
+ | 'fantomTestnet'
2765
+ | 'flowMainnet'
2766
+ | 'mainnet'
2767
+ | 'nexusTestnet'
2768
+ | 'optimism'
2769
+ | 'polygon'
2770
+ | 'polygon_mumbai'
2771
+ | 'skaleNebula'
2772
+ | 'solana'
2773
+ | 'sophon'
2774
+ | 'sophonTestnet'
2775
+ | 'sui'
2776
+ | 'superseed'
2777
+ | 'superseedSepolia'
2778
+ | 'vanar'
2779
+ | 'xai'
2780
+ | 'zksync'
2781
+ | 'coti'
2782
+ | 'cotiTestnet'
2783
+ | 'morph'
2784
+ | 'morphTestnet'
2785
+ | 'morphHolesky'
2786
+ | 'ultra'
2787
+ | 'ultraTestnet'
2788
+ | 'nitrograph'
2789
+ | 'sepolia'
2790
+ | 'optimism_sepolia'
2791
+ | 'arbitrumSepolia'
2792
+ | 'goerli'
2793
+ | 'optimism_goerli'
2794
+ | 'arbitrumGoerli'
2795
+ | 'basecamp';
2796
+
2797
+ /**
2798
+ * Indicates if only in-range liquidity is rewarded.
2799
+ */
2800
+ onlyRewardInRangeLiquidity?: boolean;
2801
+
2802
+ /**
2803
+ * Array of liquidity pools associated with the rule.
2804
+ */
2805
+ pools?: Array<Liquidity.Pool>;
2806
+
2807
+ /**
2808
+ * Protocol of the liquidity pool.
2809
+ */
2810
+ protocol?: string;
2811
+ }
2812
+
2813
+ export namespace Liquidity {
2814
+ export interface Pool {
2815
+ /**
2816
+ * Unique identifier of the liquidity pool.
2817
+ */
2818
+ id: string;
2819
+ }
2820
+ }
2821
+
2822
+ export interface Range {
2823
+ /**
2824
+ * Reward amount for this range.
2825
+ */
2826
+ amount: number;
2827
+
2828
+ /**
2829
+ * End value of the range.
2830
+ */
2831
+ endRange: number;
2832
+
2833
+ /**
2834
+ * Start value of the range.
2835
+ */
2836
+ startRange: number;
2837
+
2838
+ /**
2839
+ * ID of the loyalty badge for this range.
2840
+ */
2841
+ loyaltyBadgeId?: string;
2842
+
2843
+ /**
2844
+ * Amount of the loyalty multiplier for this range.
2845
+ */
2846
+ loyaltyMultiplierAmount?: number;
2847
+ }
2848
+
2849
+ /**
2850
+ * Object defining referral requirements.
2851
+ */
2852
+ export interface ReferralRequirements {
2853
+ /**
2854
+ * Flag indicating if achieving points is required.
2855
+ */
2856
+ achievePoints?: boolean | null;
2857
+
2858
+ /**
2859
+ * Flag indicating if completing the profile is required.
2860
+ */
2861
+ completeProfile?: boolean | null;
2862
+
2863
+ /**
2864
+ * Flag indicating if connecting Discord is required.
2865
+ */
2866
+ connectDiscord?: boolean | null;
2867
+
2868
+ /**
2869
+ * Flag indicating if connecting email is required.
2870
+ */
2871
+ connectEmail?: boolean | null;
2872
+
2873
+ /**
2874
+ * Flag indicating if connecting Twitter is required.
2875
+ */
2876
+ connectTwitter?: boolean | null;
2877
+
2878
+ points?: ReferralRequirements.Points | null;
2879
+ }
2880
+
2881
+ export namespace ReferralRequirements {
2882
+ export interface Points {
2883
+ /**
2884
+ * Points required for referral.
2885
+ */
2886
+ amount?: number | null;
2887
+
2888
+ /**
2889
+ * ID of the loyalty currency for referral.
2890
+ */
2891
+ loyaltyCurrecyId?: string | null;
2892
+ }
2893
+ }
2894
+
2895
+ /**
2896
+ * Object containing details of the associated smart contract.
2897
+ */
2898
+ export interface SmartContract {
2899
+ /**
2900
+ * Mapping of addresses for the smart contract.
2901
+ */
2902
+ addressMapping?: string | null;
2903
+
2904
+ /**
2905
+ * Object containing details of the amount multiplier from the event.
2906
+ */
2907
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
2908
+
2909
+ /**
2910
+ * ID of the smart contract.
2911
+ */
2912
+ contractId?: string | null;
2913
+
2914
+ /**
2915
+ * Criteria to evaluate the smart contract event.
2916
+ */
2917
+ criteria?: 'everyEvent' | 'byParameter' | null;
2918
+
2919
+ /**
2920
+ * Event emitted by the smart contract.
2921
+ */
2922
+ event?: string | null;
2923
+
2924
+ /**
2925
+ * Array of parameters for the smart contract.
2926
+ */
2927
+ params?: Array<SmartContract.Param> | null;
2928
+
2929
+ /**
2930
+ * Type of the smart contract interaction.
2931
+ */
2932
+ type?: 'function' | 'event' | null;
2933
+ }
2934
+
2935
+ export namespace SmartContract {
2936
+ /**
2937
+ * Object containing details of the amount multiplier from the event.
2938
+ */
2939
+ export interface AmountMultiplier {
2940
+ /**
2941
+ * Mapping of the value for the smart contract.
2942
+ */
2943
+ valueMapping?: string | null;
2944
+ }
2945
+
2946
+ export interface Param {
2947
+ /**
2948
+ * Condition to check for the parameter.
2949
+ */
2950
+ condition?: string | null;
2951
+
2952
+ /**
2953
+ * Name of the smart contract parameter.
2954
+ */
2955
+ name?: string | null;
2956
+
2957
+ /**
2958
+ * Value of the parameter.
2959
+ */
2960
+ value?: string | null;
2961
+ }
2962
+ }
2963
+
2964
+ export interface SnapshotProposal {
2965
+ /**
2966
+ * ID of the snapshot proposal.
2967
+ */
2968
+ id: string;
2969
+
2970
+ /**
2971
+ * Space associated with the snapshot proposal.
2972
+ */
2973
+ space: string;
2974
+ }
2975
+
2976
+ export interface StreakArray {
2977
+ /**
2978
+ * Reward amount for achieving the streak milestone.
2979
+ */
2980
+ streakAmount: number;
2981
+
2982
+ /**
2983
+ * Milestone required to achieve the streak.
2984
+ */
2985
+ streakMilestone: number;
2986
+ }
2987
+
2988
+ /**
2989
+ * Metadata for swap loyalty rules
2990
+ */
2991
+ export interface Swap {
2992
+ provider?: 'any' | 'relay' | 'lifi';
2993
+
2994
+ relayReferrerId?: string;
2995
+
2996
+ requireCrossChainSwap?: boolean;
2997
+
2998
+ swappedToChain?: 'any' | number | string;
2999
+
3000
+ swappedToTokens?: Array<Swap.SwappedToToken>;
3001
+
3002
+ tokenMode?: 'any' | 'specific';
3003
+
3004
+ trackTokenAmount?: boolean;
3005
+ }
3006
+
3007
+ export namespace Swap {
3008
+ export interface SwappedToToken {
3009
+ address: string;
3010
+
3011
+ chainId: string;
3012
+ }
3013
+ }
3014
+ }
3015
+ }
3016
+
3017
+ /**
3018
+ * Previous data of the rule before the edit
3019
+ */
3020
+ export interface PreviousData {
3021
+ /**
3022
+ * Unique identifier for the loyalty rule
3023
+ */
3024
+ id: string;
3025
+
3026
+ /**
3027
+ * Amount associated with the loyalty rule
3028
+ */
3029
+ amount: number;
3030
+
3031
+ /**
3032
+ * Timestamp when the loyalty rule was created
3033
+ */
3034
+ createdAt: string;
3035
+
3036
+ /**
3037
+ * Timestamp when the loyalty rule was deleted (if applicable)
3038
+ */
3039
+ deletedAt: string | null;
3040
+
3041
+ /**
3042
+ * Description of the loyalty rule
3043
+ */
3044
+ description: string;
3045
+
3046
+ /**
3047
+ * End time of the loyalty rule
3048
+ */
3049
+ endTime: string;
3050
+
3051
+ /**
3052
+ * Frequency of the loyalty rule
3053
+ */
3054
+ frequency: string;
3055
+
3056
+ /**
3057
+ * Name of the loyalty rule
3058
+ */
3059
+ name: string;
3060
+
3061
+ /**
3062
+ * Unique identifier for the organization
3063
+ */
3064
+ organizationId: string;
3065
+
3066
+ /**
3067
+ * Type of the reward
3068
+ */
3069
+ rewardType: 'points' | 'multiplier' | 'badge';
3070
+
3071
+ /**
3072
+ * Start time of the loyalty rule
3073
+ */
3074
+ startTime: string;
3075
+
3076
+ /**
3077
+ * Type of the loyalty rule
3078
+ */
3079
+ type: string;
3080
+
3081
+ /**
3082
+ * Timestamp when the loyalty rule was last updated
3083
+ */
3084
+ updatedAt: string;
3085
+
3086
+ /**
3087
+ * Unique identifier for the website
3088
+ */
3089
+ websiteId: string;
3090
+
3091
+ /**
3092
+ * Optional address of the collection
3093
+ */
3094
+ collectionAddress?: string;
3095
+
3096
+ /**
3097
+ * URL of the media associated with the loyalty rule
3098
+ */
3099
+ mediaUrl?: string | null;
3100
+
3101
+ /**
3102
+ * Optional metadata for the loyalty rule
3103
+ */
3104
+ metadata?: { [key: string]: PreviousData.Metadata };
3105
+ }
3106
+
3107
+ export namespace PreviousData {
3108
+ export interface Metadata {
3109
+ /**
3110
+ * Number of tokens per batch.
3111
+ */
3112
+ batchSize?: number | null;
3113
+
3114
+ /**
3115
+ * Text displayed on the action button.
3116
+ */
3117
+ buttonText?: string | null;
3118
+
3119
+ /**
3120
+ * Flag indicating if commenting is required.
3121
+ */
3122
+ checkComment?: boolean | null;
3123
+
3124
+ /**
3125
+ * Flag indicating if liking the post is required.
3126
+ */
3127
+ checkLike?: boolean | null;
3128
+
3129
+ /**
3130
+ * Flag indicating if reposting is required.
3131
+ */
3132
+ checkRepost?: boolean | null;
3133
+
3134
+ /**
3135
+ * Text to check in the Twitter post, username, or bio.
3136
+ */
3137
+ checkText?: string | Array<string> | null;
3138
+
3139
+ /**
3140
+ * Array of collections associated with the rule.
3141
+ */
3142
+ collection?: Array<Metadata.Collection>;
3143
+
3144
+ /**
3145
+ * Conditions for completing the profile.
3146
+ */
3147
+ completeProfileConditions?: { [key: string]: boolean } | null;
3148
+
3149
+ /**
3150
+ * Description of the external rule condition (only for external rules)
3151
+ */
3152
+ conditionDescription?: string;
3153
+
3154
+ /**
3155
+ * Object containing details for the call-to-action.
3156
+ */
3157
+ cta?: Metadata.Cta | null;
3158
+
3159
+ /**
3160
+ * API key for custom rewards integration.
3161
+ */
3162
+ customRewardsApiKey?: string;
3163
+
3164
+ /**
3165
+ * Flag indicating if the rule should use direct RPC to get the balance of tokens.
3166
+ */
3167
+ directRpc?: boolean;
3168
+
3169
+ /**
3170
+ * Array of Discord servers, channels, and roles to join.
3171
+ */
3172
+ discordServersToJoin?: Array<Metadata.DiscordServersToJoin> | null;
3173
+
3174
+ /**
3175
+ * Array of drip quests required to complete the rule.
3176
+ */
3177
+ dripQuestsToComplete?: Array<Metadata.DripQuestsToComplete> | null;
3178
+
3179
+ /**
3180
+ * Flag indicating whether joining Discord servers is required.
3181
+ */
3182
+ enableJoinDiscordServers?: boolean | null;
3183
+
3184
+ /**
3185
+ * Flag indicating whether streaks are enabled.
3186
+ */
3187
+ enableStreaks?: boolean | null;
3188
+
3189
+ /**
3190
+ * Flag indicating whether the verified multiplier is enabled.
3191
+ */
3192
+ enableVerifiedMultiplier?: boolean;
3193
+
3194
+ /**
3195
+ * Fill source of the order for the token sale
3196
+ */
3197
+ fillSource?: string;
3198
+
3199
+ /**
3200
+ * Percentage reward given to a user for their first referral.
3201
+ */
3202
+ firstReferralReward?: number | null;
3203
+
3204
+ /**
3205
+ * Flag indicating whether the fill source is included.
3206
+ */
3207
+ hasFillSource?: boolean;
3208
+
3209
+ /**
3210
+ * Indicates if the item has never been sold.
3211
+ */
3212
+ hasNeverSold?: boolean;
3213
+
3214
+ /**
3215
+ * Indicates if the full royalty has been paid for items.
3216
+ */
3217
+ hasPaidFullRoyalty?: boolean;
3218
+
3219
+ /**
3220
+ * Flag indicating if the sale currency is included.
3221
+ */
3222
+ hasSaleCurrency?: boolean;
3223
+
3224
+ /**
3225
+ * Indicates if the user has a verified Twitter account.
3226
+ */
3227
+ hasVerifiedTwitter?: boolean;
3228
+
3229
+ /**
3230
+ * URL of the image associated with the rule.
3231
+ */
3232
+ imageUrl?: string | null;
3233
+
3234
+ /**
3235
+ * If enabled, the first transaction done on the platform will complete this rule
3236
+ */
3237
+ isCheckInOnEveryTxn?: boolean;
3238
+
3239
+ /**
3240
+ * Indicates if the multiplier has been applied to rewards.
3241
+ */
3242
+ isMultiplierApplied?: boolean;
3243
+
3244
+ /**
3245
+ * Flag indicating if the rule is restricted to new users.
3246
+ */
3247
+ isRestrictedToNewUsers?: boolean;
3248
+
3249
+ /**
3250
+ * Flag indicating if rewards are applied retroactively.
3251
+ */
3252
+ isRetroactive?: boolean | null;
3253
+
3254
+ /**
3255
+ * Flag indicating if the token hold multiplier is applied.
3256
+ */
3257
+ isTokenHoldMultiplier?: boolean;
3258
+
3259
+ /**
3260
+ * Optional link associated with the metadata.
3261
+ */
3262
+ link?: string | null;
3263
+
3264
+ /**
3265
+ * Liquidity pool details.
3266
+ */
3267
+ liquidity?: Metadata.Liquidity;
3268
+
3269
+ /**
3270
+ * Maximum quantity constraint for token holding.
3271
+ */
3272
+ maxQty?: number | null;
3273
+
3274
+ /**
3275
+ * Minimum quantity constraint for token holding.
3276
+ */
3277
+ minQty?: number | null;
3278
+
3279
+ /**
3280
+ * Array of loyalty currency IDs used for multipliers.
3281
+ */
3282
+ multiplierLoyaltyCurrencyIds?: Array<string> | null;
3283
+
3284
+ /**
3285
+ * Flag indicating whether to include only known users.
3286
+ */
3287
+ onlyKnownUsers?: boolean;
3288
+
3289
+ /**
3290
+ * Flag indicating whether to include only native tokens.
3291
+ */
3292
+ onlyNative?: boolean;
3293
+
3294
+ /**
3295
+ * Flag indicating whether to include only non-listed items.
3296
+ */
3297
+ onlyNonListed?: boolean;
3298
+
3299
+ /**
3300
+ * Indicates if only existing users are rewarded.
3301
+ */
3302
+ onlyRewardExistingUser?: boolean;
3303
+
3304
+ /**
3305
+ * give points for only one token ownership per contract
3306
+ */
3307
+ onlyRewardSingleTokenOwnership?: boolean | null;
3308
+
3309
+ /**
3310
+ * Promotional code associated with the rule.
3311
+ */
3312
+ promoCode?: string;
3313
+
3314
+ /**
3315
+ * URL of the CSV file containing promo codes.
3316
+ */
3317
+ promoCodeCsvUrl?: string;
3318
+
3319
+ /**
3320
+ * Numbers of the promotional code to be generated.
3321
+ */
3322
+ promoCodeLength?: number | null;
3323
+
3324
+ /**
3325
+ * Type of the promotional code.
3326
+ */
3327
+ promoCodeType?: 'code' | 'csv' | 'generate';
3328
+
3329
+ /**
3330
+ * Array defining ranges and corresponding rewards.
3331
+ */
3332
+ range?: Array<Metadata.Range>;
3333
+
3334
+ /**
3335
+ * Object defining referral requirements.
3336
+ */
3337
+ referralRequirements?: Metadata.ReferralRequirements | null;
3338
+
3339
+ /**
3340
+ * Lump sum reward given to a referrer.
3341
+ */
3342
+ referrerReward?: number | null;
3343
+
3344
+ /**
3345
+ * Loyalty currency ID of the referrer reward.
3346
+ */
3347
+ referrerRewardLoyaltyCurrencyId?: string | null;
3348
+
3349
+ /**
3350
+ * Flag indicating if the post link is required.
3351
+ */
3352
+ requirePostLink?: boolean | null;
3353
+
3354
+ /**
3355
+ * Flag indicating if media metadata is required.
3356
+ */
3357
+ requirePostMediaLink?: boolean | null;
3358
+
3359
+ /**
3360
+ * Flag indicating if the rule can also reward badges per range.
3361
+ */
3362
+ rewardBadgePerRange?: boolean;
3363
+
3364
+ /**
3365
+ * Flag indicating if the reward is rewarded by batch.
3366
+ */
3367
+ rewardByBatch?: boolean | null;
3368
+
3369
+ /**
3370
+ * Flag indicating if the reward is rewarded per action.
3371
+ */
3372
+ rewardPerAction?: boolean | null;
3373
+
3374
+ /**
3375
+ * Flag indicating if rewards are given per impression.
3376
+ */
3377
+ rewardPerImpression?: boolean | null;
3378
+
3379
+ /**
3380
+ * Flag indicating if the rule should reward based on value of traded tokens
3381
+ * instead of count.
3382
+ */
3383
+ rewardPerValue?: boolean;
3384
+
3385
+ /**
3386
+ * Wallet address of the user can only be used if userId is not provided
3387
+ */
3388
+ royaltyAddress?: string;
3389
+
3390
+ /**
3391
+ * Royalty percentage of the item.
3392
+ */
3393
+ royaltyPercentage?: number;
3394
+
3395
+ /**
3396
+ * Currency associated with sales.
3397
+ */
3398
+ saleCurrency?: string;
3399
+
3400
+ /**
3401
+ * Percentage reward given for a second-level referral.
3402
+ */
3403
+ secondReferralReward?: number | null;
3404
+
3405
+ /**
3406
+ * Flag indicating if the multiplier is skipped.
3407
+ */
3408
+ skipMultiplier?: boolean | null;
3409
+
3410
+ /**
3411
+ * Object containing details of the associated smart contract.
3412
+ */
3413
+ smartContract?: Metadata.SmartContract;
3414
+
3415
+ /**
3416
+ * Array of snapshot proposals for the rule.
3417
+ */
3418
+ snapshotProposals?: Array<Metadata.SnapshotProposal> | null;
3419
+
3420
+ /**
3421
+ * Social media platform associated with the rule.
3422
+ */
3423
+ socialPlatform?:
3424
+ | 'Custom'
3425
+ | 'Discord'
3426
+ | 'EpicGames'
3427
+ | 'Instagram'
3428
+ | 'Steam'
3429
+ | 'Telegram'
3430
+ | 'TikTok'
3431
+ | 'Twitch'
3432
+ | 'X(Twitter)'
3433
+ | 'YouTube'
3434
+ | 'Google'
3435
+ | null;
3436
+
3437
+ /**
3438
+ * URL of the social platform's logo.
3439
+ */
3440
+ socialPlatformLogo?: string | null;
3441
+
3442
+ /**
3443
+ * Name of the social platform.
3444
+ */
3445
+ socialPlatformName?: string | null;
3446
+
3447
+ /**
3448
+ * ID of the Steam app.
3449
+ */
3450
+ steamAppId?: string | null;
3451
+
3452
+ /**
3453
+ * Array of streak milestones and corresponding rewards.
3454
+ */
3455
+ streakArray?: Array<Metadata.StreakArray> | null;
3456
+
3457
+ /**
3458
+ * Metadata for swap loyalty rules
3459
+ */
3460
+ swap?: Metadata.Swap;
3461
+
3462
+ /**
3463
+ * ID of the Telegram channel.
3464
+ */
3465
+ telegramChannelId?: string | null;
3466
+
3467
+ /**
3468
+ * Time delay in seconds to verify actions.
3469
+ */
3470
+ timeDelayToVerifySeconds?: string | number | null;
3471
+
3472
+ /**
3473
+ * Flag indicating if all contracts are tracked.
3474
+ */
3475
+ trackAllContracts?: boolean | null;
3476
+
3477
+ /**
3478
+ * Flag indicating if the progress is tracked. If enabled, the rule can only be
3479
+ * completed once the progress is 100%.
3480
+ */
3481
+ trackProgress?: boolean | null;
3482
+
3483
+ /**
3484
+ * URL of the associated Twitter account.
3485
+ */
3486
+ twitterAccountUrl?: string;
3487
+
3488
+ /**
3489
+ * Hashtag associated with the Twitter post.
3490
+ */
3491
+ twitterHashtag?: string;
3492
+
3493
+ /**
3494
+ * URL of the associated Twitter post.
3495
+ */
3496
+ twitterPostUrl?: string;
3497
+
3498
+ /**
3499
+ * Unique identifier of the Twitter user.
3500
+ */
3501
+ twitterUserId?: string;
3502
+
3503
+ /**
3504
+ * Twitter username of the user.
3505
+ */
3506
+ twitterUsername?: string;
3507
+
3508
+ /**
3509
+ * Minimum length of the verification text.
3510
+ */
3511
+ verificationTextMinimumLength?: number | null;
3512
+
3513
+ /**
3514
+ * Multiplier applied to rewards for verified users.
3515
+ */
3516
+ verifiedMultiplier?: number | null;
3517
+
3518
+ /**
3519
+ * Placeholder text for verification input fields.
3520
+ */
3521
+ verifyPlaceHolderText?: string | null;
3522
+
3523
+ /**
3524
+ * Type of wallet associated with the rule.
3525
+ */
3526
+ walletType?: 'evm' | 'solana' | 'imx' | 'sui' | 'ton' | 'cosmos' | 'ultra' | 'agw' | null;
3527
+
3528
+ /**
3529
+ * ID of the Youtube channel.
3530
+ */
3531
+ youtubeChannelId?: string | null;
3532
+
3533
+ /**
3534
+ * ID of the Youtube video.
3535
+ */
3536
+ youtubeVideoId?: string | null;
3537
+ }
3538
+
3539
+ export namespace Metadata {
3540
+ export interface Collection {
3541
+ /**
3542
+ * Blockchain address of the collection.
3543
+ */
3544
+ address?: string;
3545
+
3546
+ /**
3547
+ * Multiplier applied to the rewards for this collection.
3548
+ */
3549
+ multiplier?: number;
3550
+
3551
+ /**
3552
+ * Blockchain network of the collection.
3553
+ */
3554
+ network?:
3555
+ | 'abstract'
3556
+ | 'abstractTestnet'
3557
+ | 'apechain'
3558
+ | 'arbitrum'
3559
+ | 'avalanche'
3560
+ | 'avalancheFuji'
3561
+ | 'base'
3562
+ | 'baseSepolia'
3563
+ | 'berachain'
3564
+ | 'berachainArtio'
3565
+ | 'berachainBepolia'
3566
+ | 'binance'
3567
+ | 'bscTestnet'
3568
+ | 'campTestnet'
3569
+ | 'fantom'
3570
+ | 'fantomTestnet'
3571
+ | 'flowMainnet'
3572
+ | 'mainnet'
3573
+ | 'nexusTestnet'
3574
+ | 'optimism'
3575
+ | 'polygon'
3576
+ | 'polygon_mumbai'
3577
+ | 'skaleNebula'
3578
+ | 'solana'
3579
+ | 'sophon'
3580
+ | 'sophonTestnet'
3581
+ | 'sui'
3582
+ | 'superseed'
3583
+ | 'superseedSepolia'
3584
+ | 'vanar'
3585
+ | 'xai'
3586
+ | 'zksync'
3587
+ | 'coti'
3588
+ | 'cotiTestnet'
3589
+ | 'morph'
3590
+ | 'morphTestnet'
3591
+ | 'morphHolesky'
3592
+ | 'ultra'
3593
+ | 'ultraTestnet'
3594
+ | 'nitrograph'
3595
+ | 'sepolia'
3596
+ | 'optimism_sepolia'
3597
+ | 'arbitrumSepolia'
3598
+ | 'goerli'
3599
+ | 'optimism_goerli'
3600
+ | 'arbitrumGoerli'
3601
+ | 'basecamp';
3602
+ }
3603
+
3604
+ /**
3605
+ * Object containing details for the call-to-action.
3606
+ */
3607
+ export interface Cta {
3608
+ /**
3609
+ * Link for the call-to-action.
3610
+ */
3611
+ href?: string | null;
3612
+
3613
+ /**
3614
+ * Label for the call-to-action.
3615
+ */
3616
+ label?: string | null;
3617
+ }
3618
+
3619
+ export interface DiscordServersToJoin {
3620
+ /**
3621
+ * ID of the Discord server to join.
3622
+ */
3623
+ id?: string;
3624
+
3625
+ /**
3626
+ * Array of Discord channels to join.
3627
+ */
3628
+ channels?: Array<DiscordServersToJoin.Channel>;
3629
+
3630
+ /**
3631
+ * Array of roles to assign in the Discord server.
3632
+ */
3633
+ roles?: Array<DiscordServersToJoin.Role>;
3634
+ }
3635
+
3636
+ export namespace DiscordServersToJoin {
3637
+ export interface Channel {
3638
+ /**
3639
+ * ID of the Discord channel.
3640
+ */
3641
+ id?: string;
3642
+
3643
+ /**
3644
+ * Array of emojis used in the channel.
3645
+ */
3646
+ emojis?: Array<Channel.Emoji>;
3647
+
3648
+ /**
3649
+ * Phrase of text to be present in the discord message
3650
+ */
3651
+ text?: string;
3652
+ }
3653
+
3654
+ export namespace Channel {
3655
+ export interface Emoji {
3656
+ /**
3657
+ * ID of the emoji used in the channel.
3658
+ */
3659
+ id?: string;
3660
+ }
3661
+ }
3662
+
3663
+ export interface Role {
3664
+ /**
3665
+ * ID of the role in the Discord server.
3666
+ */
3667
+ id: string;
3668
+ }
3669
+ }
3670
+
3671
+ export interface DripQuestsToComplete {
3672
+ /**
3673
+ * ID of the drip quest to complete.
3674
+ */
3675
+ id: string;
3676
+ }
3677
+
3678
+ /**
3679
+ * Liquidity pool details.
3680
+ */
3681
+ export interface Liquidity {
3682
+ /**
3683
+ * Calculation type of the liquidity pool.
3684
+ */
3685
+ calculationType?: 'fixed' | 'custom';
3686
+
3687
+ /**
3688
+ * Custom function to calculate the the reward amount based on the liquidity
3689
+ * provided per day. X is the reward amount, Y is the liquidity provided per day in
3690
+ * USD.
3691
+ */
3692
+ customFunction?: string;
3693
+
3694
+ /**
3695
+ * Liquidity provided per day in USD
3696
+ */
3697
+ liquidityPerDay?: number;
3698
+
3699
+ /**
3700
+ * Blockchain network of the liquidity pool.
3701
+ */
3702
+ network?:
3703
+ | 'abstract'
3704
+ | 'abstractTestnet'
3705
+ | 'apechain'
3706
+ | 'arbitrum'
3707
+ | 'avalanche'
3708
+ | 'avalancheFuji'
3709
+ | 'base'
3710
+ | 'baseSepolia'
3711
+ | 'berachain'
3712
+ | 'berachainArtio'
3713
+ | 'berachainBepolia'
3714
+ | 'binance'
3715
+ | 'bscTestnet'
3716
+ | 'campTestnet'
3717
+ | 'fantom'
3718
+ | 'fantomTestnet'
3719
+ | 'flowMainnet'
3720
+ | 'mainnet'
3721
+ | 'nexusTestnet'
3722
+ | 'optimism'
3723
+ | 'polygon'
3724
+ | 'polygon_mumbai'
3725
+ | 'skaleNebula'
3726
+ | 'solana'
3727
+ | 'sophon'
3728
+ | 'sophonTestnet'
3729
+ | 'sui'
3730
+ | 'superseed'
3731
+ | 'superseedSepolia'
3732
+ | 'vanar'
3733
+ | 'xai'
3734
+ | 'zksync'
3735
+ | 'coti'
3736
+ | 'cotiTestnet'
3737
+ | 'morph'
3738
+ | 'morphTestnet'
3739
+ | 'morphHolesky'
3740
+ | 'ultra'
3741
+ | 'ultraTestnet'
3742
+ | 'nitrograph'
3743
+ | 'sepolia'
3744
+ | 'optimism_sepolia'
3745
+ | 'arbitrumSepolia'
3746
+ | 'goerli'
3747
+ | 'optimism_goerli'
3748
+ | 'arbitrumGoerli'
3749
+ | 'basecamp';
3750
+
3751
+ /**
3752
+ * Indicates if only in-range liquidity is rewarded.
3753
+ */
3754
+ onlyRewardInRangeLiquidity?: boolean;
3755
+
3756
+ /**
3757
+ * Array of liquidity pools associated with the rule.
3758
+ */
3759
+ pools?: Array<Liquidity.Pool>;
3760
+
3761
+ /**
3762
+ * Protocol of the liquidity pool.
3763
+ */
3764
+ protocol?: string;
3765
+ }
3766
+
3767
+ export namespace Liquidity {
3768
+ export interface Pool {
3769
+ /**
3770
+ * Unique identifier of the liquidity pool.
3771
+ */
3772
+ id: string;
3773
+ }
3774
+ }
3775
+
3776
+ export interface Range {
3777
+ /**
3778
+ * Reward amount for this range.
3779
+ */
3780
+ amount: number;
3781
+
3782
+ /**
3783
+ * End value of the range.
3784
+ */
3785
+ endRange: number;
3786
+
3787
+ /**
3788
+ * Start value of the range.
3789
+ */
3790
+ startRange: number;
3791
+
3792
+ /**
3793
+ * ID of the loyalty badge for this range.
3794
+ */
3795
+ loyaltyBadgeId?: string;
3796
+
3797
+ /**
3798
+ * Amount of the loyalty multiplier for this range.
3799
+ */
3800
+ loyaltyMultiplierAmount?: number;
3801
+ }
3802
+
3803
+ /**
3804
+ * Object defining referral requirements.
3805
+ */
3806
+ export interface ReferralRequirements {
3807
+ /**
3808
+ * Flag indicating if achieving points is required.
3809
+ */
3810
+ achievePoints?: boolean | null;
3811
+
3812
+ /**
3813
+ * Flag indicating if completing the profile is required.
3814
+ */
3815
+ completeProfile?: boolean | null;
3816
+
3817
+ /**
3818
+ * Flag indicating if connecting Discord is required.
3819
+ */
3820
+ connectDiscord?: boolean | null;
3821
+
3822
+ /**
3823
+ * Flag indicating if connecting email is required.
3824
+ */
3825
+ connectEmail?: boolean | null;
3826
+
3827
+ /**
3828
+ * Flag indicating if connecting Twitter is required.
3829
+ */
3830
+ connectTwitter?: boolean | null;
3831
+
3832
+ points?: ReferralRequirements.Points | null;
3833
+ }
3834
+
3835
+ export namespace ReferralRequirements {
3836
+ export interface Points {
3837
+ /**
3838
+ * Points required for referral.
3839
+ */
3840
+ amount?: number | null;
3841
+
3842
+ /**
3843
+ * ID of the loyalty currency for referral.
3844
+ */
3845
+ loyaltyCurrecyId?: string | null;
3846
+ }
3847
+ }
3848
+
3849
+ /**
3850
+ * Object containing details of the associated smart contract.
3851
+ */
3852
+ export interface SmartContract {
3853
+ /**
3854
+ * Mapping of addresses for the smart contract.
3855
+ */
3856
+ addressMapping?: string | null;
3857
+
3858
+ /**
3859
+ * Object containing details of the amount multiplier from the event.
3860
+ */
3861
+ amountMultiplier?: SmartContract.AmountMultiplier | null;
3862
+
3863
+ /**
3864
+ * ID of the smart contract.
3865
+ */
3866
+ contractId?: string | null;
3867
+
3868
+ /**
3869
+ * Criteria to evaluate the smart contract event.
3870
+ */
3871
+ criteria?: 'everyEvent' | 'byParameter' | null;
3872
+
3873
+ /**
3874
+ * Event emitted by the smart contract.
3875
+ */
3876
+ event?: string | null;
3877
+
3878
+ /**
3879
+ * Array of parameters for the smart contract.
3880
+ */
3881
+ params?: Array<SmartContract.Param> | null;
3882
+
3883
+ /**
3884
+ * Type of the smart contract interaction.
3885
+ */
3886
+ type?: 'function' | 'event' | null;
3887
+ }
3888
+
3889
+ export namespace SmartContract {
3890
+ /**
3891
+ * Object containing details of the amount multiplier from the event.
3892
+ */
3893
+ export interface AmountMultiplier {
3894
+ /**
3895
+ * Mapping of the value for the smart contract.
3896
+ */
3897
+ valueMapping?: string | null;
3898
+ }
3899
+
3900
+ export interface Param {
3901
+ /**
3902
+ * Condition to check for the parameter.
3903
+ */
3904
+ condition?: string | null;
3905
+
3906
+ /**
3907
+ * Name of the smart contract parameter.
3908
+ */
3909
+ name?: string | null;
3910
+
3911
+ /**
3912
+ * Value of the parameter.
3913
+ */
3914
+ value?: string | null;
3915
+ }
3916
+ }
3917
+
3918
+ export interface SnapshotProposal {
3919
+ /**
3920
+ * ID of the snapshot proposal.
3921
+ */
3922
+ id: string;
3923
+
3924
+ /**
3925
+ * Space associated with the snapshot proposal.
3926
+ */
3927
+ space: string;
3928
+ }
3929
+
3930
+ export interface StreakArray {
3931
+ /**
3932
+ * Reward amount for achieving the streak milestone.
3933
+ */
3934
+ streakAmount: number;
3935
+
3936
+ /**
3937
+ * Milestone required to achieve the streak.
3938
+ */
3939
+ streakMilestone: number;
3940
+ }
3941
+
3942
+ /**
3943
+ * Metadata for swap loyalty rules
3944
+ */
3945
+ export interface Swap {
3946
+ provider?: 'any' | 'relay' | 'lifi';
3947
+
3948
+ relayReferrerId?: string;
3949
+
3950
+ requireCrossChainSwap?: boolean;
3951
+
3952
+ swappedToChain?: 'any' | number | string;
3953
+
3954
+ swappedToTokens?: Array<Swap.SwappedToToken>;
3955
+
3956
+ tokenMode?: 'any' | 'specific';
3957
+
3958
+ trackTokenAmount?: boolean;
3959
+ }
3960
+
3961
+ export namespace Swap {
3962
+ export interface SwappedToToken {
3963
+ address: string;
3964
+
3965
+ chainId: string;
3966
+ }
3967
+ }
3968
+ }
3969
+ }
3970
+ }
3971
+
3972
+ export interface RuleEditListParams {
3973
+ /**
3974
+ * ID of the loyalty rule
3975
+ */
3976
+ loyaltyRuleId: boolean;
3977
+
3978
+ /**
3979
+ * Maximum number of edits to return
3980
+ */
3981
+ limit?: number;
3982
+
3983
+ /**
3984
+ * Unique identifier for the organization to filter by
3985
+ */
3986
+ organizationId?: string;
3987
+
3988
+ /**
3989
+ * Pagination cursor to start after a specific rule edit ID
3990
+ */
3991
+ startingAfter?: string;
3992
+
3993
+ /**
3994
+ * Unique identifier for the website to filter by
3995
+ */
3996
+ websiteId?: string;
3997
+ }
3998
+
3999
+ export interface RuleEditRestoreParams {}
4000
+
4001
+ export declare namespace RuleEdits {
4002
+ export {
4003
+ type RuleEditListResponse as RuleEditListResponse,
4004
+ type RuleEditRestoreResponse as RuleEditRestoreResponse,
4005
+ type RuleEditListParams as RuleEditListParams,
4006
+ type RuleEditRestoreParams as RuleEditRestoreParams,
4007
+ };
4008
+ }