@gala-chain/launchpad-sdk 5.0.4-beta.62 → 5.0.4-beta.64

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 (108) hide show
  1. package/dist/LaunchpadSDK.d.ts +137 -8
  2. package/dist/LaunchpadSDK.d.ts.map +1 -1
  3. package/dist/ai-docs.json +474 -320
  4. package/dist/config/environments.d.ts +2 -0
  5. package/dist/config/environments.d.ts.map +1 -1
  6. package/dist/constants/endpoints.d.ts +44 -0
  7. package/dist/constants/endpoints.d.ts.map +1 -1
  8. package/dist/constants/version.generated.d.ts +1 -1
  9. package/dist/index.browser.d.ts +3 -1
  10. package/dist/index.browser.d.ts.map +1 -1
  11. package/dist/index.browser.esm.js +1 -1
  12. package/dist/index.cjs +1 -1
  13. package/dist/index.esm.js +1 -1
  14. package/dist/index.js +1 -1
  15. package/dist/native.cjs +1 -0
  16. package/dist/native.d.ts +22 -0
  17. package/dist/native.d.ts.map +1 -0
  18. package/dist/native.esm.js +1 -0
  19. package/dist/react.cjs +1 -1
  20. package/dist/react.esm.js +1 -1
  21. package/dist/services/ClientConfigService.d.ts +61 -0
  22. package/dist/services/ClientConfigService.d.ts.map +1 -0
  23. package/dist/services/DexBackendTradeClient.d.ts +34 -0
  24. package/dist/services/DexBackendTradeClient.d.ts.map +1 -0
  25. package/dist/services/DexQuoteService.d.ts +19 -19
  26. package/dist/services/DexQuoteService.d.ts.map +1 -1
  27. package/dist/services/GSwapLiquidityMutationService.d.ts +2 -2
  28. package/dist/services/GSwapLiquidityMutationService.d.ts.map +1 -1
  29. package/dist/services/GSwapLiquidityQueryService.d.ts +2 -2
  30. package/dist/services/GSwapLiquidityQueryService.d.ts.map +1 -1
  31. package/dist/services/GSwapPoolQueryService.d.ts +5 -6
  32. package/dist/services/GSwapPoolQueryService.d.ts.map +1 -1
  33. package/dist/services/GSwapService.d.ts +6 -6
  34. package/dist/services/GSwapService.d.ts.map +1 -1
  35. package/dist/services/GSwapSwapService.d.ts +0 -2
  36. package/dist/services/GSwapSwapService.d.ts.map +1 -1
  37. package/dist/services/GdexStreamService.d.ts +133 -0
  38. package/dist/services/GdexStreamService.d.ts.map +1 -0
  39. package/dist/services/IntervalRegistry.d.ts +79 -0
  40. package/dist/services/IntervalRegistry.d.ts.map +1 -0
  41. package/dist/services/MultiPoolStateManager.d.ts.map +1 -1
  42. package/dist/services/NotificationService.d.ts +113 -0
  43. package/dist/services/NotificationService.d.ts.map +1 -0
  44. package/dist/src/LaunchpadSDK.d.ts +137 -8
  45. package/dist/src/LaunchpadSDK.d.ts.map +1 -1
  46. package/dist/src/config/environments.d.ts +2 -0
  47. package/dist/src/config/environments.d.ts.map +1 -1
  48. package/dist/src/constants/endpoints.d.ts +44 -0
  49. package/dist/src/constants/endpoints.d.ts.map +1 -1
  50. package/dist/src/constants/version.generated.d.ts +1 -1
  51. package/dist/src/index.browser.d.ts +3 -1
  52. package/dist/src/index.browser.d.ts.map +1 -1
  53. package/dist/src/native.d.ts +22 -0
  54. package/dist/src/native.d.ts.map +1 -0
  55. package/dist/src/services/ClientConfigService.d.ts +61 -0
  56. package/dist/src/services/ClientConfigService.d.ts.map +1 -0
  57. package/dist/src/services/DexBackendTradeClient.d.ts +34 -0
  58. package/dist/src/services/DexBackendTradeClient.d.ts.map +1 -0
  59. package/dist/src/services/DexQuoteService.d.ts +19 -19
  60. package/dist/src/services/DexQuoteService.d.ts.map +1 -1
  61. package/dist/src/services/GSwapLiquidityMutationService.d.ts +2 -2
  62. package/dist/src/services/GSwapLiquidityMutationService.d.ts.map +1 -1
  63. package/dist/src/services/GSwapLiquidityQueryService.d.ts +2 -2
  64. package/dist/src/services/GSwapLiquidityQueryService.d.ts.map +1 -1
  65. package/dist/src/services/GSwapPoolQueryService.d.ts +5 -6
  66. package/dist/src/services/GSwapPoolQueryService.d.ts.map +1 -1
  67. package/dist/src/services/GSwapService.d.ts +6 -6
  68. package/dist/src/services/GSwapService.d.ts.map +1 -1
  69. package/dist/src/services/GSwapSwapService.d.ts +0 -2
  70. package/dist/src/services/GSwapSwapService.d.ts.map +1 -1
  71. package/dist/src/services/GdexStreamService.d.ts +133 -0
  72. package/dist/src/services/GdexStreamService.d.ts.map +1 -0
  73. package/dist/src/services/IntervalRegistry.d.ts +79 -0
  74. package/dist/src/services/IntervalRegistry.d.ts.map +1 -0
  75. package/dist/src/services/MultiPoolStateManager.d.ts.map +1 -1
  76. package/dist/src/services/NotificationService.d.ts +113 -0
  77. package/dist/src/services/NotificationService.d.ts.map +1 -0
  78. package/dist/src/types/client-config.dto.d.ts +43 -0
  79. package/dist/src/types/client-config.dto.d.ts.map +1 -0
  80. package/dist/src/types/common.d.ts +2 -0
  81. package/dist/src/types/common.d.ts.map +1 -1
  82. package/dist/src/types/composite-pool.dto.d.ts +0 -2
  83. package/dist/src/types/composite-pool.dto.d.ts.map +1 -1
  84. package/dist/src/types/notification.dto.d.ts +92 -0
  85. package/dist/src/types/notification.dto.d.ts.map +1 -0
  86. package/dist/src/utils/error-utils.d.ts +5 -0
  87. package/dist/src/utils/error-utils.d.ts.map +1 -1
  88. package/dist/src/utils/errors.d.ts +4 -0
  89. package/dist/src/utils/errors.d.ts.map +1 -1
  90. package/dist/src/utils/http.d.ts.map +1 -1
  91. package/dist/types/client-config.dto.d.ts +43 -0
  92. package/dist/types/client-config.dto.d.ts.map +1 -0
  93. package/dist/types/common.d.ts +2 -0
  94. package/dist/types/common.d.ts.map +1 -1
  95. package/dist/types/composite-pool.dto.d.ts +0 -2
  96. package/dist/types/composite-pool.dto.d.ts.map +1 -1
  97. package/dist/types/notification.dto.d.ts +92 -0
  98. package/dist/types/notification.dto.d.ts.map +1 -0
  99. package/dist/utils/error-utils.d.ts +5 -0
  100. package/dist/utils/error-utils.d.ts.map +1 -1
  101. package/dist/utils/errors.d.ts +4 -0
  102. package/dist/utils/errors.d.ts.map +1 -1
  103. package/dist/utils/http.d.ts.map +1 -1
  104. package/package.json +50 -11
  105. package/dist/services/GalaChainGatewayClient.d.ts +0 -227
  106. package/dist/services/GalaChainGatewayClient.d.ts.map +0 -1
  107. package/dist/src/services/GalaChainGatewayClient.d.ts +0 -227
  108. package/dist/src/services/GalaChainGatewayClient.d.ts.map +0 -1
package/dist/ai-docs.json CHANGED
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "meta": {
3
- "version": "5.0.4-beta.62",
4
- "generatedAt": "2026-03-25T00:20:55.618Z",
5
- "toolCount": 312,
6
- "categoryCount": 38
3
+ "version": "5.0.4-beta.64",
4
+ "generatedAt": "2026-07-11T07:59:52.294Z",
5
+ "toolCount": 317,
6
+ "categoryCount": 39,
7
+ "warnings": [
8
+ "Auth metadata missing from manifest for 6 tool(s); used heuristic fallback: gala_launchpad_fetch_client_flags, gala_launchpad_fetch_notification_preferences, gala_launchpad_flush_cache_wallet_aliases, gala_launchpad_register_push_token, gala_launchpad_unregister_push_token, gala_launchpad_update_notification_preferences"
9
+ ]
7
10
  },
8
11
  "categories": {
9
12
  "pools": {
@@ -252,17 +255,17 @@
252
255
  "messages": {
253
256
  "key": "messages",
254
257
  "label": "Messages",
255
- "description": "Messages operations",
256
- "icon": "📦",
258
+ "description": "Unified chat and comment message operations",
259
+ "icon": "✉️",
257
260
  "count": 8,
258
261
  "read": 5,
259
262
  "write": 3
260
263
  },
261
264
  "restricted-names": {
262
265
  "key": "restricted-names",
263
- "label": "Restricted-names",
264
- "description": "Restricted-names operations",
265
- "icon": "📦",
266
+ "label": "Restricted Names",
267
+ "description": "Restricted token name administration",
268
+ "icon": "🛑",
266
269
  "count": 2,
267
270
  "read": 1,
268
271
  "write": 1
@@ -288,65 +291,74 @@
288
291
  "holders": {
289
292
  "key": "holders",
290
293
  "label": "Holders",
291
- "description": "Holders operations",
292
- "icon": "📦",
294
+ "description": "Token holder rankings, distribution, and history",
295
+ "icon": "👥",
293
296
  "count": 5,
294
297
  "read": 5,
295
298
  "write": 0
296
299
  },
297
300
  "global-feed": {
298
301
  "key": "global-feed",
299
- "label": "Global-feed",
300
- "description": "Global-feed operations",
301
- "icon": "📦",
302
+ "label": "Global Feed",
303
+ "description": "Real-time global event feed subscriptions",
304
+ "icon": "🌐",
302
305
  "count": 5,
303
306
  "read": 5,
304
307
  "write": 0
305
308
  },
306
309
  "websocket-admin": {
307
310
  "key": "websocket-admin",
308
- "label": "Websocket-admin",
309
- "description": "Websocket-admin operations",
310
- "icon": "📦",
311
+ "label": "WebSocket Admin",
312
+ "description": "WebSocket event emission and connection administration",
313
+ "icon": "🛰️",
311
314
  "count": 24,
312
315
  "read": 18,
313
316
  "write": 6
314
317
  },
315
318
  "ai-moderation": {
316
319
  "key": "ai-moderation",
317
- "label": "Ai-moderation",
318
- "description": "Ai-moderation operations",
319
- "icon": "📦",
320
+ "label": "AI Moderation",
321
+ "description": "AI-assisted content moderation and settings",
322
+ "icon": "🤖",
320
323
  "count": 5,
321
324
  "read": 4,
322
325
  "write": 1
323
326
  },
324
327
  "weekly-challenge": {
325
328
  "key": "weekly-challenge",
326
- "label": "Weekly-challenge",
327
- "description": "Weekly-challenge operations",
328
- "icon": "📦",
329
+ "label": "Weekly Challenge",
330
+ "description": "Weekly token challenge leaderboards and history",
331
+ "icon": "🏆",
329
332
  "count": 2,
330
333
  "read": 2,
331
334
  "write": 0
332
335
  },
333
336
  "oembed": {
334
337
  "key": "oembed",
335
- "label": "Oembed",
336
- "description": "Oembed operations",
337
- "icon": "📦",
338
+ "label": "OEmbed",
339
+ "description": "Social preview metadata for Launchpad pages",
340
+ "icon": "🔖",
338
341
  "count": 3,
339
342
  "read": 3,
340
343
  "write": 0
341
344
  },
342
345
  "platform-stats": {
343
346
  "key": "platform-stats",
344
- "label": "Platform-stats",
345
- "description": "Platform-stats operations",
346
- "icon": "📦",
347
+ "label": "Platform Stats",
348
+ "description": "Platform-wide trading and token statistics",
349
+ "icon": "📊",
347
350
  "count": 1,
348
351
  "read": 1,
349
352
  "write": 0
353
+ },
354
+ "notifications": {
355
+ "key": "notifications",
356
+ "label": "Notifications",
357
+ "description": "Push notification and client preference management",
358
+ "icon": "🔔",
359
+ "count": 5,
360
+ "read": 4,
361
+ "write": 1
350
362
  }
351
363
  },
352
364
  "categoryGroups": [
@@ -359,8 +371,11 @@
359
371
  "trading",
360
372
  "trades",
361
373
  "balance",
374
+ "holders",
362
375
  "creation",
363
- "referrals"
376
+ "referrals",
377
+ "weekly-challenge",
378
+ "platform-stats"
364
379
  ]
365
380
  },
366
381
  {
@@ -392,8 +407,12 @@
392
407
  "simulcasts",
393
408
  "chat",
394
409
  "chat-messages",
410
+ "messages",
395
411
  "comments",
396
- "content-reactions"
412
+ "content-reactions",
413
+ "global-feed",
414
+ "notifications",
415
+ "oembed"
397
416
  ]
398
417
  },
399
418
  {
@@ -406,7 +425,10 @@
406
425
  "api-keys",
407
426
  "moderators",
408
427
  "content-flags",
409
- "overseers"
428
+ "overseers",
429
+ "restricted-names",
430
+ "websocket-admin",
431
+ "ai-moderation"
410
432
  ]
411
433
  },
412
434
  {
@@ -714,7 +736,7 @@
714
736
  "name": "fetchTokenSpotPrice",
715
737
  "mcpTool": "gala_launchpad_fetch_token_spot_price",
716
738
  "category": "pools",
717
- "description": "Fetch USD spot price for ANY token with smart routing\n\nRoutes to the correct backend automatically:\n- **tokenName** → Launchpad token (detects graduation status)\n- **tokenId** → DEX token via /v1/trade/price endpoint.",
739
+ "description": "Fetch USD spot price for ANY token with smart routing\n\nRoutes to the correct backend automatically:\n- **tokenName** → Launchpad token (detects graduation status)\n- **tokenId** → REST-backed DEX token price via /v1/trade/price (~1s freshness; no signer required).\n\nDEX read errors: restricted or ungraduated tokens return TokenRestrictedError (403), a missing pool returns a not-found error, and heavy usage may return 429 rate limit.",
718
740
  "operationType": "read",
719
741
  "authRequired": false,
720
742
  "parameters": [
@@ -929,7 +951,7 @@
929
951
  "category": "pools",
930
952
  "description": "Validate if token name and/or symbol are available for use.\n\nCheck name and symbol availability before launching a token. Returns availability flags\nand any validation errors. Useful for token creation forms to prevent invalid submissions.\n\nRETURNS: { nameAvailable, symbolAvailable, nameBlocklisted, symbolBlocklisted, errors: [] }\n\nAuthentication: None required (public endpoint)",
931
953
  "operationType": "read",
932
- "authRequired": true,
954
+ "authRequired": false,
933
955
  "parameters": [
934
956
  {
935
957
  "name": "tokenName",
@@ -1002,7 +1024,7 @@
1002
1024
  "category": "pools",
1003
1025
  "description": "Watch for new DEX pool creation events in real-time.",
1004
1026
  "operationType": "read",
1005
- "authRequired": true,
1027
+ "authRequired": false,
1006
1028
  "parameters": [
1007
1029
  {
1008
1030
  "name": "minTVL",
@@ -1037,7 +1059,7 @@
1037
1059
  "category": "pools",
1038
1060
  "description": "Watch for new launchpad token creation events in real-time.",
1039
1061
  "operationType": "write",
1040
- "authRequired": true,
1062
+ "authRequired": false,
1041
1063
  "parameters": [
1042
1064
  {
1043
1065
  "name": "creatorAddress",
@@ -1088,7 +1110,7 @@
1088
1110
  "category": "pools",
1089
1111
  "description": "Watch for pool metadata updates in real-time.\n\nTriggers when pool metadata, social links, or badges are updated. Includes:\n- POOL_METADATA_UPDATED: Name, description, image, category changes\n- POOL_SOCIAL_LINKS_UPDATED: Website, Discord, Twitter, etc. changes\n- POOL_BADGE_ASSIGNED: New badges or badge assignments\n\nReturns:\n- poolsUpdated: Number of pool updates detected\n- updates: Array of pool update events with tokenName, updateType, and metadata changes\n\nFilter Options:\n- tokenName: Only watch updates for a specific token\n- updateType: Filter by type ('METADATA', 'SOCIAL_LINKS', or 'BADGE_ASSIGNED').",
1090
1112
  "operationType": "write",
1091
- "authRequired": true,
1113
+ "authRequired": false,
1092
1114
  "parameters": [
1093
1115
  {
1094
1116
  "name": "tokenName",
@@ -1143,7 +1165,7 @@
1143
1165
  "category": "pools",
1144
1166
  "description": "Watch for token holder count changes in real-time.\n\nTriggers whenever the holder count for a token changes, including:\n- New holders making their first purchase\n- Holders liquidating their entire position\n- Changes in holder distribution and tiers\n\nReturns:\n- holdersChanged: Number of holder count change events detected\n- events: Array of holder count events with tokenName, newCount, previousCount, and timestamp\n\nFilter Options:\n- tokenName: Only watch holder changes for a specific token\n- minThreshold: Only notify if holder count changes by >= minThreshold.",
1145
1167
  "operationType": "read",
1146
- "authRequired": true,
1168
+ "authRequired": false,
1147
1169
  "parameters": [
1148
1170
  {
1149
1171
  "name": "tokenName",
@@ -1177,7 +1199,7 @@
1177
1199
  "category": "pools",
1178
1200
  "description": "Update token configuration (messages, comments, and social links).\n\nUpdate messaging configuration and/or social media links for a token.\nAt least one field must be provided.\n\n**Authorization:**\n- Token owner (JWT auth)\n- Platform admin (API key)\n\nRETURNS: void (success with no content)\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth (token owner)",
1179
1201
  "operationType": "write",
1180
- "authRequired": true,
1202
+ "authRequired": false,
1181
1203
  "parameters": [
1182
1204
  {
1183
1205
  "name": "tokenName",
@@ -1331,7 +1353,7 @@
1331
1353
  "category": "trading",
1332
1354
  "description": "Execute token purchase with slippage protection.\n\nWORKFLOW:\n1. calculateBuyAmount() -> Get expected output (result.amount AND result.reverseBondingCurveFee)\n2. buy() -> Execute trade with BOTH expectedAmount AND maxAcceptableReverseBondingCurveFee\n3. fetchTrades() -> Verify trade completed\n\nCRITICAL: Extract BOTH parameters from calculateBuyAmount:\n- result.amount -> expectedAmount\n- result.reverseBondingCurveFee -> maxAcceptableReverseBondingCurveFee\nOmitting reverseBondingCurveFee may cause transaction failures!\n\nRETURNS: Transaction details including input/output amounts and transaction ID.",
1333
1355
  "operationType": "write",
1334
- "authRequired": true,
1356
+ "authRequired": false,
1335
1357
  "parameters": [
1336
1358
  {
1337
1359
  "name": "tokenName",
@@ -1394,7 +1416,7 @@
1394
1416
  "category": "trading",
1395
1417
  "description": "Execute token sale with slippage protection.\n\nWORKFLOW:\n1. calculateSellAmount() -> Get expected output (result.amount AND result.reverseBondingCurveFee)\n2. sell() -> Execute trade with BOTH expectedAmount AND maxAcceptableReverseBondingCurveFee\n3. fetchTrades() -> Verify trade completed\n\nCRITICAL: Extract BOTH parameters from calculateSellAmount:\n- result.amount -> expectedAmount\n- result.reverseBondingCurveFee -> maxAcceptableReverseBondingCurveFee\nOmitting reverseBondingCurveFee may cause transaction failures!\n\nRETURNS: Transaction details including input/output amounts and transaction ID.",
1396
1418
  "operationType": "write",
1397
- "authRequired": true,
1419
+ "authRequired": false,
1398
1420
  "parameters": [
1399
1421
  {
1400
1422
  "name": "tokenName",
@@ -1590,7 +1612,7 @@
1590
1612
  "category": "trading",
1591
1613
  "description": "Graduate a token pool by buying all remaining tokens in one transaction.\n\nWORKFLOW (automatic):\n1. Calls calculateBuyAmountForGraduation() internally\n2. Executes buy() with exact remaining token amount\n3. Returns transaction result\n\nPerformance optimization: Provide currentSupply to avoid fetching pool details twice.\n\nCRITICAL: This is a convenience method that combines multiple operations.\nThrows error if token is already graduated.\nslippageToleranceFactor is optional and uses SDK defaults if not provided.\n\nRETURNS: TradeResult with transaction details including amounts and transaction ID.",
1592
1614
  "operationType": "read",
1593
- "authRequired": true,
1615
+ "authRequired": false,
1594
1616
  "parameters": [
1595
1617
  {
1596
1618
  "name": "tokenName",
@@ -1876,7 +1898,7 @@
1876
1898
  "name": "getSwapQuoteExactInput",
1877
1899
  "mcpTool": "gala_launchpad_get_swap_quote_exact_input",
1878
1900
  "category": "dex",
1879
- "description": "Get swap quote for exact input amount - specify how much you want to spend. Returns estimated output amount, fee tier, and price impact percentage.",
1901
+ "description": "Get a REST-backed swap quote for an exact input amount from the DEX backend (~1s freshness; no signer required). Specify how much you want to spend. Returns estimated output amount, fee tier, and price impact percentage. Restricted tokens return TokenRestrictedError (403), missing pools return a not-found error, and heavy usage may return 429 rate limit.",
1880
1902
  "operationType": "read",
1881
1903
  "authRequired": false,
1882
1904
  "parameters": [
@@ -1905,7 +1927,7 @@
1905
1927
  "name": "getSwapQuoteExactOutput",
1906
1928
  "mcpTool": "gala_launchpad_get_swap_quote_exact_output",
1907
1929
  "category": "dex",
1908
- "description": "Get swap quote for exact output amount - specify how much you want to receive. Returns required input amount, fee tier, and price impact percentage.",
1930
+ "description": "Get a REST-backed swap quote for an exact output amount from the DEX backend (~1s freshness; no signer required). Specify how much you want to receive. Returns required input amount, fee tier, and price impact percentage. Restricted tokens return TokenRestrictedError (403), missing pools return a not-found error, and heavy usage may return 429 rate limit.",
1909
1931
  "operationType": "read",
1910
1932
  "authRequired": false,
1911
1933
  "parameters": [
@@ -1934,7 +1956,7 @@
1934
1956
  "name": "calculateDexPoolQuoteLocal",
1935
1957
  "mcpTool": "gala_launchpad_calculate_dex_pool_quote_local",
1936
1958
  "category": "dex",
1937
- "description": "Calculate instant DEX quote using local bonding curve math. Auto-fetches pool data unless compositePoolData is provided (for bulk efficiency).",
1959
+ "description": "Calculate an instant DEX quote using local math with zero network access for the calculation. Provide compositePoolData for a fully local operation; otherwise pool state is fetched from the DEX backend (~1s freshness; no signer required). Backend fetches can return TokenRestrictedError (403) for restricted tokens, a not-found error for missing pools, or 429 under heavy usage.",
1938
1960
  "operationType": "read",
1939
1961
  "authRequired": false,
1940
1962
  "parameters": [
@@ -1991,7 +2013,7 @@
1991
2013
  "name": "calculateDexPoolQuoteExternal",
1992
2014
  "mcpTool": "gala_launchpad_calculate_dex_pool_quote_external",
1993
2015
  "category": "dex",
1994
- "description": "Calculate real-time DEX quote from GalaChain blockchain. Slower than local but always reflects current pool state. Use for final price verification.",
2016
+ "description": "Get a server-computed real-time quote via the DEX backend (~1s freshness; no signer required). Use for final price verification. Restricted tokens return TokenRestrictedError (403), missing pools return a not-found error, and heavy usage may return 429 rate limit.",
1995
2017
  "operationType": "read",
1996
2018
  "authRequired": false,
1997
2019
  "parameters": [
@@ -2044,7 +2066,7 @@
2044
2066
  "category": "dex",
2045
2067
  "description": "Execute a token swap on GalaSwap DEX with slippage protection. Get a quote first using getSwapQuote tools.",
2046
2068
  "operationType": "write",
2047
- "authRequired": true,
2069
+ "authRequired": false,
2048
2070
  "parameters": [
2049
2071
  {
2050
2072
  "name": "fromToken",
@@ -2128,7 +2150,7 @@
2128
2150
  "name": "fetchDexPools",
2129
2151
  "mcpTool": "gala_launchpad_fetch_dex_pools",
2130
2152
  "category": "dex-pools",
2131
- "description": "Fetch DEX pools with cursor-based pagination and filtering - query available liquidity pools on GalaSwap.",
2153
+ "description": "Fetch REST-backed DEX pool data with cursor-based pagination and filtering (~1s freshness; no signer required). Heavy usage may return 429 rate limit.",
2132
2154
  "operationType": "read",
2133
2155
  "authRequired": false,
2134
2156
  "parameters": [
@@ -2178,7 +2200,7 @@
2178
2200
  "name": "fetchAllDexPools",
2179
2201
  "mcpTool": "gala_launchpad_fetch_all_dex_pools",
2180
2202
  "category": "dex-pools",
2181
- "description": "Fetch all DEX pools with automatic pagination. No page/limit parameters needed - returns ALL pools matching filters.",
2203
+ "description": "Fetch all REST-backed DEX pool data with automatic pagination (~1s freshness; no signer required). No page/limit parameters are needed; returns all pools matching filters. Heavy usage may return 429 rate limit.",
2182
2204
  "operationType": "read",
2183
2205
  "authRequired": false,
2184
2206
  "parameters": [
@@ -2213,7 +2235,7 @@
2213
2235
  "name": "withPrices",
2214
2236
  "type": "boolean",
2215
2237
  "required": false,
2216
- "description": "Whether to fetch real-time pricing data for each pool (default: false)."
2238
+ "description": "Whether to fetch REST-backed pricing data for each pool with ~1s freshness (default: false; no signer required)."
2217
2239
  }
2218
2240
  ],
2219
2241
  "topic": "fetch-dex-pools"
@@ -2222,7 +2244,7 @@
2222
2244
  "name": "getSwapPoolInfo",
2223
2245
  "mcpTool": "gala_launchpad_get_swap_pool_info",
2224
2246
  "category": "dex-pools",
2225
- "description": "Get liquidity and fee tier information for a token pair on GalaSwap DEX.",
2247
+ "description": "Get REST-backed liquidity and fee tier information for a token pair from the DEX backend (~1s freshness; no signer required). Restricted tokens return TokenRestrictedError (403), missing pools return a not-found error, and heavy usage may return 429 rate limit.",
2226
2248
  "operationType": "read",
2227
2249
  "authRequired": false,
2228
2250
  "parameters": [
@@ -2245,7 +2267,7 @@
2245
2267
  "name": "fetchCompositePoolData",
2246
2268
  "mcpTool": "gala_launchpad_fetch_composite_pool_data",
2247
2269
  "category": "dex-pools",
2248
- "description": "Fetch complete pool state for offline DEX quote calculations. Returns pool liquidity, tick data, and token balances. Use this for bulk pricing operations or when you need multiple quotes for the same pool.",
2270
+ "description": "Fetch complete pool state from the REST-backed DEX backend (~1s freshness; no signer required) for local DEX quote calculations. Returns pool liquidity, tick data, and token balances. Use this for bulk pricing operations or when you need multiple quotes for the same pool. Restricted tokens return TokenRestrictedError (403), missing pools return a not-found error, and heavy usage may return 429 rate limit.",
2249
2271
  "operationType": "read",
2250
2272
  "authRequired": false,
2251
2273
  "parameters": [
@@ -2279,7 +2301,7 @@
2279
2301
  "name": "getSwapPoolPrice",
2280
2302
  "mcpTool": "gala_launchpad_get_swap_pool_price",
2281
2303
  "category": "dex-pools",
2282
- "description": "Get current price, tick, and liquidity for a DEX pool. Use to check if liquidity positions are in-range.",
2304
+ "description": "Get REST-backed price, tick, and liquidity for a DEX pool (~1s freshness; no signer required). Use to check if liquidity positions are in-range. Restricted tokens return TokenRestrictedError (403), missing pools return a not-found error, and heavy usage may return 429 rate limit.",
2283
2305
  "operationType": "read",
2284
2306
  "authRequired": false,
2285
2307
  "parameters": [
@@ -2359,7 +2381,7 @@
2359
2381
  "name": "getUserLiquidityPositions",
2360
2382
  "mcpTool": "gala_launchpad_get_user_liquidity_positions",
2361
2383
  "category": "dex-liquidity",
2362
- "description": "Get all open liquidity positions for a wallet address with optional pagination and real-time pricing. Note: bookmark pagination and pricing options are mutually exclusive - use getAllUserLiquidityPositionsTool for pricing with auto-pagination.",
2384
+ "description": "Get REST-backed open liquidity positions for a wallet address with optional pagination and pricing (~1s freshness; no signer required). Bookmark pagination and pricing options are mutually exclusive; use getAllUserLiquidityPositionsTool for pricing with auto-pagination. Restricted tokens return TokenRestrictedError (403), missing pools return a not-found error, and heavy usage may return 429 rate limit.",
2363
2385
  "operationType": "read",
2364
2386
  "authRequired": false,
2365
2387
  "parameters": [
@@ -2385,7 +2407,7 @@
2385
2407
  "name": "withPrices",
2386
2408
  "type": "boolean",
2387
2409
  "required": false,
2388
- "description": "Whether to fetch real-time pricing for each position (optional, default: false). Cannot be used together with bookmark - if you need pagination, use bookmark without withPrices. Pricing concurrency is controlled by SDK-level pricingConcurrency configuration."
2410
+ "description": "Whether to fetch REST-backed pricing for each position with ~1s freshness (optional, default: false; no signer required). Cannot be used together with bookmark - if you need pagination, use bookmark without withPrices. Pricing concurrency is controlled by SDK-level pricingConcurrency configuration."
2389
2411
  }
2390
2412
  ]
2391
2413
  },
@@ -2393,7 +2415,7 @@
2393
2415
  "name": "getAllUserLiquidityPositions",
2394
2416
  "mcpTool": "gala_launchpad_get_all_user_liquidity_positions",
2395
2417
  "category": "dex-liquidity",
2396
- "description": "Get ALL open liquidity positions for a wallet address with automatic pagination and optional real-time pricing.",
2418
+ "description": "Get all REST-backed open liquidity positions for a wallet address with automatic pagination and optional pricing (~1s freshness; no signer required). Restricted tokens return TokenRestrictedError (403), missing pools return a not-found error, and heavy usage may return 429 rate limit.",
2397
2419
  "operationType": "read",
2398
2420
  "authRequired": false,
2399
2421
  "parameters": [
@@ -2407,7 +2429,7 @@
2407
2429
  "name": "withPrices",
2408
2430
  "type": "boolean",
2409
2431
  "required": false,
2410
- "description": "Whether to fetch real-time pricing for each position (optional, default: false). Pricing concurrency is controlled by SDK-level pricingConcurrency configuration."
2432
+ "description": "Whether to fetch REST-backed pricing for each position with ~1s freshness (optional, default: false; no signer required). Pricing concurrency is controlled by SDK-level pricingConcurrency configuration."
2411
2433
  }
2412
2434
  ]
2413
2435
  },
@@ -2415,7 +2437,7 @@
2415
2437
  "name": "getLiquidityPositionById",
2416
2438
  "mcpTool": "gala_launchpad_get_liquidity_position_by_id",
2417
2439
  "category": "dex-liquidity",
2418
- "description": "Get specific liquidity position details by position ID including tokens, tick range, and accumulated fees.",
2440
+ "description": "Get REST-backed liquidity position details by position ID, including tokens, tick range, and accumulated fees (~1s freshness; no signer required). Restricted tokens return TokenRestrictedError (403), a missing pool or position returns a not-found error, and heavy usage may return 429 rate limit.",
2419
2441
  "operationType": "read",
2420
2442
  "authRequired": false,
2421
2443
  "parameters": [
@@ -2437,7 +2459,7 @@
2437
2459
  "name": "getLiquidityPosition",
2438
2460
  "mcpTool": "gala_launchpad_get_liquidity_position",
2439
2461
  "category": "dex-liquidity",
2440
- "description": "Get liquidity position for a specific token pair and price range (tick boundaries).",
2462
+ "description": "Get a REST-backed liquidity position for a token pair and price range (~1s freshness; no signer required). Restricted tokens return TokenRestrictedError (403), a missing pool or position returns a not-found error, and heavy usage may return 429 rate limit.",
2441
2463
  "operationType": "read",
2442
2464
  "authRequired": false,
2443
2465
  "parameters": [
@@ -2488,9 +2510,9 @@
2488
2510
  "name": "estimateRemoveLiquidity",
2489
2511
  "mcpTool": "gala_launchpad_estimate_remove_liquidity",
2490
2512
  "category": "dex-liquidity",
2491
- "description": "Estimate tokens received when removing liquidity at current market prices. Returns amount0 and amount1 (underlying token amounts, raw without slippage adjustment).",
2513
+ "description": "Estimate tokens received when removing liquidity using REST-backed DEX pool state (~1s freshness; no signer required). Returns amount0 and amount1 (underlying token amounts, raw without slippage adjustment). Restricted tokens return TokenRestrictedError (403), a missing pool or position returns a not-found error, and heavy usage may return 429 rate limit.",
2492
2514
  "operationType": "read",
2493
- "authRequired": true,
2515
+ "authRequired": false,
2494
2516
  "parameters": [
2495
2517
  {
2496
2518
  "name": "token0",
@@ -2547,7 +2569,7 @@
2547
2569
  "category": "dex-liquidity",
2548
2570
  "description": "Add liquidity to a pool by specifying min/max price boundaries (SDK calculates tick boundaries).",
2549
2571
  "operationType": "write",
2550
- "authRequired": true,
2572
+ "authRequired": false,
2551
2573
  "parameters": [
2552
2574
  {
2553
2575
  "name": "token0",
@@ -2616,7 +2638,7 @@
2616
2638
  "category": "dex-liquidity",
2617
2639
  "description": "Add liquidity to a pool by specifying exact tick boundaries (advanced usage).",
2618
2640
  "operationType": "write",
2619
- "authRequired": true,
2641
+ "authRequired": false,
2620
2642
  "parameters": [
2621
2643
  {
2622
2644
  "name": "token0",
@@ -2685,7 +2707,7 @@
2685
2707
  "category": "dex-liquidity",
2686
2708
  "description": "Remove liquidity from an open position and withdraw underlying tokens.",
2687
2709
  "operationType": "write",
2688
- "authRequired": true,
2710
+ "authRequired": false,
2689
2711
  "parameters": [
2690
2712
  {
2691
2713
  "name": "ownerAddress",
@@ -2729,7 +2751,7 @@
2729
2751
  "name": "fetchSwapPositionDirect",
2730
2752
  "mcpTool": "gala_launchpad_fetch_swap_position_direct",
2731
2753
  "category": "dex-liquidity",
2732
- "description": "Fetch a single liquidity position using ONLY the compound key (most efficient). Makes a direct HTTP call to GalaChain Gateway using token0, token1, fee, and tick range.",
2754
+ "description": "Fetch a single REST-backed liquidity position by compound key using token0, token1, fee, and tick range (~1s freshness; no signer required). Restricted tokens return TokenRestrictedError (403), a missing pool or position returns a not-found error, and heavy usage may return 429 rate limit.",
2733
2755
  "operationType": "read",
2734
2756
  "authRequired": false,
2735
2757
  "parameters": [
@@ -2783,7 +2805,7 @@
2783
2805
  "category": "dex-liquidity",
2784
2806
  "description": "Collect accumulated trading fees from a liquidity position without modifying the position.",
2785
2807
  "operationType": "read",
2786
- "authRequired": true,
2808
+ "authRequired": false,
2787
2809
  "parameters": [
2788
2810
  {
2789
2811
  "name": "ownerAddress",
@@ -3041,7 +3063,7 @@
3041
3063
  "category": "balance",
3042
3064
  "description": "Update user profile (fullName and profileImage). Returns success flag and updated profile data.",
3043
3065
  "operationType": "write",
3044
- "authRequired": true,
3066
+ "authRequired": false,
3045
3067
  "parameters": [
3046
3068
  {
3047
3069
  "name": "fullName",
@@ -3099,7 +3121,7 @@
3099
3121
  "category": "balance",
3100
3122
  "description": "Fetch all tokens the authenticated user can manage (owned tokens + moderated tokens + overseer status).\n\nReturns a unified view of:\n- **ownedTokens**: Tokens created by this wallet (with live status, viewer count)\n- **moderatedTokens**: Tokens where user has a moderator role (MANAGER, TECHNICAL_PRODUCER, MODERATOR) with role and invite scope details\n- **isOverseer**: Whether user has platform-wide overseer access\n- **overseerSince**: When overseer status was granted (if applicable)\n\nUse this for building moderation dashboards or determining which tokens a user can access Studio for.",
3101
3123
  "operationType": "read",
3102
- "authRequired": true,
3124
+ "authRequired": false,
3103
3125
  "parameters": [
3104
3126
  {
3105
3127
  "name": "cursor",
@@ -3122,7 +3144,7 @@
3122
3144
  "category": "referrals",
3123
3145
  "description": "Fetch the authenticated user's unique referral URL for sharing. The referral URL can be used to earn rewards when new users sign up through the link. Requires wallet configuration.",
3124
3146
  "operationType": "read",
3125
- "authRequired": true,
3147
+ "authRequired": false,
3126
3148
  "parameters": [],
3127
3149
  "topic": "referral-system"
3128
3150
  },
@@ -3233,7 +3255,7 @@
3233
3255
  "category": "creation",
3234
3256
  "description": "Create a new token on the launchpad.\n\nWORKFLOW:\n1. checkTokenName() → Verify name is available\n2. checkTokenSymbol() → Verify symbol is available\n3. launchToken() → Create token with validated name/symbol\n4. getUrlByTokenName() → Get frontend URL for the new token\n\nREQUIREMENT: At least one social URL (websiteUrl, twitterUrl, or telegramUrl) is required.\n\nRETURNS: Transaction details including token name, symbol, creator address, and transaction ID.",
3235
3257
  "operationType": "write",
3236
- "authRequired": true,
3258
+ "authRequired": false,
3237
3259
  "parameters": [
3238
3260
  {
3239
3261
  "name": "tokenName",
@@ -3322,7 +3344,7 @@
3322
3344
  "category": "creation",
3323
3345
  "description": "Upload token image from filesystem (Node.js only).",
3324
3346
  "operationType": "read",
3325
- "authRequired": true,
3347
+ "authRequired": false,
3326
3348
  "parameters": [
3327
3349
  {
3328
3350
  "name": "tokenName",
@@ -3351,7 +3373,7 @@
3351
3373
  "category": "creation",
3352
3374
  "description": "Upload profile image from filesystem (Node.js only).",
3353
3375
  "operationType": "read",
3354
- "authRequired": true,
3376
+ "authRequired": false,
3355
3377
  "parameters": [
3356
3378
  {
3357
3379
  "name": "imagePath",
@@ -3410,7 +3432,7 @@
3410
3432
  "category": "nft",
3411
3433
  "description": "Estimate the dynamic fee to mint NFTs via DryRun. Fee varies based on quantity and network conditions.",
3412
3434
  "operationType": "read",
3413
- "authRequired": true,
3435
+ "authRequired": false,
3414
3436
  "parameters": [
3415
3437
  {
3416
3438
  "name": "collection",
@@ -3451,7 +3473,7 @@
3451
3473
  "category": "nft",
3452
3474
  "description": "Calculate total fees for multiple NFT operations. Returns breakdown with total.",
3453
3475
  "operationType": "read",
3454
- "authRequired": true,
3476
+ "authRequired": false,
3455
3477
  "parameters": [
3456
3478
  {
3457
3479
  "name": "claimCollection",
@@ -3490,7 +3512,7 @@
3490
3512
  "category": "nft",
3491
3513
  "description": "Claim an NFT collection name. Costs 10,000 GALA.",
3492
3514
  "operationType": "write",
3493
- "authRequired": true,
3515
+ "authRequired": false,
3494
3516
  "parameters": [
3495
3517
  {
3496
3518
  "name": "collectionName",
@@ -3524,7 +3546,7 @@
3524
3546
  "category": "nft",
3525
3547
  "description": "Create a token class within an NFT collection. Costs 1,000 GALA.",
3526
3548
  "operationType": "write",
3527
- "authRequired": true,
3549
+ "authRequired": false,
3528
3550
  "parameters": [
3529
3551
  {
3530
3552
  "name": "collection",
@@ -3630,7 +3652,7 @@
3630
3652
  "category": "nft",
3631
3653
  "description": "Mint NFTs from a token class. Costs dynamic fee based on quantity.",
3632
3654
  "operationType": "read",
3633
- "authRequired": true,
3655
+ "authRequired": false,
3634
3656
  "parameters": [
3635
3657
  {
3636
3658
  "name": "collection",
@@ -3700,7 +3722,7 @@
3700
3722
  "category": "transfers",
3701
3723
  "description": "Transfer GALA tokens via GalaChain.",
3702
3724
  "operationType": "write",
3703
- "authRequired": true,
3725
+ "authRequired": false,
3704
3726
  "parameters": [
3705
3727
  {
3706
3728
  "name": "recipientAddress",
@@ -3735,7 +3757,7 @@
3735
3757
  "category": "transfers",
3736
3758
  "description": "Transfer launchpad tokens via GalaChain.",
3737
3759
  "operationType": "write",
3738
- "authRequired": true,
3760
+ "authRequired": false,
3739
3761
  "parameters": [
3740
3762
  {
3741
3763
  "name": "to",
@@ -3776,7 +3798,7 @@
3776
3798
  "category": "locks",
3777
3799
  "description": "Lock one or more token types on GalaChain in a single transaction.\n\nLocked tokens cannot be transferred until unlocked by the lock authority.\nUseful for staking, escrow, vesting, or other hold scenarios.\n\nSupports batch locking of multiple token types for efficiency.",
3778
3800
  "operationType": "write",
3779
- "authRequired": true,
3801
+ "authRequired": false,
3780
3802
  "parameters": [
3781
3803
  {
3782
3804
  "name": "tokens",
@@ -3805,7 +3827,7 @@
3805
3827
  "category": "locks",
3806
3828
  "description": "Unlock one or more previously locked token types on GalaChain in a single transaction.\n\nReleases token holds, making them available for transfer again.\nMust be called by the lock authority (the address that locked the tokens\nor was designated as lock authority during the lock operation).\n\nSupports batch unlocking of multiple token types for efficiency.",
3807
3829
  "operationType": "write",
3808
- "authRequired": true,
3830
+ "authRequired": false,
3809
3831
  "parameters": [
3810
3832
  {
3811
3833
  "name": "tokens",
@@ -3834,7 +3856,7 @@
3834
3856
  "category": "burns",
3835
3857
  "description": "Permanently burn (destroy) one or more token types on GalaChain in a single transaction.\n\n**WARNING: THIS OPERATION IS IRREVERSIBLE!**\n\nOnce tokens are burned, they are permanently destroyed and cannot be recovered.\nThe burned tokens are removed from circulation, reducing total supply.\n\nSupports batch burning of multiple token types in a single transaction.",
3836
3858
  "operationType": "write",
3837
- "authRequired": true,
3859
+ "authRequired": false,
3838
3860
  "parameters": [
3839
3861
  {
3840
3862
  "name": "tokens",
@@ -3863,7 +3885,7 @@
3863
3885
  "category": "wallet",
3864
3886
  "description": "Create a new wallet with a random private key. Returns wallet address and private key. ⚠️ SECURITY: Store the private key securely immediately — it cannot be retrieved again and grants full access to the wallet.",
3865
3887
  "operationType": "write",
3866
- "authRequired": true,
3888
+ "authRequired": false,
3867
3889
  "parameters": [],
3868
3890
  "topic": "multi-wallet"
3869
3891
  },
@@ -3873,7 +3895,7 @@
3873
3895
  "category": "wallet",
3874
3896
  "description": "Create a new Solana wallet with a random keypair. Returns wallet address and private key (base58 format). ⚠️ SECURITY: Store the private key securely immediately — it cannot be retrieved again and grants full access to the wallet.",
3875
3897
  "operationType": "write",
3876
- "authRequired": true,
3898
+ "authRequired": false,
3877
3899
  "parameters": [],
3878
3900
  "topic": "multi-wallet"
3879
3901
  },
@@ -3903,7 +3925,7 @@
3903
3925
  "category": "wallet",
3904
3926
  "description": "Derive public key from private key using secp256k1. Returns uncompressed (0x04..., 132 chars) and compressed (0x02/03..., 68 chars) formats.",
3905
3927
  "operationType": "read",
3906
- "authRequired": true,
3928
+ "authRequired": false,
3907
3929
  "parameters": [
3908
3930
  {
3909
3931
  "name": "privateKey",
@@ -3920,7 +3942,7 @@
3920
3942
  "category": "wallet",
3921
3943
  "description": "Derive Ethereum address from private key. Returns both Ethereum (0x...) and GalaChain (eth|...) address formats.",
3922
3944
  "operationType": "read",
3923
- "authRequired": true,
3945
+ "authRequired": false,
3924
3946
  "parameters": [
3925
3947
  {
3926
3948
  "name": "privateKey",
@@ -3962,7 +3984,7 @@
3962
3984
  "name": "explainSdkUsage",
3963
3985
  "mcpTool": "gala_launchpad_explain_sdk_usage",
3964
3986
  "category": "utils",
3965
- "description": "Get detailed SDK code examples for all 310 MCP tools (mapping to 273 SDK methods) organized into 60 composite workflow topics covering: buy-tokens, sell-tokens, pool-graduation, fetch-pools, balances, token-creation, token-status, dex-trading, liquidity-positions, advanced-dex-analysis, price-history, token-details, token-distribution, profile-management, multi-wallet, transfers, locks, trading-analytics, utilities-and-helpers, utilities-system, error-handling, installation, local-calculations, spot-prices-smart-routing, event-subscriptions, mcp-to-sdk-mapping, DEX leaderboards, bridge-operations, dex-token-discovery, wrap-unwrap-operations, referral-system, account-management, session-auth, streaming, stream-chat, ban-management, api-key-management, moderator-invites, overseer-invites, content-flag-management, content-reactions, trade-history, token-ban-management, nft-collection-management, token-identification, graduation-detection, ai-moderation (AI content analysis - overseer only), weekly-challenge (weekly token competition leaderboard), platform-stats (platform-wide trading metrics), restricted-names (blocked token names list - overseer only), websocket-admin (real-time event broadcasting - admin/overseer), oembed (social media link preview metadata), messages (unified CHAT+COMMENT messages API), and holders (token holder distribution and whale analysis).",
3987
+ "description": "Get detailed SDK code examples for all 310 MCP tools (mapping to 273 SDK methods) organized into 65 composite workflow topics covering: buy-tokens, sell-tokens, pool-graduation, fetch-pools, balances, token-creation, token-status, dex-trading, gdex-stream, liquidity-positions, advanced-dex-analysis, price-history, token-details, token-distribution, profile-management, multi-wallet, transfers, locks, trading-analytics, utilities-and-helpers, utilities-system, error-handling, installation, local-calculations, spot-prices-smart-routing, event-subscriptions, mcp-to-sdk-mapping, DEX leaderboards, bridge-operations, dex-token-discovery, wrap-unwrap-operations, referral-system, account-management, session-auth, streaming, stream-chat, ban-management, api-key-management, moderator-invites, overseer-invites, content-flag-management, content-reactions, trade-history, token-ban-management, nft-collection-management, token-identification, graduation-detection, ai-moderation (AI content analysis - overseer only), weekly-challenge (weekly token competition leaderboard), platform-stats (platform-wide trading metrics), restricted-names (blocked token names list - overseer only), websocket-admin (real-time event broadcasting - admin/overseer), oembed (social media link preview metadata), messages (unified CHAT+COMMENT messages API), and holders (token holder distribution and whale analysis).",
3966
3988
  "operationType": "read",
3967
3989
  "authRequired": false,
3968
3990
  "parameters": [
@@ -3983,6 +4005,7 @@
3983
4005
  "transfers",
3984
4006
  "locks",
3985
4007
  "dex-trading",
4008
+ "gdex-stream",
3986
4009
  "error-handling",
3987
4010
  "installation",
3988
4011
  "local-calculations",
@@ -4074,7 +4097,7 @@
4074
4097
  "category": "utils",
4075
4098
  "description": "Clear token caches. With tokenName: clears that launchpad token. Without tokenName: clears ALL caches (launchpad metadata + bridgeable tokens). Caches auto-warm from fetchPools/fetchBridgeableTokens calls.",
4076
4099
  "operationType": "read",
4077
- "authRequired": true,
4100
+ "authRequired": false,
4078
4101
  "parameters": [
4079
4102
  {
4080
4103
  "name": "tokenName",
@@ -4101,7 +4124,7 @@
4101
4124
  "category": "utils",
4102
4125
  "description": "Check if wallet is configured in the SDK. Returns true if wallet is available for signing operations, false if in read-only mode.",
4103
4126
  "operationType": "read",
4104
- "authRequired": true,
4127
+ "authRequired": false,
4105
4128
  "parameters": [],
4106
4129
  "topic": "utilities-system"
4107
4130
  },
@@ -4121,7 +4144,7 @@
4121
4144
  "category": "utils",
4122
4145
  "description": "Configure a wallet for signing operations. Takes a private key and sets it as the active wallet.",
4123
4146
  "operationType": "write",
4124
- "authRequired": true,
4147
+ "authRequired": false,
4125
4148
  "parameters": [
4126
4149
  {
4127
4150
  "name": "privateKey",
@@ -4147,7 +4170,7 @@
4147
4170
  "category": "utils",
4148
4171
  "description": "Dynamically switch the MCP server to a different environment (production, development, or testing). Preserves wallet configuration when switching.",
4149
4172
  "operationType": "read",
4150
- "authRequired": true,
4173
+ "authRequired": false,
4151
4174
  "parameters": [
4152
4175
  {
4153
4176
  "name": "environment",
@@ -4168,7 +4191,7 @@
4168
4191
  "category": "utils",
4169
4192
  "description": "Clean up SDK resources (HTTP interceptors, WebSocket connections). Call when done using the SDK to prevent memory leaks.",
4170
4193
  "operationType": "read",
4171
- "authRequired": true,
4194
+ "authRequired": false,
4172
4195
  "parameters": [],
4173
4196
  "topic": "utilities-and-helpers"
4174
4197
  },
@@ -4261,7 +4284,7 @@
4261
4284
  "category": "bridge",
4262
4285
  "description": "Estimate bridge fees for transferring tokens between GalaChain and an external chain. Returns fee amount in source token. Amount parameter is optional but recommended for accurate estimates.",
4263
4286
  "operationType": "read",
4264
- "authRequired": true,
4287
+ "authRequired": false,
4265
4288
  "parameters": [
4266
4289
  {
4267
4290
  "name": "tokenId",
@@ -4294,7 +4317,7 @@
4294
4317
  "category": "bridge",
4295
4318
  "description": "Bridge tokens from GalaChain to an external chain (Ethereum or Solana). Requires wallet configuration.",
4296
4319
  "operationType": "write",
4297
- "authRequired": true,
4320
+ "authRequired": false,
4298
4321
  "parameters": [
4299
4322
  {
4300
4323
  "name": "tokenId",
@@ -4333,7 +4356,7 @@
4333
4356
  "category": "bridge",
4334
4357
  "description": "Bridge tokens from an external chain (Ethereum or Solana) to GalaChain. Requires wallet configuration.",
4335
4358
  "operationType": "write",
4336
- "authRequired": true,
4359
+ "authRequired": false,
4337
4360
  "parameters": [
4338
4361
  {
4339
4362
  "name": "tokenId",
@@ -4663,7 +4686,7 @@
4663
4686
  "category": "bridge",
4664
4687
  "description": "Request SOL airdrop from Solana devnet faucet. Only available in STAGE environment (development/testing). Maximum 2 SOL per request. Useful for funding wallets with gas fees for testing bridge operations.",
4665
4688
  "operationType": "read",
4666
- "authRequired": true,
4689
+ "authRequired": false,
4667
4690
  "parameters": [
4668
4691
  {
4669
4692
  "name": "amount",
@@ -4804,7 +4827,7 @@
4804
4827
  "category": "bridge",
4805
4828
  "description": "Wrap a token to its asset-channel counterpart (e.g., MUSIC → GMUSIC). This is a cross-channel bridge within GalaChain, NOT an external bridge to Ethereum/Solana. Requires wallet configuration. Use for tokens that need to be wrapped before DEX trading.",
4806
4829
  "operationType": "write",
4807
- "authRequired": true,
4830
+ "authRequired": false,
4808
4831
  "parameters": [
4809
4832
  {
4810
4833
  "name": "tokenId",
@@ -4839,7 +4862,7 @@
4839
4862
  "category": "bridge",
4840
4863
  "description": "Unwrap a token back to its native channel (e.g., GMUSIC → MUSIC). Reverses a previous wrap operation. This is a cross-channel bridge within GalaChain, NOT an external bridge. Requires wallet configuration.",
4841
4864
  "operationType": "write",
4842
- "authRequired": true,
4865
+ "authRequired": false,
4843
4866
  "parameters": [
4844
4867
  {
4845
4868
  "name": "tokenId",
@@ -4874,7 +4897,7 @@
4874
4897
  "category": "bridge",
4875
4898
  "description": "Estimate fees for wrapping a token to the asset channel. Wrap operations use cross_channel_authorization fee type on the source channel.",
4876
4899
  "operationType": "read",
4877
- "authRequired": true,
4900
+ "authRequired": false,
4878
4901
  "parameters": [
4879
4902
  {
4880
4903
  "name": "tokenId",
@@ -4897,7 +4920,7 @@
4897
4920
  "category": "bridge",
4898
4921
  "description": "Estimate fees for unwrapping a token back to its native channel. Unwrap operations use automatic fee authorization on the asset channel.",
4899
4922
  "operationType": "read",
4900
- "authRequired": true,
4923
+ "authRequired": false,
4901
4924
  "parameters": [
4902
4925
  {
4903
4926
  "name": "tokenId",
@@ -4937,7 +4960,7 @@
4937
4960
  "category": "streaming",
4938
4961
  "description": "Start a live stream for a token.\n\nCreates a new stream session and returns streaming credentials.\nrtmpsUrl is the full RTMPS ingest URL; srtUrl is the full SRT ingest URL.\nUse streamKey + srtPassphrase for manual encoder configuration.\n\nRETURNS: { tokenName, streamKey, rtmpsUrl, srtUrl, srtPassphrase, playbackId, playbackUrl, status, createdAt }\n\nAuthentication: Requires wallet signature (stream creator only)",
4939
4962
  "operationType": "write",
4940
- "authRequired": true,
4963
+ "authRequired": false,
4941
4964
  "parameters": [
4942
4965
  {
4943
4966
  "name": "tokenName",
@@ -4954,7 +4977,7 @@
4954
4977
  "category": "streaming",
4955
4978
  "description": "Stop a live stream for a token.\n\nEnds the current stream session. The stream key remains valid for future streams.\n\nRETURNS: { success: true }\n\nAuthentication: Requires wallet signature (stream creator only)",
4956
4979
  "operationType": "write",
4957
- "authRequired": true,
4980
+ "authRequired": false,
4958
4981
  "parameters": [
4959
4982
  {
4960
4983
  "name": "tokenName",
@@ -4971,7 +4994,7 @@
4971
4994
  "category": "streaming",
4972
4995
  "description": "Enable or disable streaming for a specific token (Admin only).\n\nControls per-token streaming capability. When disabled, prevents new streams\nfrom being started for this token. Existing active streams will continue\nuntil they end.\n\nRETURNS: { enabled, tokenName }\n\nAuthentication: Requires streamAdminApiKey configuration",
4973
4996
  "operationType": "write",
4974
- "authRequired": true,
4997
+ "authRequired": false,
4975
4998
  "parameters": [
4976
4999
  {
4977
5000
  "name": "tokenName",
@@ -4993,7 +5016,7 @@
4993
5016
  "category": "streaming",
4994
5017
  "description": "Reset the stream key for a token.\n\nGenerates a new stream key, invalidating the previous one.\nUse this if the stream key has been compromised.\n\nRETURNS: { tokenName, streamKey, rtmpsUrl, srtUrl, srtPassphrase, playbackId, resetAt }\n\nAuthentication: Requires wallet signature (stream creator only)",
4995
5018
  "operationType": "write",
4996
- "authRequired": true,
5019
+ "authRequired": false,
4997
5020
  "parameters": [
4998
5021
  {
4999
5022
  "name": "tokenName",
@@ -5010,7 +5033,7 @@
5010
5033
  "category": "streaming",
5011
5034
  "description": "Set the next live stream countdown time for a token.\n\nSchedules a future live stream for this token. The countdown can be displayed on the pool page\nto let viewers know when the stream will go live.\n\nCan be called multiple times to update the scheduled time.\nPass null as nextLiveStreamAt to clear the countdown.\n\nRETURNS: { success: true, message: \"...\" }\n\nAuthentication: Requires wallet signature (stream creator only)",
5012
5035
  "operationType": "write",
5013
- "authRequired": true,
5036
+ "authRequired": false,
5014
5037
  "parameters": [
5015
5038
  {
5016
5039
  "name": "tokenName",
@@ -5042,7 +5065,7 @@
5042
5065
  "category": "streaming",
5043
5066
  "description": "Enable or disable streaming globally (Admin only).\n\nControls platform-wide streaming capability.\nWhen disabled, no new streams can be started.\n\nRETURNS: { enabled, updatedAt }\n\nAuthentication: Requires streamAdminApiKey configuration",
5044
5067
  "operationType": "write",
5045
- "authRequired": true,
5068
+ "authRequired": false,
5046
5069
  "parameters": [
5047
5070
  {
5048
5071
  "name": "enabled",
@@ -5059,7 +5082,7 @@
5059
5082
  "category": "streaming",
5060
5083
  "description": "Get the authenticated user's role for a token's stream with associated permissions.\n\nReturns effective role (OWNER, MANAGER, TECHNICAL_PRODUCER, MODERATOR) with boolean permission flags.\ncanStream: Can start/stop streams. canModerate: Can moderate chat/ban. canManageTeam: Can manage moderator invites.\n\nRETURNS: { role: 'OWNER'|'MANAGER'|'TECHNICAL_PRODUCER'|'MODERATOR'|null, isOwner, permissions: { canStream, canModerate, canManageTeam, canViewRecordings, canSimulcast }, source, inviteScope }\n\nAuthentication: Optional JWT - returns limited data if not authenticated",
5061
5084
  "operationType": "read",
5062
- "authRequired": true,
5085
+ "authRequired": false,
5063
5086
  "parameters": [
5064
5087
  {
5065
5088
  "name": "tokenName",
@@ -5086,7 +5109,7 @@
5086
5109
  "category": "streaming",
5087
5110
  "description": "Check if the authenticated user has Studio access for a token.\n\nReturns comprehensive access information combining:\n1. Token ownership check (OWNER role)\n2. Claimed moderator invite (MANAGER, TECHNICAL_PRODUCER, MODERATOR)\n3. Platform overseer status (global access)\n\nThis is used by frontends to determine whether to show \"Click to Studio\" links.\n\n**Access Sources:**\n- ownership: User is the token owner (OWNER role)\n- moderator_invite: User has a claimed moderator invite\n- overseer: User has platform-wide overseer access\n\n**Permissions Returned:**\n- canStream: Can start/stop streams\n- canModerate: Can moderate chat and ban users\n- canManageTeam: Can manage moderator invites\n- canViewRecordings: Can view and download recordings\n- canSimulcast: Can manage simulcast targets\n- canViewAnalytics: Can view stream analytics\n\nRETURNS: {\n hasAccess: boolean,\n role: 'OWNER' | 'MANAGER' | 'TECHNICAL_PRODUCER' | 'MODERATOR' | 'OVERSEER' | null,\n permissions: { canStream, canModerate, canManageTeam, canViewRecordings, canSimulcast, canViewAnalytics },\n accessSource: 'ownership' | 'moderator_invite' | 'overseer' | null,\n inviteScope?: 'TOKEN' | 'ALL_OWNER_TOKENS' | null,\n isOwner: boolean,\n isOverseer: boolean\n}\n\nAuthentication: Optional JWT - returns limited data if not authenticated",
5088
5111
  "operationType": "read",
5089
- "authRequired": true,
5112
+ "authRequired": false,
5090
5113
  "parameters": [
5091
5114
  {
5092
5115
  "name": "tokenName",
@@ -5155,7 +5178,7 @@
5155
5178
  "category": "recordings",
5156
5179
  "description": "Delete a stream recording.\n\nPermanently removes the recording. This action cannot be undone.\n\nRETURNS: { success: true }\n\nAuthentication: Requires wallet signature (stream creator only)",
5157
5180
  "operationType": "write",
5158
- "authRequired": true,
5181
+ "authRequired": false,
5159
5182
  "parameters": [
5160
5183
  {
5161
5184
  "name": "tokenName",
@@ -5195,7 +5218,7 @@
5195
5218
  "category": "simulcasts",
5196
5219
  "description": "Add a simulcast target to a stream.\n\nConfigure the stream to rebroadcast to an external platform like YouTube, Twitch, or Facebook.\n\nRETURNS: { target: { targetId, platform, rtmpUrl, status, name, createdAt }, tokenName }\n\nAuthentication: Requires wallet signature (stream creator only)",
5197
5220
  "operationType": "write",
5198
- "authRequired": true,
5221
+ "authRequired": false,
5199
5222
  "parameters": [
5200
5223
  {
5201
5224
  "name": "tokenName",
@@ -5242,7 +5265,7 @@
5242
5265
  "category": "simulcasts",
5243
5266
  "description": "Remove a simulcast target from a stream.\n\nStops rebroadcasting to the specified platform.\n\nRETURNS: { success: true }\n\nAuthentication: Requires wallet signature (stream creator only)",
5244
5267
  "operationType": "write",
5245
- "authRequired": true,
5268
+ "authRequired": false,
5246
5269
  "parameters": [
5247
5270
  {
5248
5271
  "name": "tokenName",
@@ -5282,7 +5305,7 @@
5282
5305
  "category": "chat",
5283
5306
  "description": "Enable or disable chat for a specific token.\n\nDual-auth endpoint - supports both Admin API key and JWT (owner) auth.\n\n**Authorization:**\n- Admin (API key): Sets ADMIN_DISABLED when disabling - owner is locked out\n- Owner (JWT): Sets DISABLED when disabling - owner can re-enable later\n\nWhen ADMIN_DISABLED, only an admin can enable chat.\nOwners attempting to enable when ADMIN_DISABLED will get a 403 error.\n\nRETURNS: { enabled, tokenName, status }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth (token owner)",
5284
5307
  "operationType": "write",
5285
- "authRequired": true,
5308
+ "authRequired": false,
5286
5309
  "parameters": [
5287
5310
  {
5288
5311
  "name": "tokenName",
@@ -5304,7 +5327,7 @@
5304
5327
  "category": "chat",
5305
5328
  "description": "Set slow mode interval for a stream chat.\n\nSlow mode throttles users to one message per N seconds.\nEnforcement is server-side (Redis-backed rate limiting).\nSetting to 0 disables slow mode.\n\nValid presets: 0 (off), 10, 30, 60, 300 seconds.\nMaximum: 600 seconds (10 minutes).\n\nRETURNS: { tokenName, slowModeSeconds }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth (token owner/moderator)",
5306
5329
  "operationType": "write",
5307
- "authRequired": true,
5330
+ "authRequired": false,
5308
5331
  "parameters": [
5309
5332
  {
5310
5333
  "name": "tokenName",
@@ -5336,7 +5359,7 @@
5336
5359
  "category": "chat",
5337
5360
  "description": "Enable or disable chat globally (Admin only).\n\nControls platform-wide chat capability.\nWhen disabled, no chat messages can be sent.\n\nRETURNS: { enabled, updatedAt }\n\nAuthentication: Requires streamAdminApiKey configuration",
5338
5361
  "operationType": "write",
5339
- "authRequired": true,
5362
+ "authRequired": false,
5340
5363
  "parameters": [
5341
5364
  {
5342
5365
  "name": "enabled",
@@ -5379,7 +5402,7 @@
5379
5402
  "category": "chat",
5380
5403
  "description": "Subscribe to a stream's real-time events.\n\nMust be connected via gala_launchpad_connect_stream_websocket first - throws error if not connected.\nAfter subscribing, you will receive these events:\n- stream_status: Live/offline status changes\n- viewer_count: Real-time viewer count updates\n- chat_message: New chat messages\n- chat_status: Chat enable/disable events\n\nRETURNS: { tokenName, status, playbackId, isLive, subscribedAt }",
5381
5404
  "operationType": "read",
5382
- "authRequired": true,
5405
+ "authRequired": false,
5383
5406
  "parameters": [
5384
5407
  {
5385
5408
  "name": "tokenName",
@@ -5470,7 +5493,7 @@
5470
5493
  "category": "auth",
5471
5494
  "description": "Authenticate with wallet signature to get JWT token. Required before using protected features (streaming, chat, uploads). Returns expiresIn seconds; the token is managed internally and never returned via MCP.",
5472
5495
  "operationType": "read",
5473
- "authRequired": true,
5496
+ "authRequired": false,
5474
5497
  "parameters": [],
5475
5498
  "topic": "session-auth"
5476
5499
  },
@@ -5480,7 +5503,7 @@
5480
5503
  "category": "auth",
5481
5504
  "description": "Clear JWT token and end session. Future protected operations will fail until login() is called again.",
5482
5505
  "operationType": "read",
5483
- "authRequired": true,
5506
+ "authRequired": false,
5484
5507
  "parameters": [],
5485
5508
  "topic": "session-auth"
5486
5509
  },
@@ -5490,7 +5513,7 @@
5490
5513
  "category": "auth",
5491
5514
  "description": "Refresh JWT token before it expires. Use shouldRefreshToken() to check if refresh is needed. Returns expiresIn seconds; the token is managed internally and never returned via MCP.",
5492
5515
  "operationType": "read",
5493
- "authRequired": true,
5516
+ "authRequired": false,
5494
5517
  "parameters": [],
5495
5518
  "topic": "session-auth"
5496
5519
  },
@@ -5500,7 +5523,7 @@
5500
5523
  "category": "auth",
5501
5524
  "description": "Get current session information from backend. Returns authenticated address and token timestamps. Requires active session.",
5502
5525
  "operationType": "read",
5503
- "authRequired": true,
5526
+ "authRequired": false,
5504
5527
  "parameters": [],
5505
5528
  "topic": "session-auth"
5506
5529
  },
@@ -5520,7 +5543,7 @@
5520
5543
  "category": "auth",
5521
5544
  "description": "Check if JWT token should be refreshed (expires within threshold). Default threshold is 5 minutes. Returns boolean.",
5522
5545
  "operationType": "read",
5523
- "authRequired": true,
5546
+ "authRequired": false,
5524
5547
  "parameters": [
5525
5548
  {
5526
5549
  "name": "thresholdMs",
@@ -5547,7 +5570,7 @@
5547
5570
  "category": "auth",
5548
5571
  "description": "Ensure valid token exists, refreshing if necessary. Call before long operations. Throws if not authenticated.",
5549
5572
  "operationType": "read",
5550
- "authRequired": true,
5573
+ "authRequired": false,
5551
5574
  "parameters": [
5552
5575
  {
5553
5576
  "name": "thresholdMs",
@@ -5564,7 +5587,7 @@
5564
5587
  "category": "ban",
5565
5588
  "description": "Create a ban for a user on a token.\n\nBans prevent users from sending chat messages and reactions on the specified token's stream.\nCan be permanent (omit durationSeconds) or temporary (specify duration).\n\n**Duration Presets:**\n- 1 hour: 3600\n- 1 day: 86400\n- 1 week: 604800\n- 1 month: 2592000\n\nRETURNS: { ban: { id, userAddress, tokenName, reason, bannedBy, expiresAt, createdAt, isPermanent }, tokenName }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth (token owner).",
5566
5589
  "operationType": "write",
5567
- "authRequired": true,
5590
+ "authRequired": false,
5568
5591
  "parameters": [
5569
5592
  {
5570
5593
  "name": "tokenName",
@@ -5599,7 +5622,7 @@
5599
5622
  "category": "ban",
5600
5623
  "description": "Remove a ban for a user on a token.\n\nUnbans the user, allowing them to send chat messages and reactions again.\n\nRETURNS: { removed: true, tokenName, userAddress }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth (token owner).",
5601
5624
  "operationType": "write",
5602
- "authRequired": true,
5625
+ "authRequired": false,
5603
5626
  "parameters": [
5604
5627
  {
5605
5628
  "name": "tokenName",
@@ -5669,7 +5692,7 @@
5669
5692
  "category": "ban",
5670
5693
  "description": "Check if a specific user is banned on a token.\n\nReturns whether the user is currently banned and ban details if applicable.\n\nRETURNS: { banned: boolean, ban?: { ... }, tokenName, userAddress }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth (token owner).",
5671
5694
  "operationType": "read",
5672
- "authRequired": true,
5695
+ "authRequired": false,
5673
5696
  "parameters": [
5674
5697
  {
5675
5698
  "name": "tokenName",
@@ -5737,7 +5760,7 @@
5737
5760
  "category": "ban",
5738
5761
  "description": "Watch for user ban enforcement events in real-time.\n\nTriggers when users are banned, unbanned, or ban enforcement actions are taken. Includes:\n- USER_BANNED: User restricted from platform due to policy violation\n- USER_UNBANNED: Ban lifted, user access restored\n- BAN_ENFORCEMENT: Enforcement action taken (message deletion, chat suspension, etc.)\n\nReturns:\n- banActionsEnforced: Number of ban enforcement events detected\n- events: Array of ban events with userAddress, actionType, reason, tokenName, and timestamp\n\nFilter Options:\n- userAddress: Only watch bans for a specific user\n- actionType: Filter by action type ('BANNED', 'UNBANNED', or 'ENFORCEMENT')\n- tokenName: Only watch bans related to a specific token\n- reason: Filter by ban reason or violation type.",
5739
5762
  "operationType": "read",
5740
- "authRequired": true,
5763
+ "authRequired": false,
5741
5764
  "parameters": [
5742
5765
  {
5743
5766
  "name": "userAddress",
@@ -5789,7 +5812,7 @@
5789
5812
  "category": "api-keys",
5790
5813
  "description": "Create a new API key for delegating permissions.\n\n**CRITICAL**: The rawKey in the response is ONLY shown once!\nStore it securely immediately - it cannot be retrieved again.\n\n**Roles (hierarchical):**\n- MODERATOR: Manage comments, chat, bans\n- TECHNICAL_PRODUCER: Stream control, simulcast\n- MANAGER: Moderator + Technical Producer + recordings\n- OWNER: Full access\n\n**Token Delegation:**\n- delegateAllTokens=true: Access to all current and future tokens\n- delegateAllTokens=false + tokenNames: Access to specific tokens only\n\nRETURNS: { id, keyPrefix, rawKey, description, role, delegateAllTokens, tokenNames, expiresAt, createdAt, ... }\n\nAuthentication: Requires JWT auth (call sdk.login() first).",
5791
5814
  "operationType": "write",
5792
- "authRequired": true,
5815
+ "authRequired": false,
5793
5816
  "parameters": [
5794
5817
  {
5795
5818
  "name": "role",
@@ -5836,7 +5859,7 @@
5836
5859
  "category": "api-keys",
5837
5860
  "description": "List all API keys for the authenticated user.\n\nReturns a paginated list of API keys using cursor-based pagination.\nRaw keys are never included - they are only shown once at creation time.\n\nRETURNS: { apiKeys: [...], pageInfo: { hasNextPage, endCursor, hasPreviousPage, startCursor } }\n\nAuthentication: Requires JWT auth (call sdk.login() first).",
5838
5861
  "operationType": "read",
5839
- "authRequired": true,
5862
+ "authRequired": false,
5840
5863
  "parameters": [
5841
5864
  {
5842
5865
  "name": "cursor",
@@ -5859,7 +5882,7 @@
5859
5882
  "category": "api-keys",
5860
5883
  "description": "Get a single API key by ID.\n\nReturns the API key metadata. Raw key is never included.\n\nRETURNS: { id, keyPrefix, description, role, delegateAllTokens, tokenNames, expiresAt, lastUsedAt, createdAt, updatedAt }\n\nAuthentication: Requires JWT auth (call sdk.login() first).",
5861
5884
  "operationType": "read",
5862
- "authRequired": true,
5885
+ "authRequired": false,
5863
5886
  "parameters": [
5864
5887
  {
5865
5888
  "name": "id",
@@ -5876,7 +5899,7 @@
5876
5899
  "category": "api-keys",
5877
5900
  "description": "Update an API key's metadata and permissions.\n\nCannot change the key itself, only metadata and permissions.\nAt least one field must be provided.\n\n**Updatable fields:**\n- role: Change permission level\n- description: Update label/description\n- delegateAllTokens: Toggle all-token access\n- tokenNames: Update specific token delegations (replaces existing)\n- expiresAt: Update expiration (null to remove)\n\nRETURNS: { id, keyPrefix, description, role, delegateAllTokens, tokenNames, expiresAt, lastUsedAt, createdAt, updatedAt }\n\nAuthentication: Requires JWT auth (call sdk.login() first).",
5878
5901
  "operationType": "write",
5879
- "authRequired": true,
5902
+ "authRequired": false,
5880
5903
  "parameters": [
5881
5904
  {
5882
5905
  "name": "id",
@@ -5929,7 +5952,7 @@
5929
5952
  "category": "api-keys",
5930
5953
  "description": "Revoke an API key.\n\nThis performs a soft delete - the key becomes immediately unusable\nbut is retained for audit purposes.\n\nRETURNS: { success: true, message: \"API key revoked\" }\n\nAuthentication: Requires JWT auth (call sdk.login() first).",
5931
5954
  "operationType": "write",
5932
- "authRequired": true,
5955
+ "authRequired": false,
5933
5956
  "parameters": [
5934
5957
  {
5935
5958
  "name": "id",
@@ -5946,7 +5969,7 @@
5946
5969
  "category": "api-keys",
5947
5970
  "description": "Get all valid API key roles.\n\nReturns the list of available roles for API keys.\nUseful for understanding the permission hierarchy.\n\n**Roles (hierarchical):**\n- MODERATOR: Manage comments, chat messages, ban/unban users\n- TECHNICAL_PRODUCER: Simulcast targets, stream key, stop/start stream\n- MANAGER: Moderator + Technical Producer + recordings + stream settings\n- OWNER: Full access (indistinguishable from normal auth)\n\nRETURNS: { roles: [\"MODERATOR\", \"TECHNICAL_PRODUCER\", \"MANAGER\", \"OWNER\"] }\n\nAuthentication: None required (utility method).",
5948
5971
  "operationType": "read",
5949
- "authRequired": true,
5972
+ "authRequired": false,
5950
5973
  "parameters": [],
5951
5974
  "topic": "api-key-management"
5952
5975
  },
@@ -5956,7 +5979,7 @@
5956
5979
  "category": "moderators",
5957
5980
  "description": "Create a moderator invite for a token or all tokens.\n\nCreates a magic link invite that can be shared to grant moderator access.\nThe recipient claims the invite after logging in.\n\n**Invite Scopes:**\n- TOKEN (default): Access to a specific token only. tokenName is required.\n- ALL_OWNER_TOKENS: Blanket access to ALL tokens owned by the inviter.\n The moderator gains access to current AND future tokens. Omit tokenName.\n\n**Roles:**\n- MODERATOR: Manage comments, chat, bans\n- TECHNICAL_PRODUCER: Stream control, simulcast, stream key\n- MANAGER: All of the above + recordings + stream settings\n\n**Note:** OWNER role is not available for invites.\n\nRETURNS: { invite: { id, inviteScope, tokenName, role, inviteCode, inviteUrl, description, status, expiresAt, createdAt } }\n\nAuthentication: Requires JWT auth as token owner.",
5958
5981
  "operationType": "write",
5959
- "authRequired": true,
5982
+ "authRequired": false,
5960
5983
  "parameters": [
5961
5984
  {
5962
5985
  "name": "inviteScope",
@@ -6006,7 +6029,7 @@
6006
6029
  "category": "moderators",
6007
6030
  "description": "Claim a moderator invite.\n\nClaims an invite using the code from a magic link URL. The authenticated\nuser's wallet becomes the moderator with the granted role.\n\n**Requirements:**\n- Invite must be in PENDING status\n- Invite must not be expired\n\n**Returns based on invite scope:**\n- TOKEN scope: { token: { tokenName, tokenSymbol, role, inviteScope, ... } }\n- ALL_OWNER_TOKENS scope: { blanketAccess: { inviteScope, role, claimedAt } }\n\nAuthentication: Requires JWT auth.",
6008
6031
  "operationType": "write",
6009
- "authRequired": true,
6032
+ "authRequired": false,
6010
6033
  "parameters": [
6011
6034
  {
6012
6035
  "name": "inviteCode",
@@ -6023,7 +6046,7 @@
6023
6046
  "category": "moderators",
6024
6047
  "description": "Get all tokens the current user moderates.\n\nReturns a paginated list of tokens where the authenticated user has claimed\na moderator invite and has active access using cursor-based pagination.\nUsed for the /studio dashboard.\n\nRETURNS: { tokens: [...], pageInfo: { hasNextPage, endCursor, hasPreviousPage, startCursor } }\n\nAuthentication: Requires JWT auth.",
6025
6048
  "operationType": "read",
6026
- "authRequired": true,
6049
+ "authRequired": false,
6027
6050
  "parameters": [
6028
6051
  {
6029
6052
  "name": "cursor",
@@ -6046,7 +6069,7 @@
6046
6069
  "category": "moderators",
6047
6070
  "description": "List moderator invites.\n\nReturns a paginated list of moderator invites using cursor-based pagination.\nBehavior depends on tokenName:\n- With tokenName: Returns invites for that specific token (verifies ownership)\n- Without tokenName: Returns ALL invites created by the authenticated user across all tokens\n\nRETURNS: { invites: [...], pageInfo: { hasNextPage, endCursor, hasPreviousPage, startCursor } }\n\nAuthentication: Requires JWT auth.",
6048
6071
  "operationType": "read",
6049
- "authRequired": true,
6072
+ "authRequired": false,
6050
6073
  "parameters": [
6051
6074
  {
6052
6075
  "name": "tokenName",
@@ -6087,7 +6110,7 @@
6087
6110
  "category": "moderators",
6088
6111
  "description": "Revoke a moderator invite.\n\nRevokes an invite by ID, preventing it from being claimed. If already claimed,\nthe moderator loses access to the token.\n\nRETURNS: { success: true, message: \"Invite revoked\" }\n\nAuthentication: Requires JWT auth as token owner.",
6089
6112
  "operationType": "write",
6090
- "authRequired": true,
6113
+ "authRequired": false,
6091
6114
  "parameters": [
6092
6115
  {
6093
6116
  "name": "inviteId",
@@ -6104,7 +6127,7 @@
6104
6127
  "category": "moderators",
6105
6128
  "description": "Update the role of a moderator invite.\n\nChanges the role granted by the invite. For claimed invites, the moderator's\neffective permissions change immediately (enforced at runtime).\n\n**Roles:**\n- MODERATOR: Manage comments, chat, bans\n- TECHNICAL_PRODUCER: Stream control, simulcast, stream key\n- MANAGER: All of the above + recordings + stream settings\n\n**Note:** OWNER role is not available for invites.\n\nRETURNS: { invite: { id, inviteScope, tokenName, role, inviteCode, inviteUrl, description, status, expiresAt, createdAt } }\n\nAuthentication: Requires JWT auth as token owner.",
6106
6129
  "operationType": "write",
6107
- "authRequired": true,
6130
+ "authRequired": false,
6108
6131
  "parameters": [
6109
6132
  {
6110
6133
  "name": "inviteId",
@@ -6132,7 +6155,7 @@
6132
6155
  "category": "moderators",
6133
6156
  "description": "Update a moderator invite's role and/or description.\n\nUpdates an existing moderator invite. At least one of role or description must be provided.\nCan update role, description, or both in a single call.\n\n**Roles:**\n- MODERATOR: Manage comments, chat, bans\n- TECHNICAL_PRODUCER: Stream control, simulcast, stream key\n- MANAGER: All of the above + recordings + stream settings\n\nRETURNS: { invite: { id, inviteScope, tokenName, role, inviteCode, inviteUrl, description, status, expiresAt, createdAt } }\n\nAuthentication: Requires JWT auth as token owner.",
6134
6157
  "operationType": "write",
6135
- "authRequired": true,
6158
+ "authRequired": false,
6136
6159
  "parameters": [
6137
6160
  {
6138
6161
  "name": "inviteId",
@@ -6165,7 +6188,7 @@
6165
6188
  "category": "moderators",
6166
6189
  "description": "Get invite details by code (public endpoint).\n\nReturns public information about an invite for the claim page. This is used\nby the frontend to display invite details before the user logs in to claim.\n\n**Returned info:**\n- Token name, symbol, image\n- Role to be granted\n- Invite status and expiration\n- Who created the invite\n\nRETURNS: { tokenName, tokenSymbol, tokenImage, role, description, status, expiresAt, invitedBy: { address, fullName } }\n\nAuthentication: None required (public endpoint).",
6167
6190
  "operationType": "read",
6168
- "authRequired": true,
6191
+ "authRequired": false,
6169
6192
  "parameters": [
6170
6193
  {
6171
6194
  "name": "inviteCode",
@@ -6181,7 +6204,7 @@
6181
6204
  "category": "moderators",
6182
6205
  "description": "Watch for moderator management events in real-time.\n\nTriggers when moderators are added, removed, or their roles are updated. Includes:\n- MODERATOR_ADDED: New moderator invitation accepted\n- MODERATOR_REMOVED: Moderator permissions revoked\n- MODERATOR_ROLE_UPDATED: Permission level changed (e.g., to MANAGER)\n\nReturns:\n- moderatorsChanged: Number of moderator change events detected\n- events: Array of moderator events with tokenName, moderatorAddress, eventType, and role information\n\nFilter Options:\n- tokenName: Only watch changes for a specific token\n- eventType: Filter by event type ('ADDED', 'REMOVED', or 'ROLE_UPDATED')\n- moderatorAddress: Only watch changes for a specific moderator.",
6183
6206
  "operationType": "read",
6184
- "authRequired": true,
6207
+ "authRequired": false,
6185
6208
  "parameters": [
6186
6209
  {
6187
6210
  "name": "tokenName",
@@ -6226,7 +6249,7 @@
6226
6249
  "category": "moderators",
6227
6250
  "description": "Get list of active moderators for a specific token.\n\nReturns all moderators currently assigned to a token, including their:\n- Address / identifier\n- Role level (MODERATOR, TECHNICAL_PRODUCER, MANAGER, OWNER)\n- Permissions (can manage chat, ban users, etc.)\n- Join date\n- Status (active, pending invitation, or inactive)\n\nUseful for understanding chat management team, permissions analysis, and access control verification.\n\nReturns: Array of moderator objects with address, role, permissions, and status.",
6228
6251
  "operationType": "read",
6229
- "authRequired": true,
6252
+ "authRequired": false,
6230
6253
  "parameters": [
6231
6254
  {
6232
6255
  "name": "tokenName",
@@ -6242,7 +6265,7 @@
6242
6265
  "category": "content-flags",
6243
6266
  "description": "Create a content flag/report.\n\nTwo-tier system:\n- Chat/Comment: reason and details are optional (one-click flag)\n- Stream: reason is REQUIRED (modal flow)\n\nUse this when a user reports inappropriate content.\n\nRETURNS: { flag: { id, tokenName, contentType, contentId, reporterAddress, reportedUserAddress, reason, details, status, createdAt } }\n\nAuthentication: Requires JWT auth (logged-in user session).",
6244
6267
  "operationType": "write",
6245
- "authRequired": true,
6268
+ "authRequired": false,
6246
6269
  "parameters": [
6247
6270
  {
6248
6271
  "name": "tokenName",
@@ -6456,7 +6479,7 @@
6456
6479
  "category": "content-flags",
6457
6480
  "description": "Dismiss a flag (no action taken).\n\nMarks the flag as reviewed but takes no action on the content.\nUse when the flag is invalid, unfounded, or doesn't warrant action.\n\nRETURNS: { flag: { id, status: 'DISMISSED', reviewedBy, reviewedAt, ... } }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth (token owner/moderator).",
6458
6481
  "operationType": "write",
6459
- "authRequired": true,
6482
+ "authRequired": false,
6460
6483
  "parameters": [
6461
6484
  {
6462
6485
  "name": "flagId",
@@ -6473,7 +6496,7 @@
6473
6496
  "category": "content-flags",
6474
6497
  "description": "Take action on a flag.\n\nActions available:\n- DELETE_CONTENT: Remove the flagged content\n- BAN_USER: Ban the reported user from the token\n- DELETE_AND_BAN: Both delete content and ban user\n\nUse when the flag is valid and requires action.\n\nRETURNS: { flag: { id, status: 'ACTIONED', actionTaken, reviewedBy, reviewedAt, ... } }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth (token owner/moderator).",
6475
6498
  "operationType": "write",
6476
- "authRequired": true,
6499
+ "authRequired": false,
6477
6500
  "parameters": [
6478
6501
  {
6479
6502
  "name": "flagId",
@@ -6501,7 +6524,7 @@
6501
6524
  "category": "overseers",
6502
6525
  "description": "Create an overseer invite.\n\nOverseers have GLOBAL platform access with MANAGER-level permissions across ALL tokens\n(current and future). This is different from moderators who have token-scoped access.\n\nCreates a magic link invite that can be shared to grant overseer access.\nThe recipient claims the invite after logging in.\n\nRETURNS: { invite: { id, inviteCode, inviteUrl, invitedBy, claimedBy, description, status, expiresAt, createdAt } }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as existing Overseer.",
6503
6526
  "operationType": "write",
6504
- "authRequired": true,
6527
+ "authRequired": false,
6505
6528
  "parameters": [
6506
6529
  {
6507
6530
  "name": "description",
@@ -6524,7 +6547,7 @@
6524
6547
  "category": "overseers",
6525
6548
  "description": "List all overseer invites with cursor-based pagination and filtering.\n\nReturns a paginated list of overseer invites that can be filtered by status.\n\nRETURNS: { invites: [...], pageInfo: { hasNextPage, endCursor, hasPreviousPage, startCursor } }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as existing Overseer.",
6526
6549
  "operationType": "read",
6527
- "authRequired": true,
6550
+ "authRequired": false,
6528
6551
  "parameters": [
6529
6552
  {
6530
6553
  "name": "status",
@@ -6559,7 +6582,7 @@
6559
6582
  "category": "overseers",
6560
6583
  "description": "Get overseer invite details by code (public endpoint).\n\nReturns public information about an invite for the claim page. This is used\nby the frontend to display invite details before the user logs in to claim.\n\n**Returned info:**\n- Description (if set)\n- Invite status and expiration\n- Who created the invite\n\nRETURNS: { description, status, expiresAt, invitedBy: { address, fullName } }\n\nAuthentication: None required (public endpoint).",
6561
6584
  "operationType": "read",
6562
- "authRequired": true,
6585
+ "authRequired": false,
6563
6586
  "parameters": [
6564
6587
  {
6565
6588
  "name": "inviteCode",
@@ -6575,7 +6598,7 @@
6575
6598
  "category": "overseers",
6576
6599
  "description": "Claim an overseer invite.\n\nClaims an invite using the code from a magic link URL. The authenticated\nuser's wallet becomes an overseer with GLOBAL access to ALL tokens on the platform.\n\n**Requirements:**\n- Invite must be in PENDING status\n- Invite must not be expired\n\nRETURNS: { invite: { id, inviteCode, inviteUrl, invitedBy, claimedBy, description, status, expiresAt, claimedAt, createdAt } }\n\nAuthentication: Requires JWT auth.",
6577
6600
  "operationType": "write",
6578
- "authRequired": true,
6601
+ "authRequired": false,
6579
6602
  "parameters": [
6580
6603
  {
6581
6604
  "name": "inviteCode",
@@ -6592,7 +6615,7 @@
6592
6615
  "category": "overseers",
6593
6616
  "description": "Revoke an overseer invite.\n\nRevokes an invite by ID, preventing it from being claimed. If already claimed,\nthe overseer loses access to the platform.\n\nRETURNS: { success: true, message: \"Invite revoked\" }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as existing Overseer.",
6594
6617
  "operationType": "write",
6595
- "authRequired": true,
6618
+ "authRequired": false,
6596
6619
  "parameters": [
6597
6620
  {
6598
6621
  "name": "inviteId",
@@ -6609,7 +6632,7 @@
6609
6632
  "category": "overseers",
6610
6633
  "description": "List all overseers with cursor-based pagination and filtering.\n\nReturns a paginated list of overseers that can be filtered by status.\n\nRETURNS: { overseers: [...], pageInfo: { hasNextPage, endCursor, hasPreviousPage, startCursor } }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as existing Overseer.",
6611
6634
  "operationType": "read",
6612
- "authRequired": true,
6635
+ "authRequired": false,
6613
6636
  "parameters": [
6614
6637
  {
6615
6638
  "name": "status",
@@ -6642,7 +6665,7 @@
6642
6665
  "category": "overseers",
6643
6666
  "description": "Create an overseer directly (bypassing invite flow).\n\nDirectly promotes a user to overseer status without requiring them to claim an invite.\nA synthetic invite record is created for audit trail.\n\nUse this when you need to promote someone programmatically without requiring their\ninteraction (e.g., CLI admin tools, automated tests).\n\nRETURNS: { overseer: { id, userAddress, inviteId, status, createdAt } }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as existing Overseer.",
6644
6667
  "operationType": "write",
6645
- "authRequired": true,
6668
+ "authRequired": false,
6646
6669
  "parameters": [
6647
6670
  {
6648
6671
  "name": "userAddress",
@@ -6664,7 +6687,7 @@
6664
6687
  "category": "overseers",
6665
6688
  "description": "Revoke an overseer's access.\n\nRevokes an overseer by wallet address, removing their global platform access.\n\nRETURNS: { success: true, message: \"Overseer access revoked\" }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as existing Overseer.",
6666
6689
  "operationType": "write",
6667
- "authRequired": true,
6690
+ "authRequired": false,
6668
6691
  "parameters": [
6669
6692
  {
6670
6693
  "name": "address",
@@ -6681,7 +6704,7 @@
6681
6704
  "category": "overseers",
6682
6705
  "description": "Check your own overseer status.\n\nReturns whether the authenticated user is currently an active overseer\nand their details if so.\n\nRETURNS: { isOverseer: boolean, overseer?: { id, userAddress, inviteId, status, createdAt } }\n\nAuthentication: Requires JWT auth.",
6683
6706
  "operationType": "read",
6684
- "authRequired": true,
6707
+ "authRequired": false,
6685
6708
  "parameters": [],
6686
6709
  "topic": "overseer-invites"
6687
6710
  },
@@ -6691,7 +6714,7 @@
6691
6714
  "category": "overseers",
6692
6715
  "description": "Get platform summary for CCTV dashboard.\n\nReturns quick counts for the overseer monitoring dashboard:\n- Active streams (pools with live streams)\n- Total viewers across all active streams\n- Pending content flags awaiting review\n- Total pools on the platform\n\nUse this for dashboard header stats. For detailed data, use:\n- gala_launchpad_fetch_pools (filter by muxStreamStatus=ACTIVE) for stream list\n- gala_launchpad_get_global_flags (status=PENDING) for pending flags\n\nRETURNS: { activeStreams, totalViewers, pendingFlags, totalPools }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as Overseer.",
6693
6716
  "operationType": "read",
6694
- "authRequired": true,
6717
+ "authRequired": false,
6695
6718
  "parameters": [],
6696
6719
  "topic": "overseer-invites"
6697
6720
  },
@@ -6701,7 +6724,7 @@
6701
6724
  "category": "overseers",
6702
6725
  "description": "Get global user ban statistics.\n\nReturns the total count of active global user bans on the platform.\n\nRETURNS: { total: number }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as Overseer.",
6703
6726
  "operationType": "read",
6704
- "authRequired": true,
6727
+ "authRequired": false,
6705
6728
  "parameters": [],
6706
6729
  "topic": "overseer-invites"
6707
6730
  },
@@ -6711,7 +6734,7 @@
6711
6734
  "category": "overseers",
6712
6735
  "description": "Get token ban (delisted tokens) statistics.\n\nReturns the total count of delisted/banned tokens on the platform.\n\nRETURNS: { total: number }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as Overseer.",
6713
6736
  "operationType": "read",
6714
- "authRequired": true,
6737
+ "authRequired": false,
6715
6738
  "parameters": [],
6716
6739
  "topic": "overseer-invites"
6717
6740
  },
@@ -6751,7 +6774,7 @@
6751
6774
  "category": "overseers",
6752
6775
  "description": "List users with pagination and sorting (Overseer/Admin only).\n\nRetrieves a paginated list of users across the platform with optional filtering and sorting.\nUseful for overseer/admin dashboard user management.\n\n**Sort Options:**\n- address: User wallet address\n- flagsReceived: Content flags received\n- activeBans: Active bans count\n- createdAt: Account creation date (default)\n\nRETURNS: { items: [...], total: number, cursor?, pageSize }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as existing Overseer.",
6753
6776
  "operationType": "read",
6754
- "authRequired": true,
6777
+ "authRequired": false,
6755
6778
  "parameters": [
6756
6779
  {
6757
6780
  "name": "search",
@@ -6801,7 +6824,7 @@
6801
6824
  "category": "overseers",
6802
6825
  "description": "Get comprehensive user summary (Admin/Overseer only).\n\nRetrieves full profile, activity metrics, ban status, and other detailed information\nfor a specific user. Perfect for overseer dashboard user detail pages.\n\nRETURNS: { address, profile: { name, image, bio }, statistics: { tokens, positions, trades }, metrics: { flagsReceived, activeBans }, createdAt }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as existing Overseer.",
6803
6826
  "operationType": "read",
6804
- "authRequired": true,
6827
+ "authRequired": false,
6805
6828
  "parameters": [
6806
6829
  {
6807
6830
  "name": "userAddress",
@@ -6817,7 +6840,7 @@
6817
6840
  "category": "overseers",
6818
6841
  "description": "Flush all cache entries for a wallet address.\n\nClears all cached data associated with the specified address including:\n- User profile data (profile:data:*, profile:stats:*)\n- Overseer status\n- Owned tokens list\n- Ban status (global and per-token)\n- Moderator access entries\n\nUse this when:\n- User data appears stale or incorrect\n- After debugging user-specific issues\n- Resolving profile display inconsistencies\n\nRETURNS: { flushedCount, duration, target }\n- flushedCount: Number of cache keys flushed\n- duration: Time taken in milliseconds\n- target: Normalized address that was flushed\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as existing Overseer.",
6819
6842
  "operationType": "write",
6820
- "authRequired": true,
6843
+ "authRequired": false,
6821
6844
  "parameters": [
6822
6845
  {
6823
6846
  "name": "address",
@@ -6833,7 +6856,7 @@
6833
6856
  "category": "overseers",
6834
6857
  "description": "Flush all cache entries for a token.\n\nClears all cached data associated with the specified token including:\n- Stream chat messages and pinned messages\n- Recordings list\n- Holders data and rankings\n- Token ban status\n- Price data (GALA and USD)\n- Vault address mapping\n\nUse this when:\n- Token data appears stale or incorrect\n- Chat/stream data seems outdated\n- Price or holder data is inconsistent\n- After modifying token settings\n\nRETURNS: { flushedCount, duration, target }\n- flushedCount: Number of cache keys flushed\n- duration: Time taken in milliseconds\n- target: Normalized token name that was flushed\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as existing Overseer.",
6835
6858
  "operationType": "read",
6836
- "authRequired": true,
6859
+ "authRequired": false,
6837
6860
  "parameters": [
6838
6861
  {
6839
6862
  "name": "tokenName",
@@ -6849,7 +6872,7 @@
6849
6872
  "category": "overseers",
6850
6873
  "description": "⚠️ NUCLEAR OPTION: Flush ALL Launchpad cache.\n\nClears ALL cached data across the entire Launchpad platform. This includes:\n- All user profile data\n- All token data (chat, recordings, holders, prices)\n- All overseer/moderator access data\n- All ban status data\n- Site configuration cache\n- Everything else\n\n**WARNING:** This will cause a temporary performance hit as all data\nneeds to be re-fetched from the database. Use only when absolutely necessary.\n\n**Safety Feature:** Requires confirm=true to prevent accidental usage.\n\nUse this when:\n- Major cache corruption suspected\n- After database migrations\n- Debugging platform-wide issues\n- Testing cache behavior\n\nRETURNS: { flushedCount, duration }\n- flushedCount: Total number of cache keys flushed\n- duration: Time taken in milliseconds\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as existing Overseer.",
6851
6874
  "operationType": "read",
6852
- "authRequired": true,
6875
+ "authRequired": false,
6853
6876
  "parameters": [
6854
6877
  {
6855
6878
  "name": "confirm",
@@ -6881,7 +6904,7 @@
6881
6904
  "category": "token-ban",
6882
6905
  "description": "Ban a token from the platform (overseer only).\n\nWhen a token is banned:\n- Hidden from ALL pool listings (including creator's profile)\n- Comments blocked on banned tokens\n- Live streaming blocked on banned tokens\n- Chat messages blocked on banned tokens\n- Trading NOT blocked (GalaChain handles trading independently)\n\nToken bans are permanent until explicitly removed by an overseer.\n\nRETURNS: { ban: { id, tokenName, reason, bannedBy, createdAt, updatedAt }, tokenName }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth with overseer status.",
6883
6906
  "operationType": "read",
6884
- "authRequired": true,
6907
+ "authRequired": false,
6885
6908
  "parameters": [
6886
6909
  {
6887
6910
  "name": "tokenName",
@@ -6904,7 +6927,7 @@
6904
6927
  "category": "token-ban",
6905
6928
  "description": "Remove a ban from a token (overseer only).\n\nWhen a token is unbanned:\n- Restored to all pool listings\n- Visible on creator's profile again\n- Comments re-enabled\n- Live streaming re-enabled\n- Chat re-enabled\n\nRETURNS: { removed: true, tokenName }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth with overseer status.",
6906
6929
  "operationType": "read",
6907
- "authRequired": true,
6930
+ "authRequired": false,
6908
6931
  "parameters": [
6909
6932
  {
6910
6933
  "name": "tokenName",
@@ -6984,7 +7007,7 @@
6984
7007
  "category": "token-ban",
6985
7008
  "description": "Watch for token ban and unban events in real-time.\n\nTriggers when tokens are banned or unbanned by administrators. Includes:\n- TOKEN_BANNED: Token removed from trading/creation due to policy violation\n- TOKEN_UNBANNED: Ban lifted, token restored to normal status\n\nReturns:\n- tokenBansChanged: Number of ban status change events detected\n- events: Array of ban events with tokenName, newBanStatus, reason, and timestamp\n\nFilter Options:\n- tokenName: Only watch ban changes for a specific token\n- banStatus: Filter by status ('BANNED' or 'UNBANNED').",
6986
7009
  "operationType": "read",
6987
- "authRequired": true,
7010
+ "authRequired": false,
6988
7011
  "parameters": [
6989
7012
  {
6990
7013
  "name": "tokenName",
@@ -7022,7 +7045,7 @@
7022
7045
  "category": "messages",
7023
7046
  "description": "Query messages with type/tokenName/userAddress filters.\n\nReturns paginated list of messages using cursor-based pagination.\nAt least one of type, tokenName, or userAddress must be provided.\nPublic endpoint - no authentication required.\n\n**Filter Combinations:**\n- type=CHAT + tokenName → Chat messages for a token\n- type=COMMENT + tokenName → Comments for a token\n- userAddress → All messages from a user\n- type + userAddress → User's messages of a specific type\n\n**Message Fields:**\n- id: Unique message ID (for updates/deletes/reactions)\n- type: CHAT or COMMENT\n- tokenName, tokenImage: Pool information\n- userAddress, userProfile: Author information\n- content: Message text\n- createdAt, updatedAt: Timestamps\n- reactions: Reaction counts by emoji type\n- flagCount: Number of flags against this message\n- holderTier?: Token holder tier badge ({ tier: 0-5, tierName: string })\n- isPinned?: Whether this message is pinned (CHAT only)\n\nRETURNS: {\n messages: [...],\n pageInfo: { hasNextPage, endCursor, hasPreviousPage, startCursor }\n}\n\nAuthentication: None required (public endpoint)",
7024
7047
  "operationType": "read",
7025
- "authRequired": false,
7048
+ "authRequired": true,
7026
7049
  "parameters": [
7027
7050
  {
7028
7051
  "name": "type",
@@ -7073,7 +7096,7 @@
7073
7096
  "category": "messages",
7074
7097
  "description": "Create a new message on a token pool.\n\nPosts a message to the specified token as either a CHAT message or COMMENT.\nMessages are stored in the unified pool_messages table.\n\n**Content Limits:**\n- CHAT: 1-500 characters\n- COMMENT: 1-2000 characters\n\nRETURNS: {\n message: {\n id, type, tokenName, tokenImage, userAddress, userProfile,\n content, createdAt, deletedAt, flagCount, reactions, holderTier?\n }\n}\n\nholderTier is present if the author holds tokens ({ tier: 0-5, tierName: string }).\n\nUse the returned id with gala_launchpad_update_message or gala_launchpad_delete_message.\n\nAuthentication: Requires JWT session (call gala_launchpad_login first)",
7075
7098
  "operationType": "write",
7076
- "authRequired": true,
7099
+ "authRequired": false,
7077
7100
  "parameters": [
7078
7101
  {
7079
7102
  "name": "type",
@@ -7106,7 +7129,7 @@
7106
7129
  "category": "messages",
7107
7130
  "description": "Update a message's content.\n\nUpdates the content of an existing message (CHAT or COMMENT).\nOnly the original author can update their message.\nThe message will have an updatedAt timestamp after editing.\n\nRETURNS: {\n message: {\n id, type, tokenName, tokenImage, userAddress, userProfile,\n content, createdAt, updatedAt, deletedAt, flagCount, reactions\n }\n}\n\nAuthentication: Requires JWT session (call gala_launchpad_login first)\nAuthorization: Message author only.",
7108
7131
  "operationType": "write",
7109
- "authRequired": true,
7132
+ "authRequired": false,
7110
7133
  "parameters": [
7111
7134
  {
7112
7135
  "name": "id",
@@ -7129,7 +7152,7 @@
7129
7152
  "category": "messages",
7130
7153
  "description": "Delete a message.\n\nSoft-deletes a message (CHAT or COMMENT) from the pool.\n\n**Authorization:**\n- Message author (JWT auth)\n- Pool owner (JWT auth)\n- Moderator with MANAGE_CHAT/MANAGE_COMMENTS permission (API key auth)\n- Platform overseer\n\nThe message remains in the database with deletedAt set (soft delete).\n\nRETURNS: { success: true }\n\nAuthentication: Requires JWT session OR API key with MANAGE_CHAT or MANAGE_COMMENTS permission.",
7131
7154
  "operationType": "write",
7132
- "authRequired": true,
7155
+ "authRequired": false,
7133
7156
  "parameters": [
7134
7157
  {
7135
7158
  "name": "id",
@@ -7163,7 +7186,7 @@
7163
7186
  "category": "messages",
7164
7187
  "description": "Pin a message to a token's chat.\n\nOnly one message can be pinned per token at a time.\nPinning a new message automatically unpins any previously pinned message.\n\n**Authorization:**\n- Token owner (JWT auth)\n- Moderator with MANAGER or MODERATOR role (JWT or API key)\n\nRETURNS: { success: true }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth (token owner)",
7165
7188
  "operationType": "read",
7166
- "authRequired": true,
7189
+ "authRequired": false,
7167
7190
  "parameters": [
7168
7191
  {
7169
7192
  "name": "id",
@@ -7180,7 +7203,7 @@
7180
7203
  "category": "messages",
7181
7204
  "description": "Unpin a message from a token's chat.\n\nRemoves the pinned status from a message.\n\n**Authorization:**\n- Token owner (JWT auth)\n- Moderator with MANAGER or MODERATOR role (JWT or API key)\n\nRETURNS: { success: true }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth (token owner)",
7182
7205
  "operationType": "read",
7183
- "authRequired": true,
7206
+ "authRequired": false,
7184
7207
  "parameters": [
7185
7208
  {
7186
7209
  "name": "id",
@@ -7217,7 +7240,7 @@
7217
7240
  "category": "restricted-names",
7218
7241
  "description": "Update the restricted token names content.\n\nReplaces the entire list with newline-separated words.\nNewlines separate individual words to restrict.\n\n**Authorization:** Overseer only (JWT)\n\nRETURNS: { success: true }",
7219
7242
  "operationType": "write",
7220
- "authRequired": true,
7243
+ "authRequired": false,
7221
7244
  "parameters": [
7222
7245
  {
7223
7246
  "name": "content",
@@ -7306,7 +7329,7 @@
7306
7329
  "category": "content-reactions",
7307
7330
  "description": "Add a reaction to a chat message.\n\nConvenience wrapper for addContentReaction specifically for chat messages.\n\nRETURNS: { data: { reactions, totalCount }, created: boolean }\n\nAuthentication: Requires JWT session (call sdk.login() first).",
7308
7331
  "operationType": "write",
7309
- "authRequired": true,
7332
+ "authRequired": false,
7310
7333
  "parameters": [
7311
7334
  {
7312
7335
  "name": "tokenName",
@@ -7342,7 +7365,7 @@
7342
7365
  "category": "content-reactions",
7343
7366
  "description": "Remove a reaction from a chat message.\n\nConvenience wrapper for removeContentReaction specifically for chat messages.\n\nRETURNS: { success: true }\n\nAuthentication: Requires JWT session (call sdk.login() first).",
7344
7367
  "operationType": "write",
7345
- "authRequired": true,
7368
+ "authRequired": false,
7346
7369
  "parameters": [
7347
7370
  {
7348
7371
  "name": "tokenName",
@@ -7378,7 +7401,7 @@
7378
7401
  "category": "content-reactions",
7379
7402
  "description": "Add a reaction to a comment.\n\nConvenience wrapper for addContentReaction specifically for comments.\n\nRETURNS: { data: { reactions, totalCount }, created: boolean }\n\nAuthentication: Requires JWT session (call sdk.login() first).",
7380
7403
  "operationType": "write",
7381
- "authRequired": true,
7404
+ "authRequired": false,
7382
7405
  "parameters": [
7383
7406
  {
7384
7407
  "name": "tokenName",
@@ -7414,7 +7437,7 @@
7414
7437
  "category": "content-reactions",
7415
7438
  "description": "Remove a reaction from a comment.\n\nConvenience wrapper for removeContentReaction specifically for comments.\n\nRETURNS: { success: true }\n\nAuthentication: Requires JWT session (call sdk.login() first).",
7416
7439
  "operationType": "write",
7417
- "authRequired": true,
7440
+ "authRequired": false,
7418
7441
  "parameters": [
7419
7442
  {
7420
7443
  "name": "tokenName",
@@ -7450,7 +7473,7 @@
7450
7473
  "category": "trades",
7451
7474
  "description": "Query trades with flexible filtering options.\n\nReturns paginated list of trades with metadata using cursor-based pagination.\nAt least one of tokenName or userAddress is required.\n\nFilters:\n- tokenName: Filter by exact token name (e.g., 'anime')\n- userAddress: Filter by user wallet address\n- search: Fuzzy search by token name (ignored when tokenName is provided)\n- txnType: Filter by trade direction ('BUY' or 'SELL')\n- startDate/endDate: Filter by date range (ISO 8601)\n- minAmount/maxAmount: Filter by trade amount range\n\nRETURNS: { trades: [{ txnId, txnType, inputAmount, outputAmount, userAddress, tokenName, tokenImage, createdAt }], pageInfo: { hasNextPage, endCursor, hasPreviousPage, startCursor } }\n\nExamples:\n- Get all trades for a token: { tokenName: 'anime' }\n- Get all trades by a user: { userAddress: 'eth|123...' }\n- Get only buy trades: { tokenName: 'anime', txnType: 'BUY' }\n- Get trades in date range: { tokenName: 'anime', startDate: '2024-01-01', endDate: '2024-12-31' }\n- Get large trades: { tokenName: 'anime', minAmount: 1000 }\n\nPublic endpoint - no authentication required.",
7452
7475
  "operationType": "read",
7453
- "authRequired": false,
7476
+ "authRequired": true,
7454
7477
  "parameters": [
7455
7478
  {
7456
7479
  "name": "tokenName",
@@ -7525,7 +7548,7 @@
7525
7548
  "category": "trades",
7526
7549
  "description": "Watch for new trade execution events in real-time.\n\nTriggers whenever a trade is executed on any token. Includes buy and sell trades.\n\nReturns:\n- tradesExecuted: Number of trades detected\n- trades: Array of trade events with tokenName, userAddress, tradeType (BUY/SELL), amounts, and timestamp\n\nFilter Options:\n- tokenName: Only watch trades for a specific token\n- tradeType: Filter by direction ('BUY' or 'SELL')\n- minAmount: Only notify about trades >= minAmount\n- userAddress: Only watch trades from a specific user address.",
7527
7550
  "operationType": "write",
7528
- "authRequired": true,
7551
+ "authRequired": false,
7529
7552
  "parameters": [
7530
7553
  {
7531
7554
  "name": "tokenName",
@@ -7614,7 +7637,7 @@
7614
7637
  "category": "holders",
7615
7638
  "description": "Get a user's holder rank and balance for a token.\n\nReturns the user's rank (1 = largest holder), balance, and total holder count.\nUseful for understanding a user's position in the holder distribution.\n\nReturns: { rank: number, balance: string, holderCount: number }\nReturns null if user is not a holder of the token.\n\nPublic endpoint - no authentication required.",
7616
7639
  "operationType": "read",
7617
- "authRequired": false,
7640
+ "authRequired": true,
7618
7641
  "parameters": [
7619
7642
  {
7620
7643
  "name": "tokenName",
@@ -7637,7 +7660,7 @@
7637
7660
  "category": "holders",
7638
7661
  "description": "Get top token holders by balance.\n\nReturns a paginated list of the largest token holders, including their address,\nbalance, and percentage of total supply. Default returns top 10 holders.\n\nReturns: Array of { address: string, balance: string, percentage: number, rank: number }\n\nPublic endpoint - no authentication required.",
7639
7662
  "operationType": "read",
7640
- "authRequired": false,
7663
+ "authRequired": true,
7641
7664
  "parameters": [
7642
7665
  {
7643
7666
  "name": "tokenName",
@@ -7660,7 +7683,7 @@
7660
7683
  "category": "holders",
7661
7684
  "description": "Get holder statistics for a token.\n\nReturns the total number of holders and the total supply across all holders.\n\nReturns: { count: number, totalBalance: string }\n\nPublic endpoint - no authentication required.",
7662
7685
  "operationType": "read",
7663
- "authRequired": false,
7686
+ "authRequired": true,
7664
7687
  "parameters": [
7665
7688
  {
7666
7689
  "name": "tokenName",
@@ -7677,7 +7700,7 @@
7677
7700
  "category": "holders",
7678
7701
  "description": "Query holders by balance range.\n\nReturns holders whose balance falls within the specified min/max range.\nUseful for analyzing holder distribution across different tiers.\n\nReturns: Array of { address: string, balance: string, percentage: number, rank: number }\n\nPublic endpoint - no authentication required.",
7679
7702
  "operationType": "read",
7680
- "authRequired": false,
7703
+ "authRequired": true,
7681
7704
  "parameters": [
7682
7705
  {
7683
7706
  "name": "tokenName",
@@ -7712,7 +7735,7 @@
7712
7735
  "category": "holders",
7713
7736
  "description": "Get recent trade history for a specific holder.\n\nReturns the most recent trades that affected a user's holdings for a token.\nUseful for understanding how a holder's position was built up.\n\nReturns: { trades: [{ txnId, txnType, inputAmount, outputAmount, createdAt }], pageInfo: { hasNextPage, endCursor } }\n\nPublic endpoint - no authentication required.",
7714
7737
  "operationType": "read",
7715
- "authRequired": false,
7738
+ "authRequired": true,
7716
7739
  "parameters": [
7717
7740
  {
7718
7741
  "name": "tokenName",
@@ -7747,7 +7770,7 @@
7747
7770
  "category": "global-feed",
7748
7771
  "description": "Reference: Subscribe to the global feed for real-time updates.\n\n**IMPORTANT**: The global feed is a CLIENT-SIDE feature that requires the SDK to be initialized with WebSocket support.\nThis tool provides documentation. Actual subscription happens in your client code.\n\n## Global Feed Overview\n\nThe global feed broadcasts all important platform events to all subscribed clients:\n\n### Token Events (real-time for all tokens):\n- **stream_status**: Stream active/idle/disabled changes\n- **trade_executed**: Buy/sell trades on bonding curves\n- **holder_count_updated**: Holder count changes\n- **pool_badge_assigned**: Token badge assignments\n- **viewer_count**: Live viewer count updates\n\n### Site Config Events (platform-wide):\n- **site_config_changed**: Generic config changes\n- **stream_global_status**: Global streaming enabled/disabled\n- **chat_global_status**: Global chat enabled/disabled\n- **comments_global_status**: Global comments enabled/disabled\n- **webhooks_global_status**: Global webhooks enabled/disabled\n\n## Usage in Client Code\n\n### React/TypeScript (using SDK hooks):\n```typescript\nimport { useGlobalFeed, useGlobalFeedFiltered } from '@gala-chain/launchpad-sdk';\n\n// Basic subscription\nconst { isSubscribed, siteConfig } = useGlobalFeed({ autoSubscribe: true });\n\n// Filtered subscription\nconst { events } = useGlobalFeedFiltered({\n tokenNames: ['token1', 'token2'],\n eventTypes: ['trade_executed']\n});\n```\n\n### Vanilla JS (using StreamWebSocketService):\n```typescript\nimport { StreamWebSocketService } from '@gala-chain/launchpad-sdk';\n\nconst service = new StreamWebSocketService({\n url: 'wss://api.launchpad.gala.com/ws',\n authToken: token\n});\n\nawait service.connect();\nawait service.subscribeToGlobalFeed({\n onTradeExecuted: (event) => console.log('Trade:', event),\n onStreamGlobalStatus: (event) => console.log('Stream status:', event)\n});\n```\n\n## Documentation\n\nFull guides available in the SDK:\n- Quick Start (5 min): docs/websocket/QUICKSTART.md\n- Complete Guide: docs/websocket/GLOBAL-FEED.md\n- Authentication: docs/websocket/AUTHENTICATION.md\n- Examples: examples/global-feed-demo.ts, examples/global-feed-filtering-demo.ts\n\nAuthentication: None required (public endpoint)",
7749
7772
  "operationType": "read",
7750
- "authRequired": true,
7773
+ "authRequired": false,
7751
7774
  "parameters": []
7752
7775
  },
7753
7776
  "unsubscribeFromGlobalFeedReference": {
@@ -7756,7 +7779,7 @@
7756
7779
  "category": "global-feed",
7757
7780
  "description": "Reference: Unsubscribe from the global feed.\n\n**IMPORTANT**: The global feed is a CLIENT-SIDE feature in the SDK.\nThis tool provides documentation. Unsubscription happens in your client code.\n\n## When to Unsubscribe\n\nUnsubscribe from the global feed when:\n- Component unmounts (React)\n- User navigates away\n- Feature is no longer needed\n- Application is shutting down\n- Connection is being closed\n\n## Unsubscribing\n\n### React/TypeScript (using SDK hooks):\n```typescript\nimport { useEffect } from 'react';\nimport { useGlobalFeed } from '@gala-chain/launchpad-sdk';\n\nexport function HomePage() {\n const { isSubscribed, unsubscribe } = useGlobalFeed();\n\n useEffect(() => {\n // Subscribe on mount (auto via hook)\n\n // Cleanup on unmount\n return () => {\n if (isSubscribed) {\n unsubscribe();\n console.log('Unsubscribed from global feed');\n }\n };\n }, [isSubscribed, unsubscribe]);\n\n return <div>{/* content */}</div>;\n}\n```\n\n### Vanilla JS (using StreamWebSocketService):\n```typescript\nimport { StreamWebSocketService } from '@gala-chain/launchpad-sdk';\n\nconst service = new StreamWebSocketService({\n url: 'wss://api.launchpad.gala.com/ws',\n authToken: token\n});\n\nawait service.connect();\nawait service.subscribeToGlobalFeed({\n onTradeExecuted: (event) => console.log('Trade:', event),\n onStreamStatus: (event) => console.log('Stream status:', event),\n});\n\n// Later, when done with the feed\nservice.unsubscribeFromGlobalFeed();\nconsole.log('Unsubscribed from global feed');\n\n// And finally, close the connection\nawait service.disconnect();\nconsole.log('Disconnected from WebSocket');\n```\n\n## Cleanup Sequence\n\nBest practice cleanup sequence:\n\n```typescript\n// 1. Unsubscribe from global feed\nawait service.unsubscribeFromGlobalFeed();\n\n// 2. Unsubscribe from any token detail subscriptions if needed\nawait service.unsubscribeFromToken('tokenName');\n\n// 3. Disconnect WebSocket\nawait service.disconnect();\n```\n\n## Resource Management\n\nAfter unsubscribing:\n- Event listeners stop firing\n- Memory from event buffers is freed\n- No further network traffic from feed\n- Can still reconnect/resubscribe later if needed\n\n## Errors and Edge Cases\n\n```typescript\n// Safe to unsubscribe if not subscribed\nif (isSubscribed) {\n unsubscribe();\n}\n\n// Safe to call multiple times\nunsubscribe();\nunsubscribe(); // No error\n\n// Disconnecting also unsubscribes automatically\nawait service.disconnect(); // Unsubscribes from all rooms\n```\n\n## Documentation\n\nFull guides available in the SDK:\n- Quick Start (5 min): docs/websocket/QUICKSTART.md\n- Complete Guide: docs/websocket/GLOBAL-FEED.md\n- Examples: examples/global-feed-demo.ts\n\nAuthentication: None required (public endpoint)",
7758
7781
  "operationType": "read",
7759
- "authRequired": true,
7782
+ "authRequired": false,
7760
7783
  "parameters": []
7761
7784
  },
7762
7785
  "globalFeedStatusReference": {
@@ -7765,7 +7788,7 @@
7765
7788
  "category": "global-feed",
7766
7789
  "description": "Reference: Check global feed subscription status.\n\n**IMPORTANT**: The global feed is a CLIENT-SIDE feature in the SDK.\nThis tool provides documentation. Status checking happens in your client code.\n\n## Checking Subscription Status\n\n### React/TypeScript (using SDK hooks):\n```typescript\nimport { useGlobalFeed } from '@gala-chain/launchpad-sdk';\n\nconst { isSubscribed, isConnected } = useGlobalFeed({ autoSubscribe: true });\n\nif (isSubscribed && isConnected) {\n console.log('Successfully subscribed and connected to global feed');\n}\n```\n\n### Vanilla JS (using StreamWebSocketService):\n```typescript\nimport { StreamWebSocketService } from '@gala-chain/launchpad-sdk';\n\nconst service = new StreamWebSocketService({\n url: 'wss://api.launchpad.gala.com/ws',\n authToken: token\n});\n\nawait service.connect();\nconst isSubscribed = service.isSubscribedToGlobalFeed();\nconst isConnected = service.isConnected();\n\nconsole.log(`Subscription status: ${isSubscribed ? 'subscribed' : 'not subscribed'}`);\nconsole.log(`Connection status: ${isConnected ? 'connected' : 'disconnected'}`);\n```\n\n## Status Indicators\n\n- **isSubscribed**: true if you've successfully subscribed to the `global:feed` room\n- **isConnected**: true if WebSocket connection is active and authenticated\n\n## Common Status Scenarios\n\n| Subscribed | Connected | Meaning |\n|-----------|-----------|---------|\n| false | false | Not initialized - call connect() and subscribe first |\n| true | false | Subscribed but connection dropped - reconnecting automatically |\n| false | true | Connected but not subscribed - call subscribeToGlobalFeed() |\n| true | true | ✅ Ready to receive events |\n\n## Documentation\n\nFull guides available in the SDK:\n- Quick Start (5 min): docs/websocket/QUICKSTART.md\n- Complete Guide: docs/websocket/GLOBAL-FEED.md\n- Examples: examples/global-feed-demo.ts, examples/global-feed-filtering-demo.ts\n\nAuthentication: None required (public endpoint)",
7767
7790
  "operationType": "read",
7768
- "authRequired": true,
7791
+ "authRequired": false,
7769
7792
  "parameters": []
7770
7793
  },
7771
7794
  "monitorGlobalFeedEventsReference": {
@@ -7774,7 +7797,7 @@
7774
7797
  "category": "global-feed",
7775
7798
  "description": "Reference: Monitor and filter global feed events.\n\n**IMPORTANT**: The global feed is a CLIENT-SIDE feature in the SDK.\nThis tool provides documentation. Event monitoring happens in your client code.\n\n## Available Event Types\n\n### Token Events (broadcast to all subscribers):\n- **stream_status**: Stream active/idle/disabled status changed\n- **trade_executed**: Buy/sell trade on bonding curve\n- **holder_count_updated**: Holder count increased/decreased\n- **pool_badge_assigned**: Pool earned a badge\n- **viewer_count**: Live viewer count updated\n- **token_config_updated**: Unified config change (countdown, language, toggles, social links)\n- **stats_updated**: Token stats update (price, market cap, bonding curve after trades)\n\n### Site Config Events (global feature flags):\n- **site_config_changed**: Generic config change event\n- **stream_global_status**: Global streaming enabled/disabled\n- **chat_global_status**: Global chat enabled/disabled\n- **comments_global_status**: Global comments enabled/disabled\n- **webhooks_global_status**: Global webhooks enabled/disabled\n\n## Monitoring Events\n\n### React/TypeScript (using SDK hooks):\n```typescript\nimport { useGlobalFeedFiltered } from '@gala-chain/launchpad-sdk';\n\n// Monitor specific event types on specific tokens\nconst { events } = useGlobalFeedFiltered({\n tokenNames: ['bitcoin', 'ethereum'],\n eventTypes: ['trade_executed', 'stream_status'],\n maxBufferSize: 100\n});\n\n// Process buffered events\nevents.forEach(event => {\n console.log(`Event: ${event.type}`, event.data);\n});\n```\n\n### Vanilla JS (using StreamWebSocketService):\n```typescript\nimport { StreamWebSocketService } from '@gala-chain/launchpad-sdk';\n\nconst service = new StreamWebSocketService({\n url: 'wss://api.launchpad.gala.com/ws',\n authToken: token\n});\n\nawait service.connect();\nawait service.subscribeToGlobalFeed({\n onTradeExecuted: (data) => {\n console.log(`Trade on ${data.tokenName}: ${data.tradeType}`);\n },\n onStreamStatus: (data) => {\n console.log(`Stream status: ${data.status}`);\n },\n onViewerCount: (data) => {\n console.log(`Viewers: ${data.viewerCount}`);\n },\n onTokenConfigUpdated: (data) => {\n console.log(`Config updated for ${data.tokenName}`);\n },\n onStatsUpdated: (data) => {\n console.log(`Stats: ${data.tokenName} price=${data.galaPrice}`);\n },\n onStreamGlobalStatus: (data) => {\n console.log(`Streaming globally ${data.enabled ? 'enabled' : 'disabled'}`);\n },\n});\n```\n\n## Client-Side Filtering\n\nFor better performance, filter events on the client side:\n\n```typescript\n// Only process trades for visible tokens\nconst visibleTokens = new Set(['bitcoin', 'ethereum']);\n\nsocket.on('trade_executed', (data) => {\n if (visibleTokens.has(data.tokenName)) {\n updateTokenCard(data);\n }\n});\n\n// Only process site config events\nsocket.on('stream_global_status', (data) => {\n updateGlobalUI(data);\n});\n```\n\n## Use Cases\n\n1. **Homepage Card Updates**: Monitor stream_status, trade_executed, viewer_count, holder_count, stats_updated\n2. **Real-Time Charts**: Monitor stats_updated for price and volume data\n3. **Token Config Changes**: Monitor token_config_updated for countdown, language, toggle changes\n4. **Feature Availability**: Monitor site_config_changed events\n5. **Activity Feed**: Buffer and display recent events to users\n6. **Analytics**: Count and aggregate event types\n\n## Best Practices\n\n- **Buffer management**: Keep maxBufferSize reasonable (100-1000 events)\n- **Unsubscribe cleanup**: Leave the feed when the component unmounts\n- **Client-side filtering**: Filter by tokenNames to reduce processing\n- **Selective subscriptions**: Only listen to event types you need\n- **Error handling**: Handle connection drops and reconnection\n\n## Documentation\n\nFull guides available in the SDK:\n- Quick Start (5 min): docs/websocket/QUICKSTART.md\n- Complete Guide: docs/websocket/GLOBAL-FEED.md\n- Examples: examples/global-feed-demo.ts, examples/global-feed-filtering-demo.ts\n\nAuthentication: None required (public endpoint)",
7776
7799
  "operationType": "read",
7777
- "authRequired": true,
7800
+ "authRequired": false,
7778
7801
  "parameters": []
7779
7802
  },
7780
7803
  "siteConfigStateReference": {
@@ -7783,7 +7806,7 @@
7783
7806
  "category": "global-feed",
7784
7807
  "description": "Reference: Access site configuration state from global feed.\n\n**IMPORTANT**: The global feed is a CLIENT-SIDE feature in the SDK.\nThis tool provides documentation. Config access happens in your client code.\n\n## Site Configuration Events\n\nThe global feed broadcasts site-wide configuration changes. Track these to know when:\n- Streaming is globally enabled/disabled\n- Chat is globally enabled/disabled\n- Comments are globally enabled/disabled\n- Webhooks are globally enabled/disabled\n\n## Accessing Config State\n\n### React/TypeScript (using SDK hooks):\n```typescript\nimport { useGlobalFeed } from '@gala-chain/launchpad-sdk';\n\nconst { siteConfig } = useGlobalFeed({ autoSubscribe: true });\n\nif (siteConfig) {\n console.log('Site Configuration:');\n console.log(' Streaming:', siteConfig.streamingEnabled ? '🟢' : '🔴');\n console.log(' Chat:', siteConfig.chatEnabled ? '🟢' : '🔴');\n console.log(' Comments:', siteConfig.commentsEnabled ? '🟢' : '🔴');\n console.log(' Webhooks:', siteConfig.webhooksEnabled ? '🟢' : '🔴');\n}\n```\n\n### Vanilla JS (using StreamWebSocketService):\n```typescript\nimport { StreamWebSocketService } from '@gala-chain/launchpad-sdk';\n\nconst service = new StreamWebSocketService({\n url: 'wss://api.launchpad.gala.com/ws',\n authToken: token\n});\n\nawait service.connect();\nawait service.subscribeToGlobalFeed({\n onStreamGlobalStatus: (data) => {\n console.log('Stream status changed:', data.enabled);\n },\n onStreamChatGlobalStatus: (data) => {\n console.log('Chat status changed:', data.enabled);\n },\n onCommentsGlobalStatus: (data) => {\n console.log('Comments status changed:', data.enabled);\n },\n onWebhooksGlobalStatus: (data) => {\n console.log('Webhooks status changed:', data.enabled);\n },\n});\n```\n\n## Site Config Interface\n\n```typescript\ninterface SiteConfigState {\n streamingEnabled: boolean; // Global streaming feature enabled\n chatEnabled: boolean; // Global chat feature enabled\n commentsEnabled: boolean; // Global comments feature enabled\n webhooksEnabled: boolean; // Global webhooks feature enabled\n lastUpdated: ISO8601 string; // When config was last updated\n}\n```\n\n## Events\n\n- **site_config_changed**: Generic config change (includes all flags)\n- **stream_global_status**: Streaming enabled/disabled globally\n- **chat_global_status**: Chat enabled/disabled globally\n- **comments_global_status**: Comments enabled/disabled globally\n- **webhooks_global_status**: Webhooks enabled/disabled globally\n\n## Use Cases\n\n1. **Disable UI features**: If streaming is disabled, don't show stream controls\n2. **Show status messages**: Inform users when features are globally unavailable\n3. **Enable/disable monitoring**: Only set up detailed monitoring if features are enabled\n4. **Real-time notifications**: Notify users when features become available/unavailable\n\n## Documentation\n\nFull guides available in the SDK:\n- Quick Start (5 min): docs/websocket/QUICKSTART.md\n- Complete Guide: docs/websocket/GLOBAL-FEED.md\n- Examples: examples/site-config-demo.ts\n\nAuthentication: None required (public endpoint)",
7785
7808
  "operationType": "read",
7786
- "authRequired": true,
7809
+ "authRequired": false,
7787
7810
  "parameters": []
7788
7811
  },
7789
7812
  "emitTradeExecuted": {
@@ -7792,7 +7815,7 @@
7792
7815
  "category": "websocket-admin",
7793
7816
  "description": "Emit a trade execution event to token subscribers.\n\nBroadcasts a trade execution event to all connected clients subscribed to a token.\nPerfect for notifying traders in real-time when a trade occurs on a token.\n\n**Event Recipients:** All clients subscribed to the token:token_name room\n\nRETURNS: { success: true, message: \"Trade executed event emitted\" }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as Overseer",
7794
7817
  "operationType": "write",
7795
- "authRequired": true,
7818
+ "authRequired": false,
7796
7819
  "parameters": [
7797
7820
  {
7798
7821
  "name": "tokenName",
@@ -7831,7 +7854,7 @@
7831
7854
  "category": "websocket-admin",
7832
7855
  "description": "Emit a balance update event to a specific user.\n\nNotifies a specific user that their token and/or GALA balances have changed, typically after a trade or transfer.\nPerfect for real-time wallet updates after trade execution or token transfers.\n\n**Event Recipients:** The specified user via their user:userAddress room\n\nRETURNS: { success: true, message: \"Balance updated event emitted\" }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as Overseer",
7833
7856
  "operationType": "write",
7834
- "authRequired": true,
7857
+ "authRequired": false,
7835
7858
  "parameters": [
7836
7859
  {
7837
7860
  "name": "userAddress",
@@ -7900,7 +7923,7 @@
7900
7923
  "category": "websocket-admin",
7901
7924
  "description": "Emit a viewer count update event.\n\nBroadcasts updated viewer count to all connected clients subscribed to a token.\nUse this to show real-time viewer metrics during streams.\n\n**Event Recipients:** All clients subscribed to the token:token_name room\n\nRETURNS: { success: true, message: \"Viewer count event emitted\" }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as Overseer",
7902
7925
  "operationType": "read",
7903
- "authRequired": true,
7926
+ "authRequired": false,
7904
7927
  "parameters": [
7905
7928
  {
7906
7929
  "name": "tokenName",
@@ -7923,7 +7946,7 @@
7923
7946
  "category": "websocket-admin",
7924
7947
  "description": "Emit a stream countdown event.\n\nNotifies all subscribers of a token when the next live stream will start.\nPerfect for building anticipation and getting viewers ready for a scheduled stream.\n\n**Event Recipients:** All clients subscribed to the token:token_name room, plus globally\n\nRETURNS: { success: true, message: \"Stream countdown event emitted\" }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as Overseer",
7925
7948
  "operationType": "read",
7926
- "authRequired": true,
7949
+ "authRequired": false,
7927
7950
  "parameters": [
7928
7951
  {
7929
7952
  "name": "tokenName",
@@ -7952,7 +7975,7 @@
7952
7975
  "category": "websocket-admin",
7953
7976
  "description": "Emit a chat message event to token chat subscribers.\n\nBroadcasts a system or admin chat message to all connected clients in a token's chat room.\nPerfect for announcements, moderation messages, or system notifications.\n\n**Event Recipients:** All clients subscribed to the token:token_name room\n\nRETURNS: { success: true, message: \"Chat message event emitted\" }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as Overseer",
7954
7977
  "operationType": "read",
7955
- "authRequired": true,
7978
+ "authRequired": false,
7956
7979
  "parameters": [
7957
7980
  {
7958
7981
  "name": "tokenName",
@@ -8010,7 +8033,7 @@
8010
8033
  "category": "websocket-admin",
8011
8034
  "description": "Emit a typing indicator event.\n\nShows which users are currently typing in a token's chat room.\nHelps create the perception of real-time conversation (e.g., \"3 users typing...\").\n\n**Event Recipients:** All clients subscribed to the token:token_name room\n\nRETURNS: { success: true, message: \"Typing indicator event emitted\" }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as Overseer",
8012
8035
  "operationType": "read",
8013
- "authRequired": true,
8036
+ "authRequired": false,
8014
8037
  "parameters": [
8015
8038
  {
8016
8039
  "name": "tokenName",
@@ -8039,7 +8062,7 @@
8039
8062
  "category": "websocket-admin",
8040
8063
  "description": "Emit a token banned event.\n\nBroadcasts globally that a token has been banned from the platform.\nNotifies all connected clients about the ban for compliance and awareness.\n\n**Event Recipients:** All globally connected clients (broadcast)\n\nRETURNS: { success: true, message: \"Token banned event emitted\" }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as Overseer",
8041
8064
  "operationType": "read",
8042
- "authRequired": true,
8065
+ "authRequired": false,
8043
8066
  "parameters": [
8044
8067
  {
8045
8068
  "name": "tokenName",
@@ -8074,7 +8097,7 @@
8074
8097
  "category": "websocket-admin",
8075
8098
  "description": "Emit a token unbanned event.\n\nBroadcasts globally that a previously banned token has been unbanned/restored.\nNotifies all connected clients that the token is now available again.\n\n**Event Recipients:** All globally connected clients (broadcast)\n\nRETURNS: { success: true, message: \"Token unbanned event emitted\" }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as Overseer",
8076
8099
  "operationType": "read",
8077
- "authRequired": true,
8100
+ "authRequired": false,
8078
8101
  "parameters": [
8079
8102
  {
8080
8103
  "name": "tokenName",
@@ -8103,7 +8126,7 @@
8103
8126
  "category": "websocket-admin",
8104
8127
  "description": "Emit a moderator added event.\n\nNotifies subscribers that a user has been added or promoted to a moderator role.\nUseful for transparency and updating the UI with the new moderator information.\n\n**Event Recipients:** All clients subscribed to the token:token_name room\n\nRETURNS: { success: true, message: \"Moderator added event emitted\" }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as Overseer",
8105
8128
  "operationType": "write",
8106
- "authRequired": true,
8129
+ "authRequired": false,
8107
8130
  "parameters": [
8108
8131
  {
8109
8132
  "name": "tokenName",
@@ -8143,7 +8166,7 @@
8143
8166
  "category": "websocket-admin",
8144
8167
  "description": "Emit a moderator removed event.\n\nNotifies subscribers that a moderator has been removed or demoted from their role.\nUseful for transparency and updating the UI with the change in moderator status.\n\n**Event Recipients:** All clients subscribed to the token:token_name room\n\nRETURNS: { success: true, message: \"Moderator removed event emitted\" }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as Overseer",
8145
8168
  "operationType": "write",
8146
- "authRequired": true,
8169
+ "authRequired": false,
8147
8170
  "parameters": [
8148
8171
  {
8149
8172
  "name": "tokenName",
@@ -8172,7 +8195,7 @@
8172
8195
  "category": "websocket-admin",
8173
8196
  "description": "Emit a user profile updated event.\n\nNotifies a specific user that their profile has been updated (e.g., avatar, display name, bio).\nUseful for real-time profile synchronization across all their connected sessions/devices.\n\n**Event Recipients:** The specified user via their user:userAddress room\n\nRETURNS: { success: true, message: \"User profile updated event emitted\" }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as Overseer",
8174
8197
  "operationType": "write",
8175
- "authRequired": true,
8198
+ "authRequired": false,
8176
8199
  "parameters": [
8177
8200
  {
8178
8201
  "name": "userAddress",
@@ -8201,7 +8224,7 @@
8201
8224
  "category": "websocket-admin",
8202
8225
  "description": "Emit a site configuration changed event.\n\nBroadcasts globally that the site configuration has changed (e.g., maintenance mode, trading disabled, fees updated).\nNotifies all connected clients about platform-wide changes requiring immediate awareness.\n\n**Event Recipients:** All globally connected clients (broadcast)\n\nRETURNS: { success: true, message: \"Site config changed event emitted\" }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as Overseer",
8203
8226
  "operationType": "read",
8204
- "authRequired": true,
8227
+ "authRequired": false,
8205
8228
  "parameters": [
8206
8229
  {
8207
8230
  "name": "key",
@@ -8316,7 +8339,7 @@
8316
8339
  "category": "websocket-admin",
8317
8340
  "description": "Emit a recordings count updated event.\n\nNotifies all connected clients subscribed to a token that the number of available recordings has changed.\nUse this when recordings are added, removed, or become available to update UI counters.\n\n**Event Recipients:** All clients subscribed to the token:token_name room\n\nRETURNS: { success: true, message: \"Recordings count updated event emitted\" }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as Overseer",
8318
8341
  "operationType": "write",
8319
- "authRequired": true,
8342
+ "authRequired": false,
8320
8343
  "parameters": [
8321
8344
  {
8322
8345
  "name": "tokenName",
@@ -8344,7 +8367,7 @@
8344
8367
  "category": "websocket-admin",
8345
8368
  "description": "Emit a download ready event.\n\nNotifies all connected clients subscribed to a token that a recording download is ready.\nUse this when Mux has finished processing a recording and made it available for download.\n\n**Event Recipients:** All clients subscribed to the token:token_name room\n\nRETURNS: { success: true, message: \"Download ready event emitted\" }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as Overseer",
8346
8369
  "operationType": "read",
8347
- "authRequired": true,
8370
+ "authRequired": false,
8348
8371
  "parameters": [
8349
8372
  {
8350
8373
  "name": "tokenName",
@@ -8396,7 +8419,7 @@
8396
8419
  "category": "websocket-admin",
8397
8420
  "description": "Emit a generic WebSocket event (advanced/custom use).\n\nFor most use cases, use the specific boutique tools like:\n- gala_launchpad_emit_trade_executed\n- gala_launchpad_emit_chat_message\n- gala_launchpad_emit_stream_status\n- etc.\n\nThis generic tool is for advanced scenarios where you need custom event payloads\nor actions not covered by the boutique helpers.\n\n**Event Routing:**\n- If tokenName: Routes to token:tokenName room\n- If userAddress: Routes to user:userAddress room\n- If broadcast=true: Routes to global room\n\n**Payload Format:**\nProvide a JSON object with custom event data. Structure depends on your event type.\n\nRETURNS: { success: true, message: \"Event emitted\" }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as Overseer",
8398
8421
  "operationType": "read",
8399
- "authRequired": true,
8422
+ "authRequired": false,
8400
8423
  "parameters": [
8401
8424
  {
8402
8425
  "name": "action",
@@ -8453,7 +8476,7 @@
8453
8476
  "category": "websocket-admin",
8454
8477
  "description": "List currently connected WebSocket clients with optional filtering.\n\nReturns a paginated list of connected WebSocket clients, with optional filters\nfor room, token, user addresses, authentication status, and connection duration.\nUseful for monitoring active connections and targeting specific audiences.\n\n**Query Parameters:**\n- room: Filter by room name (e.g., \"token:anime\")\n- tokenName: Shorthand for room=token:{name}\n- userAddress: Find specific user (exact match)\n- userAddresses: Find any of these users (comma-separated)\n- authenticated: Filter by auth status\n- isOverseer: Filter by admin/overseer status\n- minConnectionSeconds: Only clients connected longer than X seconds\n- offset/limit: Pagination\n\n**Connection Info Includes:**\n- Socket ID\n- Wallet address (if authenticated)\n- Authentication status\n- Connected rooms (subscribed channels)\n- Connection duration\n- Last activity timestamp\n\nRETURNS: {\n clients: [\n {\n socketId, address?, authenticated, connectedAt, lastActivity, rooms: [...]\n }\n ],\n summary: {\n totalConnected, authenticatedCount, anonymousCount,\n overseerCount, requestedUsersOnline,\n rooms: [{ room, connectedCount, authenticatedCount }, ...]\n },\n pagination: { offset, limit, total, hasMore }\n}\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as Overseer",
8455
8478
  "operationType": "read",
8456
- "authRequired": false,
8479
+ "authRequired": true,
8457
8480
  "parameters": [
8458
8481
  {
8459
8482
  "name": "room",
@@ -8581,7 +8604,7 @@
8581
8604
  "category": "websocket-admin",
8582
8605
  "description": "Get list of currently online overseers and admins.\n\nUseful for:\n- Finding active admins to notify about urgent issues\n- Checking if any overseers are online before admin events\n- Broadcasting to all online admins\n\nRETURNS: {\n clients: [list of overseer clients],\n count: total overseer count\n}\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth as Overseer",
8583
8606
  "operationType": "read",
8584
- "authRequired": true,
8607
+ "authRequired": false,
8585
8608
  "parameters": [],
8586
8609
  "topic": "websocket-admin"
8587
8610
  },
@@ -8600,7 +8623,7 @@
8600
8623
  "category": "ai-moderation",
8601
8624
  "description": "Update AI moderation settings.\n\nConfigure AI-powered content moderation behavior.\nOnly provided fields will be updated.\n\nRETURNS: { settings: { enabled, mode, provider, ... } }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth (overseer).",
8602
8625
  "operationType": "write",
8603
- "authRequired": true,
8626
+ "authRequired": false,
8604
8627
  "parameters": [
8605
8628
  {
8606
8629
  "name": "enabled",
@@ -8648,7 +8671,7 @@
8648
8671
  "category": "ai-moderation",
8649
8672
  "description": "Trigger AI moderation for a content flag.\n\nQueues flagged content for AI moderation. Moderation runs asynchronously -\nuse gala_launchpad_get_ai_moderation_result to poll for results or listen\nfor the AI_MODERATION_COMPLETE WebSocket event.\n\nFor video content with tiered analysis enabled:\n- Quick scan runs first (5 frames at 480px)\n- If concerns found, detailed scan runs (20 frames at 640px)\n\nRETURNS: { queued: boolean, message: string }\n\nAuthentication: Requires streamAdminApiKey (admin) OR JWT auth (overseer).",
8650
8673
  "operationType": "read",
8651
- "authRequired": true,
8674
+ "authRequired": false,
8652
8675
  "parameters": [
8653
8676
  {
8654
8677
  "name": "flagId",
@@ -8751,6 +8774,106 @@
8751
8774
  "authRequired": false,
8752
8775
  "parameters": [],
8753
8776
  "topic": "platform-stats"
8777
+ },
8778
+ "registerPushToken": {
8779
+ "name": "registerPushToken",
8780
+ "mcpTool": "gala_launchpad_register_push_token",
8781
+ "category": "notifications",
8782
+ "description": "Register a push notification device token.\n\nAssociates a push token (FCM or APNs) with the authenticated user.\nIf the token already exists, it updates the associated device info.\n\n**Parameters:**\n- token (required): Push notification token string (FCM or APNs)\n- platform (required): Device platform - \"ios\" or \"android\"\n- deviceId (optional): Device identifier for multi-device management\n\nRETURNS: { registered: boolean }\n\nAuthentication: Requires JWT auth (call sdk.login() first).",
8783
+ "operationType": "read",
8784
+ "authRequired": true,
8785
+ "parameters": [
8786
+ {
8787
+ "name": "token",
8788
+ "type": "string",
8789
+ "required": true,
8790
+ "description": "Push notification token (FCM or APNs token, max 512 characters)"
8791
+ },
8792
+ {
8793
+ "name": "platform",
8794
+ "type": "string",
8795
+ "required": true,
8796
+ "description": "Device platform - must be \"ios\" or \"android\"",
8797
+ "enum": [
8798
+ "ios",
8799
+ "android"
8800
+ ]
8801
+ },
8802
+ {
8803
+ "name": "deviceId",
8804
+ "type": "string",
8805
+ "required": false,
8806
+ "description": "Optional device identifier for multi-device management (max 255 characters)"
8807
+ }
8808
+ ]
8809
+ },
8810
+ "unregisterPushToken": {
8811
+ "name": "unregisterPushToken",
8812
+ "mcpTool": "gala_launchpad_unregister_push_token",
8813
+ "category": "notifications",
8814
+ "description": "Unregister a push notification device token.\n\nDeactivates a push token so the device no longer receives notifications.\n\n**Parameters:**\n- token (required): The push notification token to unregister\n\nRETURNS: { unregistered: boolean }\n\nAuthentication: Requires JWT auth (call sdk.login() first).",
8815
+ "operationType": "read",
8816
+ "authRequired": true,
8817
+ "parameters": [
8818
+ {
8819
+ "name": "token",
8820
+ "type": "string",
8821
+ "required": true,
8822
+ "description": "Push notification token to unregister"
8823
+ }
8824
+ ]
8825
+ },
8826
+ "fetchNotificationPreferences": {
8827
+ "name": "fetchNotificationPreferences",
8828
+ "mcpTool": "gala_launchpad_fetch_notification_preferences",
8829
+ "category": "notifications",
8830
+ "description": "Get notification preferences for the authenticated user.\n\nReturns the current push notification preference settings.\n\nRETURNS: { preferences: { tradesEnabled, streamsEnabled, chatEnabled, systemEnabled } }\n\nAuthentication: Requires JWT auth (call sdk.login() first).",
8831
+ "operationType": "read",
8832
+ "authRequired": true,
8833
+ "parameters": []
8834
+ },
8835
+ "updateNotificationPreferences": {
8836
+ "name": "updateNotificationPreferences",
8837
+ "mcpTool": "gala_launchpad_update_notification_preferences",
8838
+ "category": "notifications",
8839
+ "description": "Update notification preferences for the authenticated user.\n\nPartial update - only provided fields are modified, others remain unchanged.\nAt least one field should be provided.\n\n**Preference fields (all optional):**\n- tradesEnabled: Enable/disable trade notifications\n- streamsEnabled: Enable/disable stream notifications\n- chatEnabled: Enable/disable chat notifications\n- systemEnabled: Enable/disable system notifications\n\nRETURNS: { preferences: { tradesEnabled, streamsEnabled, chatEnabled, systemEnabled } }\n\nAuthentication: Requires JWT auth (call sdk.login() first).",
8840
+ "operationType": "write",
8841
+ "authRequired": true,
8842
+ "parameters": [
8843
+ {
8844
+ "name": "tradesEnabled",
8845
+ "type": "boolean",
8846
+ "required": false,
8847
+ "description": "Enable/disable trade notifications"
8848
+ },
8849
+ {
8850
+ "name": "streamsEnabled",
8851
+ "type": "boolean",
8852
+ "required": false,
8853
+ "description": "Enable/disable stream notifications"
8854
+ },
8855
+ {
8856
+ "name": "chatEnabled",
8857
+ "type": "boolean",
8858
+ "required": false,
8859
+ "description": "Enable/disable chat notifications"
8860
+ },
8861
+ {
8862
+ "name": "systemEnabled",
8863
+ "type": "boolean",
8864
+ "required": false,
8865
+ "description": "Enable/disable system notifications"
8866
+ }
8867
+ ]
8868
+ },
8869
+ "fetchClientFlags": {
8870
+ "name": "fetchClientFlags",
8871
+ "mcpTool": "gala_launchpad_fetch_client_flags",
8872
+ "category": "notifications",
8873
+ "description": "Get client feature flags for the native mobile app.\n\nReturns feature flag overrides that control which features are enabled/disabled.\nUseful for checking platform feature availability before performing operations.\n\nRETURNS: { flags: { PUSH_NOTIFICATIONS, OFFLINE_MODE, BIOMETRIC_AUTH, DARK_MODE, LIVE_STREAMING, DEX_TRADING, ... } }\n\nAuthentication: None required (public endpoint).",
8874
+ "operationType": "read",
8875
+ "authRequired": false,
8876
+ "parameters": []
8754
8877
  }
8755
8878
  },
8756
8879
  "topics": {
@@ -8919,6 +9042,31 @@
8919
9042
  ],
8920
9043
  "category": "dex"
8921
9044
  },
9045
+ "gdex-stream": {
9046
+ "key": "gdex-stream",
9047
+ "label": "Gdex stream",
9048
+ "description": "Gdex stream operations",
9049
+ "methods": [
9050
+ "connect",
9051
+ "disconnect",
9052
+ "isConnected",
9053
+ "request",
9054
+ "serverInfo",
9055
+ "ping",
9056
+ "getPool",
9057
+ "getBalance",
9058
+ "getPositions",
9059
+ "getBlockHeight",
9060
+ "quote",
9061
+ "getToken",
9062
+ "subscribeSwaps",
9063
+ "subscribePool",
9064
+ "subscribeBalances",
9065
+ "subscribePoolCreated",
9066
+ "subscribeBlocks"
9067
+ ],
9068
+ "category": "utils"
9069
+ },
8922
9070
  "error-handling": {
8923
9071
  "key": "error-handling",
8924
9072
  "label": "Error handling",
@@ -9615,6 +9763,17 @@
9615
9763
  },
9616
9764
  "authMatrix": {
9617
9765
  "public": [
9766
+ "actionFlag",
9767
+ "addLiquidityByPrice",
9768
+ "addLiquidityByTicks",
9769
+ "addReactionToChatMessage",
9770
+ "addReactionToComment",
9771
+ "addSimulcastTarget",
9772
+ "banToken",
9773
+ "bridgeIn",
9774
+ "bridgeOut",
9775
+ "burnTokens",
9776
+ "buy",
9618
9777
  "calculateBuyAmount",
9619
9778
  "calculateBuyAmountExternal",
9620
9779
  "calculateBuyAmountForGraduation",
@@ -9629,10 +9788,52 @@
9629
9788
  "checkPoolExists",
9630
9789
  "checkTokenName",
9631
9790
  "checkTokenSymbol",
9791
+ "claimModeratorInvite",
9792
+ "claimNftCollection",
9793
+ "claimOverseerInvite",
9794
+ "cleanup",
9795
+ "clearCache",
9796
+ "collectPositionFees",
9797
+ "createApiKey",
9798
+ "createBan",
9799
+ "createFlag",
9800
+ "createMessage",
9801
+ "createModeratorInvite",
9802
+ "createNftTokenClass",
9803
+ "createOverseerDirect",
9804
+ "createOverseerInvite",
9805
+ "createSolanaWallet",
9806
+ "createWallet",
9807
+ "deleteMessage",
9808
+ "deleteRecording",
9809
+ "dismissFlag",
9810
+ "emitBalanceUpdated",
9811
+ "emitChatMessage",
9632
9812
  "emitChatStatus",
9813
+ "emitDownloadReady",
9633
9814
  "emitFeatureStatus",
9815
+ "emitModeratorAdded",
9816
+ "emitModeratorRemoved",
9634
9817
  "emitRecordingStatus",
9818
+ "emitRecordingsCountUpdated",
9819
+ "emitSiteConfigChanged",
9820
+ "emitStreamCountdown",
9635
9821
  "emitStreamStatus",
9822
+ "emitTokenBanned",
9823
+ "emitTokenUnbanned",
9824
+ "emitTradeExecuted",
9825
+ "emitTypingIndicator",
9826
+ "emitUserProfileUpdated",
9827
+ "emitViewerCount",
9828
+ "emitWebsocketEvent",
9829
+ "ensureValidToken",
9830
+ "estimateBridgeFee",
9831
+ "estimateNftMintFee",
9832
+ "estimateNftOperationFees",
9833
+ "estimateRemoveLiquidity",
9834
+ "estimateUnwrapFee",
9835
+ "estimateWrapFee",
9836
+ "executeSwap",
9636
9837
  "explainSdkUsage",
9637
9838
  "explainWebsocketEvents",
9638
9839
  "fetchAllAvailableDexTokens",
@@ -9648,6 +9849,7 @@
9648
9849
  "fetchAvailableBalance",
9649
9850
  "fetchAvailableDexTokens",
9650
9851
  "fetchBridgeableTokensByNetwork",
9852
+ "fetchClientFlags",
9651
9853
  "fetchCompositePoolData",
9652
9854
  "fetchCurrentDexLeaderboard",
9653
9855
  "fetchCurrentDexSeason",
@@ -9663,7 +9865,6 @@
9663
9865
  "fetchLaunchpadFee",
9664
9866
  "fetchLaunchpadTokenSpotPrice",
9665
9867
  "fetchLockedTokens",
9666
- "fetchMessages",
9667
9868
  "fetchNftBalances",
9668
9869
  "fetchNftCollections",
9669
9870
  "fetchNftTokenClasses",
@@ -9672,6 +9873,7 @@
9672
9873
  "fetchPools",
9673
9874
  "fetchPriceHistory",
9674
9875
  "fetchProfile",
9876
+ "fetchReferralUrl",
9675
9877
  "fetchReferrals",
9676
9878
  "fetchReferralsSummary",
9677
9879
  "fetchSaleDetails",
@@ -9691,7 +9893,11 @@
9691
9893
  "fetchUserHolderContext",
9692
9894
  "fetchVolumeData",
9693
9895
  "fetchWrappableTokens",
9896
+ "flushAllCache",
9897
+ "flushCacheByAddress",
9898
+ "flushCacheByToken",
9694
9899
  "getAccessToken",
9900
+ "getActiveModerators",
9695
9901
  "getActiveUsers",
9696
9902
  "getAddress",
9697
9903
  "getAiModerationResult",
@@ -9699,33 +9905,41 @@
9699
9905
  "getAiModerationStatus",
9700
9906
  "getAllSwapUserAssets",
9701
9907
  "getAllUserLiquidityPositions",
9908
+ "getApiKey",
9909
+ "getApiKeyRoles",
9702
9910
  "getAvailableRoles",
9911
+ "getBanStats",
9912
+ "getBanStatus",
9703
9913
  "getBridgeStatus",
9704
9914
  "getBundlerTransactionResult",
9705
9915
  "getCacheInfo",
9706
9916
  "getChatStatus",
9707
9917
  "getConfig",
9708
- "getConnectedClients",
9709
9918
  "getEngagementStats",
9710
9919
  "getEnvironment",
9711
9920
  "getEthereumAddress",
9921
+ "getEthereumAddressFromPrivateKey",
9712
9922
  "getEthereumTransactionStatus",
9713
9923
  "getEventSchema",
9714
9924
  "getFlagStats",
9715
9925
  "getGlobalChatStatus",
9716
9926
  "getGlobalStreamingStatus",
9717
- "getHolderCount",
9718
- "getHolderHistory",
9719
- "getHolderRank",
9720
- "getHoldersByBalance",
9721
9927
  "getHomeOembed",
9722
9928
  "getInviteStats",
9723
9929
  "getLiquidityPosition",
9724
9930
  "getLiquidityPositionById",
9931
+ "getManagedTokens",
9725
9932
  "getMessageStats",
9933
+ "getModeratedTokens",
9934
+ "getModeratorInvite",
9935
+ "getMyOverseerStatus",
9726
9936
  "getNftCollectionClaimFee",
9727
9937
  "getNftTokenClassCreateFee",
9938
+ "getOnlineOverseers",
9728
9939
  "getOnlineUsers",
9940
+ "getOverseerInvite",
9941
+ "getOverseerSummary",
9942
+ "getOverseerUserSummary",
9729
9943
  "getPinnedMessage",
9730
9944
  "getPlatformStats",
9731
9945
  "getPlatformStatus",
@@ -9733,24 +9947,27 @@
9733
9947
  "getPoolRealtimeState",
9734
9948
  "getPremintQuote",
9735
9949
  "getProfileOembed",
9950
+ "getPublicKeyFromPrivateKey",
9736
9951
  "getRecentTrades",
9737
9952
  "getRecordingDownload",
9738
9953
  "getRestrictedNames",
9954
+ "getSession",
9739
9955
  "getSimulcastTargets",
9740
9956
  "getSolanaTransactionStatus",
9741
9957
  "getStreamRecordings",
9958
+ "getStreamRole",
9742
9959
  "getSupportedBridgeTokens",
9743
9960
  "getSwapPoolInfo",
9744
9961
  "getSwapPoolPrice",
9745
9962
  "getSwapQuoteExactInput",
9746
9963
  "getSwapQuoteExactOutput",
9747
9964
  "getSwapUserAssets",
9965
+ "getTokenAccess",
9748
9966
  "getTokenBan",
9967
+ "getTokenBanStats",
9749
9968
  "getTokenViewers",
9750
9969
  "getTokenWeeklyHistory",
9751
- "getTopHolders",
9752
9970
  "getTradeQuote",
9753
- "getTrades",
9754
9971
  "getUrlByTokenName",
9755
9972
  "getUserLiquidityPositions",
9756
9973
  "getUserStats",
@@ -9760,6 +9977,10 @@
9760
9977
  "getWrapCounterpart",
9761
9978
  "getWrapStatus",
9762
9979
  "getWrappableToken",
9980
+ "globalFeedReference",
9981
+ "globalFeedStatusReference",
9982
+ "graduateToken",
9983
+ "hasWallet",
9763
9984
  "isAuthenticated",
9764
9985
  "isTokenBanned",
9765
9986
  "isTokenBridgeableToEthereum",
@@ -9768,103 +9989,16 @@
9768
9989
  "isTokenGraduated",
9769
9990
  "isTokenWrappable",
9770
9991
  "isUserOnline",
9992
+ "launchToken",
9993
+ "listApiKeys",
9771
9994
  "listBans",
9772
9995
  "listFlags",
9773
9996
  "listGlobalFlags",
9774
- "listTokenBans",
9775
- "resolveTokenClassKey",
9776
- "resolveVaultAddress"
9777
- ],
9778
- "authenticated": [
9779
- "actionFlag",
9780
- "addContentReaction",
9781
- "addLiquidityByPrice",
9782
- "addLiquidityByTicks",
9783
- "addReactionToChatMessage",
9784
- "addReactionToComment",
9785
- "addSimulcastTarget",
9786
- "banToken",
9787
- "bridgeIn",
9788
- "bridgeOut",
9789
- "burnTokens",
9790
- "buy",
9791
- "claimModeratorInvite",
9792
- "claimNftCollection",
9793
- "claimOverseerInvite",
9794
- "cleanup",
9795
- "clearCache",
9796
- "collectPositionFees",
9797
- "connectStreamWebsocket",
9798
- "createApiKey",
9799
- "createBan",
9800
- "createFlag",
9801
- "createMessage",
9802
- "createModeratorInvite",
9803
- "createNftTokenClass",
9804
- "createOverseerDirect",
9805
- "createOverseerInvite",
9806
- "createSolanaWallet",
9807
- "createWallet",
9808
- "deleteMessage",
9809
- "deleteRecording",
9810
- "dismissFlag",
9811
- "emitBalanceUpdated",
9812
- "emitChatMessage",
9813
- "emitDownloadReady",
9814
- "emitModeratorAdded",
9815
- "emitModeratorRemoved",
9816
- "emitRecordingsCountUpdated",
9817
- "emitSiteConfigChanged",
9818
- "emitStreamCountdown",
9819
- "emitTokenBanned",
9820
- "emitTokenUnbanned",
9821
- "emitTradeExecuted",
9822
- "emitTypingIndicator",
9823
- "emitUserProfileUpdated",
9824
- "emitViewerCount",
9825
- "emitWebsocketEvent",
9826
- "ensureValidToken",
9827
- "estimateBridgeFee",
9828
- "estimateNftMintFee",
9829
- "estimateNftOperationFees",
9830
- "estimateRemoveLiquidity",
9831
- "estimateUnwrapFee",
9832
- "estimateWrapFee",
9833
- "executeSwap",
9834
- "fetchReferralUrl",
9835
- "flushAllCache",
9836
- "flushCacheByAddress",
9837
- "flushCacheByToken",
9838
- "flushCacheWalletAliases",
9839
- "getActiveModerators",
9840
- "getApiKey",
9841
- "getApiKeyRoles",
9842
- "getBanStats",
9843
- "getBanStatus",
9844
- "getEthereumAddressFromPrivateKey",
9845
- "getManagedTokens",
9846
- "getModeratedTokens",
9847
- "getModeratorInvite",
9848
- "getMyOverseerStatus",
9849
- "getOnlineOverseers",
9850
- "getOverseerInvite",
9851
- "getOverseerSummary",
9852
- "getOverseerUserSummary",
9853
- "getPublicKeyFromPrivateKey",
9854
- "getSession",
9855
- "getStreamRole",
9856
- "getTokenAccess",
9857
- "getTokenBanStats",
9858
- "globalFeedReference",
9859
- "globalFeedStatusReference",
9860
- "graduateToken",
9861
- "hasWallet",
9862
- "launchToken",
9863
- "listApiKeys",
9864
9997
  "listModeratorInvites",
9865
9998
  "listOverseerInvites",
9866
9999
  "listOverseerUsers",
9867
10000
  "listOverseers",
10001
+ "listTokenBans",
9868
10002
  "lockTokens",
9869
10003
  "login",
9870
10004
  "logout",
@@ -9881,21 +10015,19 @@
9881
10015
  "pinMessage",
9882
10016
  "refreshToken",
9883
10017
  "removeBan",
9884
- "removeContentReaction",
9885
10018
  "removeLiquidity",
9886
10019
  "removeReactionFromChatMessage",
9887
10020
  "removeReactionFromComment",
9888
10021
  "removeSimulcastTarget",
9889
10022
  "requestSolanaDevnetAirdrop",
9890
10023
  "resetStreamKey",
10024
+ "resolveTokenClassKey",
10025
+ "resolveVaultAddress",
9891
10026
  "revokeApiKey",
9892
10027
  "revokeModeratorInvite",
9893
10028
  "revokeOverseer",
9894
10029
  "revokeOverseerInvite",
9895
10030
  "sell",
9896
- "sendStreamChatViaWebSocket",
9897
- "sendStreamReaction",
9898
- "sendTypingIndicator",
9899
10031
  "setChatEnabled",
9900
10032
  "setGlobalChatEnabled",
9901
10033
  "setGlobalStreamingEnabled",
@@ -9929,6 +10061,27 @@
9929
10061
  "uploadTokenImage",
9930
10062
  "validateToken",
9931
10063
  "wrapToken"
10064
+ ],
10065
+ "authenticated": [
10066
+ "addContentReaction",
10067
+ "connectStreamWebsocket",
10068
+ "fetchMessages",
10069
+ "fetchNotificationPreferences",
10070
+ "flushCacheWalletAliases",
10071
+ "getConnectedClients",
10072
+ "getHolderCount",
10073
+ "getHolderHistory",
10074
+ "getHolderRank",
10075
+ "getHoldersByBalance",
10076
+ "getTopHolders",
10077
+ "getTrades",
10078
+ "registerPushToken",
10079
+ "removeContentReaction",
10080
+ "sendStreamChatViaWebSocket",
10081
+ "sendStreamReaction",
10082
+ "sendTypingIndicator",
10083
+ "unregisterPushToken",
10084
+ "updateNotificationPreferences"
9932
10085
  ]
9933
10086
  },
9934
10087
  "explainSdkTeacher": {
@@ -9958,6 +10111,7 @@
9958
10111
  "fetch-dex-leaderboard-by-season-id",
9959
10112
  "fetch-dex-pools",
9960
10113
  "fetch-pools",
10114
+ "gdex-stream",
9961
10115
  "global-bans",
9962
10116
  "global-feed-subscription",
9963
10117
  "graduation-detection",
@@ -10002,8 +10156,8 @@
10002
10156
  "weekly-challenge",
10003
10157
  "wrap-unwrap-operations"
10004
10158
  ],
10005
- "topicCount": 64,
10006
- "methodCount": 312,
10159
+ "topicCount": 65,
10160
+ "methodCount": 317,
10007
10161
  "exampleUsage": "gala_launchpad_explain_sdk_usage({ topic: \"buy-tokens\" })"
10008
10162
  },
10009
10163
  "walletModule": {
@@ -10015,12 +10169,12 @@
10015
10169
  "methods": [
10016
10170
  {
10017
10171
  "name": "fromWallet",
10018
- "signature": "static fromWallet(wallet: import(\"/home/andy/dev-gala/launchpad-sdk/node_modules/ethers/lib.commonjs/wallet/wallet\").Wallet): import(\"/home/andy/dev-gala/launchpad-sdk/packages/sdk/src/wallet/PrivateKeyProvider\").PrivateKeyProvider",
10172
+ "signature": "static fromWallet(wallet: import(\"/home/andy/dev-gala/launchpad-sdk/node_modules/.pnpm/ethers@6.16.0_bufferutil@4.1.0_utf-8-validate@6.0.6/node_modules/ethers/lib.commonjs/wallet/wallet\").Wallet): import(\"/home/andy/dev-gala/launchpad-sdk/packages/sdk/src/wallet/PrivateKeyProvider\").PrivateKeyProvider",
10019
10173
  "description": "Creates a PrivateKeyProvider from an existing ethers.js Wallet",
10020
10174
  "parameters": [
10021
10175
  {
10022
10176
  "name": "wallet",
10023
- "type": "import(\"/home/andy/dev-gala/launchpad-sdk/node_modules/ethers/lib.commonjs/wallet/wallet\").Wallet",
10177
+ "type": "import(\"/home/andy/dev-gala/launchpad-sdk/node_modules/.pnpm/ethers@6.16.0_bufferutil@4.1.0_utf-8-validate@6.0.6/node_modules/ethers/lib.commonjs/wallet/wallet\").Wallet",
10024
10178
  "required": true,
10025
10179
  "description": ""
10026
10180
  }
@@ -10129,10 +10283,10 @@
10129
10283
  },
10130
10284
  {
10131
10285
  "name": "getWallet",
10132
- "signature": "getWallet(): import(\"/home/andy/dev-gala/launchpad-sdk/node_modules/ethers/lib.commonjs/wallet/wallet\").Wallet",
10286
+ "signature": "getWallet(): import(\"/home/andy/dev-gala/launchpad-sdk/node_modules/.pnpm/ethers@6.16.0_bufferutil@4.1.0_utf-8-validate@6.0.6/node_modules/ethers/lib.commonjs/wallet/wallet\").Wallet",
10133
10287
  "description": "Gets the underlying ethers.js Wallet instance\n\nUseful for operations that require direct Wallet access.",
10134
10288
  "parameters": [],
10135
- "returns": "import(\"/home/andy/dev-gala/launchpad-sdk/node_modules/ethers/lib.commonjs/wallet/wallet\").Wallet",
10289
+ "returns": "import(\"/home/andy/dev-gala/launchpad-sdk/node_modules/.pnpm/ethers@6.16.0_bufferutil@4.1.0_utf-8-validate@6.0.6/node_modules/ethers/lib.commonjs/wallet/wallet\").Wallet",
10136
10290
  "isAsync": false,
10137
10291
  "isStatic": false
10138
10292
  }
@@ -10657,11 +10811,11 @@
10657
10811
  {
10658
10812
  "name": "createProviderFromWallet",
10659
10813
  "description": "Creates a PrivateKeyProvider from an ethers.js Wallet\n\nConvenience function for SDK users who already have an ethers Wallet.",
10660
- "signature": "function createProviderFromWallet(wallet: import(\"/home/andy/dev-gala/launchpad-sdk/node_modules/ethers/lib.commonjs/wallet/wallet\").Wallet): import(\"/home/andy/dev-gala/launchpad-sdk/packages/sdk/src/wallet/PrivateKeyProvider\").PrivateKeyProvider",
10814
+ "signature": "function createProviderFromWallet(wallet: import(\"/home/andy/dev-gala/launchpad-sdk/node_modules/.pnpm/ethers@6.16.0_bufferutil@4.1.0_utf-8-validate@6.0.6/node_modules/ethers/lib.commonjs/wallet/wallet\").Wallet): import(\"/home/andy/dev-gala/launchpad-sdk/packages/sdk/src/wallet/PrivateKeyProvider\").PrivateKeyProvider",
10661
10815
  "parameters": [
10662
10816
  {
10663
10817
  "name": "wallet",
10664
- "type": "import(\"/home/andy/dev-gala/launchpad-sdk/node_modules/ethers/lib.commonjs/wallet/wallet\").Wallet",
10818
+ "type": "import(\"/home/andy/dev-gala/launchpad-sdk/node_modules/.pnpm/ethers@6.16.0_bufferutil@4.1.0_utf-8-validate@6.0.6/node_modules/ethers/lib.commonjs/wallet/wallet\").Wallet",
10665
10819
  "required": true,
10666
10820
  "description": ""
10667
10821
  }
@@ -10732,11 +10886,11 @@
10732
10886
  {
10733
10887
  "name": "walletToProvider",
10734
10888
  "description": "Converts an ethers Wallet to a WalletProvider\n\nFor backward compatibility with SDK code that uses ethers Wallet directly.",
10735
- "signature": "function walletToProvider(wallet: import(\"/home/andy/dev-gala/launchpad-sdk/node_modules/ethers/lib.commonjs/wallet/wallet\").Wallet | undefined): import(\"/home/andy/dev-gala/launchpad-sdk/packages/sdk/src/wallet/types\").WalletProvider | undefined",
10889
+ "signature": "function walletToProvider(wallet: import(\"/home/andy/dev-gala/launchpad-sdk/node_modules/.pnpm/ethers@6.16.0_bufferutil@4.1.0_utf-8-validate@6.0.6/node_modules/ethers/lib.commonjs/wallet/wallet\").Wallet | undefined): import(\"/home/andy/dev-gala/launchpad-sdk/packages/sdk/src/wallet/types\").WalletProvider | undefined",
10736
10890
  "parameters": [
10737
10891
  {
10738
10892
  "name": "wallet",
10739
- "type": "import(\"/home/andy/dev-gala/launchpad-sdk/node_modules/ethers/lib.commonjs/wallet/wallet\").Wallet | undefined",
10893
+ "type": "import(\"/home/andy/dev-gala/launchpad-sdk/node_modules/.pnpm/ethers@6.16.0_bufferutil@4.1.0_utf-8-validate@6.0.6/node_modules/ethers/lib.commonjs/wallet/wallet\").Wallet | undefined",
10740
10894
  "required": true,
10741
10895
  "description": ""
10742
10896
  }
@@ -10747,7 +10901,7 @@
10747
10901
  {
10748
10902
  "name": "providerToWallet",
10749
10903
  "description": "Gets an ethers Wallet from a provider if available\n\nFor backward compatibility with SDK code that needs ethers Wallet.\nOnly works with PrivateKeyProvider.",
10750
- "signature": "function providerToWallet(provider: import(\"/home/andy/dev-gala/launchpad-sdk/packages/sdk/src/wallet/types\").WalletProvider | undefined): import(\"/home/andy/dev-gala/launchpad-sdk/node_modules/ethers/lib.commonjs/wallet/wallet\").Wallet | undefined",
10904
+ "signature": "function providerToWallet(provider: import(\"/home/andy/dev-gala/launchpad-sdk/packages/sdk/src/wallet/types\").WalletProvider | undefined): import(\"/home/andy/dev-gala/launchpad-sdk/node_modules/.pnpm/ethers@6.16.0_bufferutil@4.1.0_utf-8-validate@6.0.6/node_modules/ethers/lib.commonjs/wallet/wallet\").Wallet | undefined",
10751
10905
  "parameters": [
10752
10906
  {
10753
10907
  "name": "provider",
@@ -10756,7 +10910,7 @@
10756
10910
  "description": ""
10757
10911
  }
10758
10912
  ],
10759
- "returns": "import(\"/home/andy/dev-gala/launchpad-sdk/node_modules/ethers/lib.commonjs/wallet/wallet\").Wallet | undefined",
10913
+ "returns": "import(\"/home/andy/dev-gala/launchpad-sdk/node_modules/.pnpm/ethers@6.16.0_bufferutil@4.1.0_utf-8-validate@6.0.6/node_modules/ethers/lib.commonjs/wallet/wallet\").Wallet | undefined",
10760
10914
  "isAsync": false
10761
10915
  },
10762
10916
  {