@oasisomniverse/web4-api 2.0.0

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 (116) hide show
  1. package/README.md +464 -0
  2. package/docs/README.md +52 -0
  3. package/docs/auth.md +89 -0
  4. package/docs/getting-started.md +129 -0
  5. package/docs/modules/Avatar.md +4160 -0
  6. package/docs/modules/Bridge.md +394 -0
  7. package/docs/modules/Chat.md +168 -0
  8. package/docs/modules/Clan.md +552 -0
  9. package/docs/modules/Competition.md +594 -0
  10. package/docs/modules/Data.md +796 -0
  11. package/docs/modules/EOSIO.md +508 -0
  12. package/docs/modules/Eggs.md +396 -0
  13. package/docs/modules/Files.md +312 -0
  14. package/docs/modules/Gifts.md +306 -0
  15. package/docs/modules/Health.md +90 -0
  16. package/docs/modules/Holochain.md +374 -0
  17. package/docs/modules/HyperDrive.md +3857 -0
  18. package/docs/modules/Karma.md +644 -0
  19. package/docs/modules/Keys.md +3303 -0
  20. package/docs/modules/Map.md +1026 -0
  21. package/docs/modules/Messaging.md +320 -0
  22. package/docs/modules/Nft.md +2216 -0
  23. package/docs/modules/OLand.md +425 -0
  24. package/docs/modules/ONET.md +442 -0
  25. package/docs/modules/ONODE.md +504 -0
  26. package/docs/modules/Provider.md +1396 -0
  27. package/docs/modules/Search.md +69 -0
  28. package/docs/modules/Seeds.md +167 -0
  29. package/docs/modules/Settings.md +533 -0
  30. package/docs/modules/Share.md +64 -0
  31. package/docs/modules/Social.md +190 -0
  32. package/docs/modules/Solana.md +150 -0
  33. package/docs/modules/Stats.md +359 -0
  34. package/docs/modules/Subscription.md +437 -0
  35. package/docs/modules/Video.md +150 -0
  36. package/docs/modules/Wallet.md +1993 -0
  37. package/index.d.ts +106 -0
  38. package/index.js +3 -0
  39. package/index.mjs +4 -0
  40. package/package.json +120 -0
  41. package/src/core/httpClient.js +110 -0
  42. package/src/core/routeHelper.js +50 -0
  43. package/src/core/tokenStore.js +52 -0
  44. package/src/core/types.d.ts +18 -0
  45. package/src/index.js +46 -0
  46. package/src/modules/Auth.d.ts +28 -0
  47. package/src/modules/Auth.js +98 -0
  48. package/src/modules/Avatar.d.ts +192 -0
  49. package/src/modules/Avatar.js +143 -0
  50. package/src/modules/Bridge.d.ts +24 -0
  51. package/src/modules/Bridge.js +35 -0
  52. package/src/modules/Cargo.js +35 -0
  53. package/src/modules/Chat.d.ts +15 -0
  54. package/src/modules/Chat.js +27 -0
  55. package/src/modules/Clan.d.ts +36 -0
  56. package/src/modules/Clan.js +41 -0
  57. package/src/modules/Competition.d.ts +33 -0
  58. package/src/modules/Competition.js +39 -0
  59. package/src/modules/Core.js +27 -0
  60. package/src/modules/Data.d.ts +36 -0
  61. package/src/modules/Data.js +41 -0
  62. package/src/modules/EOSIO.d.ts +33 -0
  63. package/src/modules/EOSIO.js +39 -0
  64. package/src/modules/Eggs.d.ts +24 -0
  65. package/src/modules/Eggs.js +33 -0
  66. package/src/modules/Files.d.ts +24 -0
  67. package/src/modules/Files.js +33 -0
  68. package/src/modules/Gifts.d.ts +24 -0
  69. package/src/modules/Gifts.js +33 -0
  70. package/src/modules/Health.d.ts +12 -0
  71. package/src/modules/Health.js +25 -0
  72. package/src/modules/Holochain.d.ts +27 -0
  73. package/src/modules/Holochain.js +35 -0
  74. package/src/modules/HyperDrive.d.ts +237 -0
  75. package/src/modules/HyperDrive.js +175 -0
  76. package/src/modules/Karma.d.ts +42 -0
  77. package/src/modules/Karma.js +45 -0
  78. package/src/modules/Keys.d.ts +183 -0
  79. package/src/modules/Keys.js +139 -0
  80. package/src/modules/Map.d.ts +75 -0
  81. package/src/modules/Map.js +65 -0
  82. package/src/modules/Messaging.d.ts +24 -0
  83. package/src/modules/Messaging.js +33 -0
  84. package/src/modules/Nft.d.ts +102 -0
  85. package/src/modules/Nft.js +85 -0
  86. package/src/modules/OAPP.js +31 -0
  87. package/src/modules/OLand.d.ts +27 -0
  88. package/src/modules/OLand.js +35 -0
  89. package/src/modules/ONET.d.ts +39 -0
  90. package/src/modules/ONET.js +43 -0
  91. package/src/modules/ONODE.d.ts +45 -0
  92. package/src/modules/ONODE.js +47 -0
  93. package/src/modules/Provider.d.ts +99 -0
  94. package/src/modules/Provider.js +83 -0
  95. package/src/modules/Search.d.ts +9 -0
  96. package/src/modules/Search.js +23 -0
  97. package/src/modules/Seeds.d.ts +15 -0
  98. package/src/modules/Seeds.js +27 -0
  99. package/src/modules/Settings.d.ts +48 -0
  100. package/src/modules/Settings.js +47 -0
  101. package/src/modules/Share.d.ts +9 -0
  102. package/src/modules/Share.js +23 -0
  103. package/src/modules/Social.d.ts +18 -0
  104. package/src/modules/Social.js +29 -0
  105. package/src/modules/Solana.d.ts +12 -0
  106. package/src/modules/Solana.js +25 -0
  107. package/src/modules/Stats.d.ts +30 -0
  108. package/src/modules/Stats.js +37 -0
  109. package/src/modules/Subscription.d.ts +36 -0
  110. package/src/modules/Subscription.js +41 -0
  111. package/src/modules/Telos.js +39 -0
  112. package/src/modules/Video.d.ts +15 -0
  113. package/src/modules/Video.js +27 -0
  114. package/src/modules/Wallet.d.ts +102 -0
  115. package/src/modules/Wallet.js +85 -0
  116. package/src/modules/index.js +79 -0
@@ -0,0 +1,190 @@
1
+ # Social — `oasis.social`
2
+
3
+ Source controller: [`SocialController.cs`](https://github.com/NextGenSoftwareUK/OASIS2/blob/main/ONODE/NextGenSoftware.OASIS.API.ONODE.WebAPI/Controllers/SocialController.cs)
4
+ Route prefix: `api/social`
5
+ 4 operation(s).
6
+
7
+ Every method takes a single args object: any key matching a `{token}` in the route is substituted into the URL; everything else becomes the query string (GET/DELETE) or JSON body (POST/PUT). Every call resolves to the standard OASIS envelope:
8
+
9
+ ```ts
10
+ {
11
+ isError: boolean;
12
+ isWarning: boolean;
13
+ message: string;
14
+ errorCode?: string;
15
+ result: T; // see each endpoint's Response section below
16
+ }
17
+ ```
18
+
19
+ ## Operations
20
+
21
+ ### `getRegisteredProviders`
22
+
23
+ Get registered social providers for the current avatar
24
+
25
+ **GET** `api/social/registered-providers`
26
+
27
+ **Request**
28
+
29
+ No request body.
30
+
31
+ **Response**
32
+
33
+ Standard `OASISResult` envelope (see top of this page) with:
34
+
35
+ `result` type: `SocialProvider` (array)
36
+
37
+ | Field | Type |
38
+ | --- | --- |
39
+ | `Id` | `string` |
40
+ | `Name` | `string` |
41
+ | `AccessToken` | `string` |
42
+ | `AvatarId` | `Guid` |
43
+ | `IsActive` | `bool` |
44
+ | `RegisteredAt` | `DateTime` |
45
+ | `Settings` | `Dictionary<string, object>` |
46
+
47
+ **Example**
48
+
49
+ ```js
50
+ const { isError, message, result } = await oasis.social.getRegisteredProviders({});
51
+ if (isError) throw new Error(message);
52
+ console.log(result);
53
+ ```
54
+
55
+ Example response:
56
+
57
+ ```json
58
+ {
59
+ "isError": false,
60
+ "message": "",
61
+ "result": [{ "Id": "example string", "Name": "example string", "AccessToken": "example string", "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "IsActive": true, "RegisteredAt": "2026-01-01T00:00:00Z", "Settings": { "<string>": {} } }]
62
+ }
63
+ ```
64
+
65
+ ---
66
+
67
+ ### `getSocialFeed`
68
+
69
+ Get's the social feed from all registered social providers for the currently logged in avatar
70
+
71
+ **GET** `api/social/social-feed`
72
+
73
+ **Request**
74
+
75
+ No request body.
76
+
77
+ **Response**
78
+
79
+ Standard `OASISResult` envelope (see top of this page) with:
80
+
81
+ `result` type: `SocialPost` (array)
82
+
83
+ | Field | Type |
84
+ | --- | --- |
85
+ | `Id` | `string` |
86
+ | `ProviderId` | `string` |
87
+ | `ProviderName` | `string` |
88
+ | `Content` | `string` |
89
+ | `Timestamp` | `DateTime` |
90
+ | `AvatarId` | `Guid` |
91
+ | `Metadata` | `Dictionary<string, object>` |
92
+
93
+ **Example**
94
+
95
+ ```js
96
+ const { isError, message, result } = await oasis.social.getSocialFeed({});
97
+ if (isError) throw new Error(message);
98
+ console.log(result);
99
+ ```
100
+
101
+ Example response:
102
+
103
+ ```json
104
+ {
105
+ "isError": false,
106
+ "message": "",
107
+ "result": [{ "Id": "example string", "ProviderId": "example string", "ProviderName": "example string", "Content": "example string", "Timestamp": "2026-01-01T00:00:00Z", "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Metadata": { "<string>": {} } }]
108
+ }
109
+ ```
110
+
111
+ ---
112
+
113
+ ### `registerSocialProvider`
114
+
115
+ Register a given social provider (FaceBook, Twitter, Instagram, LinkedIn, etc)
116
+
117
+ **POST** `api/social/register-social-provider`
118
+
119
+ **Request**
120
+
121
+ Body type: `Dictionary<string, object>` - a key/value map keyed by `string`, each value a `object`.
122
+
123
+ **Response**
124
+
125
+ Standard `OASISResult` envelope (see top of this page) with:
126
+
127
+ `result` type: `bool`
128
+
129
+ **Example**
130
+
131
+ ```js
132
+ const { isError, message, result } = await oasis.social.registerSocialProvider({
133
+ providerName: 'example string',
134
+ accessToken: 'example string',
135
+ /* ...request body fields */
136
+ });
137
+ if (isError) throw new Error(message);
138
+ console.log(result);
139
+ ```
140
+
141
+ Example response:
142
+
143
+ ```json
144
+ {
145
+ "isError": false,
146
+ "message": "",
147
+ "result": true
148
+ }
149
+ ```
150
+
151
+ ---
152
+
153
+ ### `shareHolon`
154
+
155
+ Share a holon to social media
156
+
157
+ **POST** `api/social/share-holon`
158
+
159
+ **Request**
160
+
161
+ Body type: `string` (array)
162
+
163
+ **Response**
164
+
165
+ Standard `OASISResult` envelope (see top of this page) with:
166
+
167
+ `result` type: `bool`
168
+
169
+ **Example**
170
+
171
+ ```js
172
+ const { isError, message, result } = await oasis.social.shareHolon({
173
+ holonId: '3fa85f64-5717-4562-b3fc-2c963f66afa6',
174
+ message: 'example string',
175
+ /* ...request body fields */
176
+ });
177
+ if (isError) throw new Error(message);
178
+ console.log(result);
179
+ ```
180
+
181
+ Example response:
182
+
183
+ ```json
184
+ {
185
+ "isError": false,
186
+ "message": "",
187
+ "result": true
188
+ }
189
+ ```
190
+
@@ -0,0 +1,150 @@
1
+ # Solana — `oasis.solana`
2
+
3
+ Source controller: [`SolanaController.cs`](https://github.com/NextGenSoftwareUK/OASIS2/blob/main/ONODE/NextGenSoftware.OASIS.API.ONODE.WebAPI/Controllers/SolanaController.cs)
4
+ Route prefix: `api/solana`
5
+ 2 operation(s).
6
+
7
+ Every method takes a single args object: any key matching a `{token}` in the route is substituted into the URL; everything else becomes the query string (GET/DELETE) or JSON body (POST/PUT). Every call resolves to the standard OASIS envelope:
8
+
9
+ ```ts
10
+ {
11
+ isError: boolean;
12
+ isWarning: boolean;
13
+ message: string;
14
+ errorCode?: string;
15
+ result: T; // see each endpoint's Response section below
16
+ }
17
+ ```
18
+
19
+ ## Operations
20
+
21
+ ### `mintNft`
22
+
23
+ Mint NFT (non-fungible token)
24
+
25
+ **POST** `api/solana/Mint`
26
+
27
+ **Request**
28
+
29
+ Body type: `MintWeb3NFTRequest`
30
+
31
+ | Field | Type |
32
+ | --- | --- |
33
+ | `CollectionPublicKey` | `string?` |
34
+ | `Price` | `decimal?` |
35
+ | `Discount` | `decimal?` |
36
+ | `RoyaltyPercentage` | `int?` |
37
+ | `NumberToMint` | `int?` |
38
+ | `StoreNFTMetaDataOnChain` | `bool?` |
39
+ | `OffChainProvider` | `ProviderType?` |
40
+ | `OnChainProvider` | `ProviderType?` |
41
+ | `NFTStandardType` | `NFTStandardType?` |
42
+ | `NFTOffChainMetaType` | `NFTOffChainMetaType?` |
43
+ | `NFTTagsMergeStrategy` | `NFTTagsMergeStrategy` |
44
+ | `NFTMetaDataMergeStrategy` | `NFTMetaDataMergeStrategy` |
45
+ | `WaitTillNFTMinted` | `bool?` |
46
+ | `WaitForNFTToMintInSeconds` | `int?` |
47
+ | `AttemptToMintEveryXSeconds` | `int?` |
48
+ | `WaitTillNFTVerified` | `bool?` |
49
+ | `WaitForNFTToVerifyInSeconds` | `int?` |
50
+ | `AttemptToVerifyEveryXSeconds` | `int?` |
51
+ | `WaitTillNFTSent` | `bool?` |
52
+ | `WaitForNFTToSendInSeconds` | `int?` |
53
+ | `AttemptToSendEveryXSeconds` | `int?` |
54
+
55
+ **Response**
56
+
57
+ Standard `OASISResult` envelope (see top of this page) with:
58
+
59
+ `result` type: `MintNftResult`
60
+
61
+ | Field | Type |
62
+ | --- | --- |
63
+ | `MintAccount` | `string` |
64
+ | `Network` | `string` |
65
+ | `VerifyCollectionTransactionHash` | `string` |
66
+
67
+ **Example**
68
+
69
+ ```js
70
+ const { isError, message, result } = await oasis.solana.mintNft({
71
+ collectionPublicKey: "example string",
72
+ price: 1.0,
73
+ discount: 1.0,
74
+ royaltyPercentage: 1,
75
+ numberToMint: 1,
76
+ storeNFTMetaDataOnChain: true,
77
+ offChainProvider: { },
78
+ onChainProvider: { },
79
+ nFTStandardType: { },
80
+ nFTOffChainMetaType: { },
81
+ nFTTagsMergeStrategy: { },
82
+ nFTMetaDataMergeStrategy: { },
83
+ waitTillNFTMinted: true,
84
+ waitForNFTToMintInSeconds: 1,
85
+ attemptToMintEveryXSeconds: 1,
86
+ waitTillNFTVerified: true,
87
+ waitForNFTToVerifyInSeconds: 1,
88
+ attemptToVerifyEveryXSeconds: 1,
89
+ waitTillNFTSent: true,
90
+ waitForNFTToSendInSeconds: 1,
91
+ attemptToSendEveryXSeconds: 1
92
+ });
93
+ if (isError) throw new Error(message);
94
+ console.log(result);
95
+ ```
96
+
97
+ Example response:
98
+
99
+ ```json
100
+ {
101
+ "isError": false,
102
+ "message": "",
103
+ "result": { "MintAccount": "example string", "Network": "example string", "VerifyCollectionTransactionHash": "example string" }
104
+ }
105
+ ```
106
+
107
+ ---
108
+
109
+ ### `sendTransaction`
110
+
111
+ Handles a transaction between accounts with a specific Lampposts size
112
+
113
+ **POST** `api/solana/Send`
114
+
115
+ **Request**
116
+
117
+ Body type: `SendTransactionRequest`
118
+
119
+ | Field | Type |
120
+ | --- | --- |
121
+ | `Lampposts` | `ulong` |
122
+
123
+ **Response**
124
+
125
+ Standard `OASISResult` envelope (see top of this page) with:
126
+
127
+ `result` type: `SendTransactionResult`
128
+
129
+ _No fields._
130
+
131
+ **Example**
132
+
133
+ ```js
134
+ const { isError, message, result } = await oasis.solana.sendTransaction({
135
+ lampposts: /* <ulong> */
136
+ });
137
+ if (isError) throw new Error(message);
138
+ console.log(result);
139
+ ```
140
+
141
+ Example response:
142
+
143
+ ```json
144
+ {
145
+ "isError": false,
146
+ "message": "",
147
+ "result": { }
148
+ }
149
+ ```
150
+
@@ -0,0 +1,359 @@
1
+ # Stats — `oasis.stats`
2
+
3
+ Source controller: [`StatsController.cs`](https://github.com/NextGenSoftwareUK/OASIS2/blob/main/ONODE/NextGenSoftware.OASIS.API.ONODE.WebAPI/Controllers/StatsController.cs)
4
+ Route prefix: `api/stats`
5
+ 8 operation(s).
6
+
7
+ Every method takes a single args object: any key matching a `{token}` in the route is substituted into the URL; everything else becomes the query string (GET/DELETE) or JSON body (POST/PUT). Every call resolves to the standard OASIS envelope:
8
+
9
+ ```ts
10
+ {
11
+ isError: boolean;
12
+ isWarning: boolean;
13
+ message: string;
14
+ errorCode?: string;
15
+ result: T; // see each endpoint's Response section below
16
+ }
17
+ ```
18
+
19
+ ## Operations
20
+
21
+ ### `getChatStats`
22
+
23
+ Get chat statistics for an avatar
24
+
25
+ **GET** `api/stats/chat-stats/{avatarId}`
26
+
27
+ Route parameters:
28
+
29
+ | Field | Type |
30
+ | --- | --- |
31
+ | `avatarId` | `Guid` |
32
+
33
+ **Request**
34
+
35
+ No request body.
36
+
37
+ **Response**
38
+
39
+ Standard `OASISResult` envelope (see top of this page) with:
40
+
41
+ `result` type: `Dictionary<string, object>` - a key/value map keyed by `string`, each value a `object`.
42
+
43
+ **Example**
44
+
45
+ ```js
46
+ const { isError, message, result } = await oasis.stats.getChatStats({
47
+ avatarId: '<avatarId>'
48
+ });
49
+ if (isError) throw new Error(message);
50
+ console.log(result);
51
+ ```
52
+
53
+ Example response:
54
+
55
+ ```json
56
+ {
57
+ "isError": false,
58
+ "message": "",
59
+ "result": { "<string>": {} }
60
+ }
61
+ ```
62
+
63
+ ---
64
+
65
+ ### `getGiftStats`
66
+
67
+ Get gift statistics for an avatar
68
+
69
+ **GET** `api/stats/gift-stats/{avatarId}`
70
+
71
+ Route parameters:
72
+
73
+ | Field | Type |
74
+ | --- | --- |
75
+ | `avatarId` | `Guid` |
76
+
77
+ **Request**
78
+
79
+ No request body.
80
+
81
+ **Response**
82
+
83
+ Standard `OASISResult` envelope (see top of this page) with:
84
+
85
+ `result` type: `Dictionary<string, object>` - a key/value map keyed by `string`, each value a `object`.
86
+
87
+ **Example**
88
+
89
+ ```js
90
+ const { isError, message, result } = await oasis.stats.getGiftStats({
91
+ avatarId: '<avatarId>'
92
+ });
93
+ if (isError) throw new Error(message);
94
+ console.log(result);
95
+ ```
96
+
97
+ Example response:
98
+
99
+ ```json
100
+ {
101
+ "isError": false,
102
+ "message": "",
103
+ "result": { "<string>": {} }
104
+ }
105
+ ```
106
+
107
+ ---
108
+
109
+ ### `getKarmaHistory`
110
+
111
+ Get karma history for an avatar
112
+
113
+ **GET** `api/stats/karma-history/{avatarId}`
114
+
115
+ Route parameters:
116
+
117
+ | Field | Type |
118
+ | --- | --- |
119
+ | `avatarId` | `Guid` |
120
+
121
+ **Request**
122
+
123
+ Query parameters:
124
+
125
+ | Field | Type |
126
+ | --- | --- |
127
+ | `limit` | `int (optional)` |
128
+
129
+ **Response**
130
+
131
+ Standard `OASISResult` envelope (see top of this page) with:
132
+
133
+ `result` type: `Dictionary<string, object>` - a key/value map keyed by `string`, each value a `object`.
134
+
135
+ **Example**
136
+
137
+ ```js
138
+ const { isError, message, result } = await oasis.stats.getKarmaHistory({
139
+ avatarId: '<avatarId>',
140
+ limit: 1
141
+ });
142
+ if (isError) throw new Error(message);
143
+ console.log(result);
144
+ ```
145
+
146
+ Example response:
147
+
148
+ ```json
149
+ {
150
+ "isError": false,
151
+ "message": "",
152
+ "result": { "<string>": {} }
153
+ }
154
+ ```
155
+
156
+ ---
157
+
158
+ ### `getKarmaStats`
159
+
160
+ Get karma statistics for an avatar
161
+
162
+ **GET** `api/stats/karma-stats/{avatarId}`
163
+
164
+ Route parameters:
165
+
166
+ | Field | Type |
167
+ | --- | --- |
168
+ | `avatarId` | `Guid` |
169
+
170
+ **Request**
171
+
172
+ No request body.
173
+
174
+ **Response**
175
+
176
+ Standard `OASISResult` envelope (see top of this page) with:
177
+
178
+ `result` type: `Dictionary<string, object>` - a key/value map keyed by `string`, each value a `object`.
179
+
180
+ **Example**
181
+
182
+ ```js
183
+ const { isError, message, result } = await oasis.stats.getKarmaStats({
184
+ avatarId: '<avatarId>'
185
+ });
186
+ if (isError) throw new Error(message);
187
+ console.log(result);
188
+ ```
189
+
190
+ Example response:
191
+
192
+ ```json
193
+ {
194
+ "isError": false,
195
+ "message": "",
196
+ "result": { "<string>": {} }
197
+ }
198
+ ```
199
+
200
+ ---
201
+
202
+ ### `getKeyStats`
203
+
204
+ Get key statistics for an avatar
205
+
206
+ **GET** `api/stats/key-stats/{avatarId}`
207
+
208
+ Route parameters:
209
+
210
+ | Field | Type |
211
+ | --- | --- |
212
+ | `avatarId` | `Guid` |
213
+
214
+ **Request**
215
+
216
+ No request body.
217
+
218
+ **Response**
219
+
220
+ Standard `OASISResult` envelope (see top of this page) with:
221
+
222
+ `result` type: `Dictionary<string, object>` - a key/value map keyed by `string`, each value a `object`.
223
+
224
+ **Example**
225
+
226
+ ```js
227
+ const { isError, message, result } = await oasis.stats.getKeyStats({
228
+ avatarId: '<avatarId>'
229
+ });
230
+ if (isError) throw new Error(message);
231
+ console.log(result);
232
+ ```
233
+
234
+ Example response:
235
+
236
+ ```json
237
+ {
238
+ "isError": false,
239
+ "message": "",
240
+ "result": { "<string>": {} }
241
+ }
242
+ ```
243
+
244
+ ---
245
+
246
+ ### `getLeaderboardStats`
247
+
248
+ Get leaderboard statistics for an avatar
249
+
250
+ **GET** `api/stats/leaderboard-stats/{avatarId}`
251
+
252
+ Route parameters:
253
+
254
+ | Field | Type |
255
+ | --- | --- |
256
+ | `avatarId` | `Guid` |
257
+
258
+ **Request**
259
+
260
+ No request body.
261
+
262
+ **Response**
263
+
264
+ Standard `OASISResult` envelope (see top of this page) with:
265
+
266
+ `result` type: `Dictionary<string, object>` - a key/value map keyed by `string`, each value a `object`.
267
+
268
+ **Example**
269
+
270
+ ```js
271
+ const { isError, message, result } = await oasis.stats.getLeaderboardStats({
272
+ avatarId: '<avatarId>'
273
+ });
274
+ if (isError) throw new Error(message);
275
+ console.log(result);
276
+ ```
277
+
278
+ Example response:
279
+
280
+ ```json
281
+ {
282
+ "isError": false,
283
+ "message": "",
284
+ "result": { "<string>": {} }
285
+ }
286
+ ```
287
+
288
+ ---
289
+
290
+ ### `getStatsForCurrentLoggedInAvatar`
291
+
292
+ Get comprehensive stats for the currently logged in avatar
293
+
294
+ **GET** `api/stats/get-stats-for-current-logged-in-avatar`
295
+
296
+ **Request**
297
+
298
+ No request body.
299
+
300
+ **Response**
301
+
302
+ Standard `OASISResult` envelope (see top of this page) with:
303
+
304
+ `result` type: `Dictionary<string, object>` - a key/value map keyed by `string`, each value a `object`.
305
+
306
+ **Example**
307
+
308
+ ```js
309
+ const { isError, message, result } = await oasis.stats.getStatsForCurrentLoggedInAvatar({});
310
+ if (isError) throw new Error(message);
311
+ console.log(result);
312
+ ```
313
+
314
+ Example response:
315
+
316
+ ```json
317
+ {
318
+ "isError": false,
319
+ "message": "",
320
+ "result": { "<string>": {} }
321
+ }
322
+ ```
323
+
324
+ ---
325
+
326
+ ### `getSystemStats`
327
+
328
+ Get system-wide statistics
329
+
330
+ **GET** `api/stats/system-stats`
331
+
332
+ **Request**
333
+
334
+ No request body.
335
+
336
+ **Response**
337
+
338
+ Standard `OASISResult` envelope (see top of this page) with:
339
+
340
+ `result` type: `Dictionary<string, object>` - a key/value map keyed by `string`, each value a `object`.
341
+
342
+ **Example**
343
+
344
+ ```js
345
+ const { isError, message, result } = await oasis.stats.getSystemStats({});
346
+ if (isError) throw new Error(message);
347
+ console.log(result);
348
+ ```
349
+
350
+ Example response:
351
+
352
+ ```json
353
+ {
354
+ "isError": false,
355
+ "message": "",
356
+ "result": { "<string>": {} }
357
+ }
358
+ ```
359
+