@noya-ai/data-server-schemas 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +25 -0
  3. package/dist/alternative/schemas.cjs +44 -0
  4. package/dist/alternative/schemas.d.cts +2 -0
  5. package/dist/alternative/schemas.d.ts +2 -0
  6. package/dist/alternative/schemas.js +11 -0
  7. package/dist/batch/schemas.cjs +73 -0
  8. package/dist/batch/schemas.d.cts +2 -0
  9. package/dist/batch/schemas.d.ts +2 -0
  10. package/dist/batch/schemas.js +17 -0
  11. package/dist/chunk-BWY4ZL7E.js +142 -0
  12. package/dist/chunk-C3YNWX7W.js +256 -0
  13. package/dist/chunk-DKMPZFSH.js +29 -0
  14. package/dist/chunk-KLRIACSR.js +162 -0
  15. package/dist/chunk-MECUVGQT.js +203 -0
  16. package/dist/chunk-MLKGABMK.js +9 -0
  17. package/dist/chunk-PHNEQDUP.js +89 -0
  18. package/dist/chunk-ROAH5BN3.js +58 -0
  19. package/dist/chunk-VK45O334.js +129 -0
  20. package/dist/chunk-W5SLY2ZT.js +134 -0
  21. package/dist/chunk-ZP2HSALI.js +150 -0
  22. package/dist/chunk-ZTOGXNAW.js +198 -0
  23. package/dist/coingecko/schemas.cjs +177 -0
  24. package/dist/coingecko/schemas.d.cts +2 -0
  25. package/dist/coingecko/schemas.d.ts +2 -0
  26. package/dist/coingecko/schemas.js +43 -0
  27. package/dist/coinglass/schemas.cjs +213 -0
  28. package/dist/coinglass/schemas.d.cts +2 -0
  29. package/dist/coinglass/schemas.d.ts +2 -0
  30. package/dist/coinglass/schemas.js +63 -0
  31. package/dist/composite/schemas.cjs +144 -0
  32. package/dist/composite/schemas.d.cts +2 -0
  33. package/dist/composite/schemas.d.ts +2 -0
  34. package/dist/composite/schemas.js +23 -0
  35. package/dist/cryptonews/schemas.cjs +104 -0
  36. package/dist/cryptonews/schemas.d.cts +2 -0
  37. package/dist/cryptonews/schemas.d.ts +2 -0
  38. package/dist/cryptonews/schemas.js +23 -0
  39. package/dist/defillama/schemas.cjs +157 -0
  40. package/dist/defillama/schemas.d.cts +2 -0
  41. package/dist/defillama/schemas.d.ts +2 -0
  42. package/dist/defillama/schemas.js +37 -0
  43. package/dist/geckoterminal/schemas.cjs +149 -0
  44. package/dist/geckoterminal/schemas.d.cts +2 -0
  45. package/dist/geckoterminal/schemas.d.ts +2 -0
  46. package/dist/geckoterminal/schemas.js +33 -0
  47. package/dist/index.cjs +1359 -0
  48. package/dist/index.d.cts +12 -0
  49. package/dist/index.d.ts +12 -0
  50. package/dist/index.js +47 -0
  51. package/dist/kaito/schemas.cjs +218 -0
  52. package/dist/kaito/schemas.d.cts +2 -0
  53. package/dist/kaito/schemas.d.ts +2 -0
  54. package/dist/kaito/schemas.js +45 -0
  55. package/dist/moralis/schemas.cjs +165 -0
  56. package/dist/moralis/schemas.d.cts +2 -0
  57. package/dist/moralis/schemas.d.ts +2 -0
  58. package/dist/moralis/schemas.js +29 -0
  59. package/dist/noya/schemas.cjs +271 -0
  60. package/dist/noya/schemas.d.cts +2 -0
  61. package/dist/noya/schemas.d.ts +2 -0
  62. package/dist/noya/schemas.js +57 -0
  63. package/dist/schemas-6ZorQZBC.d.cts +435 -0
  64. package/dist/schemas-6ZorQZBC.d.ts +435 -0
  65. package/dist/schemas-BMeKj9pe.d.cts +832 -0
  66. package/dist/schemas-BMeKj9pe.d.ts +832 -0
  67. package/dist/schemas-BYLoGYNO.d.cts +52 -0
  68. package/dist/schemas-BYLoGYNO.d.ts +52 -0
  69. package/dist/schemas-Bbz-itbI.d.cts +387 -0
  70. package/dist/schemas-Bbz-itbI.d.ts +387 -0
  71. package/dist/schemas-CAn6VbI-.d.cts +240 -0
  72. package/dist/schemas-CAn6VbI-.d.ts +240 -0
  73. package/dist/schemas-CNeb4DA4.d.cts +432 -0
  74. package/dist/schemas-CNeb4DA4.d.ts +432 -0
  75. package/dist/schemas-Cu7LkQN1.d.cts +466 -0
  76. package/dist/schemas-Cu7LkQN1.d.ts +466 -0
  77. package/dist/schemas-D4yPHF06.d.cts +481 -0
  78. package/dist/schemas-D4yPHF06.d.ts +481 -0
  79. package/dist/schemas-Doa7hG7U.d.cts +630 -0
  80. package/dist/schemas-Doa7hG7U.d.ts +630 -0
  81. package/dist/schemas-TYWQmRZI.d.cts +519 -0
  82. package/dist/schemas-TYWQmRZI.d.ts +519 -0
  83. package/dist/schemas-hrS1Vfcr.d.cts +255 -0
  84. package/dist/schemas-hrS1Vfcr.d.ts +255 -0
  85. package/package.json +93 -0
package/dist/index.cjs ADDED
@@ -0,0 +1,1359 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var index_exports = {};
22
+ __export(index_exports, {
23
+ alternative: () => schemas_exports,
24
+ batch: () => schemas_exports2,
25
+ coingecko: () => schemas_exports3,
26
+ coinglass: () => schemas_exports4,
27
+ composite: () => schemas_exports5,
28
+ cryptonews: () => schemas_exports6,
29
+ defillama: () => schemas_exports7,
30
+ geckoterminal: () => schemas_exports8,
31
+ kaito: () => schemas_exports9,
32
+ moralis: () => schemas_exports10,
33
+ noya: () => schemas_exports11
34
+ });
35
+ module.exports = __toCommonJS(index_exports);
36
+
37
+ // src/alternative/schemas.ts
38
+ var schemas_exports = {};
39
+ __export(schemas_exports, {
40
+ FearGreedBody: () => FearGreedBody,
41
+ FearGreedEntry: () => FearGreedEntry,
42
+ FearGreedResponse: () => FearGreedResponse
43
+ });
44
+ var import_zod = require("zod");
45
+ var FearGreedBody = import_zod.z.object({
46
+ limit: import_zod.z.number().int().min(0).default(1).describe("Number of historical Fear & Greed entries to return (most recent first). 1 returns just the latest reading.")
47
+ });
48
+ var FearGreedEntry = import_zod.z.object({
49
+ value: import_zod.z.number(),
50
+ classification: import_zod.z.string(),
51
+ timestamp: import_zod.z.number(),
52
+ timeUntilUpdate: import_zod.z.number().nullable()
53
+ });
54
+ var FearGreedResponse = import_zod.z.array(FearGreedEntry);
55
+
56
+ // src/batch/schemas.ts
57
+ var schemas_exports2 = {};
58
+ __export(schemas_exports2, {
59
+ BatchBody: () => BatchBody,
60
+ BatchFailure: () => BatchFailure,
61
+ BatchItem: () => BatchItem,
62
+ BatchResponse: () => BatchResponse,
63
+ BatchResult: () => BatchResult,
64
+ BatchSuccess: () => BatchSuccess
65
+ });
66
+ var import_zod2 = require("zod");
67
+ var BatchItem = import_zod2.z.object({
68
+ name: import_zod2.z.string().min(1).max(100).describe("Caller-chosen identifier for this sub-request \u2014 used to key the result in the response object. Must be unique within the batch."),
69
+ method: import_zod2.z.enum(["GET", "POST"]).describe("HTTP method for the sub-request."),
70
+ path: import_zod2.z.string().startsWith("/").min(2).describe("Server-relative path of the sub-request (e.g. `/coingecko/price`). Nested batch paths are forbidden."),
71
+ body: import_zod2.z.record(import_zod2.z.string(), import_zod2.z.unknown()).optional().describe("JSON body for POST sub-requests. Ignored for GET."),
72
+ query: import_zod2.z.record(import_zod2.z.string(), import_zod2.z.unknown()).optional().describe("Query-string parameters appended to the sub-request URL."),
73
+ timeoutMs: import_zod2.z.number().int().positive().max(6e4).optional().describe("Per-request timeout override in milliseconds. Falls back to the batch's `defaultTimeoutMs`.")
74
+ }).refine(
75
+ (item) => !(item.path === "/batch" || item.path.startsWith("/batch/")),
76
+ { message: "nested batch requests are not allowed" }
77
+ );
78
+ var BatchBody = import_zod2.z.object({
79
+ requests: import_zod2.z.array(BatchItem).min(1).max(20).describe("Array of sub-requests to dispatch in parallel (1\u201320 items)."),
80
+ defaultTimeoutMs: import_zod2.z.number().int().positive().max(6e4).optional().default(15e3).describe("Default timeout in milliseconds applied to any sub-request that doesn't set its own `timeoutMs`. Capped at 60s.")
81
+ }).refine(
82
+ (input) => new Set(input.requests.map((r) => r.name)).size === input.requests.length,
83
+ { message: "request names must be unique within a batch" }
84
+ );
85
+ var BatchSuccess = import_zod2.z.object({
86
+ ok: import_zod2.z.literal(true),
87
+ status: import_zod2.z.number(),
88
+ data: import_zod2.z.unknown(),
89
+ cache: import_zod2.z.enum(["HIT", "MISS"]).optional()
90
+ });
91
+ var BatchFailure = import_zod2.z.object({
92
+ ok: import_zod2.z.literal(false),
93
+ status: import_zod2.z.number(),
94
+ error: import_zod2.z.string()
95
+ });
96
+ var BatchResult = import_zod2.z.union([BatchSuccess, BatchFailure]);
97
+ var BatchResponse = import_zod2.z.object({
98
+ results: import_zod2.z.record(import_zod2.z.string(), BatchResult)
99
+ });
100
+
101
+ // src/coingecko/schemas.ts
102
+ var schemas_exports3 = {};
103
+ __export(schemas_exports3, {
104
+ ContractAddress: () => ContractAddress,
105
+ OhlcvBody: () => OhlcvBody,
106
+ OhlcvCandle: () => OhlcvCandle,
107
+ OhlcvResponse: () => OhlcvResponse,
108
+ PriceAtDateBody: () => PriceAtDateBody,
109
+ PriceBody: () => PriceBody,
110
+ PriceHistoryBody: () => PriceHistoryBody,
111
+ PriceHistoryResponse: () => PriceHistoryResponse,
112
+ PricePoint: () => PricePoint,
113
+ PriceResponse: () => PriceResponse,
114
+ PriceSnapshot: () => PriceSnapshot,
115
+ SearchBody: () => SearchBody,
116
+ SearchResponse: () => SearchResponse,
117
+ SearchResult: () => SearchResult,
118
+ TokenInfo: () => TokenInfo,
119
+ TokenInfoBody: () => TokenInfoBody,
120
+ TokenPrice: () => TokenPrice,
121
+ TrendingResponse: () => TrendingResponse,
122
+ TrendingToken: () => TrendingToken
123
+ });
124
+ var import_zod3 = require("zod");
125
+ var PriceBody = import_zod3.z.object({
126
+ tokenIds: import_zod3.z.array(import_zod3.z.string()).min(1).describe("CoinGecko token IDs to price (e.g. `bitcoin`, `ethereum`). At least one required."),
127
+ vsCurrencies: import_zod3.z.array(import_zod3.z.string()).optional().describe("Quote currencies (e.g. `usd`, `eur`, `btc`). Defaults to USD when omitted."),
128
+ include24hrChange: import_zod3.z.boolean().default(true).describe("Include 24-hour percentage price change in the response."),
129
+ includeMarketCap: import_zod3.z.boolean().default(true).describe("Include market cap in the response."),
130
+ include24hrVol: import_zod3.z.boolean().default(false).describe("Include 24-hour trading volume in the response.")
131
+ });
132
+ var TokenPrice = import_zod3.z.object({
133
+ id: import_zod3.z.string(),
134
+ price: import_zod3.z.number().nullable(),
135
+ change24h: import_zod3.z.number().nullable(),
136
+ marketCap: import_zod3.z.number().nullable(),
137
+ volume24h: import_zod3.z.number().nullable(),
138
+ currency: import_zod3.z.string()
139
+ });
140
+ var PriceResponse = import_zod3.z.array(TokenPrice);
141
+ var OhlcvBody = import_zod3.z.object({
142
+ tokenId: import_zod3.z.string().min(1).describe("CoinGecko token ID (e.g. `bitcoin`)."),
143
+ vsCurrency: import_zod3.z.string().default("usd").describe("Quote currency for the OHLCV candles."),
144
+ days: import_zod3.z.enum(["1", "7", "14", "30", "90", "180", "365", "max"]).default("7").describe("Lookback window. Use `max` for the full available history."),
145
+ interval: import_zod3.z.enum(["daily", "hourly"]).optional().describe("Candle resolution. CoinGecko picks a sensible default if omitted (hourly for short windows, daily for long).")
146
+ });
147
+ var OhlcvCandle = import_zod3.z.object({
148
+ timestamp: import_zod3.z.number(),
149
+ open: import_zod3.z.number(),
150
+ high: import_zod3.z.number(),
151
+ low: import_zod3.z.number(),
152
+ close: import_zod3.z.number()
153
+ });
154
+ var OhlcvResponse = import_zod3.z.array(OhlcvCandle);
155
+ var TokenInfoBody = import_zod3.z.object({
156
+ tokenId: import_zod3.z.string().min(1).describe("CoinGecko token ID to fetch metadata for.")
157
+ });
158
+ var ContractAddress = import_zod3.z.object({
159
+ chain: import_zod3.z.string(),
160
+ chainId: import_zod3.z.number().nullable(),
161
+ platformId: import_zod3.z.string(),
162
+ address: import_zod3.z.string()
163
+ });
164
+ var TokenInfo = import_zod3.z.object({
165
+ id: import_zod3.z.string(),
166
+ symbol: import_zod3.z.string(),
167
+ name: import_zod3.z.string(),
168
+ description: import_zod3.z.string(),
169
+ categories: import_zod3.z.array(import_zod3.z.string()),
170
+ links: import_zod3.z.object({
171
+ homepage: import_zod3.z.array(import_zod3.z.string()),
172
+ twitter: import_zod3.z.string().nullable(),
173
+ telegram: import_zod3.z.string().nullable(),
174
+ github: import_zod3.z.array(import_zod3.z.string()),
175
+ subreddit: import_zod3.z.string().nullable()
176
+ }),
177
+ contracts: import_zod3.z.array(ContractAddress),
178
+ genesisDate: import_zod3.z.string().nullable(),
179
+ image: import_zod3.z.string().nullable(),
180
+ marketCapRank: import_zod3.z.number().nullable()
181
+ });
182
+ var TrendingToken = import_zod3.z.object({
183
+ id: import_zod3.z.string(),
184
+ name: import_zod3.z.string(),
185
+ symbol: import_zod3.z.string(),
186
+ marketCapRank: import_zod3.z.number().nullable(),
187
+ priceBtc: import_zod3.z.number().nullable(),
188
+ priceUsd: import_zod3.z.number().nullable(),
189
+ change24h: import_zod3.z.number().nullable(),
190
+ thumb: import_zod3.z.string().nullable(),
191
+ score: import_zod3.z.number().nullable()
192
+ });
193
+ var TrendingResponse = import_zod3.z.array(TrendingToken);
194
+ var SearchBody = import_zod3.z.object({
195
+ query: import_zod3.z.string().min(1).describe("Free-text search query (token name, symbol, or partial match).")
196
+ });
197
+ var SearchResult = import_zod3.z.object({
198
+ id: import_zod3.z.string(),
199
+ name: import_zod3.z.string(),
200
+ symbol: import_zod3.z.string(),
201
+ marketCapRank: import_zod3.z.number().nullable(),
202
+ thumb: import_zod3.z.string().nullable()
203
+ });
204
+ var SearchResponse = import_zod3.z.array(SearchResult);
205
+ var PriceHistoryBody = import_zod3.z.object({
206
+ tokenId: import_zod3.z.string().min(1).describe("CoinGecko token ID."),
207
+ vsCurrency: import_zod3.z.string().default("usd").describe("Quote currency for the historical prices."),
208
+ days: import_zod3.z.string().optional().describe("Lookback window in days (e.g. `30`). Mutually exclusive with `from`/`to`."),
209
+ from: import_zod3.z.string().optional().describe("ISO 8601 start timestamp (UTC). Use with `to` instead of `days`."),
210
+ to: import_zod3.z.string().optional().describe("ISO 8601 end timestamp (UTC). Use with `from` instead of `days`."),
211
+ interval: import_zod3.z.enum(["5m", "hourly", "daily"]).optional().describe("Sampling interval. CoinGecko picks one based on the window when omitted.")
212
+ }).refine(
213
+ (d) => d.days || d.from && d.to,
214
+ "Provide either 'days' or both 'from' and 'to'"
215
+ );
216
+ var PricePoint = import_zod3.z.object({
217
+ timestamp: import_zod3.z.number(),
218
+ price: import_zod3.z.number(),
219
+ marketCap: import_zod3.z.number().nullable(),
220
+ volume: import_zod3.z.number().nullable()
221
+ });
222
+ var PriceHistoryResponse = import_zod3.z.array(PricePoint);
223
+ var PriceAtDateBody = import_zod3.z.object({
224
+ tokenId: import_zod3.z.string().min(1).describe("CoinGecko token ID."),
225
+ date: import_zod3.z.string().regex(/^\d{4}-\d{2}-\d{2}$/).describe("Snapshot date in `YYYY-MM-DD` format (UTC). CoinGecko returns the daily close + cap + volume.")
226
+ });
227
+ var PriceSnapshot = import_zod3.z.object({
228
+ id: import_zod3.z.string(),
229
+ name: import_zod3.z.string(),
230
+ symbol: import_zod3.z.string(),
231
+ date: import_zod3.z.string(),
232
+ price: import_zod3.z.record(import_zod3.z.string(), import_zod3.z.number()),
233
+ marketCap: import_zod3.z.record(import_zod3.z.string(), import_zod3.z.number()),
234
+ volume: import_zod3.z.record(import_zod3.z.string(), import_zod3.z.number())
235
+ });
236
+
237
+ // src/coinglass/schemas.ts
238
+ var schemas_exports4 = {};
239
+ __export(schemas_exports4, {
240
+ ExchangePairItem: () => ExchangePairItem,
241
+ ExchangePairsBody: () => ExchangePairsBody,
242
+ ExchangePairsResponse: () => ExchangePairsResponse,
243
+ FundingRateHistoryBody: () => FundingRateHistoryBody,
244
+ FundingRateItem: () => FundingRateItem,
245
+ FundingRatesBody: () => FundingRatesBody,
246
+ FundingRatesResponse: () => FundingRatesResponse,
247
+ LiquidationByExchangeItem: () => LiquidationByExchangeItem,
248
+ LiquidationHistoryBody: () => LiquidationHistoryBody,
249
+ LiquidationHistoryItem: () => LiquidationHistoryItem,
250
+ LiquidationHistoryResponse: () => LiquidationHistoryResponse,
251
+ LiquidationItem: () => LiquidationItem,
252
+ LiquidationsBody: () => LiquidationsBody,
253
+ LiquidationsByExchangeBody: () => LiquidationsByExchangeBody,
254
+ LiquidationsByExchangeResponse: () => LiquidationsByExchangeResponse,
255
+ LiquidationsResponse: () => LiquidationsResponse,
256
+ LongShortExchangeItem: () => LongShortExchangeItem,
257
+ LongShortRatioBody: () => LongShortRatioBody,
258
+ LongShortRatioHistoryBody: () => LongShortRatioHistoryBody,
259
+ LongShortRatioHistoryItem: () => LongShortRatioHistoryItem,
260
+ LongShortRatioHistoryResponse: () => LongShortRatioHistoryResponse,
261
+ LongShortRatioResponse: () => LongShortRatioResponse,
262
+ OhlcCandle: () => OhlcCandle,
263
+ OhlcCandleResponse: () => OhlcCandleResponse,
264
+ OpenInterestBody: () => OpenInterestBody,
265
+ OpenInterestHistoryBody: () => OpenInterestHistoryBody,
266
+ OpenInterestItem: () => OpenInterestItem,
267
+ OpenInterestResponse: () => OpenInterestResponse,
268
+ SupportedListResponse: () => SupportedListResponse
269
+ });
270
+ var import_zod4 = require("zod");
271
+ var symbol = import_zod4.z.string().transform((s) => s.toUpperCase()).describe("Coin symbol, uppercased (e.g. `BTC`, `ETH`).");
272
+ var intervalEnum = import_zod4.z.enum(["1m", "3m", "5m", "15m", "30m", "1h", "4h", "6h", "8h", "12h", "1d", "1w"]).default("1d").describe("Candle interval for the historical series.");
273
+ var rangeEnum = import_zod4.z.enum(["4h", "6h", "8h", "12h", "1d", "1w"]).default("4h").describe("Aggregation window for the snapshot.");
274
+ var FundingRatesBody = import_zod4.z.object({
275
+ symbol: symbol.optional()
276
+ });
277
+ var FundingRateItem = import_zod4.z.object({
278
+ symbol: import_zod4.z.string(),
279
+ exchange: import_zod4.z.string(),
280
+ fundingRate: import_zod4.z.number().nullable(),
281
+ fundingRateInterval: import_zod4.z.number().nullable(),
282
+ nextFundingTime: import_zod4.z.number().nullable()
283
+ });
284
+ var FundingRatesResponse = import_zod4.z.array(FundingRateItem);
285
+ var OpenInterestBody = import_zod4.z.object({ symbol });
286
+ var OpenInterestItem = import_zod4.z.object({
287
+ exchange: import_zod4.z.string(),
288
+ symbol: import_zod4.z.string(),
289
+ openInterestUsd: import_zod4.z.number().nullable(),
290
+ openInterestQuantity: import_zod4.z.number().nullable(),
291
+ coinMarginUsd: import_zod4.z.number().nullable(),
292
+ stablecoinMarginUsd: import_zod4.z.number().nullable(),
293
+ changePercent5m: import_zod4.z.number().nullable(),
294
+ changePercent15m: import_zod4.z.number().nullable(),
295
+ changePercent30m: import_zod4.z.number().nullable(),
296
+ changePercent1h: import_zod4.z.number().nullable(),
297
+ changePercent4h: import_zod4.z.number().nullable(),
298
+ changePercent24h: import_zod4.z.number().nullable()
299
+ });
300
+ var OpenInterestResponse = import_zod4.z.array(OpenInterestItem);
301
+ var LiquidationsBody = import_zod4.z.object({
302
+ symbol: symbol.optional()
303
+ });
304
+ var LiquidationItem = import_zod4.z.object({
305
+ symbol: import_zod4.z.string(),
306
+ liquidationUsd24h: import_zod4.z.number().nullable(),
307
+ longLiquidationUsd24h: import_zod4.z.number().nullable(),
308
+ shortLiquidationUsd24h: import_zod4.z.number().nullable(),
309
+ liquidationUsd12h: import_zod4.z.number().nullable(),
310
+ longLiquidationUsd12h: import_zod4.z.number().nullable(),
311
+ shortLiquidationUsd12h: import_zod4.z.number().nullable(),
312
+ liquidationUsd4h: import_zod4.z.number().nullable(),
313
+ longLiquidationUsd4h: import_zod4.z.number().nullable(),
314
+ shortLiquidationUsd4h: import_zod4.z.number().nullable(),
315
+ liquidationUsd1h: import_zod4.z.number().nullable(),
316
+ longLiquidationUsd1h: import_zod4.z.number().nullable(),
317
+ shortLiquidationUsd1h: import_zod4.z.number().nullable()
318
+ });
319
+ var LiquidationsResponse = import_zod4.z.array(LiquidationItem);
320
+ var LongShortRatioBody = import_zod4.z.object({
321
+ symbol: symbol.default("BTC"),
322
+ range: rangeEnum
323
+ });
324
+ var LongShortExchangeItem = import_zod4.z.object({
325
+ exchange: import_zod4.z.string(),
326
+ buyRatio: import_zod4.z.number().nullable(),
327
+ sellRatio: import_zod4.z.number().nullable(),
328
+ buyVolUsd: import_zod4.z.number().nullable(),
329
+ sellVolUsd: import_zod4.z.number().nullable()
330
+ });
331
+ var LongShortRatioResponse = import_zod4.z.object({
332
+ symbol: import_zod4.z.string(),
333
+ buyRatio: import_zod4.z.number().nullable(),
334
+ sellRatio: import_zod4.z.number().nullable(),
335
+ buyVolUsd: import_zod4.z.number().nullable(),
336
+ sellVolUsd: import_zod4.z.number().nullable(),
337
+ exchanges: import_zod4.z.array(LongShortExchangeItem)
338
+ });
339
+ var SupportedListResponse = import_zod4.z.array(import_zod4.z.string());
340
+ var ExchangePairsBody = import_zod4.z.object({
341
+ symbol: symbol.optional(),
342
+ exchange: import_zod4.z.string().optional().describe("Filter to a single exchange (e.g. `Binance`). Returns all when omitted.")
343
+ });
344
+ var ExchangePairItem = import_zod4.z.object({
345
+ exchange: import_zod4.z.string(),
346
+ instrumentId: import_zod4.z.string(),
347
+ baseAsset: import_zod4.z.string(),
348
+ quoteAsset: import_zod4.z.string(),
349
+ settlementCurrency: import_zod4.z.string(),
350
+ maxLeverage: import_zod4.z.number().nullable(),
351
+ fundingInterval: import_zod4.z.number().nullable()
352
+ });
353
+ var ExchangePairsResponse = import_zod4.z.array(ExchangePairItem);
354
+ var LiquidationsByExchangeBody = import_zod4.z.object({
355
+ symbol: symbol.default("BTC"),
356
+ range: rangeEnum
357
+ });
358
+ var LiquidationByExchangeItem = import_zod4.z.object({
359
+ exchange: import_zod4.z.string(),
360
+ liquidationUsd: import_zod4.z.number().nullable(),
361
+ longLiquidationUsd: import_zod4.z.number().nullable(),
362
+ shortLiquidationUsd: import_zod4.z.number().nullable()
363
+ });
364
+ var LiquidationsByExchangeResponse = import_zod4.z.array(LiquidationByExchangeItem);
365
+ var historyBody = import_zod4.z.object({
366
+ exchange: import_zod4.z.string().default("Binance").describe("Exchange to pull historical data from."),
367
+ symbol: symbol.default("BTCUSDT"),
368
+ interval: intervalEnum,
369
+ limit: import_zod4.z.number().int().min(1).max(4500).default(100).describe("Number of historical points to return (1\u20134500)."),
370
+ startTime: import_zod4.z.number().optional().describe("Unix epoch ms \u2014 start of the time window. Omit to use `limit` newest points."),
371
+ endTime: import_zod4.z.number().optional().describe("Unix epoch ms \u2014 end of the time window.")
372
+ });
373
+ var FundingRateHistoryBody = historyBody;
374
+ var OpenInterestHistoryBody = historyBody;
375
+ var LiquidationHistoryBody = historyBody;
376
+ var LongShortRatioHistoryBody = historyBody;
377
+ var OhlcCandle = import_zod4.z.object({
378
+ time: import_zod4.z.number(),
379
+ open: import_zod4.z.number(),
380
+ high: import_zod4.z.number(),
381
+ low: import_zod4.z.number(),
382
+ close: import_zod4.z.number()
383
+ });
384
+ var OhlcCandleResponse = import_zod4.z.array(OhlcCandle);
385
+ var LiquidationHistoryItem = import_zod4.z.object({
386
+ time: import_zod4.z.number(),
387
+ longLiquidationUsd: import_zod4.z.number(),
388
+ shortLiquidationUsd: import_zod4.z.number()
389
+ });
390
+ var LiquidationHistoryResponse = import_zod4.z.array(LiquidationHistoryItem);
391
+ var LongShortRatioHistoryItem = import_zod4.z.object({
392
+ time: import_zod4.z.number(),
393
+ longPercent: import_zod4.z.number(),
394
+ shortPercent: import_zod4.z.number(),
395
+ longShortRatio: import_zod4.z.number()
396
+ });
397
+ var LongShortRatioHistoryResponse = import_zod4.z.array(LongShortRatioHistoryItem);
398
+
399
+ // src/composite/schemas.ts
400
+ var schemas_exports5 = {};
401
+ __export(schemas_exports5, {
402
+ AlphaRadarBody: () => AlphaRadarBody,
403
+ AlphaRadarComponent: () => AlphaRadarComponent,
404
+ AlphaRadarResponse: () => AlphaRadarResponse,
405
+ HealthResponse: () => HealthResponse,
406
+ MarketSnapshotBody: () => MarketSnapshotBody,
407
+ MarketSnapshotResponse: () => MarketSnapshotResponse,
408
+ SignalLabel: () => SignalLabel,
409
+ WalletXrayBody: () => WalletXrayBody,
410
+ WalletXrayResponse: () => WalletXrayResponse
411
+ });
412
+ var import_zod5 = require("zod");
413
+ var MarketSnapshotBody = import_zod5.z.object({
414
+ coingeckoId: import_zod5.z.string().min(1).describe("CoinGecko token ID for the price + market-cap component (e.g. `bitcoin`)."),
415
+ coinglassSymbol: import_zod5.z.string().min(1).describe("CoinGlass coin symbol for the funding + open-interest component (e.g. `BTC`).")
416
+ });
417
+ var MarketSnapshotResponse = import_zod5.z.object({
418
+ token: import_zod5.z.string(),
419
+ price: import_zod5.z.object({
420
+ usd: import_zod5.z.number().nullable(),
421
+ change24h: import_zod5.z.number().nullable(),
422
+ marketCap: import_zod5.z.number().nullable(),
423
+ volume24h: import_zod5.z.number().nullable()
424
+ }),
425
+ fearGreed: import_zod5.z.object({
426
+ value: import_zod5.z.number().nullable(),
427
+ classification: import_zod5.z.string().nullable()
428
+ }),
429
+ funding: import_zod5.z.object({
430
+ rates: import_zod5.z.array(import_zod5.z.object({ exchange: import_zod5.z.string(), rate: import_zod5.z.number().nullable() }))
431
+ }).nullable(),
432
+ openInterest: import_zod5.z.object({
433
+ totalUsd: import_zod5.z.number().nullable(),
434
+ byExchange: import_zod5.z.array(import_zod5.z.object({ exchange: import_zod5.z.string(), usd: import_zod5.z.number().nullable() }))
435
+ }).nullable()
436
+ });
437
+ var AlphaRadarBody = import_zod5.z.object({
438
+ symbol: import_zod5.z.string().min(1).describe("Coin symbol to score across the alpha-radar signal components (e.g. `BTC`).")
439
+ });
440
+ var SignalLabel = import_zod5.z.enum([
441
+ "very_bearish",
442
+ "bearish",
443
+ "neutral",
444
+ "bullish",
445
+ "very_bullish"
446
+ ]);
447
+ var AlphaRadarComponent = import_zod5.z.object({
448
+ score: import_zod5.z.number(),
449
+ weight: import_zod5.z.number(),
450
+ signal: SignalLabel
451
+ }).catchall(import_zod5.z.unknown());
452
+ var AlphaRadarResponse = import_zod5.z.object({
453
+ symbol: import_zod5.z.string(),
454
+ timestamp: import_zod5.z.string(),
455
+ score: import_zod5.z.number(),
456
+ signal: SignalLabel,
457
+ componentsUsed: import_zod5.z.number(),
458
+ components: import_zod5.z.record(import_zod5.z.string(), AlphaRadarComponent),
459
+ errors: import_zod5.z.record(import_zod5.z.string(), import_zod5.z.string()).optional()
460
+ });
461
+ var WalletXrayBody = import_zod5.z.object({
462
+ address: import_zod5.z.string().min(1).describe("Wallet address to analyze (EVM `0x\u2026` or chain-native format)."),
463
+ chain: import_zod5.z.string().optional().describe("Chain name to scope the analysis (e.g. `eth`, `base`, `polygon`). Defaults to Ethereum mainnet.")
464
+ });
465
+ var WalletXrayResponse = import_zod5.z.object({
466
+ address: import_zod5.z.string(),
467
+ chain: import_zod5.z.string(),
468
+ profile: import_zod5.z.object({
469
+ tag: import_zod5.z.string(),
470
+ netWorthUsd: import_zod5.z.number(),
471
+ tokenCount: import_zod5.z.number(),
472
+ nftCount: import_zod5.z.number(),
473
+ defiPositionCount: import_zod5.z.number(),
474
+ recentTransferCount: import_zod5.z.number()
475
+ }),
476
+ topHoldings: import_zod5.z.array(import_zod5.z.unknown()),
477
+ recentActivity: import_zod5.z.object({
478
+ totalTransfers: import_zod5.z.number(),
479
+ inflows: import_zod5.z.number(),
480
+ outflows: import_zod5.z.number(),
481
+ recentInflows: import_zod5.z.array(import_zod5.z.unknown()),
482
+ recentOutflows: import_zod5.z.array(import_zod5.z.unknown())
483
+ }),
484
+ defiPositions: import_zod5.z.array(import_zod5.z.unknown()),
485
+ nftSummary: import_zod5.z.object({
486
+ total: import_zod5.z.number(),
487
+ topCollections: import_zod5.z.array(import_zod5.z.object({ name: import_zod5.z.string(), count: import_zod5.z.number() }))
488
+ }),
489
+ errors: import_zod5.z.record(import_zod5.z.string(), import_zod5.z.string().nullable())
490
+ });
491
+ var HealthResponse = import_zod5.z.object({
492
+ status: import_zod5.z.enum(["ok", "degraded"]),
493
+ uptime: import_zod5.z.number(),
494
+ redis: import_zod5.z.boolean(),
495
+ rateLimit: import_zod5.z.object({
496
+ limit: import_zod5.z.number(),
497
+ windowMs: import_zod5.z.number(),
498
+ used: import_zod5.z.number(),
499
+ remaining: import_zod5.z.number(),
500
+ clientIp: import_zod5.z.string()
501
+ }),
502
+ services: import_zod5.z.array(
503
+ import_zod5.z.object({
504
+ name: import_zod5.z.string(),
505
+ status: import_zod5.z.enum(["ok", "error"]),
506
+ latencyMs: import_zod5.z.number(),
507
+ error: import_zod5.z.string().optional()
508
+ })
509
+ )
510
+ });
511
+
512
+ // src/cryptonews/schemas.ts
513
+ var schemas_exports6 = {};
514
+ __export(schemas_exports6, {
515
+ NewsArticle: () => NewsArticle,
516
+ NewsBody: () => NewsBody,
517
+ NewsResponse: () => NewsResponse,
518
+ SentimentBody: () => SentimentBody,
519
+ SentimentItem: () => SentimentItem,
520
+ SentimentResponse: () => SentimentResponse,
521
+ TrendingQuery: () => TrendingQuery,
522
+ TrendingResponse: () => TrendingResponse2,
523
+ TrendingTicker: () => TrendingTicker
524
+ });
525
+ var import_zod6 = require("zod");
526
+ var NewsBody = import_zod6.z.object({
527
+ tickers: import_zod6.z.string().optional().describe("Comma-separated tickers to filter by (e.g. `BTC,ETH`). Omit for the full feed."),
528
+ items: import_zod6.z.number().int().min(1).max(100).optional().default(10).describe("Articles per page (1\u2013100)."),
529
+ page: import_zod6.z.number().int().min(1).optional().default(1).describe("1-based page number for pagination."),
530
+ sentiment: import_zod6.z.enum(["positive", "negative", "neutral"]).optional().describe("Filter to articles with this sentiment classification."),
531
+ topic: import_zod6.z.string().optional().describe("Filter by topic tag (e.g. `regulation`, `mining`, `defi`)."),
532
+ source: import_zod6.z.string().optional().describe("Filter by news outlet (e.g. `coindesk`, `cointelegraph`)."),
533
+ date: import_zod6.z.string().optional().describe(
534
+ "Date filter. Accepts presets (`today`, `last7days`, `last30days`) or `MMDDYYYY-MMDDYYYY` ranges."
535
+ ),
536
+ sort: import_zod6.z.enum(["rank", "date"]).optional().describe("Sort order \u2014 `rank` for relevance, `date` for newest first.")
537
+ });
538
+ var NewsArticle = import_zod6.z.object({
539
+ title: import_zod6.z.string(),
540
+ text: import_zod6.z.string(),
541
+ url: import_zod6.z.string(),
542
+ imageUrl: import_zod6.z.string().nullable(),
543
+ date: import_zod6.z.string(),
544
+ source: import_zod6.z.string(),
545
+ sentiment: import_zod6.z.string(),
546
+ tickers: import_zod6.z.array(import_zod6.z.string()),
547
+ topics: import_zod6.z.array(import_zod6.z.string()),
548
+ type: import_zod6.z.string()
549
+ });
550
+ var NewsResponse = import_zod6.z.object({
551
+ articles: import_zod6.z.array(NewsArticle),
552
+ totalPages: import_zod6.z.number().nullable()
553
+ });
554
+ var SentimentBody = import_zod6.z.object({
555
+ tickers: import_zod6.z.string().min(1).describe("Comma-separated tickers to score (e.g. `BTC,ETH,SOL`)."),
556
+ date: import_zod6.z.string().default("last30days").refine(
557
+ (v) => /^(today|yesterday|last7days|last30days|yeartodate)$/.test(v) || /^\d{8}-(\d{8}|today)$/.test(v)
558
+ ).describe(
559
+ "Date window. Presets: `today`, `yesterday`, `last7days`, `last30days`, `yeartodate`. Or a custom `MMDDYYYY-MMDDYYYY` range (or `MMDDYYYY-today`)."
560
+ )
561
+ });
562
+ var SentimentItem = import_zod6.z.object({
563
+ ticker: import_zod6.z.string(),
564
+ sentiment: import_zod6.z.string(),
565
+ sentimentScore: import_zod6.z.number().nullable(),
566
+ positive: import_zod6.z.number(),
567
+ negative: import_zod6.z.number(),
568
+ neutral: import_zod6.z.number()
569
+ });
570
+ var SentimentResponse = import_zod6.z.array(SentimentItem);
571
+ var TrendingQuery = import_zod6.z.object({
572
+ date: import_zod6.z.string().optional().describe("Date window \u2014 same format as the sentiment endpoint. Defaults to today.")
573
+ });
574
+ var TrendingTicker = import_zod6.z.object({
575
+ ticker: import_zod6.z.string(),
576
+ name: import_zod6.z.string(),
577
+ totalMentions: import_zod6.z.number(),
578
+ positiveMentions: import_zod6.z.number(),
579
+ negativeMentions: import_zod6.z.number(),
580
+ neutralMentions: import_zod6.z.number(),
581
+ sentimentScore: import_zod6.z.number().nullable()
582
+ });
583
+ var TrendingResponse2 = import_zod6.z.array(TrendingTicker);
584
+
585
+ // src/defillama/schemas.ts
586
+ var schemas_exports7 = {};
587
+ __export(schemas_exports7, {
588
+ BridgeItem: () => BridgeItem,
589
+ BridgesBody: () => BridgesBody,
590
+ BridgesListResponse: () => BridgesListResponse,
591
+ BridgesResponse: () => BridgesResponse,
592
+ DexVolumesBody: () => DexVolumesBody,
593
+ DexVolumesResponse: () => DexVolumesResponse,
594
+ ProtocolFeesBody: () => ProtocolFeesBody,
595
+ ProtocolFeesResponse: () => ProtocolFeesResponse,
596
+ StablecoinsBody: () => StablecoinsBody,
597
+ StablecoinsResponse: () => StablecoinsResponse,
598
+ TvlBody: () => TvlBody,
599
+ TvlDataPoint: () => TvlDataPoint,
600
+ TvlResponse: () => TvlResponse,
601
+ YieldPoolItem: () => YieldPoolItem,
602
+ YieldsBody: () => YieldsBody,
603
+ YieldsResponse: () => YieldsResponse
604
+ });
605
+ var import_zod7 = require("zod");
606
+ var TvlBody = import_zod7.z.object({
607
+ protocol: import_zod7.z.string().optional().describe("DeFiLlama protocol slug (e.g. `aave-v3`). Mutually exclusive with `chain`."),
608
+ chain: import_zod7.z.string().optional().describe("Chain name (e.g. `Ethereum`, `Base`). Returns the chain's aggregate TVL."),
609
+ historical: import_zod7.z.boolean().default(false).describe("Include the full daily TVL time-series in the response.")
610
+ }).refine((d) => d.protocol || d.chain, "Provide either 'protocol' or 'chain'");
611
+ var TvlDataPoint = import_zod7.z.object({ date: import_zod7.z.number(), tvl: import_zod7.z.number() });
612
+ var TvlResponse = import_zod7.z.object({
613
+ type: import_zod7.z.enum(["protocol", "chain"]),
614
+ name: import_zod7.z.string(),
615
+ currentTvl: import_zod7.z.number().nullable(),
616
+ history: import_zod7.z.array(TvlDataPoint).nullable()
617
+ });
618
+ var YieldsBody = import_zod7.z.object({
619
+ chain: import_zod7.z.string().optional().describe("Filter pools to a single chain."),
620
+ token: import_zod7.z.string().optional().describe("Filter pools that include this token symbol (e.g. `USDC`)."),
621
+ protocol: import_zod7.z.string().optional().describe("Filter pools by protocol slug (e.g. `aave-v3`)."),
622
+ minTvl: import_zod7.z.number().optional().describe("Minimum pool TVL in USD \u2014 drop dust pools below this threshold."),
623
+ poolId: import_zod7.z.string().optional().describe("Specific DeFiLlama pool ID for a single-pool lookup. Wins over the other filters.")
624
+ });
625
+ var YieldPoolItem = import_zod7.z.object({
626
+ pool: import_zod7.z.string(),
627
+ chain: import_zod7.z.string(),
628
+ project: import_zod7.z.string(),
629
+ symbol: import_zod7.z.string(),
630
+ tvlUsd: import_zod7.z.number(),
631
+ apy: import_zod7.z.number().nullable(),
632
+ apyBase: import_zod7.z.number().nullable(),
633
+ apyReward: import_zod7.z.number().nullable(),
634
+ stablecoin: import_zod7.z.boolean(),
635
+ exposure: import_zod7.z.string().nullable(),
636
+ ilRisk: import_zod7.z.string().nullable(),
637
+ predictions: import_zod7.z.object({
638
+ predictedClass: import_zod7.z.string().nullable(),
639
+ binnedConfidence: import_zod7.z.number().nullable()
640
+ }).nullable()
641
+ });
642
+ var YieldsResponse = import_zod7.z.array(YieldPoolItem);
643
+ var ProtocolFeesBody = import_zod7.z.object({
644
+ protocol: import_zod7.z.string().min(1).describe("Protocol slug to pull fee/revenue data for."),
645
+ dataType: import_zod7.z.enum([
646
+ "dailyFees",
647
+ "dailyRevenue",
648
+ "dailyHoldersRevenue",
649
+ "dailySupplySideRevenue",
650
+ "dailyBribesRevenue",
651
+ "dailyTokenTaxes"
652
+ ]).default("dailyFees").describe("Which fee/revenue stream to fetch. `dailyFees` = total user fees, `dailyRevenue` = protocol's cut.")
653
+ });
654
+ var ProtocolFeesResponse = import_zod7.z.object({
655
+ name: import_zod7.z.string(),
656
+ category: import_zod7.z.string().nullable(),
657
+ chains: import_zod7.z.array(import_zod7.z.string()),
658
+ total24h: import_zod7.z.number().nullable(),
659
+ total7d: import_zod7.z.number().nullable(),
660
+ total30d: import_zod7.z.number().nullable(),
661
+ totalAllTime: import_zod7.z.number().nullable(),
662
+ change1d: import_zod7.z.number().nullable(),
663
+ change7d: import_zod7.z.number().nullable(),
664
+ change1m: import_zod7.z.number().nullable(),
665
+ dailyChart: import_zod7.z.array(import_zod7.z.object({ date: import_zod7.z.number(), value: import_zod7.z.number() })).nullable()
666
+ });
667
+ var DexVolumesBody = import_zod7.z.object({
668
+ protocol: import_zod7.z.string().optional().describe("Single-DEX detail mode (e.g. `uniswap`). Mutually exclusive with `chain`."),
669
+ chain: import_zod7.z.string().optional().describe("Filter aggregate volume to one chain (e.g. `Ethereum`). Omit both for the global summary.")
670
+ });
671
+ var DexVolumesResponse = import_zod7.z.union([
672
+ import_zod7.z.object({
673
+ total24h: import_zod7.z.number(),
674
+ total7d: import_zod7.z.number(),
675
+ protocols: import_zod7.z.array(import_zod7.z.unknown())
676
+ }).passthrough(),
677
+ import_zod7.z.object({
678
+ name: import_zod7.z.string(),
679
+ chains: import_zod7.z.array(import_zod7.z.string())
680
+ }).passthrough()
681
+ ]);
682
+ var StablecoinsBody = import_zod7.z.object({
683
+ chain: import_zod7.z.string().optional().describe("Filter circulating-supply data to one chain."),
684
+ stablecoinId: import_zod7.z.string().optional().describe("DeFiLlama stablecoin ID for a single-coin lookup (e.g. `1` for USDT).")
685
+ });
686
+ var StablecoinsResponse = import_zod7.z.unknown();
687
+ var BridgesBody = import_zod7.z.object({
688
+ chain: import_zod7.z.string().optional().describe("Filter bridge volume to one chain."),
689
+ bridgeId: import_zod7.z.number().optional().describe("DeFiLlama numeric bridge ID for a single-bridge detail view.")
690
+ });
691
+ var BridgeItem = import_zod7.z.object({
692
+ id: import_zod7.z.number(),
693
+ name: import_zod7.z.string(),
694
+ displayName: import_zod7.z.string(),
695
+ volumePrevDay: import_zod7.z.number(),
696
+ last24hVolume: import_zod7.z.number(),
697
+ weeklyVolume: import_zod7.z.number().nullable(),
698
+ monthlyVolume: import_zod7.z.number().nullable(),
699
+ chains: import_zod7.z.array(import_zod7.z.string()).optional()
700
+ });
701
+ var BridgesResponse = import_zod7.z.unknown();
702
+ var BridgesListResponse = import_zod7.z.array(BridgeItem);
703
+
704
+ // src/geckoterminal/schemas.ts
705
+ var schemas_exports8 = {};
706
+ __export(schemas_exports8, {
707
+ PoolOhlcvBody: () => PoolOhlcvBody,
708
+ PoolOhlcvCandle: () => PoolOhlcvCandle,
709
+ PoolOhlcvResponse: () => PoolOhlcvResponse,
710
+ PoolTrade: () => PoolTrade,
711
+ PoolTradesBody: () => PoolTradesBody,
712
+ PoolTradesResponse: () => PoolTradesResponse,
713
+ TokenInfoBody: () => TokenInfoBody2,
714
+ TokenInfoItem: () => TokenInfoItem,
715
+ TokenInfoResponse: () => TokenInfoResponse,
716
+ TokenPool: () => TokenPool,
717
+ TokenPoolsBody: () => TokenPoolsBody,
718
+ TokenPoolsResponse: () => TokenPoolsResponse,
719
+ TrendingPool: () => TrendingPool,
720
+ TrendingPoolsResponse: () => TrendingPoolsResponse
721
+ });
722
+ var import_zod8 = require("zod");
723
+ var Network = import_zod8.z.string().min(1).describe("GeckoTerminal network slug (e.g. `eth`, `bsc`, `base`, `arbitrum`).");
724
+ var TokenPoolsBody = import_zod8.z.object({
725
+ network: Network,
726
+ tokenAddress: import_zod8.z.string().min(1).describe("Token contract address on `network`. Returns the pools that include it."),
727
+ page: import_zod8.z.number().int().min(1).optional().default(1).describe("1-based page number \u2014 GeckoTerminal returns up to 20 pools per page.")
728
+ });
729
+ var TokenPool = import_zod8.z.object({
730
+ poolAddress: import_zod8.z.string(),
731
+ name: import_zod8.z.string(),
732
+ dex: import_zod8.z.string(),
733
+ priceUsd: import_zod8.z.string().nullable(),
734
+ priceNative: import_zod8.z.string().nullable(),
735
+ volume24h: import_zod8.z.number().nullable(),
736
+ reserveUsd: import_zod8.z.number().nullable(),
737
+ priceChangePercentage: import_zod8.z.object({
738
+ m5: import_zod8.z.string().nullable(),
739
+ h1: import_zod8.z.string().nullable(),
740
+ h6: import_zod8.z.string().nullable(),
741
+ h24: import_zod8.z.string().nullable()
742
+ }),
743
+ transactions: import_zod8.z.object({
744
+ buys24h: import_zod8.z.number().nullable(),
745
+ sells24h: import_zod8.z.number().nullable()
746
+ })
747
+ });
748
+ var TokenPoolsResponse = import_zod8.z.array(TokenPool);
749
+ var PoolOhlcvBody = import_zod8.z.object({
750
+ network: Network,
751
+ poolAddress: import_zod8.z.string().min(1).describe("DEX pool contract address on `network`."),
752
+ timeframe: import_zod8.z.enum(["day", "hour", "minute"]).optional().default("day").describe("Candle resolution unit."),
753
+ aggregate: import_zod8.z.number().int().min(1).optional().describe("Bucket multiple `timeframe` units into one candle (e.g. `timeframe=hour, aggregate=4` \u2192 4-hour candles)."),
754
+ limit: import_zod8.z.number().int().min(1).max(1e3).optional().default(100).describe("Number of candles to return (1\u20131000)."),
755
+ beforeTimestamp: import_zod8.z.number().optional().describe("Unix epoch seconds \u2014 return candles strictly before this time. Use for pagination backwards in history.")
756
+ });
757
+ var PoolOhlcvCandle = import_zod8.z.object({
758
+ timestamp: import_zod8.z.number(),
759
+ open: import_zod8.z.number(),
760
+ high: import_zod8.z.number(),
761
+ low: import_zod8.z.number(),
762
+ close: import_zod8.z.number(),
763
+ volumeUsd: import_zod8.z.number()
764
+ });
765
+ var PoolOhlcvResponse = import_zod8.z.array(PoolOhlcvCandle);
766
+ var PoolTradesBody = import_zod8.z.object({
767
+ network: Network,
768
+ poolAddress: import_zod8.z.string().min(1).describe("DEX pool contract address on `network`."),
769
+ tradeVolumeInUsdGreaterThan: import_zod8.z.number().optional().describe("Drop trades below this USD-equivalent volume threshold. Useful for filtering dust/wash trades.")
770
+ });
771
+ var PoolTrade = import_zod8.z.object({
772
+ blockTimestamp: import_zod8.z.string(),
773
+ txHash: import_zod8.z.string(),
774
+ kind: import_zod8.z.string(),
775
+ volumeUsd: import_zod8.z.string().nullable(),
776
+ fromTokenAmount: import_zod8.z.string(),
777
+ toTokenAmount: import_zod8.z.string(),
778
+ fromTokenAddress: import_zod8.z.string(),
779
+ toTokenAddress: import_zod8.z.string(),
780
+ priceFromInUsd: import_zod8.z.string().nullable(),
781
+ priceToInUsd: import_zod8.z.string().nullable(),
782
+ txFromAddress: import_zod8.z.string()
783
+ });
784
+ var PoolTradesResponse = import_zod8.z.array(PoolTrade);
785
+ var TrendingPool = import_zod8.z.object({
786
+ poolAddress: import_zod8.z.string(),
787
+ name: import_zod8.z.string(),
788
+ network: import_zod8.z.string(),
789
+ dex: import_zod8.z.string(),
790
+ priceUsd: import_zod8.z.string().nullable(),
791
+ priceChangeH24: import_zod8.z.string().nullable(),
792
+ volume24h: import_zod8.z.number().nullable(),
793
+ reserveUsd: import_zod8.z.number().nullable()
794
+ });
795
+ var TrendingPoolsResponse = import_zod8.z.array(TrendingPool);
796
+ var TokenInfoBody2 = import_zod8.z.object({
797
+ network: Network,
798
+ addresses: import_zod8.z.array(import_zod8.z.string().min(1)).min(1).max(30).describe("Token contract addresses on `network` (1\u201330 per request). Batched lookup."),
799
+ includeTopPools: import_zod8.z.boolean().optional().default(true).describe("Include each token's top pools in the response. Set false to slim down the payload.")
800
+ });
801
+ var TokenInfoItem = import_zod8.z.object({
802
+ address: import_zod8.z.string(),
803
+ name: import_zod8.z.string(),
804
+ symbol: import_zod8.z.string(),
805
+ decimals: import_zod8.z.number(),
806
+ totalSupply: import_zod8.z.string().nullable(),
807
+ priceUsd: import_zod8.z.string().nullable(),
808
+ marketCapUsd: import_zod8.z.string().nullable(),
809
+ fdvUsd: import_zod8.z.string().nullable(),
810
+ imageUrl: import_zod8.z.string().nullable(),
811
+ coingeckoCoinId: import_zod8.z.string().nullable(),
812
+ volume24h: import_zod8.z.number().nullable(),
813
+ topPools: import_zod8.z.array(import_zod8.z.object({ address: import_zod8.z.string(), name: import_zod8.z.string(), dex: import_zod8.z.string() }))
814
+ });
815
+ var TokenInfoResponse = import_zod8.z.array(TokenInfoItem);
816
+
817
+ // src/kaito/schemas.ts
818
+ var schemas_exports9 = {};
819
+ __export(schemas_exports9, {
820
+ AdvancedSearchBody: () => AdvancedSearchBody,
821
+ EngagementBody: () => EngagementBody,
822
+ EntitiesQuery: () => EntitiesQuery,
823
+ EventsBody: () => EventsBody,
824
+ FeedsBody: () => FeedsBody,
825
+ KaitoResponse: () => KaitoResponse,
826
+ KolMindshareBody: () => KolMindshareBody,
827
+ MarketSmartFollowingBody: () => MarketSmartFollowingBody,
828
+ MentionsBody: () => MentionsBody,
829
+ MindshareArenaBody: () => MindshareArenaBody,
830
+ MindshareBody: () => MindshareBody,
831
+ MindshareDeltaBody: () => MindshareDeltaBody,
832
+ MindshareNarrativeBody: () => MindshareNarrativeBody,
833
+ NarrativesQuery: () => NarrativesQuery,
834
+ SearchBody: () => SearchBody2,
835
+ SentimentBody: () => SentimentBody2,
836
+ SmartFollowersBody: () => SmartFollowersBody,
837
+ SmartFollowingBody: () => SmartFollowingBody,
838
+ TweetEngagementBody: () => TweetEngagementBody,
839
+ TwitterUserMetadataBody: () => TwitterUserMetadataBody
840
+ });
841
+ var import_zod9 = require("zod");
842
+ var dateString = (note) => import_zod9.z.string().optional().describe(note);
843
+ var sortOrder = import_zod9.z.enum(["asc", "desc"]).optional().describe("Sort direction for the result list.");
844
+ var EntitiesQuery = import_zod9.z.object({
845
+ query: import_zod9.z.string().optional().describe("Free-text filter for entity names. Omit to list all."),
846
+ limit: import_zod9.z.coerce.number().int().min(1).max(100).optional().describe("Max entities to return (1\u2013100).")
847
+ });
848
+ var NarrativesQuery = import_zod9.z.object({
849
+ query: import_zod9.z.string().optional().describe("Free-text filter for narrative names. Omit to list all."),
850
+ limit: import_zod9.z.coerce.number().int().min(1).max(100).optional().describe("Max narratives to return (1\u2013100).")
851
+ });
852
+ var SearchBody2 = import_zod9.z.object({
853
+ query: import_zod9.z.string().min(1).describe("Free-text search query across tweets, narratives, and entities."),
854
+ size: import_zod9.z.number().int().min(1).max(50).optional().describe("Result page size (1\u201350). Default 10.")
855
+ });
856
+ var AdvancedSearchBody = import_zod9.z.object({
857
+ tokens: import_zod9.z.string().optional().describe("Comma-separated token symbols to filter tweets to (e.g. `BTC,ETH`)."),
858
+ keyword: import_zod9.z.string().optional().describe("Keyword filter \u2014 substring-matched against tweet text."),
859
+ query: import_zod9.z.string().optional().describe("Semantic search query."),
860
+ usernames: import_zod9.z.string().optional().describe("Comma-separated Twitter usernames to filter to."),
861
+ sources: import_zod9.z.string().optional().describe("Comma-separated source filters."),
862
+ min_created_at: dateString("ISO 8601 \u2014 earliest tweet creation time."),
863
+ max_created_at: dateString("ISO 8601 \u2014 latest tweet creation time."),
864
+ from: import_zod9.z.number().optional().describe("Result offset for pagination."),
865
+ size: import_zod9.z.number().optional().describe("Page size."),
866
+ languages: import_zod9.z.string().optional().describe("Comma-separated language codes (e.g. `en,zh`)."),
867
+ sort_by: import_zod9.z.enum([
868
+ "relevance",
869
+ "created_at",
870
+ "engagement",
871
+ "smart_engagement",
872
+ "author",
873
+ "length",
874
+ "bookmark",
875
+ "sentiment",
876
+ "views"
877
+ ]).optional().describe("Field to sort by."),
878
+ sort_order: sortOrder,
879
+ tweet_length_type: import_zod9.z.enum(["short", "long", "thread", "article"]).optional().describe("Filter by tweet length category."),
880
+ tweet_type: import_zod9.z.enum(["tweet", "quote", "reply"]).optional().describe("Filter by tweet shape."),
881
+ sentiment_type: import_zod9.z.enum(["bullish", "bearish", "neutral"]).optional().describe("Filter by Kaito's sentiment classification."),
882
+ author_type: import_zod9.z.enum(["Organization", "Individual"]).optional().describe("Filter by author classification."),
883
+ min_bookmark_count: import_zod9.z.number().optional().describe("Minimum bookmark count threshold."),
884
+ max_bookmark_count: import_zod9.z.number().optional().describe("Maximum bookmark count threshold."),
885
+ min_view_count: import_zod9.z.number().optional().describe("Minimum view count threshold."),
886
+ max_view_count: import_zod9.z.number().optional().describe("Maximum view count threshold."),
887
+ min_smart_engagement_count: import_zod9.z.number().optional().describe("Minimum smart-follower engagement count."),
888
+ max_smart_engagement_count: import_zod9.z.number().optional().describe("Maximum smart-follower engagement count."),
889
+ min_like_count: import_zod9.z.number().optional().describe("Minimum like count threshold."),
890
+ max_like_count: import_zod9.z.number().optional().describe("Maximum like count threshold."),
891
+ min_reply_count: import_zod9.z.number().optional().describe("Minimum reply count threshold."),
892
+ max_reply_count: import_zod9.z.number().optional().describe("Maximum reply count threshold."),
893
+ min_retweet_count: import_zod9.z.number().optional().describe("Minimum retweet count threshold."),
894
+ max_retweet_count: import_zod9.z.number().optional().describe("Maximum retweet count threshold."),
895
+ min_quote_count: import_zod9.z.number().optional().describe("Minimum quote-tweet count threshold."),
896
+ max_quote_count: import_zod9.z.number().optional().describe("Maximum quote-tweet count threshold.")
897
+ });
898
+ var TweetEngagementBody = import_zod9.z.object({
899
+ tweet_id: import_zod9.z.string().min(1).describe("Twitter status ID (numeric, as a string).")
900
+ });
901
+ var FeedsBody = import_zod9.z.object({
902
+ token: import_zod9.z.string().optional().describe("Token symbol to filter feed to (e.g. `BTC`). Omit for all."),
903
+ min_created_at: dateString("ISO 8601 \u2014 earliest tweet creation time."),
904
+ max_created_at: dateString("ISO 8601 \u2014 latest tweet creation time."),
905
+ size: import_zod9.z.number().int().min(1).max(50).optional().describe("Page size (1\u201350).")
906
+ });
907
+ var SentimentBody2 = import_zod9.z.object({
908
+ token: import_zod9.z.string().min(1).describe("Token symbol to compute sentiment for (e.g. `BTC`)."),
909
+ start_date: dateString("ISO 8601 \u2014 earliest date in the analysis window."),
910
+ end_date: dateString("ISO 8601 \u2014 latest date in the analysis window."),
911
+ adjusted: import_zod9.z.boolean().optional().describe("Apply Kaito's bot/spam adjustment."),
912
+ average: import_zod9.z.boolean().optional().describe("Return rolling average vs raw daily values."),
913
+ gaussian: import_zod9.z.boolean().optional().describe("Apply Gaussian smoothing to the time series."),
914
+ language: import_zod9.z.enum(["all", "en", "zh", "ko", "others"]).optional().describe("Restrict source tweets to one language."),
915
+ version: import_zod9.z.enum(["2", "3"]).optional().describe("Sentiment model version. Default to v3 (latest).")
916
+ });
917
+ var EngagementBody = import_zod9.z.object({
918
+ token: import_zod9.z.string().optional().describe("Token symbol filter. Mutually exclusive with `keyword`."),
919
+ keyword: import_zod9.z.string().optional().describe("Keyword filter. Mutually exclusive with `token`."),
920
+ start_date: dateString("ISO 8601 \u2014 start date for the engagement window."),
921
+ end_date: dateString("ISO 8601 \u2014 end date for the engagement window.")
922
+ });
923
+ var MentionsBody = EngagementBody;
924
+ var MindshareBody = import_zod9.z.object({
925
+ token: import_zod9.z.string().min(1).describe("Token symbol to compute mindshare for."),
926
+ start_date: dateString("ISO 8601 \u2014 earliest date in the analysis window."),
927
+ end_date: dateString("ISO 8601 \u2014 latest date in the analysis window."),
928
+ scope: import_zod9.z.string().optional().describe("Optional scope filter (e.g. narrative or category).")
929
+ });
930
+ var MindshareArenaBody = import_zod9.z.object({
931
+ duration: import_zod9.z.enum(["all", "24h", "48h", "7d", "30d", "3m", "6m", "12m"]).optional().describe("Mindshare measurement window."),
932
+ language: import_zod9.z.enum(["all", "en", "zh", "ko", "others"]).optional().describe("Restrict tweets to one language."),
933
+ categories: import_zod9.z.enum(["EXCHANGE", "INFOMKT"]).optional().describe("Restrict to a single arena category."),
934
+ pre_tge: import_zod9.z.boolean().optional().describe("Include pre-TGE projects in the leaderboard."),
935
+ ex_official: import_zod9.z.boolean().optional().describe("Exclude tweets from official project accounts."),
936
+ weighted: import_zod9.z.boolean().optional().describe("Use Kaito's weighted-by-author-influence score."),
937
+ nft: import_zod9.z.boolean().optional().describe("Restrict to NFT projects.")
938
+ });
939
+ var MindshareDeltaBody = import_zod9.z.object({
940
+ duration: import_zod9.z.enum(["24h", "48h", "7d", "30d", "3m", "6m", "12m", "all"]).optional().describe("Window over which to compute the mindshare delta."),
941
+ sort_type: import_zod9.z.enum(["desc", "asc"]).optional().describe("Sort by largest delta first (`desc`) or smallest (`asc`)."),
942
+ limit: import_zod9.z.number().int().positive().optional().describe("Max projects to return.")
943
+ });
944
+ var MindshareNarrativeBody = import_zod9.z.object({
945
+ narrative: import_zod9.z.string().min(1).describe("Narrative slug (e.g. `RWA`, `AI`, `meme`)."),
946
+ start_date: dateString("ISO 8601 \u2014 earliest date in the analysis window."),
947
+ end_date: dateString("ISO 8601 \u2014 latest date in the analysis window.")
948
+ });
949
+ var KolMindshareBody = import_zod9.z.object({
950
+ token: import_zod9.z.string().min(1).describe("Token symbol to attribute KOL mindshare to."),
951
+ duration: import_zod9.z.enum(["24h", "48h", "7d", "30d", "3m", "6m", "12m", "all"]).optional().describe("KOL mindshare window."),
952
+ top_n: import_zod9.z.number().int().positive().optional().describe("Top N KOLs to return.")
953
+ });
954
+ var EventsBody = import_zod9.z.object({
955
+ token: import_zod9.z.string().min(1).describe("Token symbol to filter events for."),
956
+ start_date: dateString("ISO 8601 \u2014 earliest event date."),
957
+ end_date: dateString("ISO 8601 \u2014 latest event date."),
958
+ min_announcement_date: dateString("ISO 8601 \u2014 earliest announcement date."),
959
+ max_announcement_date: dateString("ISO 8601 \u2014 latest announcement date."),
960
+ event_types: import_zod9.z.string().optional().describe("Comma-separated event-type filters."),
961
+ sources: import_zod9.z.string().optional().describe("Comma-separated source filters."),
962
+ sort_by: import_zod9.z.enum(["event_date", "project_name", "market_cap", "announcement_date"]).optional().describe("Sort field."),
963
+ sort_order: sortOrder
964
+ });
965
+ var TwitterUserMetadataBody = import_zod9.z.object({
966
+ user_id: import_zod9.z.string().min(1).describe("Twitter user ID (numeric, as a string).")
967
+ });
968
+ var MarketSmartFollowingBody = import_zod9.z.object({
969
+ duration: import_zod9.z.enum(["24h", "48h", "7d", "30d", "all_dates"]).optional().describe("Window for the smart-following analysis."),
970
+ from: import_zod9.z.number().optional().describe("Result offset for pagination."),
971
+ sort_by: import_zod9.z.enum(["earliest_time", "smart_followers", "followers_change", "change_ratio"]).optional().describe("Sort field."),
972
+ sort_order: sortOrder,
973
+ filter_smart_followers_operator: import_zod9.z.enum(["gte", "lte"]).optional().describe("Comparison operator for `filter_smart_followers_value`."),
974
+ filter_smart_followers_value: import_zod9.z.number().optional().describe("Threshold for smart-follower count filter."),
975
+ user_status: import_zod9.z.enum(["new", "existing", "all"]).optional().describe("Filter to newly-tracked vs existing users."),
976
+ user_tag_individual_or_organization: import_zod9.z.enum(["Individual", "Organization", "all"]).optional().describe("Filter by author classification."),
977
+ user_type: import_zod9.z.enum(["kkol", "non_kkol", "all"]).optional().describe("Restrict to Kaito KOLs (`kkol`), non-KOLs, or both."),
978
+ user_web3_relevance: import_zod9.z.enum(["relevant", "irrelevant"]).optional().describe("Restrict to web3-relevant users.")
979
+ });
980
+ var SmartFollowersBody = import_zod9.z.object({
981
+ user_id: import_zod9.z.string().optional().describe("Twitter user ID (numeric, as a string). Provide this OR `username`."),
982
+ username: import_zod9.z.string().optional().describe("Twitter handle without the `@`. Provide this OR `user_id`."),
983
+ date: import_zod9.z.string().optional().describe("ISO 8601 date \u2014 pin the smart-follower snapshot."),
984
+ mode: import_zod9.z.enum(["count", "users"]).optional().describe("`count` returns just the number; `users` returns the full list of follower handles.")
985
+ }).refine((v) => !!(v.user_id || v.username), "user_id or username required");
986
+ var SmartFollowingBody = import_zod9.z.object({
987
+ user_id: import_zod9.z.string().optional().describe("Twitter user ID (numeric, as a string). Provide this OR `username`."),
988
+ username: import_zod9.z.string().optional().describe("Twitter handle without the `@`. Provide this OR `user_id`."),
989
+ category: import_zod9.z.enum(["ALL", "Organization", "Individual"]).optional().describe("Restrict the followed-by-smart-followers list to a category.")
990
+ }).refine((v) => !!(v.user_id || v.username), "user_id or username required");
991
+ var KaitoResponse = import_zod9.z.unknown();
992
+
993
+ // src/moralis/schemas.ts
994
+ var schemas_exports10 = {};
995
+ __export(schemas_exports10, {
996
+ DefiPosition: () => DefiPosition,
997
+ DefiPositionsBody: () => DefiPositionsBody,
998
+ DefiPositionsResponse: () => DefiPositionsResponse,
999
+ NftHoldingsBody: () => NftHoldingsBody,
1000
+ NftHoldingsResponse: () => NftHoldingsResponse,
1001
+ NftItem: () => NftItem,
1002
+ TokenTransfer: () => TokenTransfer,
1003
+ TransfersBody: () => TransfersBody,
1004
+ TransfersResponse: () => TransfersResponse,
1005
+ WalletBody: () => WalletBody,
1006
+ WalletResponse: () => WalletResponse,
1007
+ WalletTokenBalance: () => WalletTokenBalance
1008
+ });
1009
+ var import_zod10 = require("zod");
1010
+ var CHAIN_NAMES = {
1011
+ eth: "0x1",
1012
+ ethereum: "0x1",
1013
+ bsc: "0x38",
1014
+ bnb: "0x38",
1015
+ polygon: "0x89",
1016
+ matic: "0x89",
1017
+ arbitrum: "0xa4b1",
1018
+ optimism: "0xa",
1019
+ base: "0x2105",
1020
+ avalanche: "0xa86a",
1021
+ avax: "0xa86a",
1022
+ fantom: "0xfa",
1023
+ ftm: "0xfa",
1024
+ linea: "0xe708"
1025
+ };
1026
+ var evmChainId = import_zod10.z.string().default("0x1").transform((val) => CHAIN_NAMES[val.toLowerCase()] ?? val).describe(
1027
+ "EVM chain \u2014 accepts a friendly name (`eth`, `base`, `polygon`, `arbitrum`, \u2026) or a hex chain id (`0x1`, `0x2105`, \u2026). Defaults to Ethereum mainnet."
1028
+ );
1029
+ var evmAddress = import_zod10.z.string().regex(/^0x[a-fA-F0-9]{40}$/).describe("EVM-style 0x-prefixed 40-hex-char address.");
1030
+ var WalletBody = import_zod10.z.object({
1031
+ address: evmAddress,
1032
+ chain: evmChainId.optional(),
1033
+ toBlock: import_zod10.z.number().int().optional().describe("Snapshot the wallet at this block height. Omit for the current head.")
1034
+ });
1035
+ var WalletTokenBalance = import_zod10.z.object({
1036
+ tokenAddress: import_zod10.z.string().nullable(),
1037
+ name: import_zod10.z.string(),
1038
+ symbol: import_zod10.z.string(),
1039
+ decimals: import_zod10.z.number(),
1040
+ balance: import_zod10.z.string(),
1041
+ balanceFormatted: import_zod10.z.string(),
1042
+ usdPrice: import_zod10.z.number().nullable(),
1043
+ usdValue: import_zod10.z.number().nullable(),
1044
+ portfolioPercentage: import_zod10.z.number(),
1045
+ nativeToken: import_zod10.z.boolean(),
1046
+ logo: import_zod10.z.string().nullable()
1047
+ });
1048
+ var WalletResponse = import_zod10.z.object({
1049
+ address: import_zod10.z.string(),
1050
+ totalNetworthUsd: import_zod10.z.string(),
1051
+ chains: import_zod10.z.array(
1052
+ import_zod10.z.object({
1053
+ chain: import_zod10.z.string(),
1054
+ networthUsd: import_zod10.z.string(),
1055
+ nativeBalanceFormatted: import_zod10.z.string(),
1056
+ tokenBalanceUsd: import_zod10.z.string()
1057
+ })
1058
+ ),
1059
+ tokens: import_zod10.z.array(WalletTokenBalance)
1060
+ });
1061
+ var TransfersBody = import_zod10.z.object({
1062
+ address: evmAddress,
1063
+ chain: evmChainId.optional(),
1064
+ limit: import_zod10.z.number().max(100).default(50).describe("Transfers per page (max 100)."),
1065
+ fromDate: import_zod10.z.string().optional().describe("ISO 8601 (or YYYY-MM-DD) start date \u2014 only return transfers after this date."),
1066
+ toDate: import_zod10.z.string().optional().describe("ISO 8601 (or YYYY-MM-DD) end date \u2014 only return transfers before this date."),
1067
+ cursor: import_zod10.z.string().optional().describe("Opaque pagination cursor from the previous response. Omit for page 1.")
1068
+ });
1069
+ var TokenTransfer = import_zod10.z.object({
1070
+ tokenAddress: import_zod10.z.string(),
1071
+ tokenName: import_zod10.z.string().nullable(),
1072
+ tokenSymbol: import_zod10.z.string().nullable(),
1073
+ tokenDecimals: import_zod10.z.number(),
1074
+ fromAddress: import_zod10.z.string(),
1075
+ toAddress: import_zod10.z.string(),
1076
+ value: import_zod10.z.string(),
1077
+ valueFormatted: import_zod10.z.string().nullable(),
1078
+ blockTimestamp: import_zod10.z.string(),
1079
+ blockNumber: import_zod10.z.string(),
1080
+ transactionHash: import_zod10.z.string()
1081
+ });
1082
+ var TransfersResponse = import_zod10.z.object({
1083
+ transfers: import_zod10.z.array(TokenTransfer),
1084
+ cursor: import_zod10.z.string().nullable()
1085
+ });
1086
+ var DefiPositionsBody = import_zod10.z.object({
1087
+ address: evmAddress,
1088
+ chain: evmChainId.optional()
1089
+ });
1090
+ var DefiPosition = import_zod10.z.object({
1091
+ protocolName: import_zod10.z.string().nullable(),
1092
+ protocolId: import_zod10.z.string().nullable(),
1093
+ protocolUrl: import_zod10.z.string().nullable(),
1094
+ protocolLogo: import_zod10.z.string().nullable(),
1095
+ label: import_zod10.z.string().nullable(),
1096
+ balanceUsd: import_zod10.z.number().nullable(),
1097
+ totalUnclaimedUsdValue: import_zod10.z.number().nullable(),
1098
+ tokens: import_zod10.z.array(import_zod10.z.unknown())
1099
+ });
1100
+ var DefiPositionsResponse = import_zod10.z.array(DefiPosition);
1101
+ var NftHoldingsBody = import_zod10.z.object({
1102
+ address: evmAddress,
1103
+ chain: evmChainId.optional(),
1104
+ limit: import_zod10.z.number().max(100).default(50).describe("NFTs per page (max 100)."),
1105
+ cursor: import_zod10.z.string().optional().describe("Opaque pagination cursor from the previous response. Omit for page 1.")
1106
+ });
1107
+ var NftItem = import_zod10.z.object({
1108
+ tokenAddress: import_zod10.z.string(),
1109
+ tokenId: import_zod10.z.string(),
1110
+ contractType: import_zod10.z.string().nullable(),
1111
+ name: import_zod10.z.string().nullable(),
1112
+ symbol: import_zod10.z.string().nullable(),
1113
+ tokenUri: import_zod10.z.string().nullable(),
1114
+ amount: import_zod10.z.number().nullable(),
1115
+ ownerOf: import_zod10.z.string().nullable(),
1116
+ possibleSpam: import_zod10.z.boolean(),
1117
+ metadata: import_zod10.z.unknown().nullable()
1118
+ });
1119
+ var NftHoldingsResponse = import_zod10.z.object({
1120
+ nfts: import_zod10.z.array(NftItem),
1121
+ cursor: import_zod10.z.string().nullable()
1122
+ });
1123
+
1124
+ // src/noya/schemas.ts
1125
+ var schemas_exports11 = {};
1126
+ __export(schemas_exports11, {
1127
+ AnalysisEventHistoryBody: () => AnalysisEventHistoryBody,
1128
+ AnalysisEventsBody: () => AnalysisEventsBody,
1129
+ AnalysisLatestResponse: () => AnalysisLatestResponse,
1130
+ AnalysisMarketHistoryBody: () => AnalysisMarketHistoryBody,
1131
+ AnalysisTopBody: () => AnalysisTopBody,
1132
+ AnalysisVersionsBody: () => AnalysisVersionsBody,
1133
+ CryptoToken: () => CryptoToken,
1134
+ PolymarketByEventBody: () => PolymarketByEventBody,
1135
+ PolymarketEventsBody: () => PolymarketEventsBody,
1136
+ PolymarketFilterBody: () => PolymarketFilterBody,
1137
+ PolymarketFilterResponse: () => PolymarketFilterResponse,
1138
+ PolymarketRecommendationsBody: () => PolymarketRecommendationsBody,
1139
+ PolymarketResponse: () => PolymarketResponse,
1140
+ PolymarketSearchBody: () => PolymarketSearchBody,
1141
+ PolymarketSimilarBody: () => PolymarketSimilarBody,
1142
+ PolymarketTagsBody: () => PolymarketTagsBody,
1143
+ TokenDetailBody: () => TokenDetailBody,
1144
+ TokenScores: () => TokenScores,
1145
+ TokensByVersionBody: () => TokensByVersionBody,
1146
+ TokensRecommendationsBody: () => TokensRecommendationsBody,
1147
+ TokensSearchBody: () => TokensSearchBody,
1148
+ TokensSearchResponse: () => TokensSearchResponse,
1149
+ TokensSimilarBody: () => TokensSimilarBody,
1150
+ TopMarketsByEvBody: () => TopMarketsByEvBody,
1151
+ TopTokensByScoreBody: () => TopTokensByScoreBody,
1152
+ VersionsResponse: () => VersionsResponse
1153
+ });
1154
+ var import_zod11 = require("zod");
1155
+ var TokensSearchBody = import_zod11.z.object({
1156
+ q: import_zod11.z.string().min(1).describe("Free-text search query \u2014 matches token symbol, name, or category."),
1157
+ limit: import_zod11.z.number().int().min(1).max(100).default(10).describe("Max tokens to return (1\u2013100)."),
1158
+ signal: import_zod11.z.string().optional().describe("Filter to tokens with a specific Noya signal (e.g. `strong_buy`)."),
1159
+ risk: import_zod11.z.string().optional().describe("Filter to tokens at a specific risk tier (e.g. `low`, `medium`, `high`)."),
1160
+ minFinalScore: import_zod11.z.number().optional().describe("Minimum AI final score (0\u2013100)."),
1161
+ maxFinalScore: import_zod11.z.number().optional().describe("Maximum AI final score (0\u2013100)."),
1162
+ minMarketCap: import_zod11.z.number().optional().describe("Minimum market cap in USD."),
1163
+ maxMarketCap: import_zod11.z.number().optional().describe("Maximum market cap in USD."),
1164
+ grades: import_zod11.z.string().optional().describe("Comma-separated grade filters (e.g. `A,A+`).")
1165
+ });
1166
+ var TokensSimilarBody = import_zod11.z.object({
1167
+ tokenId: import_zod11.z.string().min(1).describe("Noya token ID to find similar tokens for."),
1168
+ limit: import_zod11.z.number().int().min(1).max(100).default(10).describe("Max similar tokens to return.")
1169
+ });
1170
+ var TokensRecommendationsBody = import_zod11.z.object({
1171
+ riskTolerance: import_zod11.z.enum(["conservative", "moderate", "aggressive"]).describe("Caller's risk profile \u2014 filters the recommendation set accordingly."),
1172
+ minMarketCap: import_zod11.z.number().optional().describe("Minimum market cap in USD."),
1173
+ maxMarketCap: import_zod11.z.number().optional().describe("Maximum market cap in USD."),
1174
+ query: import_zod11.z.string().optional().describe("Optional free-text query to bias recommendations toward."),
1175
+ limit: import_zod11.z.number().int().min(1).max(100).default(20).describe("Max tokens to recommend (1\u2013100).")
1176
+ });
1177
+ var TopTokensByScoreBody = import_zod11.z.object({
1178
+ limit: import_zod11.z.number().int().min(1).max(100).default(20).describe("Number of top tokens to return."),
1179
+ grades: import_zod11.z.string().optional().describe("Comma-separated grade filters (e.g. `A,A+`)."),
1180
+ minCatalystScore: import_zod11.z.number().optional().describe("Minimum AI catalyst score (0\u2013100)."),
1181
+ minMarketCap: import_zod11.z.number().optional().describe("Minimum market cap in USD."),
1182
+ maxMarketCap: import_zod11.z.number().optional().describe("Maximum market cap in USD.")
1183
+ });
1184
+ var TokensByVersionBody = import_zod11.z.object({
1185
+ versionId: import_zod11.z.number().int().min(1).optional().describe("Specific Noya analysis version ID. Defaults to the latest."),
1186
+ signal: import_zod11.z.string().optional().describe("Filter to a specific signal value."),
1187
+ risk: import_zod11.z.string().optional().describe("Filter to a specific risk tier."),
1188
+ sort: import_zod11.z.string().optional().describe("Field name to sort by (e.g. `marketCap`, `aiFinal`)."),
1189
+ order: import_zod11.z.enum(["asc", "desc"]).optional().describe("Sort direction.")
1190
+ });
1191
+ var TokenDetailBody = import_zod11.z.object({
1192
+ versionId: import_zod11.z.number().int().min(1).optional().describe("Specific Noya analysis version. Defaults to the latest."),
1193
+ symbol: import_zod11.z.string().min(1).describe("Token symbol (e.g. `BTC`, `ETH`).")
1194
+ });
1195
+ var TokenScores = import_zod11.z.object({
1196
+ longTerm: import_zod11.z.number().nullable(),
1197
+ shortTerm: import_zod11.z.number().nullable(),
1198
+ aiFinal: import_zod11.z.number().nullable(),
1199
+ aiMomentum: import_zod11.z.number().nullable(),
1200
+ aiSentiment: import_zod11.z.number().nullable(),
1201
+ aiCatalysts: import_zod11.z.number().nullable(),
1202
+ aiFundamentals: import_zod11.z.number().nullable()
1203
+ });
1204
+ var CryptoToken = import_zod11.z.object({
1205
+ symbol: import_zod11.z.string(),
1206
+ name: import_zod11.z.string(),
1207
+ overallGrade: import_zod11.z.string(),
1208
+ overallScore: import_zod11.z.number(),
1209
+ recommendation: import_zod11.z.string(),
1210
+ marketCap: import_zod11.z.number(),
1211
+ category: import_zod11.z.string(),
1212
+ rank: import_zod11.z.number().nullable(),
1213
+ price: import_zod11.z.number().nullable(),
1214
+ volume24h: import_zod11.z.number().nullable(),
1215
+ scores: TokenScores,
1216
+ riskLevel: import_zod11.z.string().nullable(),
1217
+ timeHorizon: import_zod11.z.string().nullable(),
1218
+ aiSummary: import_zod11.z.string().nullable(),
1219
+ catalystCount: import_zod11.z.number(),
1220
+ hasWebContext: import_zod11.z.boolean()
1221
+ });
1222
+ var TokensSearchResponse = import_zod11.z.object({
1223
+ total: import_zod11.z.number(),
1224
+ limit: import_zod11.z.number(),
1225
+ versionId: import_zod11.z.number(),
1226
+ data: import_zod11.z.array(
1227
+ import_zod11.z.object({ token: CryptoToken, score: import_zod11.z.number(), tokenId: import_zod11.z.string() })
1228
+ )
1229
+ });
1230
+ var VersionsResponse = import_zod11.z.object({
1231
+ count: import_zod11.z.number(),
1232
+ versions: import_zod11.z.array(
1233
+ import_zod11.z.object({
1234
+ id: import_zod11.z.number(),
1235
+ runAt: import_zod11.z.string(),
1236
+ status: import_zod11.z.string(),
1237
+ tokenCount: import_zod11.z.number()
1238
+ })
1239
+ )
1240
+ });
1241
+ var PolymarketSearchBody = import_zod11.z.object({
1242
+ q: import_zod11.z.string().min(1).describe("Free-text search query \u2014 matches market question, description, and tags."),
1243
+ limit: import_zod11.z.number().int().min(1).max(100).default(10).describe("Max markets to return (1\u2013100).")
1244
+ });
1245
+ var PolymarketSimilarBody = import_zod11.z.object({
1246
+ conditionId: import_zod11.z.string().min(1).describe("Polymarket condition ID (or event ID, depending on `type`) to find similar items for."),
1247
+ limit: import_zod11.z.number().int().min(1).max(100).default(10).describe("Max similar items to return."),
1248
+ type: import_zod11.z.enum(["market", "event"]).default("market").describe("Whether `conditionId` refers to a market or an event.")
1249
+ });
1250
+ var PolymarketRecommendationsBody = import_zod11.z.object({
1251
+ riskTolerance: import_zod11.z.enum(["conservative", "moderate", "aggressive"]).describe("Caller's risk profile."),
1252
+ preferredTags: import_zod11.z.array(import_zod11.z.string()).optional().describe("Bias toward markets carrying any of these tags."),
1253
+ preferredCategories: import_zod11.z.array(import_zod11.z.string()).optional().describe("Bias toward markets in these categories."),
1254
+ minDaysUntilClose: import_zod11.z.number().optional().describe("Minimum days until the market resolves."),
1255
+ maxDaysUntilClose: import_zod11.z.number().optional().describe("Maximum days until the market resolves."),
1256
+ minLiquidity: import_zod11.z.number().optional().describe("Minimum on-book liquidity in USD."),
1257
+ minVolume24h: import_zod11.z.number().optional().describe("Minimum 24h volume in USD."),
1258
+ query: import_zod11.z.string().optional().describe("Optional free-text query to bias recommendations toward."),
1259
+ limit: import_zod11.z.number().int().min(1).max(100).default(20).describe("Max markets to recommend.")
1260
+ });
1261
+ var TopMarketsByEvBody = import_zod11.z.object({
1262
+ limit: import_zod11.z.number().int().min(1).max(100).default(20).describe("Number of top markets to return."),
1263
+ minLiquidity: import_zod11.z.number().optional().describe("Minimum on-book liquidity in USD."),
1264
+ minVolume24h: import_zod11.z.number().optional().describe("Minimum 24h volume in USD."),
1265
+ tags: import_zod11.z.string().optional().describe("Comma-separated tag filter.")
1266
+ });
1267
+ var PolymarketFilterBody = import_zod11.z.object({
1268
+ q: import_zod11.z.string().min(1).describe("Free-text search query \u2014 required by the upstream filter endpoint."),
1269
+ limit: import_zod11.z.number().int().min(1).max(100).default(20).describe("Max results."),
1270
+ tags: import_zod11.z.string().optional().describe("Comma-separated tag filter."),
1271
+ category: import_zod11.z.string().optional().describe("Restrict to a single category."),
1272
+ active: import_zod11.z.boolean().optional().describe("Filter to active (non-resolved) markets."),
1273
+ minLiquidity: import_zod11.z.number().optional().describe("Minimum on-book liquidity in USD."),
1274
+ minVolume24h: import_zod11.z.number().optional().describe("Minimum 24h volume in USD.")
1275
+ });
1276
+ var PolymarketFilterResponse = import_zod11.z.object({
1277
+ metadata: import_zod11.z.object({
1278
+ query: import_zod11.z.string(),
1279
+ type: import_zod11.z.string(),
1280
+ total: import_zod11.z.number(),
1281
+ limit: import_zod11.z.number(),
1282
+ filters: import_zod11.z.record(import_zod11.z.string(), import_zod11.z.unknown()),
1283
+ duration: import_zod11.z.number()
1284
+ }),
1285
+ data: import_zod11.z.array(
1286
+ import_zod11.z.object({
1287
+ score: import_zod11.z.number(),
1288
+ id: import_zod11.z.string(),
1289
+ payload: import_zod11.z.unknown()
1290
+ })
1291
+ )
1292
+ });
1293
+ var PolymarketEventsBody = import_zod11.z.object({
1294
+ limit: import_zod11.z.number().int().min(1).max(200).default(100).describe("Max events to return (1\u2013200).")
1295
+ });
1296
+ var PolymarketByEventBody = import_zod11.z.object({
1297
+ eventSlug: import_zod11.z.string().min(1).describe("Polymarket event slug (URL fragment, e.g. `2024-presidential-election`)."),
1298
+ limit: import_zod11.z.number().int().min(1).max(100).default(50).describe("Max markets per event to return.")
1299
+ });
1300
+ var PolymarketTagsBody = import_zod11.z.object({
1301
+ type: import_zod11.z.enum(["market", "event"]).optional().describe("Restrict tag list to those used on markets or events. Returns both when omitted.")
1302
+ });
1303
+ var PolymarketResponse = import_zod11.z.object({
1304
+ total: import_zod11.z.number(),
1305
+ limit: import_zod11.z.number(),
1306
+ data: import_zod11.z.array(import_zod11.z.unknown())
1307
+ });
1308
+ var VersionParam = import_zod11.z.union([import_zod11.z.literal("latest"), import_zod11.z.number().int().positive()]).describe("Analysis batch version. `latest` for the most recent run, or a numeric version ID for a specific batch.");
1309
+ var AnalysisSignal = import_zod11.z.enum(["strong_buy", "buy", "hold", "sell", "strong_sell", "none"]).describe("Noya analysis signal classification.");
1310
+ var AnalysisVersionsBody = import_zod11.z.object({
1311
+ limit: import_zod11.z.number().int().min(1).max(100).default(20).describe("Max versions to list."),
1312
+ offset: import_zod11.z.number().int().min(0).default(0).describe("Pagination offset.")
1313
+ });
1314
+ var AnalysisEventsBody = import_zod11.z.object({
1315
+ version: VersionParam.default("latest"),
1316
+ tag: import_zod11.z.string().optional().describe("Filter events to those carrying a specific tag."),
1317
+ signal: AnalysisSignal.optional(),
1318
+ limit: import_zod11.z.number().int().min(1).max(200).default(50).describe("Max events to return."),
1319
+ offset: import_zod11.z.number().int().min(0).default(0).describe("Pagination offset.")
1320
+ });
1321
+ var AnalysisEventHistoryBody = import_zod11.z.object({
1322
+ eventId: import_zod11.z.string().min(1).describe("Polymarket event ID to fetch the analysis history for.")
1323
+ });
1324
+ var AnalysisMarketHistoryBody = import_zod11.z.object({
1325
+ conditionId: import_zod11.z.string().min(1).describe("Polymarket condition ID to fetch the analysis history for.")
1326
+ });
1327
+ var AnalysisTopBody = import_zod11.z.object({
1328
+ version: VersionParam.default("latest"),
1329
+ by: import_zod11.z.enum(["ev_percentage", "confidence", "signal_strength"]).default("ev_percentage").describe("Ranking metric."),
1330
+ signal: AnalysisSignal.optional(),
1331
+ limit: import_zod11.z.number().int().min(1).max(200).default(20).describe("Max markets to return.")
1332
+ });
1333
+ var AnalysisLatestResponse = import_zod11.z.object({
1334
+ batch: import_zod11.z.object({
1335
+ version: import_zod11.z.number(),
1336
+ createdAt: import_zod11.z.string(),
1337
+ model: import_zod11.z.string(),
1338
+ tags: import_zod11.z.array(import_zod11.z.string()),
1339
+ eventCount: import_zod11.z.number(),
1340
+ marketCount: import_zod11.z.number(),
1341
+ sourceFile: import_zod11.z.string(),
1342
+ notes: import_zod11.z.string().nullable()
1343
+ }).nullable(),
1344
+ signalHistogram: import_zod11.z.record(import_zod11.z.string(), import_zod11.z.number())
1345
+ });
1346
+ // Annotate the CommonJS export names for ESM import in node:
1347
+ 0 && (module.exports = {
1348
+ alternative,
1349
+ batch,
1350
+ coingecko,
1351
+ coinglass,
1352
+ composite,
1353
+ cryptonews,
1354
+ defillama,
1355
+ geckoterminal,
1356
+ kaito,
1357
+ moralis,
1358
+ noya
1359
+ });