@xoxno/sdk-js 1.0.25 → 1.0.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,41 +1,919 @@
1
1
  # XOXNO SDK
2
2
 
3
- XOXNO SDK is a JavaScript library that simplifies the interaction with the XOXNO Protocol for developers. It includes a set of helper functions and modules that make it easy to fetch, filter, and interact with data from the XOXNO Protocol and its NFT marketplace.
3
+ ## Basic usage
4
4
 
5
- ## Table of Contents
5
+ ```typescript
6
+ // sdk.ts
7
+ import { buildSdk, Chain, XOXNOClient } from '../src'
6
8
 
7
- - [Installation](#installation)
8
- - [Usage](#usage)
9
- - [Documentation](#docs)
9
+ // It's not expensive to build the sdk, so you can safely call `getSdk()` wherever you need it
10
+ export function getSdk() {
11
+ XOXNOClient.init({ apiUrl: 'https://api.xoxno.com', chain: Chain.MAINNET })
10
12
 
11
- ## Installation
13
+ return buildSdk(XOXNOClient.getInstance())
14
+ }
12
15
 
13
- To install the XOXNO SDK, simply run the following command in your project's root directory:
16
+ async function main() {
17
+ const sdk = getSdk()
14
18
 
15
- ```bash
16
- npm install @xoxno/sdk-js
19
+ /* Calling public endpoints ✅ */
20
+
21
+ const trendingCollections = await sdk.collection.query({
22
+ filter: {
23
+ top: 10,
24
+ orderBy: ['statistics.tradeData.weekEgldVolume desc'],
25
+ filters: {
26
+ isVerified: true,
27
+ },
28
+ },
29
+ })
30
+
31
+ console.log(trendingCollections.resources) // CollectionProfileDoc[]
32
+
33
+ const collectionProfile = await sdk.collection
34
+ .collection('BOOGAS-afc98d')
35
+ .profile()
36
+
37
+ console.log(collectionProfile.description) // string
38
+
39
+ // ... and many more!
40
+ }
41
+
42
+ main()
43
+ ```
44
+
45
+ ## Calling restricted endpoints
46
+
47
+ Apart from the public endpoints that anyone can call, The XOXNO SDK also exposes `POST`, `PUT`, `PATCH` and `DELETE` endpoints that can be called by the respective logged in user. Here's how a flow looks like that obtains a **XOXNO Auth Token** when logging in with a MultiversX wallet, that can be used for 24h to make authenticated requests:
48
+
49
+ ```typescript
50
+ // native-auth.ts
51
+ import { getSdk } from './sdk'
52
+
53
+ export class NativeAuthClient {
54
+ async initialize(extraInfo: object) {
55
+ const token = await getSdk().user.nativeToken({
56
+ originalUrl: 'https://yourdomain.com',
57
+ extraInfo: JSON.stringify({
58
+ ...extraInfo,
59
+ timestamp: Date.now(),
60
+ // ... and any other properties you want to have encoded in the JWT for your later usage
61
+ }),
62
+ })
63
+
64
+ return { token }
65
+ }
66
+ getToken(address: string, token: string, signature: string) {
67
+ const encodedAddress = this.encodeValue(address)
68
+
69
+ const encodedToken = this.encodeValue(token)
70
+
71
+ const loginToken = `${encodedAddress}.${encodedToken}.${signature}`
72
+
73
+ return { loginToken }
74
+ }
75
+ private encodeValue(str: string) {
76
+ return this.escape(Buffer.from(str, 'utf8').toString('base64'))
77
+ }
78
+ private escape(str: string) {
79
+ return str.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '')
80
+ }
81
+ }
17
82
  ```
18
83
 
19
- ## Usage
84
+ ```typescript
85
+ import { ExtensionProvider } from '@multiversx/sdk-extension-provider'
86
+ import { setCookie } from 'cookies-next'
87
+
88
+ import { NativeAuthClient } from './native-auth'
89
+ import { getSdk } from './sdk'
90
+
91
+ async function main() {
92
+ const sdk = getSdk()
93
+
94
+ const provider = ExtensionProvider.getInstance()
20
95
 
21
- The SDK follows a scheleton model where the API configuration has to be initiated only once anywhere in your application
96
+ await provider.init()
22
97
 
23
- ```javascript
24
- import { XOXNOClient } from '@xoxno/sdk-js';
25
- XOXNOClient.init();
26
- // By default calling init() without arguments will set the entire SDK to the mainnet ENV using the public API https://api.xoxno.com
98
+ const nativeAuthClient = new NativeAuthClient()
99
+
100
+ const loginMethod = 'extension'
101
+
102
+ const { token } = await nativeAuthClient.initialize({
103
+ loginMethod,
104
+ })
105
+
106
+ const { address, signature } = await provider.login({ token })
107
+
108
+ const { loginToken } = nativeAuthClient.getToken(address, token, signature!)
109
+
110
+ const { access_token, expires } = await sdk.user.login.POST({
111
+ body: {
112
+ loginToken,
113
+ signature: signature,
114
+ address: address,
115
+ },
116
+ })
117
+
118
+ // store the access_token for later usage
119
+ setCookie('xoxno-auth', access_token, {
120
+ expires: new Date(expires * 1000),
121
+ sameSite: 'strict',
122
+ secure: true,
123
+ })
124
+
125
+ // from now on you can call protected endpoints on behalf of `address`
126
+
127
+ const newUserProfile = await sdk.user.address(address).profile.PATCH({
128
+ body: {
129
+ description: 'XOXNO SDK rocks!',
130
+ },
131
+ auth: access_token,
132
+ })
133
+
134
+ console.log(newUserProfile.description) // XOXNO SDK rocks!
135
+ }
136
+
137
+ main()
27
138
  ```
28
139
 
29
- After the client has been created you can now import different modules anywhere in the application:
140
+ ## List of endpoints to call
141
+
142
+ The list of available SDK endpoints gets extracted from https://api.xoxno.com/swagger.yaml and parsed into a Typescript definition that you can [view here](https://github.com/XOXNO/sdk-js/blob/alpha/src/sdk/swagger.ts)
143
+
144
+ `buildSdk` then converts them in the following way:
30
145
 
31
- ```javascript
32
- import { CollectionModule } from '@xoxno/sdk-js';
33
- const collection = new CollectionModule(); // In case the above .init() call was not set before creating any module instance will throw an error
34
- const profile = await collection.getCollectionProfile('MONKEY-ac9bdf');
35
- // or similar with
36
- const profile = await new CollectionModule().getCollectionProfile('MONKEY-ac9bdf');
146
+ ```typescript
147
+ // /collection/:collection/profile
148
+ sdk.collection.collection('BOOGAS-afc98d').profile()
149
+
150
+ // /drops/:creatorTag/:collectionTag/drop-info
151
+ sdk.drops.creatorTag('MiceCityClub').collectionTag('MiceCity').dropInfo()
37
152
  ```
38
153
 
39
- ## Docs
154
+ For your reference, here is a list of all endpoints that are available:
155
+
156
+ ```typescript
157
+ // GET /activity/query
158
+ sdk.activity.query(...); // NftActivityPaginated
159
+
160
+ // GET /activity/:identifier
161
+ sdk.activity.identifier("...")(...); // NftActivityDocHydrated
162
+
163
+ // GET /analytics/marketplace-unique-users
164
+ sdk.analytics.marketplaceUniqueUsers(...); // AnalyticsMarketplaceUniqueUsers[]
165
+
166
+ // GET /analytics/volume
167
+ sdk.analytics.volume(...); // VolumeGraph[]
168
+
169
+ // GET /analytics/overview
170
+ sdk.analytics.overview(...); // GlobalAnalyticsOverviewResponseDto
171
+
172
+ // GET /arda/max-token-quantity
173
+ sdk.arda.maxTokenQuantity(...); // ArdaSwapResultDto
174
+
175
+ // GET /arda/min-token-quantity
176
+ sdk.arda.minTokenQuantity(...); // ArdaSwapResultDto
177
+
178
+ // GET /ash/min-token-quantity
179
+ sdk.ash.minTokenQuantity(...); // FetchSwapRoutesResponseDto
180
+
181
+ // GET /ash/max-token-quantity
182
+ sdk.ash.maxTokenQuantity(...); // FetchSwapRoutesResponseDto
183
+
184
+ // GET /collection/:collection/attributes
185
+ sdk.collection.collection("...").attributes(...); // Record<string
186
+
187
+ // GET /collection/:collection/ranks
188
+ sdk.collection.collection("...").ranks(...); // CollectionRanksDTO[]
189
+
190
+ // GET /collection/:collection/listings
191
+ sdk.collection.collection("...").listings(...); // ListingsResponseDto
192
+
193
+ // POST /collection/:collection/sign-offer
194
+ sdk.collection.collection("...").signOffer.POST(...); // SignDataDto
195
+
196
+ // POST /collection/:collection/sign-mint
197
+ sdk.collection.collection("...").signMint.POST(...); // SignDataDto
198
+
199
+ // GET /collection/:collection/profile
200
+ sdk.collection.collection("...").profile(...); // CollectionProfileDoc
201
+
202
+ // PATCH /collection/:collection/profile
203
+ sdk.collection.collection("...").profile.PATCH(...); // CollectionProfileDoc
204
+
205
+ // GET /collection/:collection/floor-price
206
+ sdk.collection.collection("...").floorPrice(...); // FloorPriceDto
207
+
208
+ // GET /collection/floor-price
209
+ sdk.collection.floorPrice(...); // Record<string
210
+
211
+ // GET /collection/pinned
212
+ sdk.collection.pinned(...); // PinnedCollectionDto[]
213
+
214
+ // GET /collection/pinned-drops
215
+ sdk.collection.pinnedDrops(...); // CollectionMintProfileDocHydrated[]
216
+
217
+ // GET /collection/:collection/pinned-drops
218
+ sdk.collection.collection("...").pinnedDrops(...); // CollectionPinnedStatusDto
219
+
220
+ // GET /collection/:collection/pinned
221
+ sdk.collection.collection("...").pinned(...); // CollectionPinnedStatusDto
222
+
223
+ // POST /collection/:collection/follow
224
+ sdk.collection.collection("...").follow.POST(...); // FollowCollectionDto
225
+
226
+ // GET /collection/query
227
+ sdk.collection.query(...); // CollectionProfilePaginated
228
+
229
+ // GET /collection/drops/query
230
+ sdk.collection.drops.query(...); // CollectionMintProfilePaginated
231
+
232
+ // GET /collection/:collection/drop-info
233
+ sdk.collection.collection("...").dropInfo(...); // CollectionMintProfileDocWithStages
234
+
235
+ // GET /collection/:creatorTag/:collectionTag/drop-info
236
+ sdk.collection.creatorTag("...").collectionTag("...").dropInfo(...); // CollectionMintProfileDocWithStages
237
+
238
+ // PUT /collection/:collection/upload-picture
239
+ sdk.collection.collection("...").uploadPicture.PUT(...); // CollectionProfileDoc
240
+
241
+ // PUT /collection/:collection/upload-banner
242
+ sdk.collection.collection("...").uploadBanner.PUT(...); // CollectionProfileDoc
243
+
244
+ // PUT /collection/:collection/reset-picture
245
+ sdk.collection.collection("...").resetPicture.PUT(...); // CollectionProfileDoc
246
+
247
+ // PUT /collection/:collection/reset-banner
248
+ sdk.collection.collection("...").resetBanner.PUT(...); // CollectionProfileDoc
249
+
250
+ // GET /collection/:collection/holders
251
+ sdk.collection.collection("...").holders(...); // CollectionHoldersDto
252
+
253
+ // GET /collection/:collection/holders/export
254
+ sdk.collection.collection("...").holders.export(...); // CollectionHoldersExportDto[]
255
+
256
+ // GET /collection/:collection/owner
257
+ sdk.collection.collection("...").owner(...); // CollectionOwnerDto
258
+
259
+ // GET /collection/:collection/stats
260
+ sdk.collection.collection("...").stats(...); // CollectionStatsDocHydrated
261
+
262
+ // GET /collection/stats/query
263
+ sdk.collection.stats.query(...); // CollectionStatsPaginated
264
+
265
+ // GET /collection/global-offer/query
266
+ sdk.collection.globalOffer.query(...); // GlobalOfferPaginated
267
+
268
+ // GET /collection/:collection/staking/summary
269
+ sdk.collection.collection("...").staking.summary(...); // StakingSummary[]
270
+
271
+ // GET /collection/:collection/staking/delegators
272
+ sdk.collection.collection("...").staking.delegators(...); // string[]
273
+
274
+ // GET /collection/staking/explore
275
+ sdk.collection.staking.explore(...); // StakingExploreDtoHydrated[]
276
+
277
+ // GET /collection/search
278
+ sdk.collection.search(...); // GlobalSearchResourcesPaginated
279
+
280
+ // GET /collection/drops/search
281
+ sdk.collection.drops.search(...); // CollectionMintProfilePaginated
282
+
283
+ // GET /collection/:collection/analytics/volume
284
+ sdk.collection.collection("...").analytics.volume(...); // AnalyticsVolumeDto[]
285
+
286
+ // GET /countries
287
+ sdk.countries(...); // string[]
288
+
289
+ // POST /event
290
+ sdk.event.POST(...); // EventProfile
291
+
292
+ // GET /event/:eventId
293
+ sdk.event.eventId("...")(...); // EventProfile
294
+
295
+ // PATCH /event/:eventId
296
+ sdk.event.eventId("...").PATCH(...); // EventProfile
297
+
298
+ // GET /event/profile/query
299
+ sdk.event.profile.query(...); // EventProfileQuery
300
+
301
+ // PUT /event/:eventId/profile
302
+ sdk.event.eventId("...").profile.PUT(...); // EventProfile
303
+
304
+ // PUT /event/:eventId/background
305
+ sdk.event.eventId("...").background.PUT(...); // EventProfile
306
+
307
+ // PUT /event/:eventId/description
308
+ sdk.event.eventId("...").description.PUT(...); // EventProfile
309
+
310
+ // PUT /event/:eventId/description/image
311
+ sdk.event.eventId("...").description.image.PUT(...); // string
312
+
313
+ // DELETE /event/:eventId/description/image/:imageId
314
+ sdk.event.eventId("...").description.image.imageId("...").DELETE(...); // SuccessDto
315
+
316
+ // POST /event/:eventId/register
317
+ sdk.event.eventId("...").register.POST(...); // EventRegistrationResponseDto
318
+
319
+ // GET /event/:eventId/ticket
320
+ sdk.event.eventId("...").ticket(...); // EventTicketProfileDoc[]
321
+
322
+ // POST /event/:eventId/ticket
323
+ sdk.event.eventId("...").ticket.POST(...); // EventTicketProfileDoc
324
+
325
+ // GET /event/:eventId/ticket/:ticketId
326
+ sdk.event.eventId("...").ticket.ticketId("...")(...); // EventTicketProfileDoc
327
+
328
+ // POST /event/:eventId/ticket/:ticketId
329
+ sdk.event.eventId("...").ticket.ticketId("...").POST(...); // SuccessDto
330
+
331
+ // PATCH /event/:eventId/ticket/:ticketId
332
+ sdk.event.eventId("...").ticket.ticketId("...").PATCH(...); // EventTicketProfileDoc
333
+
334
+ // PUT /event/:eventId/ticket/:ticketId
335
+ sdk.event.eventId("...").ticket.ticketId("...").PUT(...); // EventTicketProfileDoc
336
+
337
+ // GET /event/:eventId/stage
338
+ sdk.event.eventId("...").stage(...); // EventStageProfileDoc[]
339
+
340
+ // POST /event/:eventId/stage
341
+ sdk.event.eventId("...").stage.POST(...); // EventStageProfileDoc
342
+
343
+ // GET /event/:eventId/stage/:stageId
344
+ sdk.event.eventId("...").stage.stageId("...")(...); // EventStageProfileDoc
345
+
346
+ // PATCH /event/:eventId/stage/:stageId
347
+ sdk.event.eventId("...").stage.stageId("...").PATCH(...); // EventStageProfileDoc
348
+
349
+ // DELETE /event/:eventId/stage/:stageId
350
+ sdk.event.eventId("...").stage.stageId("...").DELETE(...); // SuccessDto
351
+
352
+ // POST /event/:eventId/calculate-prices
353
+ sdk.event.eventId("...").calculatePrices.POST(...); // TicketPricesResponse
354
+
355
+ // POST /event/:eventId/validate-discount
356
+ sdk.event.eventId("...").validateDiscount.POST(...); // DiscountCodeValidationResponse
357
+
358
+ // POST /event/:eventId/invite
359
+ sdk.event.eventId("...").invite.POST(...); // EventInvitationDoc[]
360
+
361
+ // GET /event/:eventId/invite/query
362
+ sdk.event.eventId("...").invite.query(...); // EventInvitationQuery
363
+
364
+ // GET /event/:eventId/invite/:inviteId
365
+ sdk.event.eventId("...").invite.inviteId("...")(...); // EventInvitation
366
+
367
+ // POST /event/:eventId/invite/:inviteId
368
+ sdk.event.eventId("...").invite.inviteId("...").POST(...); // EventInvitation
369
+
370
+ // DELETE /event/:eventId/invite/:inviteId
371
+ sdk.event.eventId("...").invite.inviteId("...").DELETE(...); // EventInvitationDoc
372
+
373
+ // GET /event/:eventId/voucher/query
374
+ sdk.event.eventId("...").voucher.query(...); // EventVoucherQuery
375
+
376
+ // GET /event/:eventId/questions
377
+ sdk.event.eventId("...").questions(...); // EventQuestionDoc[]
378
+
379
+ // POST /event/:eventId/question
380
+ sdk.event.eventId("...").question.POST(...); // EventQuestionDoc
381
+
382
+ // PATCH /event/:eventId/question/:questionId
383
+ sdk.event.eventId("...").question.questionId("...").PATCH(...); // EventQuestionDoc
384
+
385
+ // DELETE /event/:eventId/question/:questionId
386
+ sdk.event.eventId("...").question.questionId("...").DELETE(...); // SuccessDto
387
+
388
+ // GET /event/:eventId/guest/query
389
+ sdk.event.eventId("...").guest.query(...); // EventGuestProfileQuery
390
+
391
+ // GET /event/:eventId/guest/:address
392
+ sdk.event.eventId("...").guest.address("...")(...); // EventGuestProfile
393
+
394
+ // GET /event/:eventId/guest-export
395
+ sdk.event.eventId("...").guestExport(...); // EventGuestExport[]
396
+
397
+ // GET /event/:eventId/role
398
+ sdk.event.eventId("...").role(...); // EventUserRole[]
399
+
400
+ // POST /event/:eventId/role
401
+ sdk.event.eventId("...").role.POST(...); // EventUserRole
402
+
403
+ // GET /event/:eventId/role/:address
404
+ sdk.event.eventId("...").role.address("...")(...); // EventUserRoleDoc
405
+
406
+ // DELETE /event/:eventId/role/:address
407
+ sdk.event.eventId("...").role.address("...").DELETE(...); // SuccessDto
408
+
409
+ // DELETE /event/:eventId/guest
410
+ sdk.event.eventId("...").guest.DELETE(...); // SuccessDto
411
+
412
+ // POST /event/:eventId/role/:roleId/accept
413
+ sdk.event.eventId("...").role.roleId("...").accept.POST(...); // EventUserRoleDoc
414
+
415
+ // GET /event/:eventId/roleId/:roleId
416
+ sdk.event.eventId("...").roleId.roleId("...")(...); // EventUserRoleDoc
417
+
418
+ // POST /event/:eventId/scan
419
+ sdk.event.eventId("...").scan.POST(...); // TicketValidationResult
420
+
421
+ // POST /event/:eventId/voucher
422
+ sdk.event.eventId("...").voucher.POST(...); // EventVoucherDoc
423
+
424
+ // PATCH /event/:eventId/voucher/:voucherCode
425
+ sdk.event.eventId("...").voucher.voucherCode("...").PATCH(...); // EventVoucherDoc
426
+
427
+ // DELETE /event/:eventId/voucher/:voucherCode
428
+ sdk.event.eventId("...").voucher.voucherCode("...").DELETE(...); // EventVoucherDoc
429
+
430
+ // POST /event/:eventId/manual-check-in
431
+ sdk.event.eventId("...").manualCheckIn.POST(...); // TicketValidationResult
432
+
433
+ // GET /event/:eventId/answered-questions/:address
434
+ sdk.event.eventId("...").answeredQuestions.address("...")(...); // AnsweredQuestionWithDetails[]
435
+
436
+ // PATCH /event/:eventId/guest/approve
437
+ sdk.event.eventId("...").guest.approve.PATCH(...); // EventGuestProfile[]
438
+
439
+ // GET /event/:eventId/google-pass/:address
440
+ sdk.event.eventId("...").googlePass.address("...")(...); // string[]
441
+
442
+ // GET /event/profile/location
443
+ sdk.event.profile.location(...); // EventCountGroupedByCountry[]
444
+
445
+ // POST /event/:eventId/referral-config
446
+ sdk.event.eventId("...").referralConfig.POST(...); // EventReferralConfigDoc
447
+
448
+ // PATCH /event/:eventId/referral-config/:configId
449
+ sdk.event.eventId("...").referralConfig.configId("...").PATCH(...); // EventReferralConfigDoc
450
+
451
+ // DELETE /event/:eventId/referral-config/:configId
452
+ sdk.event.eventId("...").referralConfig.configId("...").DELETE(...); // EventReferralConfigDoc
453
+
454
+ // GET /event/:eventId/referral-configs
455
+ sdk.event.eventId("...").referralConfigs(...); // EventReferralConfigPaginated
456
+
457
+ // POST /event/:eventId/referral
458
+ sdk.event.eventId("...").referral.POST(...); // EventReferralDoc
459
+
460
+ // PATCH /event/:eventId/referral/:referralCode
461
+ sdk.event.eventId("...").referral.referralCode("...").PATCH(...); // EventReferralDoc
462
+
463
+ // DELETE /event/:eventId/referral/:referralCode
464
+ sdk.event.eventId("...").referral.referralCode("...").DELETE(...); // EventReferralDoc
465
+
466
+ // GET /event/:eventId/referrals
467
+ sdk.event.eventId("...").referrals(...); // EventReferralPaginated
468
+
469
+ // GET /event/:eventId/referrals/self-serviced
470
+ sdk.event.eventId("...").referrals.selfServiced(...); // EventReferralDoc[]
471
+
472
+ // POST /event/:eventId/notify-attendees
473
+ sdk.event.eventId("...").notifyAttendees.POST(...); // SuccessWithMessageDto
474
+
475
+ // POST /eventNotifications/event/:eventId/update
476
+ sdk.eventNotifications.event.eventId("...").update.POST(...); // NotificationSuccessResponseDto
477
+
478
+ // POST /eventNotifications/event/:eventId/reminder
479
+ sdk.eventNotifications.event.eventId("...").reminder.POST(...); // NotificationSuccessResponseDto
480
+
481
+ // POST /eventNotifications/creator/marketing
482
+ sdk.eventNotifications.creator.marketing.POST(...); // NotificationSuccessResponseDto
483
+
484
+ // POST /eventNotifications/user/:userId/direct
485
+ sdk.eventNotifications.user.userId("...").direct.POST(...); // NotificationSuccessResponseDto
486
+
487
+ // POST /faucet
488
+ sdk.faucet.POST(...); // SuccessDto
489
+
490
+ // GET /launchpad/:scAddress/shareholders/royalties
491
+ sdk.launchpad.scAddress("...").shareholders.royalties(...); // ShareholderDto[]
492
+
493
+ // GET /launchpad/:scAddress/shareholders/collection/:collectionTag
494
+ sdk.launchpad.scAddress("...").shareholders.collection.collectionTag("...")(...); // ShareholderDto[]
495
+
496
+ // GET /lending/market/:token/profile
497
+ sdk.lending.market.token("...").profile(...); // LendingMarketProfile
498
+
499
+ // GET /lending/market/query
500
+ sdk.lending.market.query(...); // LendingMarketProfileQuery
501
+
502
+ // GET /lending/market/indexes
503
+ sdk.lending.market.indexes(...); // Record<string
504
+
505
+ // GET /lending/market/emode-categories
506
+ sdk.lending.market.emodeCategories(...); // LendingEModeCategoryProfile[]
507
+
508
+ // GET /lending/market/:token/emode-categories
509
+ sdk.lending.market.token("...").emodeCategories(...); // LendingEModeCategoryProfile[]
510
+
511
+ // GET /lending/market/:token/analytics
512
+ sdk.lending.market.token("...").analytics(...); // LendingMarketAnalyticsGraph[]
513
+
514
+ // GET /lending/leaderboard
515
+ sdk.lending.leaderboard(...); // LendingPositionStatus[]
516
+
517
+ // GET /lending/stats
518
+ sdk.lending.stats(...); // LendingOverallStats
519
+
520
+ // GET /lending/market/prices
521
+ sdk.lending.market.prices(...); // Record<string
522
+
523
+ // GET /lending/market-sc
524
+ sdk.lending.marketSc(...); // string[]
525
+
526
+ // GET /lending/market/:token/price/egld
527
+ sdk.lending.market.token("...").price.egld(...); // LendingTokenPriceDto
528
+
529
+ // GET /liquid/xoxno/stats
530
+ sdk.liquid.xoxno.stats(...); // XoxnoLiquidStatsDto
531
+
532
+ // GET /liquid/egld/stats
533
+ sdk.liquid.egld.stats(...); // XoxnoLiquidStatsDto
534
+
535
+ // GET /liquid/xoxno/rate
536
+ sdk.liquid.xoxno.rate(...); // RateType
537
+
538
+ // GET /liquid/xoxno/liquid-supply
539
+ sdk.liquid.xoxno.liquidSupply(...); // string
540
+
541
+ // GET /liquid/xoxno/staked
542
+ sdk.liquid.xoxno.staked(...); // string
543
+
544
+ // GET /liquid/egld/rate
545
+ sdk.liquid.egld.rate(...); // RateType
546
+
547
+ // GET /liquid/egld/liquid-supply
548
+ sdk.liquid.egld.liquidSupply(...); // string
549
+
550
+ // GET /liquid/egld/staked
551
+ sdk.liquid.egld.staked(...); // string
552
+
553
+ // GET /liquid/egld/pending-fees
554
+ sdk.liquid.egld.pendingFees(...); // string
555
+
556
+ // GET /liquid/egld/pending-undelegate
557
+ sdk.liquid.egld.pendingUndelegate(...); // string
558
+
559
+ // GET /liquid/egld/pending-delegate
560
+ sdk.liquid.egld.pendingDelegate(...); // string
561
+
562
+ // GET /liquid/egld/execute-delegate
563
+ sdk.liquid.egld.executeDelegate(...); // string
564
+
565
+ // GET /liquid/egld/execute-undelegate
566
+ sdk.liquid.egld.executeUndelegate(...); // string
567
+
568
+ // GET /liquid/egld/protocol-apr
569
+ sdk.liquid.egld.protocolApr(...); // ProtocolAprType
570
+
571
+ // GET /liquid/egld/providers
572
+ sdk.liquid.egld.providers(...); // ProviderDto[]
573
+
574
+ // POST /mobile/device/register
575
+ sdk.mobile.device.register.POST(...); // MobileDeviceDoc
576
+
577
+ // GET /mobile/device/:deviceId
578
+ sdk.mobile.device.deviceId("...")(...); // MobileDeviceDoc
579
+
580
+ // DELETE /mobile/device/:deviceId
581
+ sdk.mobile.device.deviceId("...").DELETE(...); // SuccessDto
582
+
583
+ // GET /mobile/history
584
+ sdk.mobile.history(...); // PushNotificationResponse
585
+
586
+ // GET /mobile/history/unread-count
587
+ sdk.mobile.history.unreadCount(...); // PushNotificationCountResponse
588
+
589
+ // PUT /mobile/history/:notificationId/read
590
+ sdk.mobile.history.notificationId("...").read.PUT(...); // PushNotificationDoc
591
+
592
+ // PUT /mobile/history/read-all
593
+ sdk.mobile.history.readAll.PUT(...); // NotificationSuccessResponseDto
594
+
595
+ // DELETE /mobile/history/clear-all
596
+ sdk.mobile.history.clearAll.DELETE(...); // NotificationSuccessResponseDto
597
+
598
+ // DELETE /mobile/history/clear-id/:notificationId
599
+ sdk.mobile.history.clearId.notificationId("...").DELETE(...); // NotificationSuccessResponseDto
600
+
601
+ // GET /nft/query
602
+ sdk.nft.query(...); // NftPaginated
603
+
604
+ // POST /nft/:identifier/like
605
+ sdk.nft.identifier("...").like.POST(...); // LikeNftDto
606
+
607
+ // GET /nft/offer/query
608
+ sdk.nft.offer.query(...); // NftOfferPaginated
609
+
610
+ // GET /nft/offer/:identifier
611
+ sdk.nft.offer.identifier("...")(...); // NftOfferDocHydrated[]
612
+
613
+ // GET /nft/:identifier/offers
614
+ sdk.nft.identifier("...").offers(...); // NftOfferPaginated
615
+
616
+ // GET /nft/pinned
617
+ sdk.nft.pinned(...); // NftDocHydrated[]
618
+
619
+ // POST /nft/sign-withdraw
620
+ sdk.nft.signWithdraw.POST(...); // SignDataDto
621
+
622
+ // GET /nft/:identifier
623
+ sdk.nft.identifier("...")(...); // NftDocFull
624
+
625
+ // GET /nft/search/query
626
+ sdk.nft.search.query(...); // NftPaginated
627
+
628
+ // POST /notify/global-broadcast
629
+ sdk.notify.globalBroadcast.POST(...); // SuccessWithMessageDto
630
+
631
+ // GET /pool/:poolId/profile
632
+ sdk.pool.poolId("...").profile(...); // StakingSummary
633
+
634
+ // PATCH /pool/:poolId/profile
635
+ sdk.pool.poolId("...").profile.PATCH(...); // StakingPoolDoc
636
+
637
+ // GET /pool/:poolId/whitelist
638
+ sdk.pool.poolId("...").whitelist(...); // NftDocHydrated[]
639
+
640
+ // PUT /pool/:poolId/upload-picture
641
+ sdk.pool.poolId("...").uploadPicture.PUT(...); // StakingPoolDoc
642
+
643
+ // GET /search
644
+ sdk.search(...); // GlobalSearchResourcesPaginated
645
+
646
+ // GET /tokens
647
+ sdk.tokens(...); // TokenDataDocHydrated[]
648
+
649
+ // GET /tokens/swap
650
+ sdk.tokens.swap(...); // TokenDataDocHydrated[]
651
+
652
+ // GET /tokens/usd-price
653
+ sdk.tokens.usdPrice(...); // Record<string
654
+
655
+ // GET /tokens/egld/fiat-price
656
+ sdk.tokens.egld.fiatPrice(...); // Record<string
657
+
658
+ // GET /tokens/xoxno
659
+ sdk.tokens.xoxno(...); // IMetrics
660
+
661
+ // GET /tokens/egld
662
+ sdk.tokens.egld(...); // IMetrics
663
+
664
+ // GET /tokens/sui
665
+ sdk.tokens.sui(...); // IMetrics
666
+
667
+ // GET /tokens/xoxno/info
668
+ sdk.tokens.xoxno.info(...); // XoxnoInfo
669
+
670
+ // GET /transactions/:txHash
671
+ sdk.transactions.txHash("...")(...); // TransactionDetailed
672
+
673
+ // GET /transactions/:txHash/status
674
+ sdk.transactions.txHash("...").status(...); // TransactionProcessStatus
675
+
676
+ // POST /transactions
677
+ sdk.transactions.POST(...); // TransactionSendResult
678
+
679
+ // POST /transactions/batch
680
+ sdk.transactions.batch.POST(...); // TransactionSendResult[]
681
+
682
+ // GET /user/:address/network-account
683
+ sdk.user.address("...").networkAccount(...); // UserNetworkInfoDto
684
+
685
+ // GET /user/:address/token-inventory
686
+ sdk.user.address("...").tokenInventory(...); // UserTokenInventoryResponseDto
687
+
688
+ // POST /user/network-account
689
+ sdk.user.networkAccount.POST(...); // UserNetworkInfoDto[]
690
+
691
+ // GET /user/:address/profile
692
+ sdk.user.address("...").profile(...); // UserProfileDoc
693
+
694
+ // PATCH /user/:address/profile
695
+ sdk.user.address("...").profile.PATCH(...); // UserProfileDoc
696
+
697
+ // GET /user/me
698
+ sdk.user.me(...); // UserProfileDto
699
+
700
+ // GET /user/me/settings
701
+ sdk.user.me.settings(...); // UserSettingsDoc
702
+
703
+ // PATCH /user/me/settings/notification-preferences
704
+ sdk.user.me.settings.notificationPreferences.PATCH(...); // UserSettingsDoc
705
+
706
+ // PATCH /user/me/settings/email
707
+ sdk.user.me.settings.email.PATCH(...); // UserSettingsDoc
708
+
709
+ // DELETE /user/me/settings/email
710
+ sdk.user.me.settings.email.DELETE(...); // UserSettingsDoc
711
+
712
+ // PATCH /user/me/settings/phone
713
+ sdk.user.me.settings.phone.PATCH(...); // UserSettingsDoc
714
+
715
+ // PATCH /user/me/settings/billing
716
+ sdk.user.me.settings.billing.PATCH(...); // UserSettingsDoc
717
+
718
+ // POST /user/me/settings/verify-email
719
+ sdk.user.me.settings.verifyEmail.POST(...); // UserSettingsDoc
720
+
721
+ // POST /user/buy/signature
722
+ sdk.user.buy.signature.POST(...); // TradesilvaniaSignature
723
+
724
+ // PUT /user/:address/upload-picture
725
+ sdk.user.address("...").uploadPicture.PUT(...); // UserProfileDoc
726
+
727
+ // PUT /user/:address/upload-banner
728
+ sdk.user.address("...").uploadBanner.PUT(...); // UserProfileDoc
729
+
730
+ // PUT /user/:address/reset-picture
731
+ sdk.user.address("...").resetPicture.PUT(...); // UserProfileDoc
732
+
733
+ // PUT /user/:address/reset-banner
734
+ sdk.user.address("...").resetBanner.PUT(...); // UserProfileDoc
735
+
736
+ // GET /user/:tag/creator/is-registered
737
+ sdk.user.tag("...").creator.isRegistered(...); // SuccessDto
738
+
739
+ // GET /user/:address/creator/profile
740
+ sdk.user.address("...").creator.profile(...); // CreatorProfileDto
741
+
742
+ // PATCH /user/:address/creator/profile
743
+ sdk.user.address("...").creator.profile.PATCH(...); // CreatorProfileDoc
744
+
745
+ // PUT /user/:address/creator/upload-picture
746
+ sdk.user.address("...").creator.uploadPicture.PUT(...); // CreatorProfileDoc
747
+
748
+ // PUT /user/:address/creator/upload-banner
749
+ sdk.user.address("...").creator.uploadBanner.PUT(...); // CreatorProfileDoc
750
+
751
+ // PUT /user/:address/creator/reset-picture
752
+ sdk.user.address("...").creator.resetPicture.PUT(...); // CreatorProfileDoc
753
+
754
+ // PUT /user/:address/creator/reset-banner
755
+ sdk.user.address("...").creator.resetBanner.PUT(...); // CreatorProfileDoc
756
+
757
+ // GET /user/:address/favorite/collections
758
+ sdk.user.address("...").favorite.collections(...); // CollectionStatsPaginated
759
+
760
+ // GET /user/favorite/:favoriteId
761
+ sdk.user.favorite.favoriteId("...")(...); // CheckLikeStatusResponseDto
762
+
763
+ // POST /user/:address/follow
764
+ sdk.user.address("...").follow.POST(...); // UserFavoriteResponseDto
765
+
766
+ // GET /user/:address/favorite/users
767
+ sdk.user.address("...").favorite.users(...); // string[]
768
+
769
+ // GET /user/lending/:address
770
+ sdk.user.lending.address("...")(...); // LendingAccountProfile[]
771
+
772
+ // GET /user/lending/position/:identifier
773
+ sdk.user.lending.position.identifier("...")(...); // LendingAccountProfile[]
774
+
775
+ // GET /user/lending/image/:nonce
776
+ sdk.user.lending.image.nonce("...")(...); // string
777
+
778
+ // GET /user/:address/inventory-summary
779
+ sdk.user.address("...").inventorySummary(...); // InventorySummaryDtoHydrated[]
780
+
781
+ // GET /user/:address/offers
782
+ sdk.user.address("...").offers(...); // NftOfferPaginated
783
+
784
+ // GET /user/:address/favorite/nfts
785
+ sdk.user.address("...").favorite.nfts(...); // NftPaginated
786
+
787
+ // GET /user/:address/creator/listing
788
+ sdk.user.address("...").creator.listing(...); // CreatorDetailsDto
789
+
790
+ // GET /user/:address/creator/details
791
+ sdk.user.address("...").creator.details(...); // CreatorDetailsDto
792
+
793
+ // GET /user/native-token
794
+ sdk.user.nativeToken(...); // string
795
+
796
+ // GET /user/web2
797
+ sdk.user.web2(...); // Web2UserDoc
798
+
799
+ // POST /user/web2/session-cookie
800
+ sdk.user.web2.sessionCookie.POST(...); // SuccessWithMessageDto
801
+
802
+ // POST /user/web2/wallet
803
+ sdk.user.web2.wallet.POST(...); // Web2UserDoc
804
+
805
+ // POST /user/web2/wallet-switch
806
+ sdk.user.web2.walletSwitch.POST(...); // Web2UserDoc
807
+
808
+ // POST /user/web2/wallet-link
809
+ sdk.user.web2.walletLink.POST(...); // Web2UserDoc
810
+
811
+ // DELETE /user/web2/:index/wallet-link
812
+ sdk.user.web2.index("...").walletLink.DELETE(...); // Web2UserDoc
813
+
814
+ // GET /user/web2/shards
815
+ sdk.user.web2.shards(...); // Web2UserShardsDto
816
+
817
+ // GET /user/:address/staking/available-pools
818
+ sdk.user.address("...").staking.availablePools(...); // StakingSummary[]
819
+
820
+ // GET /user/:address/staking/owned-collections
821
+ sdk.user.address("...").staking.ownedCollections(...); // OwnedCollectionsDto
822
+
823
+ // GET /user/:address/staking/owned-pools
824
+ sdk.user.address("...").staking.ownedPools(...); // StakingSummary[]
825
+
826
+ // GET /user/:address/staking/summary
827
+ sdk.user.address("...").staking.summary(...); // UserStakingSummaryDto[]
828
+
829
+ // GET /user/:address/staking/creator
830
+ sdk.user.address("...").staking.creator(...); // StakingCreatorDoc
831
+
832
+ // GET /user/:address/staking/collection/:collection
833
+ sdk.user.address("...").staking.collection.collection("...")(...); // StakingSummary[]
834
+
835
+ // GET /user/:address/staking/pool/:poolId/nfts
836
+ sdk.user.address("...").staking.pool.poolId("...").nfts(...); // StakingUserPoolNfts
837
+
838
+ // GET /user/:creatorTag/owned-services
839
+ sdk.user.creatorTag("...").ownedServices(...); // OwnedServicesDto
840
+
841
+ // GET /user/search
842
+ sdk.user.search(...); // GlobalSearchResourcesPaginated
843
+
844
+ // GET /user/notifications
845
+ sdk.user.notifications(...); // NotificationPaginated
846
+
847
+ // GET /user/notifications/unread-count
848
+ sdk.user.notifications.unreadCount(...); // PushNotificationCountResponse
849
+
850
+ // DELETE /user/notifications/clear
851
+ sdk.user.notifications.clear.DELETE(...); // SuccessDto
852
+
853
+ // PATCH /user/notifications/read
854
+ sdk.user.notifications.read.PATCH(...); // NotificationDoc|SuccessDto
855
+
856
+ // GET /user/:address/analytics/volume
857
+ sdk.user.address("...").analytics.volume(...); // UserAnalyticsDto
858
+
859
+ // GET /user/stats
860
+ sdk.user.stats(...); // UserStatsDto[]
861
+
862
+ // GET /user/xoxno-drop
863
+ sdk.user.xoxnoDrop(...); // AirdropDtoHydrated[]
864
+
865
+ // GET /user/me/xoxno-drop
866
+ sdk.user.me.xoxnoDrop(...); // AirdropDtoHydrated[]
867
+
868
+ // POST /user/login
869
+ sdk.user.login.POST(...); // LoginAccessDto
870
+
871
+ // POST /user/chat/message
872
+ sdk.user.chat.message.POST(...); // ChatMessageDocHydrated
873
+
874
+ // GET /user/chat/conversation
875
+ sdk.user.chat.conversation(...); // UserConversationPaginated
876
+
877
+ // GET /user/chat/conversation/:conversationId
878
+ sdk.user.chat.conversation.conversationId("...")(...); // ChatMessagePaginated
879
+
880
+ // DELETE /user/chat/conversation/:conversationId
881
+ sdk.user.chat.conversation.conversationId("...").DELETE(...); // SuccessDto
882
+
883
+ // GET /user/chat/conversation-summary
884
+ sdk.user.chat.conversationSummary(...); // GlobalConversationSummaryDto
885
+
886
+ // DELETE /user/chat/conversation/:conversationId/message/:messageId
887
+ sdk.user.chat.conversation.conversationId("...").message.messageId("...").DELETE(...); // SuccessDto
888
+
889
+ // GET /user/chat/block
890
+ sdk.user.chat.block(...); // UserBlockPaginated
891
+
892
+ // POST /user/chat/block/:address
893
+ sdk.user.chat.block.address("...").POST(...); // SuccessDto
894
+
895
+ // POST /user/chat/token
896
+ sdk.user.chat.token.POST(...); // WebSocketTokenDto
897
+
898
+ // GET /user/:address/creator/events
899
+ sdk.user.address("...").creator.events(...); // CreatorDetailsDto
900
+
901
+ // GET /user/me/event
902
+ sdk.user.me.event(...); // EventProfile[]
903
+
904
+ // GET /user/me/events/past
905
+ sdk.user.me.events.past(...); // EventProfile[]
906
+
907
+ // GET /user/me/events/hosted
908
+ sdk.user.me.events.hosted(...); // EventProfile[]
909
+
910
+ // GET /user/me/events/upcoming
911
+ sdk.user.me.events.upcoming(...); // EventProfile[]
912
+
913
+ // GET /user/me/event/badge
914
+ sdk.user.me.event.badge(...); // string
915
+
916
+ // GET /user/me/event/badge/payload
917
+ sdk.user.me.event.badge.payload(...); // BageQRData
40
918
 
41
- For more modules and typescript interfaces you can check our documentation at [https://sdk.xoxno.com](https://sdk.xoxno.com)
919
+ ```