@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,3303 @@
1
+ # Keys — `oasis.keys`
2
+
3
+ Source controller: [`KeysController.cs`](https://github.com/NextGenSoftwareUK/OASIS2/blob/main/ONODE/NextGenSoftware.OASIS.API.ONODE.WebAPI/Controllers/KeysController.cs)
4
+ Route prefix: `api/keys`
5
+ 59 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
+ ### `base58CheckDecode`
22
+
23
+ Decodes.
24
+
25
+ **POST** `api/keys/base58_check_decode/{data}`
26
+
27
+ Route parameters:
28
+
29
+ | Field | Type |
30
+ | --- | --- |
31
+ | `data` | `string` |
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: `byte[]`
42
+
43
+ **Example**
44
+
45
+ ```js
46
+ const { isError, message, result } = await oasis.keys.base58CheckDecode({
47
+ data: '<data>'
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": "<base64-bytes>"
60
+ }
61
+ ```
62
+
63
+ ---
64
+
65
+ ### `clearCache`
66
+
67
+ Clear's the KeyManager's internal cache of keys.
68
+
69
+ **POST** `api/keys/clear_cache`
70
+
71
+ **Request**
72
+
73
+ No request body.
74
+
75
+ **Response**
76
+
77
+ Standard `OASISResult` envelope (see top of this page) with:
78
+
79
+ `result` type: `bool`
80
+
81
+ **Example**
82
+
83
+ ```js
84
+ const { isError, message, result } = await oasis.keys.clearCache({});
85
+ if (isError) throw new Error(message);
86
+ console.log(result);
87
+ ```
88
+
89
+ Example response:
90
+
91
+ ```json
92
+ {
93
+ "isError": false,
94
+ "message": "",
95
+ "result": true
96
+ }
97
+ ```
98
+
99
+ ---
100
+
101
+ ### `createKey`
102
+
103
+ Creates a new key for the authenticated avatar
104
+
105
+ **POST** `api/keys/create`
106
+
107
+ **Request**
108
+
109
+ Body type: `CreateKeyRequest`
110
+
111
+ | Field | Type |
112
+ | --- | --- |
113
+ | `Name` | `string` |
114
+ | `Type` | `string` |
115
+
116
+ **Response**
117
+
118
+ Standard `OASISResult` envelope (see top of this page) with:
119
+
120
+ `result` type: `KeyInfo`
121
+
122
+ | Field | Type |
123
+ | --- | --- |
124
+ | `Id` | `MultiHash` |
125
+ | `Name` | `string` |
126
+
127
+ **Example**
128
+
129
+ ```js
130
+ const { isError, message, result } = await oasis.keys.createKey({
131
+ name: "example string",
132
+ type: "example string"
133
+ });
134
+ if (isError) throw new Error(message);
135
+ console.log(result);
136
+ ```
137
+
138
+ Example response:
139
+
140
+ ```json
141
+ {
142
+ "isError": false,
143
+ "message": "",
144
+ "result": { "Id": /* <MultiHash> */, "Name": "example string" }
145
+ }
146
+ ```
147
+
148
+ ---
149
+
150
+ ### `decodePrivateWif`
151
+
152
+ Decode's the private WIF.
153
+
154
+ **POST** `api/keys/decode_private_wif/{data}`
155
+
156
+ Route parameters:
157
+
158
+ | Field | Type |
159
+ | --- | --- |
160
+ | `data` | `string` |
161
+
162
+ **Request**
163
+
164
+ No request body.
165
+
166
+ **Response**
167
+
168
+ Standard `OASISResult` envelope (see top of this page) with:
169
+
170
+ `result` type: `byte[]`
171
+
172
+ **Example**
173
+
174
+ ```js
175
+ const { isError, message, result } = await oasis.keys.decodePrivateWif({
176
+ data: '<data>'
177
+ });
178
+ if (isError) throw new Error(message);
179
+ console.log(result);
180
+ ```
181
+
182
+ Example response:
183
+
184
+ ```json
185
+ {
186
+ "isError": false,
187
+ "message": "",
188
+ "result": "<base64-bytes>"
189
+ }
190
+ ```
191
+
192
+ ---
193
+
194
+ ### `deleteKey`
195
+
196
+ Deletes a key
197
+
198
+ **DELETE** `api/keys/{keyId}`
199
+
200
+ Route parameters:
201
+
202
+ | Field | Type |
203
+ | --- | --- |
204
+ | `keyId` | `Guid` |
205
+
206
+ **Request**
207
+
208
+ No request body.
209
+
210
+ **Response**
211
+
212
+ Standard `OASISResult` envelope (see top of this page) with:
213
+
214
+ `result` type: `bool`
215
+
216
+ **Example**
217
+
218
+ ```js
219
+ const { isError, message, result } = await oasis.keys.deleteKey({
220
+ keyId: '<keyId>'
221
+ });
222
+ if (isError) throw new Error(message);
223
+ console.log(result);
224
+ ```
225
+
226
+ Example response:
227
+
228
+ ```json
229
+ {
230
+ "isError": false,
231
+ "message": "",
232
+ "result": true
233
+ }
234
+ ```
235
+
236
+ ---
237
+
238
+ ### `encodeSignature`
239
+
240
+ Encode's the signature.
241
+
242
+ **POST** `api/keys/encode_signature/{source}`
243
+
244
+ Route parameters:
245
+
246
+ | Field | Type |
247
+ | --- | --- |
248
+ | `source` | `byte[]` |
249
+
250
+ **Request**
251
+
252
+ No request body.
253
+
254
+ **Response**
255
+
256
+ Standard `OASISResult` envelope (see top of this page) with:
257
+
258
+ `result` type: `string`
259
+
260
+ **Example**
261
+
262
+ ```js
263
+ const { isError, message, result } = await oasis.keys.encodeSignature({
264
+ source: '<source>'
265
+ });
266
+ if (isError) throw new Error(message);
267
+ console.log(result);
268
+ ```
269
+
270
+ Example response:
271
+
272
+ ```json
273
+ {
274
+ "isError": false,
275
+ "message": "",
276
+ "result": "example string"
277
+ }
278
+ ```
279
+
280
+ ---
281
+
282
+ ### `generateKeyPairAndLinkProviderKeysToAvatarByAvatarEmail`
283
+
284
+ Generate's a new unique private/public keypair &amp; then links to the given avatar for the given provider type.
285
+
286
+ **POST** `api/keys/generate_keypair_and_link_provider_keys_to_avatar_by_email`
287
+
288
+ **Request**
289
+
290
+ Body type: `LinkProviderKeyToAvatarParams`
291
+
292
+ | Field | Type |
293
+ | --- | --- |
294
+ | `WalletId` | `Guid` |
295
+ | `ProviderKey` | `string` |
296
+ | `WalletAddress` | `string` |
297
+ | `WalletAddressSegwitP2SH` | `string` |
298
+ | `ShowPublicKey` | `bool` |
299
+ | `ShowPrivateKey` | `bool` |
300
+ | `ShowSecretRecoveryWords` | `bool` |
301
+
302
+ **Response**
303
+
304
+ Standard `OASISResult` envelope (see top of this page) with:
305
+
306
+ `result` type: `IProviderWallet`
307
+
308
+ | Field | Type |
309
+ | --- | --- |
310
+ | `AvatarId` | `Guid` |
311
+ | `WalletId` | `Guid` |
312
+ | `Name` | `string` |
313
+ | `Description` | `new string` |
314
+ | `PrivateKey` | `string` |
315
+ | `PublicKey` | `string` |
316
+ | `WalletAddress` | `string` |
317
+ | `WalletAddressSegwitP2SH` | `string` |
318
+ | `SecretRecoveryPhrase` | `string` |
319
+ | `Transactions` | `List<IWalletTransaction>` |
320
+ | `ProviderType` | `ProviderType` |
321
+ | `Balance` | `double` |
322
+ | `IsDefaultWallet` | `bool` |
323
+
324
+ **Example**
325
+
326
+ ```js
327
+ const { isError, message, result } = await oasis.keys.generateKeyPairAndLinkProviderKeysToAvatarByAvatarEmail({
328
+ walletId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
329
+ providerKey: "example string",
330
+ walletAddress: "example string",
331
+ walletAddressSegwitP2SH: "example string",
332
+ showPublicKey: true,
333
+ showPrivateKey: true,
334
+ showSecretRecoveryWords: true
335
+ });
336
+ if (isError) throw new Error(message);
337
+ console.log(result);
338
+ ```
339
+
340
+ Example response:
341
+
342
+ ```json
343
+ {
344
+ "isError": false,
345
+ "message": "",
346
+ "result": { "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 }
347
+ }
348
+ ```
349
+
350
+ ---
351
+
352
+ ### `generateKeyPairAndLinkProviderKeysToAvatarByAvatarId`
353
+
354
+ Generate's a new unique private/public keypair &amp; then links to the given avatar for the given provider type.
355
+
356
+ **POST** `api/keys/generate_keypair_and_link_provider_keys_to_avatar_by_id`
357
+
358
+ **Request**
359
+
360
+ Body type: `LinkProviderKeyToAvatarParams`
361
+
362
+ | Field | Type |
363
+ | --- | --- |
364
+ | `WalletId` | `Guid` |
365
+ | `ProviderKey` | `string` |
366
+ | `WalletAddress` | `string` |
367
+ | `WalletAddressSegwitP2SH` | `string` |
368
+ | `ShowPublicKey` | `bool` |
369
+ | `ShowPrivateKey` | `bool` |
370
+ | `ShowSecretRecoveryWords` | `bool` |
371
+
372
+ **Response**
373
+
374
+ Standard `OASISResult` envelope (see top of this page) with:
375
+
376
+ `result` type: `IProviderWallet`
377
+
378
+ | Field | Type |
379
+ | --- | --- |
380
+ | `AvatarId` | `Guid` |
381
+ | `WalletId` | `Guid` |
382
+ | `Name` | `string` |
383
+ | `Description` | `new string` |
384
+ | `PrivateKey` | `string` |
385
+ | `PublicKey` | `string` |
386
+ | `WalletAddress` | `string` |
387
+ | `WalletAddressSegwitP2SH` | `string` |
388
+ | `SecretRecoveryPhrase` | `string` |
389
+ | `Transactions` | `List<IWalletTransaction>` |
390
+ | `ProviderType` | `ProviderType` |
391
+ | `Balance` | `double` |
392
+ | `IsDefaultWallet` | `bool` |
393
+
394
+ **Example**
395
+
396
+ ```js
397
+ const { isError, message, result } = await oasis.keys.generateKeyPairAndLinkProviderKeysToAvatarByAvatarId({
398
+ walletId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
399
+ providerKey: "example string",
400
+ walletAddress: "example string",
401
+ walletAddressSegwitP2SH: "example string",
402
+ showPublicKey: true,
403
+ showPrivateKey: true,
404
+ showSecretRecoveryWords: true
405
+ });
406
+ if (isError) throw new Error(message);
407
+ console.log(result);
408
+ ```
409
+
410
+ Example response:
411
+
412
+ ```json
413
+ {
414
+ "isError": false,
415
+ "message": "",
416
+ "result": { "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 }
417
+ }
418
+ ```
419
+
420
+ ---
421
+
422
+ ### `generateKeyPairAndLinkProviderKeysToAvatarByAvatarUsername`
423
+
424
+ Generate's a new unique private/public keypair &amp; then links to the given avatar for the given provider type.
425
+
426
+ **POST** `api/keys/generate_keypair_and_link_provider_keys_to_avatar_by_username`
427
+
428
+ **Request**
429
+
430
+ Body type: `LinkProviderKeyToAvatarParams`
431
+
432
+ | Field | Type |
433
+ | --- | --- |
434
+ | `WalletId` | `Guid` |
435
+ | `ProviderKey` | `string` |
436
+ | `WalletAddress` | `string` |
437
+ | `WalletAddressSegwitP2SH` | `string` |
438
+ | `ShowPublicKey` | `bool` |
439
+ | `ShowPrivateKey` | `bool` |
440
+ | `ShowSecretRecoveryWords` | `bool` |
441
+
442
+ **Response**
443
+
444
+ Standard `OASISResult` envelope (see top of this page) with:
445
+
446
+ `result` type: `IProviderWallet`
447
+
448
+ | Field | Type |
449
+ | --- | --- |
450
+ | `AvatarId` | `Guid` |
451
+ | `WalletId` | `Guid` |
452
+ | `Name` | `string` |
453
+ | `Description` | `new string` |
454
+ | `PrivateKey` | `string` |
455
+ | `PublicKey` | `string` |
456
+ | `WalletAddress` | `string` |
457
+ | `WalletAddressSegwitP2SH` | `string` |
458
+ | `SecretRecoveryPhrase` | `string` |
459
+ | `Transactions` | `List<IWalletTransaction>` |
460
+ | `ProviderType` | `ProviderType` |
461
+ | `Balance` | `double` |
462
+ | `IsDefaultWallet` | `bool` |
463
+
464
+ **Example**
465
+
466
+ ```js
467
+ const { isError, message, result } = await oasis.keys.generateKeyPairAndLinkProviderKeysToAvatarByAvatarUsername({
468
+ walletId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
469
+ providerKey: "example string",
470
+ walletAddress: "example string",
471
+ walletAddressSegwitP2SH: "example string",
472
+ showPublicKey: true,
473
+ showPrivateKey: true,
474
+ showSecretRecoveryWords: true
475
+ });
476
+ if (isError) throw new Error(message);
477
+ console.log(result);
478
+ ```
479
+
480
+ Example response:
481
+
482
+ ```json
483
+ {
484
+ "isError": false,
485
+ "message": "",
486
+ "result": { "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 }
487
+ }
488
+ ```
489
+
490
+ ---
491
+
492
+ ### `generateKeyPairForProvider`
493
+
494
+ Generate's a new unique private/public keypair for a given provider type.
495
+
496
+ **POST** `api/keys/generate_keypair_for_provider/{providerType}`
497
+
498
+ Route parameters:
499
+
500
+ | Field | Type |
501
+ | --- | --- |
502
+ | `providerType` | `ProviderType` |
503
+
504
+ **Request**
505
+
506
+ No request body.
507
+
508
+ **Response**
509
+
510
+ Standard `OASISResult` envelope (see top of this page) with:
511
+
512
+ `result` type: `IKeyPairAndWallet` _(type definition not found in the OASIS2 source - field list unavailable)_
513
+
514
+ **Example**
515
+
516
+ ```js
517
+ const { isError, message, result } = await oasis.keys.generateKeyPairForProvider({
518
+ providerType: '<providerType>'
519
+ });
520
+ if (isError) throw new Error(message);
521
+ console.log(result);
522
+ ```
523
+
524
+ Example response:
525
+
526
+ ```json
527
+ {
528
+ "isError": false,
529
+ "message": "",
530
+ "result": /* <IKeyPairAndWallet> */
531
+ }
532
+ ```
533
+
534
+ ---
535
+
536
+ ### `generateKeyPairWithWalletAddressAndLinkProviderKeysToAvatarByEmail`
537
+
538
+ Generate's a new unique private/public keypair with wallet address &amp; then links to the given avatar for the given provider type by email.
539
+
540
+ **POST** `api/keys/generate_keypair_with_wallet_address_and_link_provider_keys_to_avatar_by_email`
541
+
542
+ **Request**
543
+
544
+ Body type: `LinkProviderKeyToAvatarParams`
545
+
546
+ | Field | Type |
547
+ | --- | --- |
548
+ | `WalletId` | `Guid` |
549
+ | `ProviderKey` | `string` |
550
+ | `WalletAddress` | `string` |
551
+ | `WalletAddressSegwitP2SH` | `string` |
552
+ | `ShowPublicKey` | `bool` |
553
+ | `ShowPrivateKey` | `bool` |
554
+ | `ShowSecretRecoveryWords` | `bool` |
555
+
556
+ **Response**
557
+
558
+ Standard `OASISResult` envelope (see top of this page) with:
559
+
560
+ `result` type: `IProviderWallet`
561
+
562
+ | Field | Type |
563
+ | --- | --- |
564
+ | `AvatarId` | `Guid` |
565
+ | `WalletId` | `Guid` |
566
+ | `Name` | `string` |
567
+ | `Description` | `new string` |
568
+ | `PrivateKey` | `string` |
569
+ | `PublicKey` | `string` |
570
+ | `WalletAddress` | `string` |
571
+ | `WalletAddressSegwitP2SH` | `string` |
572
+ | `SecretRecoveryPhrase` | `string` |
573
+ | `Transactions` | `List<IWalletTransaction>` |
574
+ | `ProviderType` | `ProviderType` |
575
+ | `Balance` | `double` |
576
+ | `IsDefaultWallet` | `bool` |
577
+
578
+ **Example**
579
+
580
+ ```js
581
+ const { isError, message, result } = await oasis.keys.generateKeyPairWithWalletAddressAndLinkProviderKeysToAvatarByEmail({
582
+ walletId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
583
+ providerKey: "example string",
584
+ walletAddress: "example string",
585
+ walletAddressSegwitP2SH: "example string",
586
+ showPublicKey: true,
587
+ showPrivateKey: true,
588
+ showSecretRecoveryWords: true
589
+ });
590
+ if (isError) throw new Error(message);
591
+ console.log(result);
592
+ ```
593
+
594
+ Example response:
595
+
596
+ ```json
597
+ {
598
+ "isError": false,
599
+ "message": "",
600
+ "result": { "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 }
601
+ }
602
+ ```
603
+
604
+ ---
605
+
606
+ ### `generateKeyPairWithWalletAddressAndLinkProviderKeysToAvatarById`
607
+
608
+ Generate's a new unique private/public keypair with wallet address &amp; then links to the given avatar for the given provider type by avatar ID.
609
+
610
+ **POST** `api/keys/generate_keypair_with_wallet_address_and_link_provider_keys_to_avatar_by_id`
611
+
612
+ **Request**
613
+
614
+ Body type: `LinkProviderKeyToAvatarParams`
615
+
616
+ | Field | Type |
617
+ | --- | --- |
618
+ | `WalletId` | `Guid` |
619
+ | `ProviderKey` | `string` |
620
+ | `WalletAddress` | `string` |
621
+ | `WalletAddressSegwitP2SH` | `string` |
622
+ | `ShowPublicKey` | `bool` |
623
+ | `ShowPrivateKey` | `bool` |
624
+ | `ShowSecretRecoveryWords` | `bool` |
625
+
626
+ **Response**
627
+
628
+ Standard `OASISResult` envelope (see top of this page) with:
629
+
630
+ `result` type: `IProviderWallet`
631
+
632
+ | Field | Type |
633
+ | --- | --- |
634
+ | `AvatarId` | `Guid` |
635
+ | `WalletId` | `Guid` |
636
+ | `Name` | `string` |
637
+ | `Description` | `new string` |
638
+ | `PrivateKey` | `string` |
639
+ | `PublicKey` | `string` |
640
+ | `WalletAddress` | `string` |
641
+ | `WalletAddressSegwitP2SH` | `string` |
642
+ | `SecretRecoveryPhrase` | `string` |
643
+ | `Transactions` | `List<IWalletTransaction>` |
644
+ | `ProviderType` | `ProviderType` |
645
+ | `Balance` | `double` |
646
+ | `IsDefaultWallet` | `bool` |
647
+
648
+ **Example**
649
+
650
+ ```js
651
+ const { isError, message, result } = await oasis.keys.generateKeyPairWithWalletAddressAndLinkProviderKeysToAvatarById({
652
+ walletId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
653
+ providerKey: "example string",
654
+ walletAddress: "example string",
655
+ walletAddressSegwitP2SH: "example string",
656
+ showPublicKey: true,
657
+ showPrivateKey: true,
658
+ showSecretRecoveryWords: true
659
+ });
660
+ if (isError) throw new Error(message);
661
+ console.log(result);
662
+ ```
663
+
664
+ Example response:
665
+
666
+ ```json
667
+ {
668
+ "isError": false,
669
+ "message": "",
670
+ "result": { "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 }
671
+ }
672
+ ```
673
+
674
+ ---
675
+
676
+ ### `generateKeyPairWithWalletAddressAndLinkProviderKeysToAvatarByUsername`
677
+
678
+ Generate's a new unique private/public keypair with wallet address &amp; then links to the given avatar for the given provider type by username.
679
+
680
+ **POST** `api/keys/generate_keypair_with_wallet_address_and_link_provider_keys_to_avatar_by_username`
681
+
682
+ **Request**
683
+
684
+ Body type: `LinkProviderKeyToAvatarParams`
685
+
686
+ | Field | Type |
687
+ | --- | --- |
688
+ | `WalletId` | `Guid` |
689
+ | `ProviderKey` | `string` |
690
+ | `WalletAddress` | `string` |
691
+ | `WalletAddressSegwitP2SH` | `string` |
692
+ | `ShowPublicKey` | `bool` |
693
+ | `ShowPrivateKey` | `bool` |
694
+ | `ShowSecretRecoveryWords` | `bool` |
695
+
696
+ **Response**
697
+
698
+ Standard `OASISResult` envelope (see top of this page) with:
699
+
700
+ `result` type: `IProviderWallet`
701
+
702
+ | Field | Type |
703
+ | --- | --- |
704
+ | `AvatarId` | `Guid` |
705
+ | `WalletId` | `Guid` |
706
+ | `Name` | `string` |
707
+ | `Description` | `new string` |
708
+ | `PrivateKey` | `string` |
709
+ | `PublicKey` | `string` |
710
+ | `WalletAddress` | `string` |
711
+ | `WalletAddressSegwitP2SH` | `string` |
712
+ | `SecretRecoveryPhrase` | `string` |
713
+ | `Transactions` | `List<IWalletTransaction>` |
714
+ | `ProviderType` | `ProviderType` |
715
+ | `Balance` | `double` |
716
+ | `IsDefaultWallet` | `bool` |
717
+
718
+ **Example**
719
+
720
+ ```js
721
+ const { isError, message, result } = await oasis.keys.generateKeyPairWithWalletAddressAndLinkProviderKeysToAvatarByUsername({
722
+ walletId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
723
+ providerKey: "example string",
724
+ walletAddress: "example string",
725
+ walletAddressSegwitP2SH: "example string",
726
+ showPublicKey: true,
727
+ showPrivateKey: true,
728
+ showSecretRecoveryWords: true
729
+ });
730
+ if (isError) throw new Error(message);
731
+ console.log(result);
732
+ ```
733
+
734
+ Example response:
735
+
736
+ ```json
737
+ {
738
+ "isError": false,
739
+ "message": "",
740
+ "result": { "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 }
741
+ }
742
+ ```
743
+
744
+ ---
745
+
746
+ ### `generateKeyPairWithWalletAddressForProvider`
747
+
748
+ Generate's a new unique private/public keypair with wallet address for a given provider type.
749
+
750
+ **POST** `api/keys/generate_keypair_with_wallet_address_for_provider/{providerType}`
751
+
752
+ Route parameters:
753
+
754
+ | Field | Type |
755
+ | --- | --- |
756
+ | `providerType` | `ProviderType` |
757
+
758
+ **Request**
759
+
760
+ No request body.
761
+
762
+ **Response**
763
+
764
+ Standard `OASISResult` envelope (see top of this page) with:
765
+
766
+ `result` type: `IKeyPairAndWallet` _(type definition not found in the OASIS2 source - field list unavailable)_
767
+
768
+ **Example**
769
+
770
+ ```js
771
+ const { isError, message, result } = await oasis.keys.generateKeyPairWithWalletAddressForProvider({
772
+ providerType: '<providerType>'
773
+ });
774
+ if (isError) throw new Error(message);
775
+ console.log(result);
776
+ ```
777
+
778
+ Example response:
779
+
780
+ ```json
781
+ {
782
+ "isError": false,
783
+ "message": "",
784
+ "result": /* <IKeyPairAndWallet> */
785
+ }
786
+ ```
787
+
788
+ ---
789
+
790
+ ### `getAllKeysForAvatar`
791
+
792
+ Gets all keys for the authenticated avatar
793
+
794
+ **GET** `api/keys/all`
795
+
796
+ **Request**
797
+
798
+ No request body.
799
+
800
+ **Response**
801
+
802
+ Standard `OASISResult` envelope (see top of this page) with:
803
+
804
+ `result` type: `KeyInfo` (array)
805
+
806
+ | Field | Type |
807
+ | --- | --- |
808
+ | `Id` | `MultiHash` |
809
+ | `Name` | `string` |
810
+
811
+ **Example**
812
+
813
+ ```js
814
+ const { isError, message, result } = await oasis.keys.getAllKeysForAvatar({});
815
+ if (isError) throw new Error(message);
816
+ console.log(result);
817
+ ```
818
+
819
+ Example response:
820
+
821
+ ```json
822
+ {
823
+ "isError": false,
824
+ "message": "",
825
+ "result": [{ "Id": /* <MultiHash> */, "Name": "example string" }]
826
+ }
827
+ ```
828
+
829
+ ---
830
+
831
+ ### `getAllProviderPrivateKeysForAvatarById`
832
+
833
+ Get's a given avatar's private keys for the given avatar with their id.
834
+
835
+ **GET** `api/keys/get_all_provider_private_keys_for_avatar_by_id/{id}`
836
+
837
+ Route parameters:
838
+
839
+ | Field | Type |
840
+ | --- | --- |
841
+ | `id` | `Guid` |
842
+
843
+ **Request**
844
+
845
+ No request body.
846
+
847
+ **Response**
848
+
849
+ Standard `OASISResult` envelope (see top of this page) with:
850
+
851
+ `result` type: `Dictionary<ProviderType, List<string>>` - a key/value map keyed by `ProviderType`, each value a `List<string>`.
852
+
853
+ **Example**
854
+
855
+ ```js
856
+ const { isError, message, result } = await oasis.keys.getAllProviderPrivateKeysForAvatarById({
857
+ id: '<id>'
858
+ });
859
+ if (isError) throw new Error(message);
860
+ console.log(result);
861
+ ```
862
+
863
+ Example response:
864
+
865
+ ```json
866
+ {
867
+ "isError": false,
868
+ "message": "",
869
+ "result": { "<ProviderType>": ["example string"] }
870
+ }
871
+ ```
872
+
873
+ ---
874
+
875
+ ### `getAllProviderPrivateKeysForAvatarByUsername`
876
+
877
+ Get's a given avatar's private keys for the given avatar with their username.
878
+
879
+ **GET** `api/keys/get_all_provider_private_keys_for_avatar_by_username/{username}`
880
+
881
+ Route parameters:
882
+
883
+ | Field | Type |
884
+ | --- | --- |
885
+ | `username` | `string` |
886
+
887
+ **Request**
888
+
889
+ No request body.
890
+
891
+ **Response**
892
+
893
+ Standard `OASISResult` envelope (see top of this page) with:
894
+
895
+ `result` type: `Dictionary<ProviderType, List<string>>` - a key/value map keyed by `ProviderType`, each value a `List<string>`.
896
+
897
+ **Example**
898
+
899
+ ```js
900
+ const { isError, message, result } = await oasis.keys.getAllProviderPrivateKeysForAvatarByUsername({
901
+ username: '<username>'
902
+ });
903
+ if (isError) throw new Error(message);
904
+ console.log(result);
905
+ ```
906
+
907
+ Example response:
908
+
909
+ ```json
910
+ {
911
+ "isError": false,
912
+ "message": "",
913
+ "result": { "<ProviderType>": ["example string"] }
914
+ }
915
+ ```
916
+
917
+ ---
918
+
919
+ ### `getAllProviderPublicKeysForAvatarByEmail`
920
+
921
+ Get's a given avatar's public keys for the given avatar with their email.
922
+
923
+ **GET** `api/keys/get_all_provider_public_keys_for_avatar_by_email/{email}`
924
+
925
+ Route parameters:
926
+
927
+ | Field | Type |
928
+ | --- | --- |
929
+ | `email` | `string` |
930
+
931
+ **Request**
932
+
933
+ No request body.
934
+
935
+ **Response**
936
+
937
+ Standard `OASISResult` envelope (see top of this page) with:
938
+
939
+ `result` type: `Dictionary<ProviderType, List<string>>` - a key/value map keyed by `ProviderType`, each value a `List<string>`.
940
+
941
+ **Example**
942
+
943
+ ```js
944
+ const { isError, message, result } = await oasis.keys.getAllProviderPublicKeysForAvatarByEmail({
945
+ email: '<email>'
946
+ });
947
+ if (isError) throw new Error(message);
948
+ console.log(result);
949
+ ```
950
+
951
+ Example response:
952
+
953
+ ```json
954
+ {
955
+ "isError": false,
956
+ "message": "",
957
+ "result": { "<ProviderType>": ["example string"] }
958
+ }
959
+ ```
960
+
961
+ ---
962
+
963
+ ### `getAllProviderPublicKeysForAvatarById`
964
+
965
+ Get's a given avatar's public keys for the given avatar with their id.
966
+
967
+ **GET** `api/keys/get_all_provider_public_keys_for_avatar_by_id/{id}`
968
+
969
+ Route parameters:
970
+
971
+ | Field | Type |
972
+ | --- | --- |
973
+ | `id` | `Guid` |
974
+
975
+ **Request**
976
+
977
+ No request body.
978
+
979
+ **Response**
980
+
981
+ Standard `OASISResult` envelope (see top of this page) with:
982
+
983
+ `result` type: `Dictionary<ProviderType, List<string>>` - a key/value map keyed by `ProviderType`, each value a `List<string>`.
984
+
985
+ **Example**
986
+
987
+ ```js
988
+ const { isError, message, result } = await oasis.keys.getAllProviderPublicKeysForAvatarById({
989
+ id: '<id>'
990
+ });
991
+ if (isError) throw new Error(message);
992
+ console.log(result);
993
+ ```
994
+
995
+ Example response:
996
+
997
+ ```json
998
+ {
999
+ "isError": false,
1000
+ "message": "",
1001
+ "result": { "<ProviderType>": ["example string"] }
1002
+ }
1003
+ ```
1004
+
1005
+ ---
1006
+
1007
+ ### `getAllProviderPublicKeysForAvatarByUsername`
1008
+
1009
+ Get's a given avatar's public keys for the given avatar with their username.
1010
+
1011
+ **GET** `api/keys/get_all_provider_public_keys_for_avatar_by_username/{username}`
1012
+
1013
+ Route parameters:
1014
+
1015
+ | Field | Type |
1016
+ | --- | --- |
1017
+ | `username` | `string` |
1018
+
1019
+ **Request**
1020
+
1021
+ No request body.
1022
+
1023
+ **Response**
1024
+
1025
+ Standard `OASISResult` envelope (see top of this page) with:
1026
+
1027
+ `result` type: `Dictionary<ProviderType, List<string>>` - a key/value map keyed by `ProviderType`, each value a `List<string>`.
1028
+
1029
+ **Example**
1030
+
1031
+ ```js
1032
+ const { isError, message, result } = await oasis.keys.getAllProviderPublicKeysForAvatarByUsername({
1033
+ username: '<username>'
1034
+ });
1035
+ if (isError) throw new Error(message);
1036
+ console.log(result);
1037
+ ```
1038
+
1039
+ Example response:
1040
+
1041
+ ```json
1042
+ {
1043
+ "isError": false,
1044
+ "message": "",
1045
+ "result": { "<ProviderType>": ["example string"] }
1046
+ }
1047
+ ```
1048
+
1049
+ ---
1050
+
1051
+ ### `getAllProviderUniqueStorageKeysForAvatarByEmail`
1052
+
1053
+ Get's a given avatar's unique storage keys for the given avatar with their email.
1054
+
1055
+ **GET** `api/keys/get_all_provider_unique_storage_keys_for_avatar_by_email/{email}`
1056
+
1057
+ Route parameters:
1058
+
1059
+ | Field | Type |
1060
+ | --- | --- |
1061
+ | `email` | `string` |
1062
+
1063
+ **Request**
1064
+
1065
+ No request body.
1066
+
1067
+ **Response**
1068
+
1069
+ Standard `OASISResult` envelope (see top of this page) with:
1070
+
1071
+ `result` type: `Dictionary<ProviderType, string>` - a key/value map keyed by `ProviderType`, each value a `string`.
1072
+
1073
+ **Example**
1074
+
1075
+ ```js
1076
+ const { isError, message, result } = await oasis.keys.getAllProviderUniqueStorageKeysForAvatarByEmail({
1077
+ email: '<email>'
1078
+ });
1079
+ if (isError) throw new Error(message);
1080
+ console.log(result);
1081
+ ```
1082
+
1083
+ Example response:
1084
+
1085
+ ```json
1086
+ {
1087
+ "isError": false,
1088
+ "message": "",
1089
+ "result": { "<ProviderType>": "example string" }
1090
+ }
1091
+ ```
1092
+
1093
+ ---
1094
+
1095
+ ### `getAllProviderUniqueStorageKeysForAvatarById`
1096
+
1097
+ Get's a given avatar's unique storage keys for the given avatar with their id.
1098
+
1099
+ **GET** `api/keys/get_all_provider_unique_storage_keys_for_avatar_by_id/{id}`
1100
+
1101
+ Route parameters:
1102
+
1103
+ | Field | Type |
1104
+ | --- | --- |
1105
+ | `id` | `Guid` |
1106
+
1107
+ **Request**
1108
+
1109
+ No request body.
1110
+
1111
+ **Response**
1112
+
1113
+ Standard `OASISResult` envelope (see top of this page) with:
1114
+
1115
+ `result` type: `Dictionary<ProviderType, string>` - a key/value map keyed by `ProviderType`, each value a `string`.
1116
+
1117
+ **Example**
1118
+
1119
+ ```js
1120
+ const { isError, message, result } = await oasis.keys.getAllProviderUniqueStorageKeysForAvatarById({
1121
+ id: '<id>'
1122
+ });
1123
+ if (isError) throw new Error(message);
1124
+ console.log(result);
1125
+ ```
1126
+
1127
+ Example response:
1128
+
1129
+ ```json
1130
+ {
1131
+ "isError": false,
1132
+ "message": "",
1133
+ "result": { "<ProviderType>": "example string" }
1134
+ }
1135
+ ```
1136
+
1137
+ ---
1138
+
1139
+ ### `getAllProviderUniqueStorageKeysForAvatarByUsername`
1140
+
1141
+ Get's a given avatar's unique storage keys for the given avatar with their username.
1142
+
1143
+ **GET** `api/keys/get_all_provider_unique_storage_keys_for_avatar_by_username/{username}`
1144
+
1145
+ Route parameters:
1146
+
1147
+ | Field | Type |
1148
+ | --- | --- |
1149
+ | `username` | `string` |
1150
+
1151
+ **Request**
1152
+
1153
+ No request body.
1154
+
1155
+ **Response**
1156
+
1157
+ Standard `OASISResult` envelope (see top of this page) with:
1158
+
1159
+ `result` type: `Dictionary<ProviderType, string>` - a key/value map keyed by `ProviderType`, each value a `string`.
1160
+
1161
+ **Example**
1162
+
1163
+ ```js
1164
+ const { isError, message, result } = await oasis.keys.getAllProviderUniqueStorageKeysForAvatarByUsername({
1165
+ username: '<username>'
1166
+ });
1167
+ if (isError) throw new Error(message);
1168
+ console.log(result);
1169
+ ```
1170
+
1171
+ Example response:
1172
+
1173
+ ```json
1174
+ {
1175
+ "isError": false,
1176
+ "message": "",
1177
+ "result": { "<ProviderType>": "example string" }
1178
+ }
1179
+ ```
1180
+
1181
+ ---
1182
+
1183
+ ### `getAvatarEmailForProviderPublicKey`
1184
+
1185
+ Get's the avatar email for a given public key.
1186
+
1187
+ **GET** `api/keys/get_avatar_email_for_provider_public_key/{providerKey}`
1188
+
1189
+ Route parameters:
1190
+
1191
+ | Field | Type |
1192
+ | --- | --- |
1193
+ | `providerKey` | `string` |
1194
+
1195
+ **Request**
1196
+
1197
+ No request body.
1198
+
1199
+ **Response**
1200
+
1201
+ Standard `OASISResult` envelope (see top of this page) with:
1202
+
1203
+ `result` type: `string`
1204
+
1205
+ **Example**
1206
+
1207
+ ```js
1208
+ const { isError, message, result } = await oasis.keys.getAvatarEmailForProviderPublicKey({
1209
+ providerKey: '<providerKey>'
1210
+ });
1211
+ if (isError) throw new Error(message);
1212
+ console.log(result);
1213
+ ```
1214
+
1215
+ Example response:
1216
+
1217
+ ```json
1218
+ {
1219
+ "isError": false,
1220
+ "message": "",
1221
+ "result": "example string"
1222
+ }
1223
+ ```
1224
+
1225
+ ---
1226
+
1227
+ ### `getAvatarEmailForProviderUniqueStorageKey`
1228
+
1229
+ Get's the avatar email for a given unique storage key.
1230
+
1231
+ **GET** `api/keys/get_avatar_email_for_provider_unique_storage_key/{providerKey}`
1232
+
1233
+ Route parameters:
1234
+
1235
+ | Field | Type |
1236
+ | --- | --- |
1237
+ | `providerKey` | `string` |
1238
+
1239
+ **Request**
1240
+
1241
+ No request body.
1242
+
1243
+ **Response**
1244
+
1245
+ Standard `OASISResult` envelope (see top of this page) with:
1246
+
1247
+ `result` type: `string`
1248
+
1249
+ **Example**
1250
+
1251
+ ```js
1252
+ const { isError, message, result } = await oasis.keys.getAvatarEmailForProviderUniqueStorageKey({
1253
+ providerKey: '<providerKey>'
1254
+ });
1255
+ if (isError) throw new Error(message);
1256
+ console.log(result);
1257
+ ```
1258
+
1259
+ Example response:
1260
+
1261
+ ```json
1262
+ {
1263
+ "isError": false,
1264
+ "message": "",
1265
+ "result": "example string"
1266
+ }
1267
+ ```
1268
+
1269
+ ---
1270
+
1271
+ ### `getAvatarForProviderPrivateKey`
1272
+
1273
+ Get's the avatar for a given private key.
1274
+
1275
+ **GET** `api/keys/get_avatar_for_provider_private_key/{providerKey}`
1276
+
1277
+ Route parameters:
1278
+
1279
+ | Field | Type |
1280
+ | --- | --- |
1281
+ | `providerKey` | `string` |
1282
+
1283
+ **Request**
1284
+
1285
+ No request body.
1286
+
1287
+ **Response**
1288
+
1289
+ Standard `OASISResult` envelope (see top of this page) with:
1290
+
1291
+ `result` type: `IAvatar`
1292
+
1293
+ | Field | Type |
1294
+ | --- | --- |
1295
+ | `ProviderWallets` | `Dictionary<ProviderType, List<IProviderWallet>>` |
1296
+ | `ProviderPrivateKey` | `Dictionary<ProviderType, string>` |
1297
+ | `ProviderPublicKey` | `Dictionary<ProviderType, List<string>>` |
1298
+ | `ProviderUsername` | `Dictionary<ProviderType, string>` |
1299
+ | `ProviderWalletAddress` | `Dictionary<ProviderType, List<string>>` |
1300
+ | `AvatarId` | `Guid` |
1301
+ | `Title` | `string` |
1302
+ | `FirstName` | `string` |
1303
+ | `LastName` | `string` |
1304
+ | `FullName` | `string` |
1305
+ | `FullNameWithTitle` | `string` |
1306
+ | `Username` | `string` |
1307
+ | `Email` | `string` |
1308
+ | `Password` | `string` |
1309
+ | `AvatarType` | `EnumValue<AvatarType>` |
1310
+ | `AcceptTerms` | `bool` |
1311
+ | `IsVerified` | `bool` |
1312
+ | `JwtToken` | `string` |
1313
+ | `PasswordReset` | `DateTime?` |
1314
+ | `RefreshToken` | `string` |
1315
+ | `RefreshTokens` | `List<RefreshToken>` |
1316
+ | `ResetToken` | `string` |
1317
+ | `ResetTokenExpires` | `DateTime?` |
1318
+ | `VerificationToken` | `string` |
1319
+ | `Verified` | `DateTime?` |
1320
+ | `LastBeamedIn` | `DateTime?` |
1321
+ | `LastBeamedOut` | `DateTime?` |
1322
+ | `IsBeamedIn` | `bool` |
1323
+ | `Image2D` | `string` |
1324
+ | `Karma` | `int` |
1325
+ | `Level` | `int` |
1326
+ | `XP` | `int` |
1327
+
1328
+ **Example**
1329
+
1330
+ ```js
1331
+ const { isError, message, result } = await oasis.keys.getAvatarForProviderPrivateKey({
1332
+ providerKey: '<providerKey>'
1333
+ });
1334
+ if (isError) throw new Error(message);
1335
+ console.log(result);
1336
+ ```
1337
+
1338
+ Example response:
1339
+
1340
+ ```json
1341
+ {
1342
+ "isError": false,
1343
+ "message": "",
1344
+ "result": { "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 }
1345
+ }
1346
+ ```
1347
+
1348
+ ---
1349
+
1350
+ ### `getAvatarForProviderPublicKey`
1351
+
1352
+ Get's the avatar for a given public key.
1353
+
1354
+ **GET** `api/keys/get_avatar_for_provider_public_key/{providerKey}`
1355
+
1356
+ Route parameters:
1357
+
1358
+ | Field | Type |
1359
+ | --- | --- |
1360
+ | `providerKey` | `string` |
1361
+
1362
+ **Request**
1363
+
1364
+ No request body.
1365
+
1366
+ **Response**
1367
+
1368
+ Standard `OASISResult` envelope (see top of this page) with:
1369
+
1370
+ `result` type: `IAvatar`
1371
+
1372
+ | Field | Type |
1373
+ | --- | --- |
1374
+ | `ProviderWallets` | `Dictionary<ProviderType, List<IProviderWallet>>` |
1375
+ | `ProviderPrivateKey` | `Dictionary<ProviderType, string>` |
1376
+ | `ProviderPublicKey` | `Dictionary<ProviderType, List<string>>` |
1377
+ | `ProviderUsername` | `Dictionary<ProviderType, string>` |
1378
+ | `ProviderWalletAddress` | `Dictionary<ProviderType, List<string>>` |
1379
+ | `AvatarId` | `Guid` |
1380
+ | `Title` | `string` |
1381
+ | `FirstName` | `string` |
1382
+ | `LastName` | `string` |
1383
+ | `FullName` | `string` |
1384
+ | `FullNameWithTitle` | `string` |
1385
+ | `Username` | `string` |
1386
+ | `Email` | `string` |
1387
+ | `Password` | `string` |
1388
+ | `AvatarType` | `EnumValue<AvatarType>` |
1389
+ | `AcceptTerms` | `bool` |
1390
+ | `IsVerified` | `bool` |
1391
+ | `JwtToken` | `string` |
1392
+ | `PasswordReset` | `DateTime?` |
1393
+ | `RefreshToken` | `string` |
1394
+ | `RefreshTokens` | `List<RefreshToken>` |
1395
+ | `ResetToken` | `string` |
1396
+ | `ResetTokenExpires` | `DateTime?` |
1397
+ | `VerificationToken` | `string` |
1398
+ | `Verified` | `DateTime?` |
1399
+ | `LastBeamedIn` | `DateTime?` |
1400
+ | `LastBeamedOut` | `DateTime?` |
1401
+ | `IsBeamedIn` | `bool` |
1402
+ | `Image2D` | `string` |
1403
+ | `Karma` | `int` |
1404
+ | `Level` | `int` |
1405
+ | `XP` | `int` |
1406
+
1407
+ **Example**
1408
+
1409
+ ```js
1410
+ const { isError, message, result } = await oasis.keys.getAvatarForProviderPublicKey({
1411
+ providerKey: '<providerKey>'
1412
+ });
1413
+ if (isError) throw new Error(message);
1414
+ console.log(result);
1415
+ ```
1416
+
1417
+ Example response:
1418
+
1419
+ ```json
1420
+ {
1421
+ "isError": false,
1422
+ "message": "",
1423
+ "result": { "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 }
1424
+ }
1425
+ ```
1426
+
1427
+ ---
1428
+
1429
+ ### `getAvatarForProviderUniqueStorageKey`
1430
+
1431
+ Get's the avatar for a given unique storage key.
1432
+
1433
+ **GET** `api/keys/get_avatar_for_provider_unique_storage_key/{providerKey}`
1434
+
1435
+ Route parameters:
1436
+
1437
+ | Field | Type |
1438
+ | --- | --- |
1439
+ | `providerKey` | `string` |
1440
+
1441
+ **Request**
1442
+
1443
+ No request body.
1444
+
1445
+ **Response**
1446
+
1447
+ Standard `OASISResult` envelope (see top of this page) with:
1448
+
1449
+ `result` type: `IAvatar`
1450
+
1451
+ | Field | Type |
1452
+ | --- | --- |
1453
+ | `ProviderWallets` | `Dictionary<ProviderType, List<IProviderWallet>>` |
1454
+ | `ProviderPrivateKey` | `Dictionary<ProviderType, string>` |
1455
+ | `ProviderPublicKey` | `Dictionary<ProviderType, List<string>>` |
1456
+ | `ProviderUsername` | `Dictionary<ProviderType, string>` |
1457
+ | `ProviderWalletAddress` | `Dictionary<ProviderType, List<string>>` |
1458
+ | `AvatarId` | `Guid` |
1459
+ | `Title` | `string` |
1460
+ | `FirstName` | `string` |
1461
+ | `LastName` | `string` |
1462
+ | `FullName` | `string` |
1463
+ | `FullNameWithTitle` | `string` |
1464
+ | `Username` | `string` |
1465
+ | `Email` | `string` |
1466
+ | `Password` | `string` |
1467
+ | `AvatarType` | `EnumValue<AvatarType>` |
1468
+ | `AcceptTerms` | `bool` |
1469
+ | `IsVerified` | `bool` |
1470
+ | `JwtToken` | `string` |
1471
+ | `PasswordReset` | `DateTime?` |
1472
+ | `RefreshToken` | `string` |
1473
+ | `RefreshTokens` | `List<RefreshToken>` |
1474
+ | `ResetToken` | `string` |
1475
+ | `ResetTokenExpires` | `DateTime?` |
1476
+ | `VerificationToken` | `string` |
1477
+ | `Verified` | `DateTime?` |
1478
+ | `LastBeamedIn` | `DateTime?` |
1479
+ | `LastBeamedOut` | `DateTime?` |
1480
+ | `IsBeamedIn` | `bool` |
1481
+ | `Image2D` | `string` |
1482
+ | `Karma` | `int` |
1483
+ | `Level` | `int` |
1484
+ | `XP` | `int` |
1485
+
1486
+ **Example**
1487
+
1488
+ ```js
1489
+ const { isError, message, result } = await oasis.keys.getAvatarForProviderUniqueStorageKey({
1490
+ providerKey: '<providerKey>'
1491
+ });
1492
+ if (isError) throw new Error(message);
1493
+ console.log(result);
1494
+ ```
1495
+
1496
+ Example response:
1497
+
1498
+ ```json
1499
+ {
1500
+ "isError": false,
1501
+ "message": "",
1502
+ "result": { "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 }
1503
+ }
1504
+ ```
1505
+
1506
+ ---
1507
+
1508
+ ### `getAvatarIdForProviderPrivateKey`
1509
+
1510
+ Get's the avatar id for a given private key.
1511
+
1512
+ **GET** `api/keys/get_avatar_id_for_provider_private_key/{providerKey}`
1513
+
1514
+ Route parameters:
1515
+
1516
+ | Field | Type |
1517
+ | --- | --- |
1518
+ | `providerKey` | `string` |
1519
+
1520
+ **Request**
1521
+
1522
+ No request body.
1523
+
1524
+ **Response**
1525
+
1526
+ Standard `OASISResult` envelope (see top of this page) with:
1527
+
1528
+ `result` type: `Guid`
1529
+
1530
+ **Example**
1531
+
1532
+ ```js
1533
+ const { isError, message, result } = await oasis.keys.getAvatarIdForProviderPrivateKey({
1534
+ providerKey: '<providerKey>'
1535
+ });
1536
+ if (isError) throw new Error(message);
1537
+ console.log(result);
1538
+ ```
1539
+
1540
+ Example response:
1541
+
1542
+ ```json
1543
+ {
1544
+ "isError": false,
1545
+ "message": "",
1546
+ "result": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
1547
+ }
1548
+ ```
1549
+
1550
+ ---
1551
+
1552
+ ### `getAvatarIdForProviderPublicKey`
1553
+
1554
+ Get's the avatar id for a given public key.
1555
+
1556
+ **GET** `api/keys/get_avatar_id_for_provider_public_key/{providerKey}`
1557
+
1558
+ Route parameters:
1559
+
1560
+ | Field | Type |
1561
+ | --- | --- |
1562
+ | `providerKey` | `string` |
1563
+
1564
+ **Request**
1565
+
1566
+ No request body.
1567
+
1568
+ **Response**
1569
+
1570
+ Standard `OASISResult` envelope (see top of this page) with:
1571
+
1572
+ `result` type: `Guid`
1573
+
1574
+ **Example**
1575
+
1576
+ ```js
1577
+ const { isError, message, result } = await oasis.keys.getAvatarIdForProviderPublicKey({
1578
+ providerKey: '<providerKey>'
1579
+ });
1580
+ if (isError) throw new Error(message);
1581
+ console.log(result);
1582
+ ```
1583
+
1584
+ Example response:
1585
+
1586
+ ```json
1587
+ {
1588
+ "isError": false,
1589
+ "message": "",
1590
+ "result": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
1591
+ }
1592
+ ```
1593
+
1594
+ ---
1595
+
1596
+ ### `getAvatarIdForProviderUniqueStorageKey`
1597
+
1598
+ Get's the avatar id for a given unique storage key.
1599
+
1600
+ **GET** `api/keys/get_avatar_id_for_provider_unique_storage_key/{providerKey}`
1601
+
1602
+ Route parameters:
1603
+
1604
+ | Field | Type |
1605
+ | --- | --- |
1606
+ | `providerKey` | `string` |
1607
+
1608
+ **Request**
1609
+
1610
+ No request body.
1611
+
1612
+ **Response**
1613
+
1614
+ Standard `OASISResult` envelope (see top of this page) with:
1615
+
1616
+ `result` type: `Guid`
1617
+
1618
+ **Example**
1619
+
1620
+ ```js
1621
+ const { isError, message, result } = await oasis.keys.getAvatarIdForProviderUniqueStorageKey({
1622
+ providerKey: '<providerKey>'
1623
+ });
1624
+ if (isError) throw new Error(message);
1625
+ console.log(result);
1626
+ ```
1627
+
1628
+ Example response:
1629
+
1630
+ ```json
1631
+ {
1632
+ "isError": false,
1633
+ "message": "",
1634
+ "result": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
1635
+ }
1636
+ ```
1637
+
1638
+ ---
1639
+
1640
+ ### `getAvatarUsernameForProviderPrivateKey`
1641
+
1642
+ Get's the avatar username for a given private key.
1643
+
1644
+ **GET** `api/keys/get_avatar_username_for_provider_private_key/{providerKey}`
1645
+
1646
+ Route parameters:
1647
+
1648
+ | Field | Type |
1649
+ | --- | --- |
1650
+ | `providerKey` | `string` |
1651
+
1652
+ **Request**
1653
+
1654
+ No request body.
1655
+
1656
+ **Response**
1657
+
1658
+ Standard `OASISResult` envelope (see top of this page) with:
1659
+
1660
+ `result` type: `string`
1661
+
1662
+ **Example**
1663
+
1664
+ ```js
1665
+ const { isError, message, result } = await oasis.keys.getAvatarUsernameForProviderPrivateKey({
1666
+ providerKey: '<providerKey>'
1667
+ });
1668
+ if (isError) throw new Error(message);
1669
+ console.log(result);
1670
+ ```
1671
+
1672
+ Example response:
1673
+
1674
+ ```json
1675
+ {
1676
+ "isError": false,
1677
+ "message": "",
1678
+ "result": "example string"
1679
+ }
1680
+ ```
1681
+
1682
+ ---
1683
+
1684
+ ### `getAvatarUsernameForProviderPublicKey`
1685
+
1686
+ Get's the avatar username for a given public key.
1687
+
1688
+ **GET** `api/keys/get_avatar_username_for_provider_public_key/{providerKey}`
1689
+
1690
+ Route parameters:
1691
+
1692
+ | Field | Type |
1693
+ | --- | --- |
1694
+ | `providerKey` | `string` |
1695
+
1696
+ **Request**
1697
+
1698
+ No request body.
1699
+
1700
+ **Response**
1701
+
1702
+ Standard `OASISResult` envelope (see top of this page) with:
1703
+
1704
+ `result` type: `string`
1705
+
1706
+ **Example**
1707
+
1708
+ ```js
1709
+ const { isError, message, result } = await oasis.keys.getAvatarUsernameForProviderPublicKey({
1710
+ providerKey: '<providerKey>'
1711
+ });
1712
+ if (isError) throw new Error(message);
1713
+ console.log(result);
1714
+ ```
1715
+
1716
+ Example response:
1717
+
1718
+ ```json
1719
+ {
1720
+ "isError": false,
1721
+ "message": "",
1722
+ "result": "example string"
1723
+ }
1724
+ ```
1725
+
1726
+ ---
1727
+
1728
+ ### `getAvatarUsernameForProviderUniqueStorageKey`
1729
+
1730
+ Get's the avatar username for a given unique storage key.
1731
+
1732
+ **GET** `api/keys/get_avatar_username_for_provider_unique_storage_key/{providerKey}`
1733
+
1734
+ Route parameters:
1735
+
1736
+ | Field | Type |
1737
+ | --- | --- |
1738
+ | `providerKey` | `string` |
1739
+
1740
+ **Request**
1741
+
1742
+ No request body.
1743
+
1744
+ **Response**
1745
+
1746
+ Standard `OASISResult` envelope (see top of this page) with:
1747
+
1748
+ `result` type: `string`
1749
+
1750
+ **Example**
1751
+
1752
+ ```js
1753
+ const { isError, message, result } = await oasis.keys.getAvatarUsernameForProviderUniqueStorageKey({
1754
+ providerKey: '<providerKey>'
1755
+ });
1756
+ if (isError) throw new Error(message);
1757
+ console.log(result);
1758
+ ```
1759
+
1760
+ Example response:
1761
+
1762
+ ```json
1763
+ {
1764
+ "isError": false,
1765
+ "message": "",
1766
+ "result": "example string"
1767
+ }
1768
+ ```
1769
+
1770
+ ---
1771
+
1772
+ ### `getKeyStats`
1773
+
1774
+ Gets key statistics for the authenticated avatar
1775
+
1776
+ **GET** `api/keys/stats`
1777
+
1778
+ **Request**
1779
+
1780
+ No request body.
1781
+
1782
+ **Response**
1783
+
1784
+ Standard `OASISResult` envelope (see top of this page) with:
1785
+
1786
+ `result` type: `Dictionary<string, object>` - a key/value map keyed by `string`, each value a `object`.
1787
+
1788
+ **Example**
1789
+
1790
+ ```js
1791
+ const { isError, message, result } = await oasis.keys.getKeyStats({});
1792
+ if (isError) throw new Error(message);
1793
+ console.log(result);
1794
+ ```
1795
+
1796
+ Example response:
1797
+
1798
+ ```json
1799
+ {
1800
+ "isError": false,
1801
+ "message": "",
1802
+ "result": { "<string>": {} }
1803
+ }
1804
+ ```
1805
+
1806
+ ---
1807
+
1808
+ ### `getPrivateWif`
1809
+
1810
+ Get's the private WIF.
1811
+
1812
+ **POST** `api/keys/get_private_wifi/{source}`
1813
+
1814
+ Route parameters:
1815
+
1816
+ | Field | Type |
1817
+ | --- | --- |
1818
+ | `source` | `byte[]` |
1819
+
1820
+ **Request**
1821
+
1822
+ No request body.
1823
+
1824
+ **Response**
1825
+
1826
+ Standard `OASISResult` envelope (see top of this page) with:
1827
+
1828
+ `result` type: `string`
1829
+
1830
+ **Example**
1831
+
1832
+ ```js
1833
+ const { isError, message, result } = await oasis.keys.getPrivateWif({
1834
+ source: '<source>'
1835
+ });
1836
+ if (isError) throw new Error(message);
1837
+ console.log(result);
1838
+ ```
1839
+
1840
+ Example response:
1841
+
1842
+ ```json
1843
+ {
1844
+ "isError": false,
1845
+ "message": "",
1846
+ "result": "example string"
1847
+ }
1848
+ ```
1849
+
1850
+ ---
1851
+
1852
+ ### `getProviderPrivateKeyForAvatarById`
1853
+
1854
+ Get's a given avatar's private key for the given provider type using the avatar's id.
1855
+
1856
+ **GET** `api/keys/get_provider_private_key_for_avatar_by_id`
1857
+
1858
+ **Request**
1859
+
1860
+ Body type: `ProviderKeyForAvatarParams`
1861
+
1862
+ | Field | Type |
1863
+ | --- | --- |
1864
+ | `AvatarID` | `string` |
1865
+ | `AvatarUsername` | `string` |
1866
+ | `AvatarEmail` | `string` |
1867
+ | `ProviderType` | `string` |
1868
+ | `ProviderTypeToLoadAvatarFrom` | `string` |
1869
+
1870
+ **Response**
1871
+
1872
+ Standard `OASISResult` envelope (see top of this page) with:
1873
+
1874
+ `result` type: `string` (array)
1875
+
1876
+ **Example**
1877
+
1878
+ ```js
1879
+ const { isError, message, result } = await oasis.keys.getProviderPrivateKeyForAvatarById({
1880
+ avatarID: "example string",
1881
+ avatarUsername: "example string",
1882
+ avatarEmail: "example string",
1883
+ providerType: "example string",
1884
+ providerTypeToLoadAvatarFrom: "example string"
1885
+ });
1886
+ if (isError) throw new Error(message);
1887
+ console.log(result);
1888
+ ```
1889
+
1890
+ Example response:
1891
+
1892
+ ```json
1893
+ {
1894
+ "isError": false,
1895
+ "message": "",
1896
+ "result": ["example string"]
1897
+ }
1898
+ ```
1899
+
1900
+ ---
1901
+
1902
+ ### `getProviderPrivateKeyForAvatarByUsername`
1903
+
1904
+ Get's a given avatar's private key for the given provider type using the avatar's username.
1905
+
1906
+ **GET** `api/keys/get_provider_private_key_for_avatar_by_username`
1907
+
1908
+ **Request**
1909
+
1910
+ Body type: `ProviderKeyForAvatarParams`
1911
+
1912
+ | Field | Type |
1913
+ | --- | --- |
1914
+ | `AvatarID` | `string` |
1915
+ | `AvatarUsername` | `string` |
1916
+ | `AvatarEmail` | `string` |
1917
+ | `ProviderType` | `string` |
1918
+ | `ProviderTypeToLoadAvatarFrom` | `string` |
1919
+
1920
+ **Response**
1921
+
1922
+ Standard `OASISResult` envelope (see top of this page) with:
1923
+
1924
+ `result` type: `string` (array)
1925
+
1926
+ **Example**
1927
+
1928
+ ```js
1929
+ const { isError, message, result } = await oasis.keys.getProviderPrivateKeyForAvatarByUsername({
1930
+ avatarID: "example string",
1931
+ avatarUsername: "example string",
1932
+ avatarEmail: "example string",
1933
+ providerType: "example string",
1934
+ providerTypeToLoadAvatarFrom: "example string"
1935
+ });
1936
+ if (isError) throw new Error(message);
1937
+ console.log(result);
1938
+ ```
1939
+
1940
+ Example response:
1941
+
1942
+ ```json
1943
+ {
1944
+ "isError": false,
1945
+ "message": "",
1946
+ "result": ["example string"]
1947
+ }
1948
+ ```
1949
+
1950
+ ---
1951
+
1952
+ ### `getProviderPublicKeysForAvatarByEmail`
1953
+
1954
+ Get's a given avatar's public keys for the given provider type using the avatar's email.
1955
+
1956
+ **GET** `api/keys/get_provider_public_keys_for_avatar_by_email`
1957
+
1958
+ **Request**
1959
+
1960
+ Body type: `ProviderKeyForAvatarParams`
1961
+
1962
+ | Field | Type |
1963
+ | --- | --- |
1964
+ | `AvatarID` | `string` |
1965
+ | `AvatarUsername` | `string` |
1966
+ | `AvatarEmail` | `string` |
1967
+ | `ProviderType` | `string` |
1968
+ | `ProviderTypeToLoadAvatarFrom` | `string` |
1969
+
1970
+ **Response**
1971
+
1972
+ Standard `OASISResult` envelope (see top of this page) with:
1973
+
1974
+ `result` type: `string` (array)
1975
+
1976
+ **Example**
1977
+
1978
+ ```js
1979
+ const { isError, message, result } = await oasis.keys.getProviderPublicKeysForAvatarByEmail({
1980
+ avatarID: "example string",
1981
+ avatarUsername: "example string",
1982
+ avatarEmail: "example string",
1983
+ providerType: "example string",
1984
+ providerTypeToLoadAvatarFrom: "example string"
1985
+ });
1986
+ if (isError) throw new Error(message);
1987
+ console.log(result);
1988
+ ```
1989
+
1990
+ Example response:
1991
+
1992
+ ```json
1993
+ {
1994
+ "isError": false,
1995
+ "message": "",
1996
+ "result": ["example string"]
1997
+ }
1998
+ ```
1999
+
2000
+ ---
2001
+
2002
+ ### `getProviderPublicKeysForAvatarById`
2003
+
2004
+ Get's a given avatar's public keys for the given provider type using the avatar's id.
2005
+
2006
+ **GET** `api/keys/get_provider_public_keys_for_avatar_by_id`
2007
+
2008
+ **Request**
2009
+
2010
+ Body type: `ProviderKeyForAvatarParams`
2011
+
2012
+ | Field | Type |
2013
+ | --- | --- |
2014
+ | `AvatarID` | `string` |
2015
+ | `AvatarUsername` | `string` |
2016
+ | `AvatarEmail` | `string` |
2017
+ | `ProviderType` | `string` |
2018
+ | `ProviderTypeToLoadAvatarFrom` | `string` |
2019
+
2020
+ **Response**
2021
+
2022
+ Standard `OASISResult` envelope (see top of this page) with:
2023
+
2024
+ `result` type: `string` (array)
2025
+
2026
+ **Example**
2027
+
2028
+ ```js
2029
+ const { isError, message, result } = await oasis.keys.getProviderPublicKeysForAvatarById({
2030
+ avatarID: "example string",
2031
+ avatarUsername: "example string",
2032
+ avatarEmail: "example string",
2033
+ providerType: "example string",
2034
+ providerTypeToLoadAvatarFrom: "example string"
2035
+ });
2036
+ if (isError) throw new Error(message);
2037
+ console.log(result);
2038
+ ```
2039
+
2040
+ Example response:
2041
+
2042
+ ```json
2043
+ {
2044
+ "isError": false,
2045
+ "message": "",
2046
+ "result": ["example string"]
2047
+ }
2048
+ ```
2049
+
2050
+ ---
2051
+
2052
+ ### `getProviderPublicKeysForAvatarByUsername`
2053
+
2054
+ Get's a given avatar's public keys for the given provider type using the avatar's username.
2055
+
2056
+ **GET** `api/keys/get_provider_public_keys_for_avatar_by_username`
2057
+
2058
+ **Request**
2059
+
2060
+ Body type: `ProviderKeyForAvatarParams`
2061
+
2062
+ | Field | Type |
2063
+ | --- | --- |
2064
+ | `AvatarID` | `string` |
2065
+ | `AvatarUsername` | `string` |
2066
+ | `AvatarEmail` | `string` |
2067
+ | `ProviderType` | `string` |
2068
+ | `ProviderTypeToLoadAvatarFrom` | `string` |
2069
+
2070
+ **Response**
2071
+
2072
+ Standard `OASISResult` envelope (see top of this page) with:
2073
+
2074
+ `result` type: `string` (array)
2075
+
2076
+ **Example**
2077
+
2078
+ ```js
2079
+ const { isError, message, result } = await oasis.keys.getProviderPublicKeysForAvatarByUsername({
2080
+ avatarID: "example string",
2081
+ avatarUsername: "example string",
2082
+ avatarEmail: "example string",
2083
+ providerType: "example string",
2084
+ providerTypeToLoadAvatarFrom: "example string"
2085
+ });
2086
+ if (isError) throw new Error(message);
2087
+ console.log(result);
2088
+ ```
2089
+
2090
+ Example response:
2091
+
2092
+ ```json
2093
+ {
2094
+ "isError": false,
2095
+ "message": "",
2096
+ "result": ["example string"]
2097
+ }
2098
+ ```
2099
+
2100
+ ---
2101
+
2102
+ ### `getProviderUniqueStorageKeyForAvatarByEmail`
2103
+
2104
+ Get's a given avatar's unique storage key for the given provider type using the avatar's username.
2105
+
2106
+ **GET** `api/keys/get_provider_unique_storage_key_for_avatar_by_email`
2107
+
2108
+ **Request**
2109
+
2110
+ Body type: `ProviderKeyForAvatarParams`
2111
+
2112
+ | Field | Type |
2113
+ | --- | --- |
2114
+ | `AvatarID` | `string` |
2115
+ | `AvatarUsername` | `string` |
2116
+ | `AvatarEmail` | `string` |
2117
+ | `ProviderType` | `string` |
2118
+ | `ProviderTypeToLoadAvatarFrom` | `string` |
2119
+
2120
+ **Response**
2121
+
2122
+ Standard `OASISResult` envelope (see top of this page) with:
2123
+
2124
+ `result` type: `string`
2125
+
2126
+ **Example**
2127
+
2128
+ ```js
2129
+ const { isError, message, result } = await oasis.keys.getProviderUniqueStorageKeyForAvatarByEmail({
2130
+ avatarID: "example string",
2131
+ avatarUsername: "example string",
2132
+ avatarEmail: "example string",
2133
+ providerType: "example string",
2134
+ providerTypeToLoadAvatarFrom: "example string"
2135
+ });
2136
+ if (isError) throw new Error(message);
2137
+ console.log(result);
2138
+ ```
2139
+
2140
+ Example response:
2141
+
2142
+ ```json
2143
+ {
2144
+ "isError": false,
2145
+ "message": "",
2146
+ "result": "example string"
2147
+ }
2148
+ ```
2149
+
2150
+ ---
2151
+
2152
+ ### `getProviderUniqueStorageKeyForAvatarById`
2153
+
2154
+ Get's a given avatar's unique storage key for the given provider type using the avatar's id.
2155
+
2156
+ **GET** `api/keys/get_provider_unique_storage_key_for_avatar_by_id`
2157
+
2158
+ **Request**
2159
+
2160
+ Body type: `ProviderKeyForAvatarParams`
2161
+
2162
+ | Field | Type |
2163
+ | --- | --- |
2164
+ | `AvatarID` | `string` |
2165
+ | `AvatarUsername` | `string` |
2166
+ | `AvatarEmail` | `string` |
2167
+ | `ProviderType` | `string` |
2168
+ | `ProviderTypeToLoadAvatarFrom` | `string` |
2169
+
2170
+ **Response**
2171
+
2172
+ Standard `OASISResult` envelope (see top of this page) with:
2173
+
2174
+ `result` type: `string`
2175
+
2176
+ **Example**
2177
+
2178
+ ```js
2179
+ const { isError, message, result } = await oasis.keys.getProviderUniqueStorageKeyForAvatarById({
2180
+ avatarID: "example string",
2181
+ avatarUsername: "example string",
2182
+ avatarEmail: "example string",
2183
+ providerType: "example string",
2184
+ providerTypeToLoadAvatarFrom: "example string"
2185
+ });
2186
+ if (isError) throw new Error(message);
2187
+ console.log(result);
2188
+ ```
2189
+
2190
+ Example response:
2191
+
2192
+ ```json
2193
+ {
2194
+ "isError": false,
2195
+ "message": "",
2196
+ "result": "example string"
2197
+ }
2198
+ ```
2199
+
2200
+ ---
2201
+
2202
+ ### `getProviderUniqueStorageKeyForAvatarByUsername`
2203
+
2204
+ Get's a given avatar's unique storage key for the given provider type using the avatar's username.
2205
+
2206
+ **GET** `api/keys/get_provider_unique_storage_key_for_avatar_by_username`
2207
+
2208
+ **Request**
2209
+
2210
+ Body type: `ProviderKeyForAvatarParams`
2211
+
2212
+ | Field | Type |
2213
+ | --- | --- |
2214
+ | `AvatarID` | `string` |
2215
+ | `AvatarUsername` | `string` |
2216
+ | `AvatarEmail` | `string` |
2217
+ | `ProviderType` | `string` |
2218
+ | `ProviderTypeToLoadAvatarFrom` | `string` |
2219
+
2220
+ **Response**
2221
+
2222
+ Standard `OASISResult` envelope (see top of this page) with:
2223
+
2224
+ `result` type: `string`
2225
+
2226
+ **Example**
2227
+
2228
+ ```js
2229
+ const { isError, message, result } = await oasis.keys.getProviderUniqueStorageKeyForAvatarByUsername({
2230
+ avatarID: "example string",
2231
+ avatarUsername: "example string",
2232
+ avatarEmail: "example string",
2233
+ providerType: "example string",
2234
+ providerTypeToLoadAvatarFrom: "example string"
2235
+ });
2236
+ if (isError) throw new Error(message);
2237
+ console.log(result);
2238
+ ```
2239
+
2240
+ Example response:
2241
+
2242
+ ```json
2243
+ {
2244
+ "isError": false,
2245
+ "message": "",
2246
+ "result": "example string"
2247
+ }
2248
+ ```
2249
+
2250
+ ---
2251
+
2252
+ ### `getPublicWif`
2253
+
2254
+ Get's the public WIF.
2255
+
2256
+ **POST** `api/keys/get_public_wifi`
2257
+
2258
+ **Request**
2259
+
2260
+ Body type: `WifParams`
2261
+
2262
+ | Field | Type |
2263
+ | --- | --- |
2264
+ | `PublicKey` | `byte[]` |
2265
+ | `Prefix` | `string` |
2266
+
2267
+ **Response**
2268
+
2269
+ Standard `OASISResult` envelope (see top of this page) with:
2270
+
2271
+ `result` type: `string`
2272
+
2273
+ **Example**
2274
+
2275
+ ```js
2276
+ const { isError, message, result } = await oasis.keys.getPublicWif({
2277
+ publicKey: "<base64-bytes>",
2278
+ prefix: "example string"
2279
+ });
2280
+ if (isError) throw new Error(message);
2281
+ console.log(result);
2282
+ ```
2283
+
2284
+ Example response:
2285
+
2286
+ ```json
2287
+ {
2288
+ "isError": false,
2289
+ "message": "",
2290
+ "result": "example string"
2291
+ }
2292
+ ```
2293
+
2294
+ ---
2295
+
2296
+ ### `linkEOSIOAccountToAvatar`
2297
+
2298
+ Link's a given eosioAccountName to the given avatar.
2299
+
2300
+ **POST** `api/keys/{avatarId}/{eosioAccountName}`
2301
+
2302
+ Route parameters:
2303
+
2304
+ | Field | Type |
2305
+ | --- | --- |
2306
+ | `avatarId` | `Guid` |
2307
+ | `eosioAccountName` | `string` |
2308
+
2309
+ **Request**
2310
+
2311
+ No request body.
2312
+
2313
+ **Response**
2314
+
2315
+ Standard `OASISResult` envelope (see top of this page) with:
2316
+
2317
+ `result` type: `IAvatarDetail`
2318
+
2319
+ | Field | Type |
2320
+ | --- | --- |
2321
+ | `Id` | `new Guid` |
2322
+ | `Username` | `string` |
2323
+ | `Email` | `string` |
2324
+ | `Karma` | `long` |
2325
+ | `Level` | `int` |
2326
+ | `XP` | `int` |
2327
+ | `Model3D` | `string` |
2328
+ | `UmaJson` | `string` |
2329
+ | `Portrait` | `string` |
2330
+ | `DOB` | `DateTime` |
2331
+ | `Address` | `string` |
2332
+ | `Town` | `string` |
2333
+ | `County` | `string` |
2334
+ | `Country` | `string` |
2335
+ | `Postcode` | `string` |
2336
+ | `Landline` | `string` |
2337
+ | `Mobile` | `string` |
2338
+ | `Achievements` | `IList<IAchievement>` |
2339
+ | `Attributes` | `IAvatarAttributes` |
2340
+ | `Aura` | `IAvatarAura` |
2341
+ | `Chakras` | `IAvatarChakras` |
2342
+ | `DimensionLevelIds` | `IDictionary<DimensionLevel, Guid>` |
2343
+ | `DimensionLevels` | `IDictionary<DimensionLevel, IHolon>` |
2344
+ | `FavouriteColour` | `ConsoleColor` |
2345
+ | `GeneKeys` | `IList<IGeneKey>` |
2346
+ | `Gifts` | `IList<IAvatarGift>` |
2347
+ | `HeartRateData` | `IList<IHeartRateEntry>` |
2348
+ | `HumanDesign` | `IHumanDesign` |
2349
+ | `Inventory` | `IList<IInventoryItem>` |
2350
+ | `KarmaAkashicRecords` | `IList<IKarmaAkashicRecord>` |
2351
+ | `Omniverse` | `IOmiverse` |
2352
+ | `Skills` | `IAvatarSkills` |
2353
+ | `Spells` | `IList<ISpell>` |
2354
+ | `STARCLIColour` | `ConsoleColor` |
2355
+ | `Stats` | `IAvatarStats` |
2356
+ | `SuperPowers` | `IAvatarSuperPowers` |
2357
+ | `ActiveQuestId` | `Guid?` |
2358
+ | `ActiveObjectiveId` | `Guid?` |
2359
+
2360
+ **Example**
2361
+
2362
+ ```js
2363
+ const { isError, message, result } = await oasis.keys.linkEOSIOAccountToAvatar({
2364
+ avatarId: '<avatarId>',
2365
+ eosioAccountName: '<eosioAccountName>'
2366
+ });
2367
+ if (isError) throw new Error(message);
2368
+ console.log(result);
2369
+ ```
2370
+
2371
+ Example response:
2372
+
2373
+ ```json
2374
+ {
2375
+ "isError": false,
2376
+ "message": "",
2377
+ "result": { "Id": /* <new Guid> */, "Username": "example string", "Email": "example string", "Karma": 1, "Level": 1, "XP": 1, "Model3D": "example string", "UmaJson": "example string", "Portrait": "example string", "DOB": "2026-01-01T00:00:00Z", "Address": "example string", "Town": "example string", "County": "example string", "Country": "example string", "Postcode": "example string", "Landline": "example string", "Mobile": "example string", "Achievements": [{ "AchievementEarnt": "2026-01-01T00:00:00Z", "AchievementType": { }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Description": "example string", "KarmaSource": { "Score": 1.0 }, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Name": "example string", "Provider": { "Score": 1.0 }, "WebLink": "example string" }], "Attributes": { "Dexterity": 1, "Intelligence": 1, "Magic": 1, "Speed": 1, "Strength": 1, "Toughness": 1, "Wisdom": 1, "Vitality": 1, "Endurance": 1 }, "Aura": { "Progress": 1, "Brightness": 1, "Size": 1, "ColourBlue": 1, "ColourGreen": 1, "ColourRed": 1, "Level": 1, "Value": 1 }, "Chakras": { "Crown": { }, "Heart": { }, "Root": { }, "Sacral": { }, "SolarPlexus": { }, "ThirdEye": { }, "Throat": { } }, "DimensionLevelIds": /* <IDictionary<DimensionLevel, Guid>> */, "DimensionLevels": /* <IDictionary<DimensionLevel, IHolon>> */, "FavouriteColour": /* <ConsoleColor> */, "GeneKeys": [{ "Description": "example string", "Gift": "example string", "Name": "example string", "Shadow": "example string", "Sidhi": "example string" }], "Gifts": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "GiftEarnt": "2026-01-01T00:00:00Z", "GiftType": {}, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Provider": {}, "WebLink": "example string" }], "HeartRateData": [{ "HeartRateValue": 1, "TimeStamp": "2026-01-01T00:00:00Z" }], "HumanDesign": { "Type": "example string" }, "Inventory": [{ "Image2D": "<base64-bytes>", "Image2DURI": "https://example.com/asset.png", "ThumbnailUrl": "example string", "Object3D": "<base64-bytes>", "Object3DURI": "https://example.com/asset.png", "Quantity": 1, "Stack": true, "IsStackable": true, "GameSource": "example string", "ItemType": "example string", "NftId": "example string", "Rarity": "example string", "MaxQuantity": 1, "Weight": 1.0, "IsUsable": true, "IsTradeable": true, "OwnerAvatarId": "example string", "AcquiredOn": "2026-01-01T00:00:00Z", "LastUsedOn": "2026-01-01T00:00:00Z", "Properties": { "<string>": {} } }], "KarmaAkashicRecords": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Date": "2026-01-01T00:00:00Z", "Karma": 1, "KarmaEarntOrLost": { "Score": 1.0 }, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "KarmaTypeNegative": { "Score": 1.0 }, "KarmaTypePositive": { "Score": 1.0 }, "Provider": {}, "TotalKarma": 1, "WebLink": "example string" }], "Omniverse": { "GreatGrandSuperStar": { }, "Dimensions": { "EighthDimension": { }, "NinthDimension": { }, "TenthDimension": { }, "EleventhDimension": { }, "TwelfthDimension": { }, "CustomDimensions": [{ "DimensionLevel": { } }] }, "Multiverses": [{ "GrandSuperStar": { "Stars": [ /* <I> */ ] }, "Dimensions": { "FirstDimension": { "Universe": { "Dimensions": [], "GalaxyClusters": [{ "Galaxies": [{ "SuperStar": { "Stars": [{ "Luminosity": 1, "StarType": { }, "StarClassification": { }, "StarBinaryType": { } }] }, "SolarSystems": [{ "Star": {}, "Planets": [{ "Moons": [{ }] }], "Asteroids": [{ }], "Comets": [{ }], "Meteroids": [{ }] }], "Nebulas": [{ }], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] }], "SolarSystems": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [], "IsSuperCluster": true }], "SolarSystems": [], "Nebulas": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] } }, "SecondDimension": { "Universe": {} }, "ThirdDimension": { "UniversePrime": {}, "MagicVerse": {}, "ParallelUniverses": [] }, "FourthDimension": { "Universe": {} }, "FifthDimension": { "Universe": {} }, "SixthDimension": { "Universe": {} }, "SeventhDimension": { "Universe": {} }, "CustomDimensions": [] } }] }, "Skills": { "Computers": 1, "Engineering": 1, "Farming": 1, "FireStarting": 1, "Fishing": 1, "Languages": 1, "Meditation": 1, "MeleeCombat": 1, "Mindfulness": 1, "Negotiating": 1, "RangedCombat": 1, "Research": 1, "Science": 1, "SpellCasting": 1, "Translating": 1, "Yoga": 1 }, "Spells": [{ "Description": "example string", "FireDamage": 1, "HealingPower": 1, "IceDamage": 1, "LightningDamage": 1, "Name": "example string", "PoisonDamage": 1, "WaterDamage": 1, "WindDamage": 1 }], "STARCLIColour": /* <ConsoleColor> */, "Stats": { "Energy": { "Current": 1, "Max": 1 }, "HP": {}, "Mana": {}, "Stamina": {} }, "SuperPowers": { "AstralProjection": 1, "BioLocatation": 1, "Flight": 1, "FreezeBreath": 1, "HeatVision": 1, "Invulnerability": 1, "RemoteViewing": 1, "SuperSpeed": 1, "SuperStrength": 1, "Telekinesis": 1, "Telepathy": 1, "Teleportation": 1, "XRayVision": 1 }, "ActiveQuestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ActiveObjectiveId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }
2378
+ }
2379
+ ```
2380
+
2381
+ ---
2382
+
2383
+ ### `linkHolochainAgentIDToAvatar`
2384
+
2385
+ Link's a given holochain AgentID to the given avatar.
2386
+
2387
+ **POST** `api/keys/{avatarId}/{holochainAgentID}`
2388
+
2389
+ Route parameters:
2390
+
2391
+ | Field | Type |
2392
+ | --- | --- |
2393
+ | `avatarId` | `Guid` |
2394
+ | `holochainAgentID` | `string` |
2395
+
2396
+ **Request**
2397
+
2398
+ No request body.
2399
+
2400
+ **Response**
2401
+
2402
+ Standard `OASISResult` envelope (see top of this page) with:
2403
+
2404
+ `result` type: `IAvatarDetail`
2405
+
2406
+ | Field | Type |
2407
+ | --- | --- |
2408
+ | `Id` | `new Guid` |
2409
+ | `Username` | `string` |
2410
+ | `Email` | `string` |
2411
+ | `Karma` | `long` |
2412
+ | `Level` | `int` |
2413
+ | `XP` | `int` |
2414
+ | `Model3D` | `string` |
2415
+ | `UmaJson` | `string` |
2416
+ | `Portrait` | `string` |
2417
+ | `DOB` | `DateTime` |
2418
+ | `Address` | `string` |
2419
+ | `Town` | `string` |
2420
+ | `County` | `string` |
2421
+ | `Country` | `string` |
2422
+ | `Postcode` | `string` |
2423
+ | `Landline` | `string` |
2424
+ | `Mobile` | `string` |
2425
+ | `Achievements` | `IList<IAchievement>` |
2426
+ | `Attributes` | `IAvatarAttributes` |
2427
+ | `Aura` | `IAvatarAura` |
2428
+ | `Chakras` | `IAvatarChakras` |
2429
+ | `DimensionLevelIds` | `IDictionary<DimensionLevel, Guid>` |
2430
+ | `DimensionLevels` | `IDictionary<DimensionLevel, IHolon>` |
2431
+ | `FavouriteColour` | `ConsoleColor` |
2432
+ | `GeneKeys` | `IList<IGeneKey>` |
2433
+ | `Gifts` | `IList<IAvatarGift>` |
2434
+ | `HeartRateData` | `IList<IHeartRateEntry>` |
2435
+ | `HumanDesign` | `IHumanDesign` |
2436
+ | `Inventory` | `IList<IInventoryItem>` |
2437
+ | `KarmaAkashicRecords` | `IList<IKarmaAkashicRecord>` |
2438
+ | `Omniverse` | `IOmiverse` |
2439
+ | `Skills` | `IAvatarSkills` |
2440
+ | `Spells` | `IList<ISpell>` |
2441
+ | `STARCLIColour` | `ConsoleColor` |
2442
+ | `Stats` | `IAvatarStats` |
2443
+ | `SuperPowers` | `IAvatarSuperPowers` |
2444
+ | `ActiveQuestId` | `Guid?` |
2445
+ | `ActiveObjectiveId` | `Guid?` |
2446
+
2447
+ **Example**
2448
+
2449
+ ```js
2450
+ const { isError, message, result } = await oasis.keys.linkHolochainAgentIDToAvatar({
2451
+ avatarId: '<avatarId>',
2452
+ holochainAgentID: '<holochainAgentID>'
2453
+ });
2454
+ if (isError) throw new Error(message);
2455
+ console.log(result);
2456
+ ```
2457
+
2458
+ Example response:
2459
+
2460
+ ```json
2461
+ {
2462
+ "isError": false,
2463
+ "message": "",
2464
+ "result": { "Id": /* <new Guid> */, "Username": "example string", "Email": "example string", "Karma": 1, "Level": 1, "XP": 1, "Model3D": "example string", "UmaJson": "example string", "Portrait": "example string", "DOB": "2026-01-01T00:00:00Z", "Address": "example string", "Town": "example string", "County": "example string", "Country": "example string", "Postcode": "example string", "Landline": "example string", "Mobile": "example string", "Achievements": [{ "AchievementEarnt": "2026-01-01T00:00:00Z", "AchievementType": { }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Description": "example string", "KarmaSource": { "Score": 1.0 }, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Name": "example string", "Provider": { "Score": 1.0 }, "WebLink": "example string" }], "Attributes": { "Dexterity": 1, "Intelligence": 1, "Magic": 1, "Speed": 1, "Strength": 1, "Toughness": 1, "Wisdom": 1, "Vitality": 1, "Endurance": 1 }, "Aura": { "Progress": 1, "Brightness": 1, "Size": 1, "ColourBlue": 1, "ColourGreen": 1, "ColourRed": 1, "Level": 1, "Value": 1 }, "Chakras": { "Crown": { }, "Heart": { }, "Root": { }, "Sacral": { }, "SolarPlexus": { }, "ThirdEye": { }, "Throat": { } }, "DimensionLevelIds": /* <IDictionary<DimensionLevel, Guid>> */, "DimensionLevels": /* <IDictionary<DimensionLevel, IHolon>> */, "FavouriteColour": /* <ConsoleColor> */, "GeneKeys": [{ "Description": "example string", "Gift": "example string", "Name": "example string", "Shadow": "example string", "Sidhi": "example string" }], "Gifts": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "GiftEarnt": "2026-01-01T00:00:00Z", "GiftType": {}, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Provider": {}, "WebLink": "example string" }], "HeartRateData": [{ "HeartRateValue": 1, "TimeStamp": "2026-01-01T00:00:00Z" }], "HumanDesign": { "Type": "example string" }, "Inventory": [{ "Image2D": "<base64-bytes>", "Image2DURI": "https://example.com/asset.png", "ThumbnailUrl": "example string", "Object3D": "<base64-bytes>", "Object3DURI": "https://example.com/asset.png", "Quantity": 1, "Stack": true, "IsStackable": true, "GameSource": "example string", "ItemType": "example string", "NftId": "example string", "Rarity": "example string", "MaxQuantity": 1, "Weight": 1.0, "IsUsable": true, "IsTradeable": true, "OwnerAvatarId": "example string", "AcquiredOn": "2026-01-01T00:00:00Z", "LastUsedOn": "2026-01-01T00:00:00Z", "Properties": { "<string>": {} } }], "KarmaAkashicRecords": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Date": "2026-01-01T00:00:00Z", "Karma": 1, "KarmaEarntOrLost": { "Score": 1.0 }, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "KarmaTypeNegative": { "Score": 1.0 }, "KarmaTypePositive": { "Score": 1.0 }, "Provider": {}, "TotalKarma": 1, "WebLink": "example string" }], "Omniverse": { "GreatGrandSuperStar": { }, "Dimensions": { "EighthDimension": { }, "NinthDimension": { }, "TenthDimension": { }, "EleventhDimension": { }, "TwelfthDimension": { }, "CustomDimensions": [{ "DimensionLevel": { } }] }, "Multiverses": [{ "GrandSuperStar": { "Stars": [ /* <I> */ ] }, "Dimensions": { "FirstDimension": { "Universe": { "Dimensions": [], "GalaxyClusters": [{ "Galaxies": [{ "SuperStar": { "Stars": [{ "Luminosity": 1, "StarType": { }, "StarClassification": { }, "StarBinaryType": { } }] }, "SolarSystems": [{ "Star": {}, "Planets": [{ "Moons": [{ }] }], "Asteroids": [{ }], "Comets": [{ }], "Meteroids": [{ }] }], "Nebulas": [{ }], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] }], "SolarSystems": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [], "IsSuperCluster": true }], "SolarSystems": [], "Nebulas": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] } }, "SecondDimension": { "Universe": {} }, "ThirdDimension": { "UniversePrime": {}, "MagicVerse": {}, "ParallelUniverses": [] }, "FourthDimension": { "Universe": {} }, "FifthDimension": { "Universe": {} }, "SixthDimension": { "Universe": {} }, "SeventhDimension": { "Universe": {} }, "CustomDimensions": [] } }] }, "Skills": { "Computers": 1, "Engineering": 1, "Farming": 1, "FireStarting": 1, "Fishing": 1, "Languages": 1, "Meditation": 1, "MeleeCombat": 1, "Mindfulness": 1, "Negotiating": 1, "RangedCombat": 1, "Research": 1, "Science": 1, "SpellCasting": 1, "Translating": 1, "Yoga": 1 }, "Spells": [{ "Description": "example string", "FireDamage": 1, "HealingPower": 1, "IceDamage": 1, "LightningDamage": 1, "Name": "example string", "PoisonDamage": 1, "WaterDamage": 1, "WindDamage": 1 }], "STARCLIColour": /* <ConsoleColor> */, "Stats": { "Energy": { "Current": 1, "Max": 1 }, "HP": {}, "Mana": {}, "Stamina": {} }, "SuperPowers": { "AstralProjection": 1, "BioLocatation": 1, "Flight": 1, "FreezeBreath": 1, "HeatVision": 1, "Invulnerability": 1, "RemoteViewing": 1, "SuperSpeed": 1, "SuperStrength": 1, "Telekinesis": 1, "Telepathy": 1, "Teleportation": 1, "XRayVision": 1 }, "ActiveQuestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ActiveObjectiveId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }
2465
+ }
2466
+ ```
2467
+
2468
+ ---
2469
+
2470
+ ### `linkProviderPrivateKeyToAvatarByAvatarId`
2471
+
2472
+ Link's a given Avatar to a Providers Private Key (password, crypto private key, etc).
2473
+
2474
+ **POST** `api/keys/link_provider_private_key_to_avatar_by_id`
2475
+
2476
+ **Request**
2477
+
2478
+ Body type: `LinkProviderKeyToAvatarParams`
2479
+
2480
+ | Field | Type |
2481
+ | --- | --- |
2482
+ | `WalletId` | `Guid` |
2483
+ | `ProviderKey` | `string` |
2484
+ | `WalletAddress` | `string` |
2485
+ | `WalletAddressSegwitP2SH` | `string` |
2486
+ | `ShowPublicKey` | `bool` |
2487
+ | `ShowPrivateKey` | `bool` |
2488
+ | `ShowSecretRecoveryWords` | `bool` |
2489
+
2490
+ **Response**
2491
+
2492
+ Standard `OASISResult` envelope (see top of this page) with:
2493
+
2494
+ `result` type: `IProviderWallet`
2495
+
2496
+ | Field | Type |
2497
+ | --- | --- |
2498
+ | `AvatarId` | `Guid` |
2499
+ | `WalletId` | `Guid` |
2500
+ | `Name` | `string` |
2501
+ | `Description` | `new string` |
2502
+ | `PrivateKey` | `string` |
2503
+ | `PublicKey` | `string` |
2504
+ | `WalletAddress` | `string` |
2505
+ | `WalletAddressSegwitP2SH` | `string` |
2506
+ | `SecretRecoveryPhrase` | `string` |
2507
+ | `Transactions` | `List<IWalletTransaction>` |
2508
+ | `ProviderType` | `ProviderType` |
2509
+ | `Balance` | `double` |
2510
+ | `IsDefaultWallet` | `bool` |
2511
+
2512
+ **Example**
2513
+
2514
+ ```js
2515
+ const { isError, message, result } = await oasis.keys.linkProviderPrivateKeyToAvatarByAvatarId({
2516
+ walletId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
2517
+ providerKey: "example string",
2518
+ walletAddress: "example string",
2519
+ walletAddressSegwitP2SH: "example string",
2520
+ showPublicKey: true,
2521
+ showPrivateKey: true,
2522
+ showSecretRecoveryWords: true
2523
+ });
2524
+ if (isError) throw new Error(message);
2525
+ console.log(result);
2526
+ ```
2527
+
2528
+ Example response:
2529
+
2530
+ ```json
2531
+ {
2532
+ "isError": false,
2533
+ "message": "",
2534
+ "result": { "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 }
2535
+ }
2536
+ ```
2537
+
2538
+ ---
2539
+
2540
+ ### `linkProviderPrivateKeyToAvatarByEmail`
2541
+
2542
+ Link's a given Avatar to a Providers Private Key (password, crypto private key, etc).
2543
+
2544
+ **POST** `api/keys/link_provider_private_key_to_avatar_by_email`
2545
+
2546
+ **Request**
2547
+
2548
+ Body type: `LinkProviderKeyToAvatarParams`
2549
+
2550
+ | Field | Type |
2551
+ | --- | --- |
2552
+ | `WalletId` | `Guid` |
2553
+ | `ProviderKey` | `string` |
2554
+ | `WalletAddress` | `string` |
2555
+ | `WalletAddressSegwitP2SH` | `string` |
2556
+ | `ShowPublicKey` | `bool` |
2557
+ | `ShowPrivateKey` | `bool` |
2558
+ | `ShowSecretRecoveryWords` | `bool` |
2559
+
2560
+ **Response**
2561
+
2562
+ Standard `OASISResult` envelope (see top of this page) with:
2563
+
2564
+ `result` type: `bool`
2565
+
2566
+ **Example**
2567
+
2568
+ ```js
2569
+ const { isError, message, result } = await oasis.keys.linkProviderPrivateKeyToAvatarByEmail({
2570
+ walletId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
2571
+ providerKey: "example string",
2572
+ walletAddress: "example string",
2573
+ walletAddressSegwitP2SH: "example string",
2574
+ showPublicKey: true,
2575
+ showPrivateKey: true,
2576
+ showSecretRecoveryWords: true
2577
+ });
2578
+ if (isError) throw new Error(message);
2579
+ console.log(result);
2580
+ ```
2581
+
2582
+ Example response:
2583
+
2584
+ ```json
2585
+ {
2586
+ "isError": false,
2587
+ "message": "",
2588
+ "result": true
2589
+ }
2590
+ ```
2591
+
2592
+ ---
2593
+
2594
+ ### `linkProviderPrivateKeyToAvatarByUsername`
2595
+
2596
+ Link's a given Avatar to a Providers Private Key (password, crypto private key, etc).
2597
+
2598
+ **POST** `api/keys/link_provider_private_key_to_avatar_by_username`
2599
+
2600
+ **Request**
2601
+
2602
+ Body type: `LinkProviderKeyToAvatarParams`
2603
+
2604
+ | Field | Type |
2605
+ | --- | --- |
2606
+ | `WalletId` | `Guid` |
2607
+ | `ProviderKey` | `string` |
2608
+ | `WalletAddress` | `string` |
2609
+ | `WalletAddressSegwitP2SH` | `string` |
2610
+ | `ShowPublicKey` | `bool` |
2611
+ | `ShowPrivateKey` | `bool` |
2612
+ | `ShowSecretRecoveryWords` | `bool` |
2613
+
2614
+ **Response**
2615
+
2616
+ Standard `OASISResult` envelope (see top of this page) with:
2617
+
2618
+ `result` type: `IProviderWallet`
2619
+
2620
+ | Field | Type |
2621
+ | --- | --- |
2622
+ | `AvatarId` | `Guid` |
2623
+ | `WalletId` | `Guid` |
2624
+ | `Name` | `string` |
2625
+ | `Description` | `new string` |
2626
+ | `PrivateKey` | `string` |
2627
+ | `PublicKey` | `string` |
2628
+ | `WalletAddress` | `string` |
2629
+ | `WalletAddressSegwitP2SH` | `string` |
2630
+ | `SecretRecoveryPhrase` | `string` |
2631
+ | `Transactions` | `List<IWalletTransaction>` |
2632
+ | `ProviderType` | `ProviderType` |
2633
+ | `Balance` | `double` |
2634
+ | `IsDefaultWallet` | `bool` |
2635
+
2636
+ **Example**
2637
+
2638
+ ```js
2639
+ const { isError, message, result } = await oasis.keys.linkProviderPrivateKeyToAvatarByUsername({
2640
+ walletId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
2641
+ providerKey: "example string",
2642
+ walletAddress: "example string",
2643
+ walletAddressSegwitP2SH: "example string",
2644
+ showPublicKey: true,
2645
+ showPrivateKey: true,
2646
+ showSecretRecoveryWords: true
2647
+ });
2648
+ if (isError) throw new Error(message);
2649
+ console.log(result);
2650
+ ```
2651
+
2652
+ Example response:
2653
+
2654
+ ```json
2655
+ {
2656
+ "isError": false,
2657
+ "message": "",
2658
+ "result": { "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 }
2659
+ }
2660
+ ```
2661
+
2662
+ ---
2663
+
2664
+ ### `linkProviderPublicKeyToAvatarByAvatarId`
2665
+
2666
+ Link's a given Avatar to a Providers Public Key (private/public key pairs or username, accountname, unique id, agentId, hash, etc).
2667
+
2668
+ **POST** `api/keys/link_provider_public_key_to_avatar_by_id`
2669
+
2670
+ **Request**
2671
+
2672
+ Body type: `LinkProviderKeyToAvatarParams`
2673
+
2674
+ | Field | Type |
2675
+ | --- | --- |
2676
+ | `WalletId` | `Guid` |
2677
+ | `ProviderKey` | `string` |
2678
+ | `WalletAddress` | `string` |
2679
+ | `WalletAddressSegwitP2SH` | `string` |
2680
+ | `ShowPublicKey` | `bool` |
2681
+ | `ShowPrivateKey` | `bool` |
2682
+ | `ShowSecretRecoveryWords` | `bool` |
2683
+
2684
+ **Response**
2685
+
2686
+ Standard `OASISResult` envelope (see top of this page) with:
2687
+
2688
+ `result` type: `IProviderWallet`
2689
+
2690
+ | Field | Type |
2691
+ | --- | --- |
2692
+ | `AvatarId` | `Guid` |
2693
+ | `WalletId` | `Guid` |
2694
+ | `Name` | `string` |
2695
+ | `Description` | `new string` |
2696
+ | `PrivateKey` | `string` |
2697
+ | `PublicKey` | `string` |
2698
+ | `WalletAddress` | `string` |
2699
+ | `WalletAddressSegwitP2SH` | `string` |
2700
+ | `SecretRecoveryPhrase` | `string` |
2701
+ | `Transactions` | `List<IWalletTransaction>` |
2702
+ | `ProviderType` | `ProviderType` |
2703
+ | `Balance` | `double` |
2704
+ | `IsDefaultWallet` | `bool` |
2705
+
2706
+ **Example**
2707
+
2708
+ ```js
2709
+ const { isError, message, result } = await oasis.keys.linkProviderPublicKeyToAvatarByAvatarId({
2710
+ walletId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
2711
+ providerKey: "example string",
2712
+ walletAddress: "example string",
2713
+ walletAddressSegwitP2SH: "example string",
2714
+ showPublicKey: true,
2715
+ showPrivateKey: true,
2716
+ showSecretRecoveryWords: true
2717
+ });
2718
+ if (isError) throw new Error(message);
2719
+ console.log(result);
2720
+ ```
2721
+
2722
+ Example response:
2723
+
2724
+ ```json
2725
+ {
2726
+ "isError": false,
2727
+ "message": "",
2728
+ "result": { "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 }
2729
+ }
2730
+ ```
2731
+
2732
+ ---
2733
+
2734
+ ### `linkProviderPublicKeyToAvatarByEmail`
2735
+
2736
+ Link's a given Avatar to a Providers Public Key (private/public key pairs or username, accountname, unique id, agentId, hash, etc).
2737
+
2738
+ **POST** `api/keys/link_provider_public_key_to_avatar_by_email`
2739
+
2740
+ **Request**
2741
+
2742
+ Body type: `LinkProviderKeyToAvatarParams`
2743
+
2744
+ | Field | Type |
2745
+ | --- | --- |
2746
+ | `WalletId` | `Guid` |
2747
+ | `ProviderKey` | `string` |
2748
+ | `WalletAddress` | `string` |
2749
+ | `WalletAddressSegwitP2SH` | `string` |
2750
+ | `ShowPublicKey` | `bool` |
2751
+ | `ShowPrivateKey` | `bool` |
2752
+ | `ShowSecretRecoveryWords` | `bool` |
2753
+
2754
+ **Response**
2755
+
2756
+ Standard `OASISResult` envelope (see top of this page) with:
2757
+
2758
+ `result` type: `IProviderWallet`
2759
+
2760
+ | Field | Type |
2761
+ | --- | --- |
2762
+ | `AvatarId` | `Guid` |
2763
+ | `WalletId` | `Guid` |
2764
+ | `Name` | `string` |
2765
+ | `Description` | `new string` |
2766
+ | `PrivateKey` | `string` |
2767
+ | `PublicKey` | `string` |
2768
+ | `WalletAddress` | `string` |
2769
+ | `WalletAddressSegwitP2SH` | `string` |
2770
+ | `SecretRecoveryPhrase` | `string` |
2771
+ | `Transactions` | `List<IWalletTransaction>` |
2772
+ | `ProviderType` | `ProviderType` |
2773
+ | `Balance` | `double` |
2774
+ | `IsDefaultWallet` | `bool` |
2775
+
2776
+ **Example**
2777
+
2778
+ ```js
2779
+ const { isError, message, result } = await oasis.keys.linkProviderPublicKeyToAvatarByEmail({
2780
+ walletId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
2781
+ providerKey: "example string",
2782
+ walletAddress: "example string",
2783
+ walletAddressSegwitP2SH: "example string",
2784
+ showPublicKey: true,
2785
+ showPrivateKey: true,
2786
+ showSecretRecoveryWords: true
2787
+ });
2788
+ if (isError) throw new Error(message);
2789
+ console.log(result);
2790
+ ```
2791
+
2792
+ Example response:
2793
+
2794
+ ```json
2795
+ {
2796
+ "isError": false,
2797
+ "message": "",
2798
+ "result": { "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 }
2799
+ }
2800
+ ```
2801
+
2802
+ ---
2803
+
2804
+ ### `linkProviderPublicKeyToAvatarByUsername`
2805
+
2806
+ Link's a given Avatar to a Providers Public Key (private/public key pairs or username, accountname, unique id, agentId, hash, etc).
2807
+
2808
+ **POST** `api/keys/link_provider_public_key_to_avatar_by_username`
2809
+
2810
+ **Request**
2811
+
2812
+ Body type: `LinkProviderKeyToAvatarParams`
2813
+
2814
+ | Field | Type |
2815
+ | --- | --- |
2816
+ | `WalletId` | `Guid` |
2817
+ | `ProviderKey` | `string` |
2818
+ | `WalletAddress` | `string` |
2819
+ | `WalletAddressSegwitP2SH` | `string` |
2820
+ | `ShowPublicKey` | `bool` |
2821
+ | `ShowPrivateKey` | `bool` |
2822
+ | `ShowSecretRecoveryWords` | `bool` |
2823
+
2824
+ **Response**
2825
+
2826
+ Standard `OASISResult` envelope (see top of this page) with:
2827
+
2828
+ `result` type: `IProviderWallet`
2829
+
2830
+ | Field | Type |
2831
+ | --- | --- |
2832
+ | `AvatarId` | `Guid` |
2833
+ | `WalletId` | `Guid` |
2834
+ | `Name` | `string` |
2835
+ | `Description` | `new string` |
2836
+ | `PrivateKey` | `string` |
2837
+ | `PublicKey` | `string` |
2838
+ | `WalletAddress` | `string` |
2839
+ | `WalletAddressSegwitP2SH` | `string` |
2840
+ | `SecretRecoveryPhrase` | `string` |
2841
+ | `Transactions` | `List<IWalletTransaction>` |
2842
+ | `ProviderType` | `ProviderType` |
2843
+ | `Balance` | `double` |
2844
+ | `IsDefaultWallet` | `bool` |
2845
+
2846
+ **Example**
2847
+
2848
+ ```js
2849
+ const { isError, message, result } = await oasis.keys.linkProviderPublicKeyToAvatarByUsername({
2850
+ walletId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
2851
+ providerKey: "example string",
2852
+ walletAddress: "example string",
2853
+ walletAddressSegwitP2SH: "example string",
2854
+ showPublicKey: true,
2855
+ showPrivateKey: true,
2856
+ showSecretRecoveryWords: true
2857
+ });
2858
+ if (isError) throw new Error(message);
2859
+ console.log(result);
2860
+ ```
2861
+
2862
+ Example response:
2863
+
2864
+ ```json
2865
+ {
2866
+ "isError": false,
2867
+ "message": "",
2868
+ "result": { "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 }
2869
+ }
2870
+ ```
2871
+
2872
+ ---
2873
+
2874
+ ### `linkProviderWalletAddressToAvatarByEmail`
2875
+
2876
+ Link's a given Avatar to a Provider's Wallet Address by email.
2877
+
2878
+ **POST** `api/keys/link_provider_wallet_address_to_avatar_by_email`
2879
+
2880
+ **Request**
2881
+
2882
+ Body type: `LinkProviderKeyToAvatarParams`
2883
+
2884
+ | Field | Type |
2885
+ | --- | --- |
2886
+ | `WalletId` | `Guid` |
2887
+ | `ProviderKey` | `string` |
2888
+ | `WalletAddress` | `string` |
2889
+ | `WalletAddressSegwitP2SH` | `string` |
2890
+ | `ShowPublicKey` | `bool` |
2891
+ | `ShowPrivateKey` | `bool` |
2892
+ | `ShowSecretRecoveryWords` | `bool` |
2893
+
2894
+ **Response**
2895
+
2896
+ Standard `OASISResult` envelope (see top of this page) with:
2897
+
2898
+ `result` type: `IProviderWallet`
2899
+
2900
+ | Field | Type |
2901
+ | --- | --- |
2902
+ | `AvatarId` | `Guid` |
2903
+ | `WalletId` | `Guid` |
2904
+ | `Name` | `string` |
2905
+ | `Description` | `new string` |
2906
+ | `PrivateKey` | `string` |
2907
+ | `PublicKey` | `string` |
2908
+ | `WalletAddress` | `string` |
2909
+ | `WalletAddressSegwitP2SH` | `string` |
2910
+ | `SecretRecoveryPhrase` | `string` |
2911
+ | `Transactions` | `List<IWalletTransaction>` |
2912
+ | `ProviderType` | `ProviderType` |
2913
+ | `Balance` | `double` |
2914
+ | `IsDefaultWallet` | `bool` |
2915
+
2916
+ **Example**
2917
+
2918
+ ```js
2919
+ const { isError, message, result } = await oasis.keys.linkProviderWalletAddressToAvatarByEmail({
2920
+ walletId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
2921
+ providerKey: "example string",
2922
+ walletAddress: "example string",
2923
+ walletAddressSegwitP2SH: "example string",
2924
+ showPublicKey: true,
2925
+ showPrivateKey: true,
2926
+ showSecretRecoveryWords: true
2927
+ });
2928
+ if (isError) throw new Error(message);
2929
+ console.log(result);
2930
+ ```
2931
+
2932
+ Example response:
2933
+
2934
+ ```json
2935
+ {
2936
+ "isError": false,
2937
+ "message": "",
2938
+ "result": { "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 }
2939
+ }
2940
+ ```
2941
+
2942
+ ---
2943
+
2944
+ ### `linkProviderWalletAddressToAvatarById`
2945
+
2946
+ Link's a given Avatar to a Provider's Wallet Address by avatar ID.
2947
+
2948
+ **POST** `api/keys/link_provider_wallet_address_to_avatar_by_id`
2949
+
2950
+ **Request**
2951
+
2952
+ Body type: `LinkProviderKeyToAvatarParams`
2953
+
2954
+ | Field | Type |
2955
+ | --- | --- |
2956
+ | `WalletId` | `Guid` |
2957
+ | `ProviderKey` | `string` |
2958
+ | `WalletAddress` | `string` |
2959
+ | `WalletAddressSegwitP2SH` | `string` |
2960
+ | `ShowPublicKey` | `bool` |
2961
+ | `ShowPrivateKey` | `bool` |
2962
+ | `ShowSecretRecoveryWords` | `bool` |
2963
+
2964
+ **Response**
2965
+
2966
+ Standard `OASISResult` envelope (see top of this page) with:
2967
+
2968
+ `result` type: `IProviderWallet`
2969
+
2970
+ | Field | Type |
2971
+ | --- | --- |
2972
+ | `AvatarId` | `Guid` |
2973
+ | `WalletId` | `Guid` |
2974
+ | `Name` | `string` |
2975
+ | `Description` | `new string` |
2976
+ | `PrivateKey` | `string` |
2977
+ | `PublicKey` | `string` |
2978
+ | `WalletAddress` | `string` |
2979
+ | `WalletAddressSegwitP2SH` | `string` |
2980
+ | `SecretRecoveryPhrase` | `string` |
2981
+ | `Transactions` | `List<IWalletTransaction>` |
2982
+ | `ProviderType` | `ProviderType` |
2983
+ | `Balance` | `double` |
2984
+ | `IsDefaultWallet` | `bool` |
2985
+
2986
+ **Example**
2987
+
2988
+ ```js
2989
+ const { isError, message, result } = await oasis.keys.linkProviderWalletAddressToAvatarById({
2990
+ walletId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
2991
+ providerKey: "example string",
2992
+ walletAddress: "example string",
2993
+ walletAddressSegwitP2SH: "example string",
2994
+ showPublicKey: true,
2995
+ showPrivateKey: true,
2996
+ showSecretRecoveryWords: true
2997
+ });
2998
+ if (isError) throw new Error(message);
2999
+ console.log(result);
3000
+ ```
3001
+
3002
+ Example response:
3003
+
3004
+ ```json
3005
+ {
3006
+ "isError": false,
3007
+ "message": "",
3008
+ "result": { "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 }
3009
+ }
3010
+ ```
3011
+
3012
+ ---
3013
+
3014
+ ### `linkProviderWalletAddressToAvatarByUsername`
3015
+
3016
+ Link's a given Avatar to a Provider's Wallet Address by username.
3017
+
3018
+ **POST** `api/keys/link_provider_wallet_address_to_avatar_by_username`
3019
+
3020
+ **Request**
3021
+
3022
+ Body type: `LinkProviderKeyToAvatarParams`
3023
+
3024
+ | Field | Type |
3025
+ | --- | --- |
3026
+ | `WalletId` | `Guid` |
3027
+ | `ProviderKey` | `string` |
3028
+ | `WalletAddress` | `string` |
3029
+ | `WalletAddressSegwitP2SH` | `string` |
3030
+ | `ShowPublicKey` | `bool` |
3031
+ | `ShowPrivateKey` | `bool` |
3032
+ | `ShowSecretRecoveryWords` | `bool` |
3033
+
3034
+ **Response**
3035
+
3036
+ Standard `OASISResult` envelope (see top of this page) with:
3037
+
3038
+ `result` type: `IProviderWallet`
3039
+
3040
+ | Field | Type |
3041
+ | --- | --- |
3042
+ | `AvatarId` | `Guid` |
3043
+ | `WalletId` | `Guid` |
3044
+ | `Name` | `string` |
3045
+ | `Description` | `new string` |
3046
+ | `PrivateKey` | `string` |
3047
+ | `PublicKey` | `string` |
3048
+ | `WalletAddress` | `string` |
3049
+ | `WalletAddressSegwitP2SH` | `string` |
3050
+ | `SecretRecoveryPhrase` | `string` |
3051
+ | `Transactions` | `List<IWalletTransaction>` |
3052
+ | `ProviderType` | `ProviderType` |
3053
+ | `Balance` | `double` |
3054
+ | `IsDefaultWallet` | `bool` |
3055
+
3056
+ **Example**
3057
+
3058
+ ```js
3059
+ const { isError, message, result } = await oasis.keys.linkProviderWalletAddressToAvatarByUsername({
3060
+ walletId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3061
+ providerKey: "example string",
3062
+ walletAddress: "example string",
3063
+ walletAddressSegwitP2SH: "example string",
3064
+ showPublicKey: true,
3065
+ showPrivateKey: true,
3066
+ showSecretRecoveryWords: true
3067
+ });
3068
+ if (isError) throw new Error(message);
3069
+ console.log(result);
3070
+ ```
3071
+
3072
+ Example response:
3073
+
3074
+ ```json
3075
+ {
3076
+ "isError": false,
3077
+ "message": "",
3078
+ "result": { "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 }
3079
+ }
3080
+ ```
3081
+
3082
+ ---
3083
+
3084
+ ### `linkTelosAccountToAvatar`
3085
+
3086
+ Link's a given telosAccount to the given avatar.
3087
+
3088
+ **POST** `api/keys/{id:Guid}/{telosAccountName}`
3089
+
3090
+ Route parameters:
3091
+
3092
+ | Field | Type |
3093
+ | --- | --- |
3094
+ | `id` | `Guid` |
3095
+ | `telosAccountName` | `string` |
3096
+
3097
+ **Request**
3098
+
3099
+ No request body.
3100
+
3101
+ **Response**
3102
+
3103
+ Standard `OASISResult` envelope (see top of this page) with:
3104
+
3105
+ `result` type: `IAvatarDetail`
3106
+
3107
+ | Field | Type |
3108
+ | --- | --- |
3109
+ | `Id` | `new Guid` |
3110
+ | `Username` | `string` |
3111
+ | `Email` | `string` |
3112
+ | `Karma` | `long` |
3113
+ | `Level` | `int` |
3114
+ | `XP` | `int` |
3115
+ | `Model3D` | `string` |
3116
+ | `UmaJson` | `string` |
3117
+ | `Portrait` | `string` |
3118
+ | `DOB` | `DateTime` |
3119
+ | `Address` | `string` |
3120
+ | `Town` | `string` |
3121
+ | `County` | `string` |
3122
+ | `Country` | `string` |
3123
+ | `Postcode` | `string` |
3124
+ | `Landline` | `string` |
3125
+ | `Mobile` | `string` |
3126
+ | `Achievements` | `IList<IAchievement>` |
3127
+ | `Attributes` | `IAvatarAttributes` |
3128
+ | `Aura` | `IAvatarAura` |
3129
+ | `Chakras` | `IAvatarChakras` |
3130
+ | `DimensionLevelIds` | `IDictionary<DimensionLevel, Guid>` |
3131
+ | `DimensionLevels` | `IDictionary<DimensionLevel, IHolon>` |
3132
+ | `FavouriteColour` | `ConsoleColor` |
3133
+ | `GeneKeys` | `IList<IGeneKey>` |
3134
+ | `Gifts` | `IList<IAvatarGift>` |
3135
+ | `HeartRateData` | `IList<IHeartRateEntry>` |
3136
+ | `HumanDesign` | `IHumanDesign` |
3137
+ | `Inventory` | `IList<IInventoryItem>` |
3138
+ | `KarmaAkashicRecords` | `IList<IKarmaAkashicRecord>` |
3139
+ | `Omniverse` | `IOmiverse` |
3140
+ | `Skills` | `IAvatarSkills` |
3141
+ | `Spells` | `IList<ISpell>` |
3142
+ | `STARCLIColour` | `ConsoleColor` |
3143
+ | `Stats` | `IAvatarStats` |
3144
+ | `SuperPowers` | `IAvatarSuperPowers` |
3145
+ | `ActiveQuestId` | `Guid?` |
3146
+ | `ActiveObjectiveId` | `Guid?` |
3147
+
3148
+ **Example**
3149
+
3150
+ ```js
3151
+ const { isError, message, result } = await oasis.keys.linkTelosAccountToAvatar({
3152
+ id: '<id>',
3153
+ telosAccountName: '<telosAccountName>'
3154
+ });
3155
+ if (isError) throw new Error(message);
3156
+ console.log(result);
3157
+ ```
3158
+
3159
+ Example response:
3160
+
3161
+ ```json
3162
+ {
3163
+ "isError": false,
3164
+ "message": "",
3165
+ "result": { "Id": /* <new Guid> */, "Username": "example string", "Email": "example string", "Karma": 1, "Level": 1, "XP": 1, "Model3D": "example string", "UmaJson": "example string", "Portrait": "example string", "DOB": "2026-01-01T00:00:00Z", "Address": "example string", "Town": "example string", "County": "example string", "Country": "example string", "Postcode": "example string", "Landline": "example string", "Mobile": "example string", "Achievements": [{ "AchievementEarnt": "2026-01-01T00:00:00Z", "AchievementType": { }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Description": "example string", "KarmaSource": { "Score": 1.0 }, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Name": "example string", "Provider": { "Score": 1.0 }, "WebLink": "example string" }], "Attributes": { "Dexterity": 1, "Intelligence": 1, "Magic": 1, "Speed": 1, "Strength": 1, "Toughness": 1, "Wisdom": 1, "Vitality": 1, "Endurance": 1 }, "Aura": { "Progress": 1, "Brightness": 1, "Size": 1, "ColourBlue": 1, "ColourGreen": 1, "ColourRed": 1, "Level": 1, "Value": 1 }, "Chakras": { "Crown": { }, "Heart": { }, "Root": { }, "Sacral": { }, "SolarPlexus": { }, "ThirdEye": { }, "Throat": { } }, "DimensionLevelIds": /* <IDictionary<DimensionLevel, Guid>> */, "DimensionLevels": /* <IDictionary<DimensionLevel, IHolon>> */, "FavouriteColour": /* <ConsoleColor> */, "GeneKeys": [{ "Description": "example string", "Gift": "example string", "Name": "example string", "Shadow": "example string", "Sidhi": "example string" }], "Gifts": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "GiftEarnt": "2026-01-01T00:00:00Z", "GiftType": {}, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Provider": {}, "WebLink": "example string" }], "HeartRateData": [{ "HeartRateValue": 1, "TimeStamp": "2026-01-01T00:00:00Z" }], "HumanDesign": { "Type": "example string" }, "Inventory": [{ "Image2D": "<base64-bytes>", "Image2DURI": "https://example.com/asset.png", "ThumbnailUrl": "example string", "Object3D": "<base64-bytes>", "Object3DURI": "https://example.com/asset.png", "Quantity": 1, "Stack": true, "IsStackable": true, "GameSource": "example string", "ItemType": "example string", "NftId": "example string", "Rarity": "example string", "MaxQuantity": 1, "Weight": 1.0, "IsUsable": true, "IsTradeable": true, "OwnerAvatarId": "example string", "AcquiredOn": "2026-01-01T00:00:00Z", "LastUsedOn": "2026-01-01T00:00:00Z", "Properties": { "<string>": {} } }], "KarmaAkashicRecords": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Date": "2026-01-01T00:00:00Z", "Karma": 1, "KarmaEarntOrLost": { "Score": 1.0 }, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "KarmaTypeNegative": { "Score": 1.0 }, "KarmaTypePositive": { "Score": 1.0 }, "Provider": {}, "TotalKarma": 1, "WebLink": "example string" }], "Omniverse": { "GreatGrandSuperStar": { }, "Dimensions": { "EighthDimension": { }, "NinthDimension": { }, "TenthDimension": { }, "EleventhDimension": { }, "TwelfthDimension": { }, "CustomDimensions": [{ "DimensionLevel": { } }] }, "Multiverses": [{ "GrandSuperStar": { "Stars": [ /* <I> */ ] }, "Dimensions": { "FirstDimension": { "Universe": { "Dimensions": [], "GalaxyClusters": [{ "Galaxies": [{ "SuperStar": { "Stars": [{ "Luminosity": 1, "StarType": { }, "StarClassification": { }, "StarBinaryType": { } }] }, "SolarSystems": [{ "Star": {}, "Planets": [{ "Moons": [{ }] }], "Asteroids": [{ }], "Comets": [{ }], "Meteroids": [{ }] }], "Nebulas": [{ }], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] }], "SolarSystems": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [], "IsSuperCluster": true }], "SolarSystems": [], "Nebulas": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] } }, "SecondDimension": { "Universe": {} }, "ThirdDimension": { "UniversePrime": {}, "MagicVerse": {}, "ParallelUniverses": [] }, "FourthDimension": { "Universe": {} }, "FifthDimension": { "Universe": {} }, "SixthDimension": { "Universe": {} }, "SeventhDimension": { "Universe": {} }, "CustomDimensions": [] } }] }, "Skills": { "Computers": 1, "Engineering": 1, "Farming": 1, "FireStarting": 1, "Fishing": 1, "Languages": 1, "Meditation": 1, "MeleeCombat": 1, "Mindfulness": 1, "Negotiating": 1, "RangedCombat": 1, "Research": 1, "Science": 1, "SpellCasting": 1, "Translating": 1, "Yoga": 1 }, "Spells": [{ "Description": "example string", "FireDamage": 1, "HealingPower": 1, "IceDamage": 1, "LightningDamage": 1, "Name": "example string", "PoisonDamage": 1, "WaterDamage": 1, "WindDamage": 1 }], "STARCLIColour": /* <ConsoleColor> */, "Stats": { "Energy": { "Current": 1, "Max": 1 }, "HP": {}, "Mana": {}, "Stamina": {} }, "SuperPowers": { "AstralProjection": 1, "BioLocatation": 1, "Flight": 1, "FreezeBreath": 1, "HeatVision": 1, "Invulnerability": 1, "RemoteViewing": 1, "SuperSpeed": 1, "SuperStrength": 1, "Telekinesis": 1, "Telepathy": 1, "Teleportation": 1, "XRayVision": 1 }, "ActiveQuestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ActiveObjectiveId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }
3166
+ }
3167
+ ```
3168
+
3169
+ ---
3170
+
3171
+ ### `linkTelosAccountToAvatar2`
3172
+
3173
+ Link's a given telosAccount to the given avatar.
3174
+
3175
+ **POST** `api/keys`
3176
+
3177
+ **Request**
3178
+
3179
+ Body type: `LinkProviderKeyToAvatar` _(type definition not found in the OASIS2 source - field list unavailable)_
3180
+
3181
+ **Response**
3182
+
3183
+ Standard `OASISResult` envelope (see top of this page) with:
3184
+
3185
+ `result` type: `IAvatarDetail`
3186
+
3187
+ | Field | Type |
3188
+ | --- | --- |
3189
+ | `Id` | `new Guid` |
3190
+ | `Username` | `string` |
3191
+ | `Email` | `string` |
3192
+ | `Karma` | `long` |
3193
+ | `Level` | `int` |
3194
+ | `XP` | `int` |
3195
+ | `Model3D` | `string` |
3196
+ | `UmaJson` | `string` |
3197
+ | `Portrait` | `string` |
3198
+ | `DOB` | `DateTime` |
3199
+ | `Address` | `string` |
3200
+ | `Town` | `string` |
3201
+ | `County` | `string` |
3202
+ | `Country` | `string` |
3203
+ | `Postcode` | `string` |
3204
+ | `Landline` | `string` |
3205
+ | `Mobile` | `string` |
3206
+ | `Achievements` | `IList<IAchievement>` |
3207
+ | `Attributes` | `IAvatarAttributes` |
3208
+ | `Aura` | `IAvatarAura` |
3209
+ | `Chakras` | `IAvatarChakras` |
3210
+ | `DimensionLevelIds` | `IDictionary<DimensionLevel, Guid>` |
3211
+ | `DimensionLevels` | `IDictionary<DimensionLevel, IHolon>` |
3212
+ | `FavouriteColour` | `ConsoleColor` |
3213
+ | `GeneKeys` | `IList<IGeneKey>` |
3214
+ | `Gifts` | `IList<IAvatarGift>` |
3215
+ | `HeartRateData` | `IList<IHeartRateEntry>` |
3216
+ | `HumanDesign` | `IHumanDesign` |
3217
+ | `Inventory` | `IList<IInventoryItem>` |
3218
+ | `KarmaAkashicRecords` | `IList<IKarmaAkashicRecord>` |
3219
+ | `Omniverse` | `IOmiverse` |
3220
+ | `Skills` | `IAvatarSkills` |
3221
+ | `Spells` | `IList<ISpell>` |
3222
+ | `STARCLIColour` | `ConsoleColor` |
3223
+ | `Stats` | `IAvatarStats` |
3224
+ | `SuperPowers` | `IAvatarSuperPowers` |
3225
+ | `ActiveQuestId` | `Guid?` |
3226
+ | `ActiveObjectiveId` | `Guid?` |
3227
+
3228
+ **Example**
3229
+
3230
+ ```js
3231
+ const { isError, message, result } = await oasis.keys.linkTelosAccountToAvatar2({
3232
+ /* ...request body fields */
3233
+ });
3234
+ if (isError) throw new Error(message);
3235
+ console.log(result);
3236
+ ```
3237
+
3238
+ Example response:
3239
+
3240
+ ```json
3241
+ {
3242
+ "isError": false,
3243
+ "message": "",
3244
+ "result": { "Id": /* <new Guid> */, "Username": "example string", "Email": "example string", "Karma": 1, "Level": 1, "XP": 1, "Model3D": "example string", "UmaJson": "example string", "Portrait": "example string", "DOB": "2026-01-01T00:00:00Z", "Address": "example string", "Town": "example string", "County": "example string", "Country": "example string", "Postcode": "example string", "Landline": "example string", "Mobile": "example string", "Achievements": [{ "AchievementEarnt": "2026-01-01T00:00:00Z", "AchievementType": { }, "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Description": "example string", "KarmaSource": { "Score": 1.0 }, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Name": "example string", "Provider": { "Score": 1.0 }, "WebLink": "example string" }], "Attributes": { "Dexterity": 1, "Intelligence": 1, "Magic": 1, "Speed": 1, "Strength": 1, "Toughness": 1, "Wisdom": 1, "Vitality": 1, "Endurance": 1 }, "Aura": { "Progress": 1, "Brightness": 1, "Size": 1, "ColourBlue": 1, "ColourGreen": 1, "ColourRed": 1, "Level": 1, "Value": 1 }, "Chakras": { "Crown": { }, "Heart": { }, "Root": { }, "Sacral": { }, "SolarPlexus": { }, "ThirdEye": { }, "Throat": { } }, "DimensionLevelIds": /* <IDictionary<DimensionLevel, Guid>> */, "DimensionLevels": /* <IDictionary<DimensionLevel, IHolon>> */, "FavouriteColour": /* <ConsoleColor> */, "GeneKeys": [{ "Description": "example string", "Gift": "example string", "Name": "example string", "Shadow": "example string", "Sidhi": "example string" }], "Gifts": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "GiftEarnt": "2026-01-01T00:00:00Z", "GiftType": {}, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "Provider": {}, "WebLink": "example string" }], "HeartRateData": [{ "HeartRateValue": 1, "TimeStamp": "2026-01-01T00:00:00Z" }], "HumanDesign": { "Type": "example string" }, "Inventory": [{ "Image2D": "<base64-bytes>", "Image2DURI": "https://example.com/asset.png", "ThumbnailUrl": "example string", "Object3D": "<base64-bytes>", "Object3DURI": "https://example.com/asset.png", "Quantity": 1, "Stack": true, "IsStackable": true, "GameSource": "example string", "ItemType": "example string", "NftId": "example string", "Rarity": "example string", "MaxQuantity": 1, "Weight": 1.0, "IsUsable": true, "IsTradeable": true, "OwnerAvatarId": "example string", "AcquiredOn": "2026-01-01T00:00:00Z", "LastUsedOn": "2026-01-01T00:00:00Z", "Properties": { "<string>": {} } }], "KarmaAkashicRecords": [{ "AvatarId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "Date": "2026-01-01T00:00:00Z", "Karma": 1, "KarmaEarntOrLost": { "Score": 1.0 }, "KarmaSource": {}, "KarmaSourceDesc": "example string", "KarmaSourceTitle": "example string", "KarmaTypeNegative": { "Score": 1.0 }, "KarmaTypePositive": { "Score": 1.0 }, "Provider": {}, "TotalKarma": 1, "WebLink": "example string" }], "Omniverse": { "GreatGrandSuperStar": { }, "Dimensions": { "EighthDimension": { }, "NinthDimension": { }, "TenthDimension": { }, "EleventhDimension": { }, "TwelfthDimension": { }, "CustomDimensions": [{ "DimensionLevel": { } }] }, "Multiverses": [{ "GrandSuperStar": { "Stars": [ /* <I> */ ] }, "Dimensions": { "FirstDimension": { "Universe": { "Dimensions": [], "GalaxyClusters": [{ "Galaxies": [{ "SuperStar": { "Stars": [{ "Luminosity": 1, "StarType": { }, "StarClassification": { }, "StarBinaryType": { } }] }, "SolarSystems": [{ "Star": {}, "Planets": [{ "Moons": [{ }] }], "Asteroids": [{ }], "Comets": [{ }], "Meteroids": [{ }] }], "Nebulas": [{ }], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] }], "SolarSystems": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [], "IsSuperCluster": true }], "SolarSystems": [], "Nebulas": [], "Stars": [], "Planets": [], "Asteroids": [], "Comets": [], "Meteroids": [] } }, "SecondDimension": { "Universe": {} }, "ThirdDimension": { "UniversePrime": {}, "MagicVerse": {}, "ParallelUniverses": [] }, "FourthDimension": { "Universe": {} }, "FifthDimension": { "Universe": {} }, "SixthDimension": { "Universe": {} }, "SeventhDimension": { "Universe": {} }, "CustomDimensions": [] } }] }, "Skills": { "Computers": 1, "Engineering": 1, "Farming": 1, "FireStarting": 1, "Fishing": 1, "Languages": 1, "Meditation": 1, "MeleeCombat": 1, "Mindfulness": 1, "Negotiating": 1, "RangedCombat": 1, "Research": 1, "Science": 1, "SpellCasting": 1, "Translating": 1, "Yoga": 1 }, "Spells": [{ "Description": "example string", "FireDamage": 1, "HealingPower": 1, "IceDamage": 1, "LightningDamage": 1, "Name": "example string", "PoisonDamage": 1, "WaterDamage": 1, "WindDamage": 1 }], "STARCLIColour": /* <ConsoleColor> */, "Stats": { "Energy": { "Current": 1, "Max": 1 }, "HP": {}, "Mana": {}, "Stamina": {} }, "SuperPowers": { "AstralProjection": 1, "BioLocatation": 1, "Flight": 1, "FreezeBreath": 1, "HeatVision": 1, "Invulnerability": 1, "RemoteViewing": 1, "SuperSpeed": 1, "SuperStrength": 1, "Telekinesis": 1, "Telepathy": 1, "Teleportation": 1, "XRayVision": 1 }, "ActiveQuestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "ActiveObjectiveId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }
3245
+ }
3246
+ ```
3247
+
3248
+ ---
3249
+
3250
+ ### `updateKey`
3251
+
3252
+ Updates an existing key
3253
+
3254
+ **PUT** `api/keys/{keyId}`
3255
+
3256
+ Route parameters:
3257
+
3258
+ | Field | Type |
3259
+ | --- | --- |
3260
+ | `keyId` | `Guid` |
3261
+
3262
+ **Request**
3263
+
3264
+ Body type: `UpdateKeyRequest`
3265
+
3266
+ | Field | Type |
3267
+ | --- | --- |
3268
+ | `Name` | `string` |
3269
+ | `Type` | `string` |
3270
+
3271
+ **Response**
3272
+
3273
+ Standard `OASISResult` envelope (see top of this page) with:
3274
+
3275
+ `result` type: `KeyInfo`
3276
+
3277
+ | Field | Type |
3278
+ | --- | --- |
3279
+ | `Id` | `MultiHash` |
3280
+ | `Name` | `string` |
3281
+
3282
+ **Example**
3283
+
3284
+ ```js
3285
+ const { isError, message, result } = await oasis.keys.updateKey({
3286
+ keyId: '<keyId>',
3287
+ name: "example string",
3288
+ type: "example string"
3289
+ });
3290
+ if (isError) throw new Error(message);
3291
+ console.log(result);
3292
+ ```
3293
+
3294
+ Example response:
3295
+
3296
+ ```json
3297
+ {
3298
+ "isError": false,
3299
+ "message": "",
3300
+ "result": { "Id": /* <MultiHash> */, "Name": "example string" }
3301
+ }
3302
+ ```
3303
+