@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,644 @@
1
+ # Karma — `oasis.karma`
2
+
3
+ Source controller: [`KarmaController.cs`](https://github.com/NextGenSoftwareUK/OASIS2/blob/main/ONODE/NextGenSoftware.OASIS.API.ONODE.WebAPI/Controllers/KarmaController.cs)
4
+ Route prefix: `api/karma`
5
+ 12 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
+ ### `addKarmaToAvatar`
22
+
23
+ Add positive karma to the given avatar. karmaType = The type of positive karma, karmaSourceType = Where the karma was earnt (App, dApp, hApp, Website, Game, karamSourceTitle/karamSourceDesc = The name/desc of the app/website/game where the karma was earnt. They must be logged in & authenticated for this method to work.
24
+
25
+ **POST** `api/karma/add-karma-to-avatar/{avatarId}`
26
+
27
+ Route parameters:
28
+
29
+ | Field | Type |
30
+ | --- | --- |
31
+ | `avatarId` | `Guid` |
32
+
33
+ **Request**
34
+
35
+ Body type: `AddRemoveKarmaToAvatarRequest`
36
+
37
+ | Field | Type |
38
+ | --- | --- |
39
+ | `AvatarId` | `Guid` |
40
+ | `KarmaType` | `KarmaTypePositive` |
41
+ | `karmaSourceType` | `KarmaSourceType` |
42
+ | `Avatar` | `IAvatar` |
43
+ | `KaramSourceTitle` | `string` |
44
+ | `KarmaSourceDesc` | `string` |
45
+
46
+ **Response**
47
+
48
+ Standard `OASISResult` envelope (see top of this page) with:
49
+
50
+ `result` type: `KarmaAkashicRecord`
51
+
52
+ | Field | Type |
53
+ | --- | --- |
54
+ | `AvatarId` | `Guid` |
55
+ | `Date` | `DateTime` |
56
+ | `Karma` | `int` |
57
+ | `TotalKarma` | `long` |
58
+ | `KarmaSourceTitle` | `string` |
59
+ | `KarmaSourceDesc` | `string` |
60
+ | `WebLink` | `string` |
61
+ | `KarmaSource` | `EnumValue<KarmaSourceType>` |
62
+ | `KarmaEarntOrLost` | `EnumValue<KarmaEarntOrLost>` |
63
+ | `KarmaTypePositive` | `EnumValue<KarmaTypePositive>` |
64
+ | `KarmaTypeNegative` | `EnumValue<KarmaTypeNegative>` |
65
+ | `Provider` | `EnumValue<ProviderType>` |
66
+
67
+ **Example**
68
+
69
+ ```js
70
+ const { isError, message, result } = await oasis.karma.addKarmaToAvatar({
71
+ avatarId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
72
+ karmaType: { },
73
+ karmaSourceType: { },
74
+ avatar: { "ProviderWallets": { "<ProviderType>": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "WalletId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Name": "example string", "Description": /* <new string> */, "PrivateKey": "example string", "PublicKey": "example string", "WalletAddress": "example string", "WalletAddressSegwitP2SH": "example string", "SecretRecoveryPhrase": "example string", "Transactions": [{ "TransactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "FromWalletAddress": "example string", "ToWalletAddress": "example string", "Amount": 1.0, "Description": "example string", "CreatedDate": "2026-01-01T00:00:00Z", "TransactionType": { }, "TransactionCategory": { } }], "ProviderType": { }, "Balance": 1.0, "IsDefaultWallet": true }] }, "ProviderPrivateKey": { "<ProviderType>": "example string" }, "ProviderPublicKey": { "<ProviderType>": ["example string"] }, "ProviderUsername": { "<ProviderType>": "example string" }, "ProviderWalletAddress": { "<ProviderType>": ["example string"] }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Title": "example string", "FirstName": "example string", "LastName": "example string", "FullName": "example string", "FullNameWithTitle": "example string", "Username": "example string", "Email": "example string", "Password": "example string", "AvatarType": { "Score": 1.0 }, "AcceptTerms": true, "IsVerified": true, "JwtToken": "example string", "PasswordReset": "2026-01-01T00:00:00Z", "RefreshToken": "example string", "RefreshTokens": [{ "Id": 1, "Avatar": {}, "Token": "example string", "Expires": "2026-01-01T00:00:00Z", "Created": "2026-01-01T00:00:00Z", "CreatedByIp": "example string", "Revoked": "2026-01-01T00:00:00Z", "RevokedByIp": "example string", "ReplacedByToken": "example string" }], "ResetToken": "example string", "ResetTokenExpires": "2026-01-01T00:00:00Z", "VerificationToken": "example string", "Verified": "2026-01-01T00:00:00Z", "LastBeamedIn": "2026-01-01T00:00:00Z", "LastBeamedOut": "2026-01-01T00:00:00Z", "IsBeamedIn": true, "Image2D": "example string", "Karma": 1, "Level": 1, "XP": 1 },
75
+ karamSourceTitle: "example string",
76
+ karmaSourceDesc: "example string"
77
+ });
78
+ if (isError) throw new Error(message);
79
+ console.log(result);
80
+ ```
81
+
82
+ Example response:
83
+
84
+ ```json
85
+ {
86
+ "isError": false,
87
+ "message": "",
88
+ "result": { "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Date": "2026-01-01T00:00:00Z", "Karma": 1, "TotalKarma": 1, "KarmaSourceTitle": "example string", "KarmaSourceDesc": "example string", "WebLink": "example string", "KarmaSource": { "Score": 1.0 }, "KarmaEarntOrLost": { "Score": 1.0 }, "KarmaTypePositive": { "Score": 1.0 }, "KarmaTypeNegative": { "Score": 1.0 }, "Provider": { "Score": 1.0 } }
89
+ }
90
+ ```
91
+
92
+ ---
93
+
94
+ ### `getKarmaAkashicRecordsForAvatar`
95
+
96
+ Get's the karma akashic records for a given avatar.
97
+
98
+ **GET** `api/karma/get-karma-akashic-records-for-avatar/{avatarId}`
99
+
100
+ Route parameters:
101
+
102
+ | Field | Type |
103
+ | --- | --- |
104
+ | `avatarId` | `Guid` |
105
+
106
+ **Request**
107
+
108
+ No request body.
109
+
110
+ **Response**
111
+
112
+ Standard `OASISResult` envelope (see top of this page) with:
113
+
114
+ `result` type: `IKarmaAkashicRecord` (array)
115
+
116
+ | Field | Type |
117
+ | --- | --- |
118
+ | `AvatarId` | `Guid` |
119
+ | `Date` | `DateTime` |
120
+ | `Karma` | `int` |
121
+ | `KarmaEarntOrLost` | `EnumValue<KarmaEarntOrLost>` |
122
+ | `KarmaSource` | `EnumValue<KarmaSourceType>` |
123
+ | `KarmaSourceDesc` | `string` |
124
+ | `KarmaSourceTitle` | `string` |
125
+ | `KarmaTypeNegative` | `EnumValue<KarmaTypeNegative>` |
126
+ | `KarmaTypePositive` | `EnumValue<KarmaTypePositive>` |
127
+ | `Provider` | `EnumValue<ProviderType>` |
128
+ | `TotalKarma` | `long` |
129
+ | `WebLink` | `string` |
130
+
131
+ **Example**
132
+
133
+ ```js
134
+ const { isError, message, result } = await oasis.karma.getKarmaAkashicRecordsForAvatar({
135
+ avatarId: '<avatarId>'
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": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Date": "2026-01-01T00:00:00Z", "Karma": 1, "KarmaEarntOrLost": { "Score": 1.0 }, "KarmaSource": { "Score": 1.0 }, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "KarmaTypeNegative": { "Score": 1.0 }, "KarmaTypePositive": { "Score": 1.0 }, "Provider": { "Score": 1.0 }, "TotalKarma": 1, "WebLink": "example string" }]
148
+ }
149
+ ```
150
+
151
+ ---
152
+
153
+ ### `getKarmaForAvatar`
154
+
155
+ Get's the karma for a given avatar.
156
+
157
+ **GET** `api/karma/get-karma-for-avatar/{avatarId}`
158
+
159
+ Route parameters:
160
+
161
+ | Field | Type |
162
+ | --- | --- |
163
+ | `avatarId` | `Guid` |
164
+
165
+ **Request**
166
+
167
+ No request body.
168
+
169
+ **Response**
170
+
171
+ Standard `OASISResult` envelope (see top of this page) with:
172
+
173
+ `result` type: `long`
174
+
175
+ **Example**
176
+
177
+ ```js
178
+ const { isError, message, result } = await oasis.karma.getKarmaForAvatar({
179
+ avatarId: '<avatarId>'
180
+ });
181
+ if (isError) throw new Error(message);
182
+ console.log(result);
183
+ ```
184
+
185
+ Example response:
186
+
187
+ ```json
188
+ {
189
+ "isError": false,
190
+ "message": "",
191
+ "result": 1
192
+ }
193
+ ```
194
+
195
+ ---
196
+
197
+ ### `getKarmaHistory`
198
+
199
+ Gets karma history (paged) for a given avatar.
200
+
201
+ **GET** `api/karma/get-karma-history/{avatarId}`
202
+
203
+ Route parameters:
204
+
205
+ | Field | Type |
206
+ | --- | --- |
207
+ | `avatarId` | `Guid` |
208
+
209
+ **Request**
210
+
211
+ Query parameters:
212
+
213
+ | Field | Type |
214
+ | --- | --- |
215
+ | `limit` | `int (optional)` |
216
+ | `offset` | `int (optional)` |
217
+
218
+ **Response**
219
+
220
+ Standard `OASISResult` envelope (see top of this page) with:
221
+
222
+ `result` type: `KarmaTransaction` (array)
223
+
224
+ | Field | Type |
225
+ | --- | --- |
226
+ | `Id` | `Guid` |
227
+ | `AvatarId` | `Guid` |
228
+ | `Amount` | `long` |
229
+ | `SourceType` | `KarmaSourceType` |
230
+ | `Description` | `string` |
231
+ | `RelatedEntityId` | `Guid?` |
232
+ | `Timestamp` | `DateTime` |
233
+
234
+ **Example**
235
+
236
+ ```js
237
+ const { isError, message, result } = await oasis.karma.getKarmaHistory({
238
+ avatarId: '<avatarId>',
239
+ limit: 1,
240
+ offset: 1
241
+ });
242
+ if (isError) throw new Error(message);
243
+ console.log(result);
244
+ ```
245
+
246
+ Example response:
247
+
248
+ ```json
249
+ {
250
+ "isError": false,
251
+ "message": "",
252
+ "result": [{ "Id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Amount": 1, "SourceType": { }, "Description": "example string", "RelatedEntityId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Timestamp": "2026-01-01T00:00:00Z" }]
253
+ }
254
+ ```
255
+
256
+ ---
257
+
258
+ ### `getKarmaStats`
259
+
260
+ Gets karma statistics (totals, distributions, recent activity) for a given avatar.
261
+
262
+ **GET** `api/karma/get-karma-stats/{avatarId}`
263
+
264
+ Route parameters:
265
+
266
+ | Field | Type |
267
+ | --- | --- |
268
+ | `avatarId` | `Guid` |
269
+
270
+ **Request**
271
+
272
+ No request body.
273
+
274
+ **Response**
275
+
276
+ Standard `OASISResult` envelope (see top of this page) with:
277
+
278
+ `result` type: `Dictionary<string, object>` - a key/value map keyed by `string`, each value a `object`.
279
+
280
+ **Example**
281
+
282
+ ```js
283
+ const { isError, message, result } = await oasis.karma.getKarmaStats({
284
+ avatarId: '<avatarId>'
285
+ });
286
+ if (isError) throw new Error(message);
287
+ console.log(result);
288
+ ```
289
+
290
+ Example response:
291
+
292
+ ```json
293
+ {
294
+ "isError": false,
295
+ "message": "",
296
+ "result": { "<string>": {} }
297
+ }
298
+ ```
299
+
300
+ ---
301
+
302
+ ### `getNegativeKarmaWeighting`
303
+
304
+ Get karma weighting for a given negative karma category.
305
+
306
+ **GET** `api/karma/get-negative-karma-weighting/{karmaType}`
307
+
308
+ Route parameters:
309
+
310
+ | Field | Type |
311
+ | --- | --- |
312
+ | `karmaType` | `KarmaTypeNegative` |
313
+
314
+ **Request**
315
+
316
+ No request body.
317
+
318
+ **Response**
319
+
320
+ Standard `OASISResult` envelope (see top of this page) with:
321
+
322
+ `result` type: `bool`
323
+
324
+ **Example**
325
+
326
+ ```js
327
+ const { isError, message, result } = await oasis.karma.getNegativeKarmaWeighting({
328
+ karmaType: '<karmaType>'
329
+ });
330
+ if (isError) throw new Error(message);
331
+ console.log(result);
332
+ ```
333
+
334
+ Example response:
335
+
336
+ ```json
337
+ {
338
+ "isError": false,
339
+ "message": "",
340
+ "result": true
341
+ }
342
+ ```
343
+
344
+ ---
345
+
346
+ ### `getPositiveKarmaWeighting`
347
+
348
+ Get karma weighting for a given positive karma category.
349
+
350
+ **GET** `api/karma/get-positive-karma-weighting/{karmaType}`
351
+
352
+ Route parameters:
353
+
354
+ | Field | Type |
355
+ | --- | --- |
356
+ | `karmaType` | `KarmaTypePositive` |
357
+
358
+ **Request**
359
+
360
+ No request body.
361
+
362
+ **Response**
363
+
364
+ Standard `OASISResult` envelope (see top of this page) with:
365
+
366
+ `result` type: `bool`
367
+
368
+ **Example**
369
+
370
+ ```js
371
+ const { isError, message, result } = await oasis.karma.getPositiveKarmaWeighting({
372
+ karmaType: '<karmaType>'
373
+ });
374
+ if (isError) throw new Error(message);
375
+ console.log(result);
376
+ ```
377
+
378
+ Example response:
379
+
380
+ ```json
381
+ {
382
+ "isError": false,
383
+ "message": "",
384
+ "result": true
385
+ }
386
+ ```
387
+
388
+ ---
389
+
390
+ ### `removeKarmaFromAvatar`
391
+
392
+ Remove karma from the given avatar. They must be logged in &amp; authenticated for this method to work. karmaType = The type of negative karma, karmaSourceType = Where the karma was lost (App, dApp, hApp, Website, Game, karamSourceTitle/karamSourceDesc = The name/desc of the app/website/game where the karma was lost.
393
+
394
+ **POST** `api/karma/remove-karma-from-avatar/{avatarId}`
395
+
396
+ Route parameters:
397
+
398
+ | Field | Type |
399
+ | --- | --- |
400
+ | `avatarId` | `Guid` |
401
+
402
+ **Request**
403
+
404
+ Body type: `AddRemoveKarmaToAvatarRequest`
405
+
406
+ | Field | Type |
407
+ | --- | --- |
408
+ | `AvatarId` | `Guid` |
409
+ | `KarmaType` | `KarmaTypePositive` |
410
+ | `karmaSourceType` | `KarmaSourceType` |
411
+ | `Avatar` | `IAvatar` |
412
+ | `KaramSourceTitle` | `string` |
413
+ | `KarmaSourceDesc` | `string` |
414
+
415
+ **Response**
416
+
417
+ Standard `OASISResult` envelope (see top of this page) with:
418
+
419
+ `result` type: `KarmaAkashicRecord`
420
+
421
+ | Field | Type |
422
+ | --- | --- |
423
+ | `AvatarId` | `Guid` |
424
+ | `Date` | `DateTime` |
425
+ | `Karma` | `int` |
426
+ | `TotalKarma` | `long` |
427
+ | `KarmaSourceTitle` | `string` |
428
+ | `KarmaSourceDesc` | `string` |
429
+ | `WebLink` | `string` |
430
+ | `KarmaSource` | `EnumValue<KarmaSourceType>` |
431
+ | `KarmaEarntOrLost` | `EnumValue<KarmaEarntOrLost>` |
432
+ | `KarmaTypePositive` | `EnumValue<KarmaTypePositive>` |
433
+ | `KarmaTypeNegative` | `EnumValue<KarmaTypeNegative>` |
434
+ | `Provider` | `EnumValue<ProviderType>` |
435
+
436
+ **Example**
437
+
438
+ ```js
439
+ const { isError, message, result } = await oasis.karma.removeKarmaFromAvatar({
440
+ avatarId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
441
+ karmaType: { },
442
+ karmaSourceType: { },
443
+ avatar: { "ProviderWallets": { "<ProviderType>": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "WalletId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Name": "example string", "Description": /* <new string> */, "PrivateKey": "example string", "PublicKey": "example string", "WalletAddress": "example string", "WalletAddressSegwitP2SH": "example string", "SecretRecoveryPhrase": "example string", "Transactions": [{ "TransactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "FromWalletAddress": "example string", "ToWalletAddress": "example string", "Amount": 1.0, "Description": "example string", "CreatedDate": "2026-01-01T00:00:00Z", "TransactionType": { }, "TransactionCategory": { } }], "ProviderType": { }, "Balance": 1.0, "IsDefaultWallet": true }] }, "ProviderPrivateKey": { "<ProviderType>": "example string" }, "ProviderPublicKey": { "<ProviderType>": ["example string"] }, "ProviderUsername": { "<ProviderType>": "example string" }, "ProviderWalletAddress": { "<ProviderType>": ["example string"] }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Title": "example string", "FirstName": "example string", "LastName": "example string", "FullName": "example string", "FullNameWithTitle": "example string", "Username": "example string", "Email": "example string", "Password": "example string", "AvatarType": { "Score": 1.0 }, "AcceptTerms": true, "IsVerified": true, "JwtToken": "example string", "PasswordReset": "2026-01-01T00:00:00Z", "RefreshToken": "example string", "RefreshTokens": [{ "Id": 1, "Avatar": {}, "Token": "example string", "Expires": "2026-01-01T00:00:00Z", "Created": "2026-01-01T00:00:00Z", "CreatedByIp": "example string", "Revoked": "2026-01-01T00:00:00Z", "RevokedByIp": "example string", "ReplacedByToken": "example string" }], "ResetToken": "example string", "ResetTokenExpires": "2026-01-01T00:00:00Z", "VerificationToken": "example string", "Verified": "2026-01-01T00:00:00Z", "LastBeamedIn": "2026-01-01T00:00:00Z", "LastBeamedOut": "2026-01-01T00:00:00Z", "IsBeamedIn": true, "Image2D": "example string", "Karma": 1, "Level": 1, "XP": 1 },
444
+ karamSourceTitle: "example string",
445
+ karmaSourceDesc: "example string"
446
+ });
447
+ if (isError) throw new Error(message);
448
+ console.log(result);
449
+ ```
450
+
451
+ Example response:
452
+
453
+ ```json
454
+ {
455
+ "isError": false,
456
+ "message": "",
457
+ "result": { "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Date": "2026-01-01T00:00:00Z", "Karma": 1, "TotalKarma": 1, "KarmaSourceTitle": "example string", "KarmaSourceDesc": "example string", "WebLink": "example string", "KarmaSource": { "Score": 1.0 }, "KarmaEarntOrLost": { "Score": 1.0 }, "KarmaTypePositive": { "Score": 1.0 }, "KarmaTypeNegative": { "Score": 1.0 }, "Provider": { "Score": 1.0 } }
458
+ }
459
+ ```
460
+
461
+ ---
462
+
463
+ ### `setNegativeKarmaWeighting`
464
+
465
+ Set's the weighting for a given negative karma category.
466
+
467
+ **POST** `api/karma/set-negative-karma-weighting/{karmaType}/{weighting}`
468
+
469
+ Route parameters:
470
+
471
+ | Field | Type |
472
+ | --- | --- |
473
+ | `karmaType` | `KarmaTypeNegative` |
474
+ | `weighting` | `int` |
475
+
476
+ **Request**
477
+
478
+ No request body.
479
+
480
+ **Response**
481
+
482
+ Standard `OASISResult` envelope (see top of this page) with:
483
+
484
+ `result` type: `bool`
485
+
486
+ **Example**
487
+
488
+ ```js
489
+ const { isError, message, result } = await oasis.karma.setNegativeKarmaWeighting({
490
+ karmaType: '<karmaType>',
491
+ weighting: '<weighting>'
492
+ });
493
+ if (isError) throw new Error(message);
494
+ console.log(result);
495
+ ```
496
+
497
+ Example response:
498
+
499
+ ```json
500
+ {
501
+ "isError": false,
502
+ "message": "",
503
+ "result": true
504
+ }
505
+ ```
506
+
507
+ ---
508
+
509
+ ### `setPositiveKarmaWeighting`
510
+
511
+ Set's the weighting for a given positive karma category.
512
+
513
+ **POST** `api/karma/set-positive-karma-weighting/{karmaType}/{weighting}`
514
+
515
+ Route parameters:
516
+
517
+ | Field | Type |
518
+ | --- | --- |
519
+ | `karmaType` | `KarmaTypePositive` |
520
+ | `weighting` | `int` |
521
+
522
+ **Request**
523
+
524
+ No request body.
525
+
526
+ **Response**
527
+
528
+ Standard `OASISResult` envelope (see top of this page) with:
529
+
530
+ `result` type: `bool`
531
+
532
+ **Example**
533
+
534
+ ```js
535
+ const { isError, message, result } = await oasis.karma.setPositiveKarmaWeighting({
536
+ karmaType: '<karmaType>',
537
+ weighting: '<weighting>'
538
+ });
539
+ if (isError) throw new Error(message);
540
+ console.log(result);
541
+ ```
542
+
543
+ Example response:
544
+
545
+ ```json
546
+ {
547
+ "isError": false,
548
+ "message": "",
549
+ "result": true
550
+ }
551
+ ```
552
+
553
+ ---
554
+
555
+ ### `voteForNegativeKarmaWeighting`
556
+
557
+ Allows people to vote what they feel should be the weighting for a given negative karma category.
558
+
559
+ **POST** `api/karma/vote-for-negative-karma-weighting/{karmaType}/{weighting}`
560
+
561
+ Route parameters:
562
+
563
+ | Field | Type |
564
+ | --- | --- |
565
+ | `karmaType` | `KarmaTypeNegative` |
566
+ | `weighting` | `int` |
567
+
568
+ **Request**
569
+
570
+ No request body.
571
+
572
+ **Response**
573
+
574
+ Standard `OASISResult` envelope (see top of this page) with:
575
+
576
+ `result` type: `bool`
577
+
578
+ **Example**
579
+
580
+ ```js
581
+ const { isError, message, result } = await oasis.karma.voteForNegativeKarmaWeighting({
582
+ karmaType: '<karmaType>',
583
+ weighting: '<weighting>'
584
+ });
585
+ if (isError) throw new Error(message);
586
+ console.log(result);
587
+ ```
588
+
589
+ Example response:
590
+
591
+ ```json
592
+ {
593
+ "isError": false,
594
+ "message": "",
595
+ "result": true
596
+ }
597
+ ```
598
+
599
+ ---
600
+
601
+ ### `voteForPositiveKarmaWeighting`
602
+
603
+ Allows people to vote what they feel should be the weighting for a given positive karma category.
604
+
605
+ **POST** `api/karma/vote-for-positive-karma-weighting/{karmaType}/{weighting}`
606
+
607
+ Route parameters:
608
+
609
+ | Field | Type |
610
+ | --- | --- |
611
+ | `karmaType` | `KarmaTypePositive` |
612
+ | `weighting` | `int` |
613
+
614
+ **Request**
615
+
616
+ No request body.
617
+
618
+ **Response**
619
+
620
+ Standard `OASISResult` envelope (see top of this page) with:
621
+
622
+ `result` type: `bool`
623
+
624
+ **Example**
625
+
626
+ ```js
627
+ const { isError, message, result } = await oasis.karma.voteForPositiveKarmaWeighting({
628
+ karmaType: '<karmaType>',
629
+ weighting: '<weighting>'
630
+ });
631
+ if (isError) throw new Error(message);
632
+ console.log(result);
633
+ ```
634
+
635
+ Example response:
636
+
637
+ ```json
638
+ {
639
+ "isError": false,
640
+ "message": "",
641
+ "result": true
642
+ }
643
+ ```
644
+