@gauntlet-xyz/sdk 2.0.0 → 2.3.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 (70) hide show
  1. package/README.md +82 -1
  2. package/dist/api/activity.d.ts +70 -0
  3. package/dist/api/activity.d.ts.map +1 -0
  4. package/dist/api/activity.js +154 -0
  5. package/dist/api/activity.js.map +1 -0
  6. package/dist/api/caip.d.ts +29 -0
  7. package/dist/api/caip.d.ts.map +1 -0
  8. package/dist/api/caip.js +38 -0
  9. package/dist/api/caip.js.map +1 -0
  10. package/dist/api/client.d.ts +114 -0
  11. package/dist/api/client.d.ts.map +1 -0
  12. package/dist/api/client.js +109 -0
  13. package/dist/api/client.js.map +1 -0
  14. package/dist/api/decimal.d.ts +21 -0
  15. package/dist/api/decimal.d.ts.map +1 -0
  16. package/dist/api/decimal.js +44 -0
  17. package/dist/api/decimal.js.map +1 -0
  18. package/dist/api/errors.d.ts +32 -0
  19. package/dist/api/errors.d.ts.map +1 -0
  20. package/dist/api/errors.js +41 -0
  21. package/dist/api/errors.js.map +1 -0
  22. package/dist/api/generated.d.ts +1461 -0
  23. package/dist/api/generated.d.ts.map +1 -0
  24. package/dist/api/generated.js +6 -0
  25. package/dist/api/generated.js.map +1 -0
  26. package/dist/api/http.d.ts +16 -0
  27. package/dist/api/http.d.ts.map +1 -0
  28. package/dist/api/http.js +39 -0
  29. package/dist/api/http.js.map +1 -0
  30. package/dist/api/index.d.ts +14 -0
  31. package/dist/api/index.d.ts.map +1 -0
  32. package/dist/api/index.js +8 -0
  33. package/dist/api/index.js.map +1 -0
  34. package/dist/api/positionHistory.d.ts +44 -0
  35. package/dist/api/positionHistory.d.ts.map +1 -0
  36. package/dist/api/positionHistory.js +126 -0
  37. package/dist/api/positionHistory.js.map +1 -0
  38. package/dist/client.d.ts +6 -0
  39. package/dist/client.d.ts.map +1 -1
  40. package/dist/client.js +2 -0
  41. package/dist/client.js.map +1 -1
  42. package/dist/evm/abis/provisionerV2.d.ts +224 -0
  43. package/dist/evm/abis/provisionerV2.d.ts.map +1 -1
  44. package/dist/evm/abis/provisionerV2.js +59 -0
  45. package/dist/evm/abis/provisionerV2.js.map +1 -1
  46. package/dist/evm/aeraContracts/v2.d.ts +1369 -25
  47. package/dist/evm/aeraContracts/v2.d.ts.map +1 -1
  48. package/dist/index.d.ts +1 -0
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +1 -0
  51. package/dist/index.js.map +1 -1
  52. package/dist/privy/index.d.ts +52 -0
  53. package/dist/privy/index.d.ts.map +1 -0
  54. package/dist/privy/index.js +51 -0
  55. package/dist/privy/index.js.map +1 -0
  56. package/manifest/vaults.json +299 -5
  57. package/package.json +2 -2
  58. package/src/api/activity.ts +219 -0
  59. package/src/api/caip.ts +61 -0
  60. package/src/api/client.ts +201 -0
  61. package/src/api/decimal.ts +49 -0
  62. package/src/api/errors.ts +64 -0
  63. package/src/api/generated.ts +1461 -0
  64. package/src/api/http.ts +62 -0
  65. package/src/api/index.ts +65 -0
  66. package/src/api/positionHistory.ts +167 -0
  67. package/src/client.ts +7 -1
  68. package/src/evm/abis/provisionerV2.ts +59 -0
  69. package/src/index.ts +2 -0
  70. package/src/privy/index.ts +95 -0
@@ -0,0 +1,1461 @@
1
+ /**
2
+ * This file was auto-generated by openapi-typescript.
3
+ * Do not make direct changes to the file.
4
+ */
5
+ export interface paths {
6
+ "/health": {
7
+ parameters: {
8
+ query?: never;
9
+ header?: never;
10
+ path?: never;
11
+ cookie?: never;
12
+ };
13
+ /**
14
+ * Liveness check
15
+ * @description Returns service version + uptime. Use `/health/chains` for indexer freshness per chain.
16
+ */
17
+ get: operations["health"];
18
+ put?: never;
19
+ post?: never;
20
+ delete?: never;
21
+ options?: never;
22
+ head?: never;
23
+ patch?: never;
24
+ trace?: never;
25
+ };
26
+ "/health/chains": {
27
+ parameters: {
28
+ query?: never;
29
+ header?: never;
30
+ path?: never;
31
+ cookie?: never;
32
+ };
33
+ /**
34
+ * Chain sync status
35
+ * @description Returns per-chain indexer sync status with freshness indicators.
36
+ */
37
+ get: operations["chain_sync_status"];
38
+ put?: never;
39
+ post?: never;
40
+ delete?: never;
41
+ options?: never;
42
+ head?: never;
43
+ patch?: never;
44
+ trace?: never;
45
+ };
46
+ "/v1/prices": {
47
+ parameters: {
48
+ query?: never;
49
+ header?: never;
50
+ path?: never;
51
+ cookie?: never;
52
+ };
53
+ /**
54
+ * Get latest token price
55
+ * @description Returns the latest USD price for a token. Query parameters: `address` (required), `chain_id` (required), `at` (optional ISO 8601 timestamp).
56
+ */
57
+ get: operations["get_latest_price"];
58
+ put?: never;
59
+ post?: never;
60
+ delete?: never;
61
+ options?: never;
62
+ head?: never;
63
+ patch?: never;
64
+ trace?: never;
65
+ };
66
+ "/v1/prices/timeseries": {
67
+ parameters: {
68
+ query?: never;
69
+ header?: never;
70
+ path?: never;
71
+ cookie?: never;
72
+ };
73
+ /**
74
+ * Get historical token prices
75
+ * @description Returns a USD price timeseries for a token. Query parameters: `address` (required), `chain_id` (required), `start` (required ISO 8601), `end` (required ISO 8601), `granularity` (optional: `raw` | `hour` | `day` | `week` | `month`), `limit` (optional, default 1000, max 5000).
76
+ */
77
+ get: operations["get_price_history"];
78
+ put?: never;
79
+ post?: never;
80
+ delete?: never;
81
+ options?: never;
82
+ head?: never;
83
+ patch?: never;
84
+ trace?: never;
85
+ };
86
+ "/v1/strategies": {
87
+ parameters: {
88
+ query?: never;
89
+ header?: never;
90
+ path?: never;
91
+ cookie?: never;
92
+ };
93
+ /**
94
+ * List curated strategies
95
+ * @description Returns one card per curated strategy (Earn, Prime Lending, …) with aggregate metrics across the strategy's visible vaults: total TVL in USD, the highest 7/30/90-day APY ("APY up to"), and the vault count. TVL sums only vaults whose numeraire has a USD price; unpriced vaults still count toward `vault_count` and the APY maxes. Strategy membership and visibility are curated by Gauntlet; metrics come from the indexer and are refreshed continuously. Ordered by curated display order.
96
+ */
97
+ get: operations["list_strategies"];
98
+ put?: never;
99
+ post?: never;
100
+ delete?: never;
101
+ options?: never;
102
+ head?: never;
103
+ patch?: never;
104
+ trace?: never;
105
+ };
106
+ "/v1/tvl": {
107
+ parameters: {
108
+ query?: never;
109
+ header?: never;
110
+ path?: never;
111
+ cookie?: never;
112
+ };
113
+ /**
114
+ * Get live aggregate TVL
115
+ * @description Returns live aggregate Gauntlet TVL composed from indexed Gaia vault data and configured external TVL sources. Source totals are always returned; pass `?include_breakdown=true` for chain and external-source explainability rows.
116
+ */
117
+ get: operations["get_tvl"];
118
+ put?: never;
119
+ post?: never;
120
+ delete?: never;
121
+ options?: never;
122
+ head?: never;
123
+ patch?: never;
124
+ trace?: never;
125
+ };
126
+ "/v1/users/{wallet_address}/activity": {
127
+ parameters: {
128
+ query?: never;
129
+ header?: never;
130
+ path?: never;
131
+ cookie?: never;
132
+ };
133
+ /**
134
+ * Get user wallet activity (deposits, withdrawals, transfers)
135
+ * @description Immutable log of on-chain events that affected the wallet's vault position. Each row is a frozen-in-time record; rows never mutate after emission.
136
+ *
137
+ * `?vault_id=` narrows to one vault; omitted = activity across every vault the wallet has touched, scoped to the Gauntlet-curated vault set (listed vaults by default, `include_hidden=true` widens to hidden vaults; disabled vaults never appear). Each row echoes its `vault_id` so wallet-wide consumers can distinguish per-vault activity.
138
+ *
139
+ * Async deposit/redeem lifecycles emit multiple rows (one at request time with `status=pending`, a later one with `status=settled` or `refunded`). Consumers correlate them via `request_hash` to follow a single action across rows. Sync flows emit one row directly in the settled state.
140
+ *
141
+ * Pagination is cursor-only. Default order is `desc` (newest first). Default page size 100, max 1000.
142
+ */
143
+ get: operations["get_user_activity"];
144
+ put?: never;
145
+ post?: never;
146
+ delete?: never;
147
+ options?: never;
148
+ head?: never;
149
+ patch?: never;
150
+ trace?: never;
151
+ };
152
+ "/v1/users/{wallet_address}/positions": {
153
+ parameters: {
154
+ query?: never;
155
+ header?: never;
156
+ path?: never;
157
+ cookie?: never;
158
+ };
159
+ /**
160
+ * Get all current positions for a wallet
161
+ * @description Returns every vault position the wallet currently holds or has pending exposure in (pending deposit or redeem). Fully-exited positions (zero shares, no pending escrow) are excluded. Scoped to the Gauntlet-curated vault set: only positions in publicly listed vaults are returned by default, `include_hidden=true` widens to hidden (enabled but unlisted) vaults, and positions in disabled vaults are never returned.
162
+ *
163
+ * All monetary metrics include a `usd` field (null when pricing is unavailable). `value.usd` and `pending_deposit_assets.usd` use the current spot price. `cost_basis.usd` and `pnl.realized.usd` are computed by replaying on-chain events against the token's historical price series — the same method used by `GET /v1/users/{wallet}/positions/{vault_id}`. `pnl.unrealized.usd`, `pnl.total.usd`, and `roi_pct.usd` are derived from those.
164
+ *
165
+ * Cursor-paginated on internal position ID. Default page size 100, max 500.
166
+ */
167
+ get: operations["get_user_all_positions"];
168
+ put?: never;
169
+ post?: never;
170
+ delete?: never;
171
+ options?: never;
172
+ head?: never;
173
+ patch?: never;
174
+ trace?: never;
175
+ };
176
+ "/v1/users/{wallet_address}/positions/{vault_id}": {
177
+ parameters: {
178
+ query?: never;
179
+ header?: never;
180
+ path?: never;
181
+ cookie?: never;
182
+ };
183
+ /**
184
+ * Get user position in a specific vault
185
+ * @description Returns the current position snapshot for a wallet in a single vault. Historical points live on `/positions/{vault_id}/timeseries`.
186
+ */
187
+ get: operations["get_user_vault_position"];
188
+ put?: never;
189
+ post?: never;
190
+ delete?: never;
191
+ options?: never;
192
+ head?: never;
193
+ patch?: never;
194
+ trace?: never;
195
+ };
196
+ "/v1/users/{wallet_address}/positions/{vault_id}/timeseries": {
197
+ parameters: {
198
+ query?: never;
199
+ header?: never;
200
+ path?: never;
201
+ cookie?: never;
202
+ };
203
+ /**
204
+ * Get user position timeseries for a specific vault
205
+ * @description Returns historical value, cost basis, grouped PnL, and ROI data for a single vault position. Default order is `asc` (oldest first, chart-friendly); pass `?order=desc` for newest-first list views. Cursor-paginated — pass `meta.next_cursor` back as `?next=` for the next page (cursor is bound to the order it was created with). Defaults to `granularity=day` (one UTC-midnight snapshot per day); `week` returns Monday 00:00 UTC snapshots, `month` returns first-of-month 00:00 UTC snapshots, and `hour` returns the raw hourly cadence. Default page size is 1000.
206
+ */
207
+ get: operations["get_user_vault_position_timeseries"];
208
+ put?: never;
209
+ post?: never;
210
+ delete?: never;
211
+ options?: never;
212
+ head?: never;
213
+ patch?: never;
214
+ trace?: never;
215
+ };
216
+ "/v1/vaults": {
217
+ parameters: {
218
+ query?: never;
219
+ header?: never;
220
+ path?: never;
221
+ cookie?: never;
222
+ };
223
+ /**
224
+ * List Gauntlet-curated vaults
225
+ * @description Returns identification-only rows for the admin-curated visible vaults, ordered most-recent-first; pass `?include_hidden=true` for every enabled vault (hidden included, disabled never). Use `/{vault_id}` for current metrics, `/{vault_id}/definition` for the full vault definition, `/{vault_id}/timeseries` for history.
226
+ *
227
+ * Cursor-paginated, but the default page size is the cap so most callers don't need to think about it — pass `meta.next_cursor` back as `?next=` only if the result exceeds 1000 vaults.
228
+ */
229
+ get: operations["list_vaults"];
230
+ put?: never;
231
+ post?: never;
232
+ delete?: never;
233
+ options?: never;
234
+ head?: never;
235
+ patch?: never;
236
+ trace?: never;
237
+ };
238
+ "/v1/vaults/{vault_id}": {
239
+ parameters: {
240
+ query?: never;
241
+ header?: never;
242
+ path?: never;
243
+ cookie?: never;
244
+ };
245
+ /**
246
+ * Get current vault metrics
247
+ * @description Returns the current metrics snapshot for a vault — same metric shape that `/timeseries` emits per point, so this is `current point` and timeseries is `historical points`. The vault's protocol-specific definition (fees, hooks, curator, etc.) lives on `/{vault_id}/definition`.
248
+ */
249
+ get: operations["get_vault"];
250
+ put?: never;
251
+ post?: never;
252
+ delete?: never;
253
+ options?: never;
254
+ head?: never;
255
+ patch?: never;
256
+ trace?: never;
257
+ };
258
+ "/v1/vaults/{vault_id}/definition": {
259
+ parameters: {
260
+ query?: never;
261
+ header?: never;
262
+ path?: never;
263
+ cookie?: never;
264
+ };
265
+ /**
266
+ * Get vault definition
267
+ * @description Returns the vault's identity + protocol-specific definition: name, owner, numeraire token, hooks, fees, curator, etc., merged inline based on `vault_type`. Aera carries hooks/feeCalculator, Morpho V1/V2 carry curator + WAD-scaled fees, Symbiotic carries identity only.
268
+ */
269
+ get: operations["get_vault_definition"];
270
+ put?: never;
271
+ post?: never;
272
+ delete?: never;
273
+ options?: never;
274
+ head?: never;
275
+ patch?: never;
276
+ trace?: never;
277
+ };
278
+ "/v1/vaults/{vault_id}/timeseries": {
279
+ parameters: {
280
+ query?: never;
281
+ header?: never;
282
+ path?: never;
283
+ cookie?: never;
284
+ };
285
+ /**
286
+ * Get vault timeseries data
287
+ * @description Returns historical metric data points. Default order is `asc` (oldest first, chart-friendly); pass `?order=desc` for newest-first list views. Supports date range filtering and cursor pagination — pass `meta.next_cursor` back as `?next=` for the next page (cursor is bound to the order it was created with). Defaults to `granularity=day` (one UTC-midnight snapshot per day); `week` returns Monday 00:00 UTC snapshots, `month` returns first-of-month 00:00 UTC snapshots, and `hour` returns the raw hourly cadence. Default page size is 1000.
288
+ */
289
+ get: operations["get_vault_timeseries"];
290
+ put?: never;
291
+ post?: never;
292
+ delete?: never;
293
+ options?: never;
294
+ head?: never;
295
+ patch?: never;
296
+ trace?: never;
297
+ };
298
+ "/v1/vaults/featured": {
299
+ parameters: {
300
+ query?: never;
301
+ header?: never;
302
+ path?: never;
303
+ cookie?: never;
304
+ };
305
+ /**
306
+ * List featured vaults
307
+ * @description Returns the admin-curated featured shortlist, one card per logical vault in curated order: display name, marketing description, deployed chains (highest-TVL first), supply token, aggregate TVL, and the highest 7/30/90-day APY across deployments. `vault_ids` carries per-deployment `{chainId}:{address}` ids for `/v1/vaults/{vault_id}` links, in the same order as `chains`.
308
+ */
309
+ get: operations["list_featured_vaults"];
310
+ put?: never;
311
+ post?: never;
312
+ delete?: never;
313
+ options?: never;
314
+ head?: never;
315
+ patch?: never;
316
+ trace?: never;
317
+ };
318
+ }
319
+ export type webhooks = Record<string, never>;
320
+ export interface components {
321
+ schemas: {
322
+ /**
323
+ * @description Decimal-string metric paired across native (numeraire-token) and USD.
324
+ * `native` is always present; `usd` is JSON null when pricing is unavailable.
325
+ */
326
+ AmountPair: {
327
+ native: string;
328
+ usd?: string | null;
329
+ };
330
+ /**
331
+ * @description Asset-delta envelope on user activity rows. `native` is always present;
332
+ * `token` is present when the indexer knows the row's asset token.
333
+ * The struct shape is kept stable so derived denominations (usd,
334
+ * numeraire token) can be added later without breaking integrators.
335
+ */
336
+ AssetDelta: {
337
+ native: string;
338
+ token?: null | components["schemas"]["TokenRef"];
339
+ };
340
+ BasicMeta: {
341
+ /** Format: date-time */
342
+ refreshed_at: string;
343
+ request_id: string;
344
+ };
345
+ ChainSyncStatus: {
346
+ /** Format: int64 */
347
+ chain_id: number;
348
+ freshness: string;
349
+ /** Format: int64 */
350
+ lag_seconds: number;
351
+ /** Format: int64 */
352
+ latest_block: number;
353
+ /** Format: int64 */
354
+ latest_timestamp: number;
355
+ };
356
+ /**
357
+ * @description USD amount on curated aggregates: decimal string, `null` when the
358
+ * pricing service is not configured.
359
+ */
360
+ CuratedTvl: {
361
+ usd?: string | null;
362
+ };
363
+ ErrorBody: {
364
+ /** @description Machine-readable error code (e.g. `NOT_FOUND`, `UNAUTHORIZED`) */
365
+ code: string;
366
+ details?: unknown;
367
+ /** @description Human-readable error message */
368
+ message: string;
369
+ };
370
+ /** @description Standard error response envelope returned on 4xx/5xx */
371
+ ErrorResponse: {
372
+ error: components["schemas"]["ErrorBody"];
373
+ };
374
+ FeaturedVault: {
375
+ /**
376
+ * Format: double
377
+ * @description Highest 7-day APY across the vault's deployments, fraction
378
+ * (0.0573 = 5.73%). `null` while every window is warming up.
379
+ */
380
+ apy_7d_max?: number | null;
381
+ /**
382
+ * Format: double
383
+ * @description Highest 30-day APY across the vault's deployments.
384
+ */
385
+ apy_30d_max?: number | null;
386
+ /**
387
+ * Format: double
388
+ * @description Highest 90-day APY across the vault's deployments.
389
+ */
390
+ apy_90d_max?: number | null;
391
+ /** @description Chain slugs the vault is deployed on, highest-TVL first. */
392
+ chains: string[];
393
+ /**
394
+ * @description Curated marketing description; `null` when the curator hasn't
395
+ * written one.
396
+ */
397
+ description?: string | null;
398
+ /**
399
+ * @description Curated display name; falls back to the registry id when the
400
+ * curator hasn't named the vault yet. `vault_ids` carries the
401
+ * stable identifiers.
402
+ */
403
+ name: string;
404
+ /**
405
+ * @description Card-length copy (e.g. "Conservative lending yield with low
406
+ * risk"). `null` when the curator hasn't written any; consumers
407
+ * decide whether to fall back to `description`.
408
+ */
409
+ short_description?: string | null;
410
+ /**
411
+ * @description Supply (numeraire) token symbol, from the highest-TVL deployment
412
+ * that reports one.
413
+ */
414
+ supply_token?: string | null;
415
+ /** @description Aggregate TVL across the vault's deployments ("Total Supply"). */
416
+ tvl: components["schemas"]["CuratedTvl"];
417
+ /**
418
+ * Format: date-time
419
+ * @description Most recent indexer snapshot among the vault's deployments;
420
+ * `null` when no deployment carried a usable timestamp.
421
+ */
422
+ updated_at?: string | null;
423
+ /**
424
+ * @description Per-deployment API vault ids (`{chainId}:{address}`, same order
425
+ * as `chains`) for `/v1/vaults/{vault_id}` links.
426
+ */
427
+ vault_ids: string[];
428
+ };
429
+ FeaturedVaultsResponse: {
430
+ data: components["schemas"]["FeaturedVault"][];
431
+ meta: components["schemas"]["ListMeta"];
432
+ };
433
+ HealthResponse: {
434
+ status: string;
435
+ /** Format: int64 */
436
+ uptime_seconds: number;
437
+ version: string;
438
+ };
439
+ HistoricalPriceValue: {
440
+ /** Format: double */
441
+ usd: number;
442
+ };
443
+ LatestPriceResponse: {
444
+ address: string;
445
+ /** Format: int64 */
446
+ chain_id: number;
447
+ currency: string;
448
+ price: components["schemas"]["PriceValue"];
449
+ symbol: string;
450
+ timestamp: string;
451
+ };
452
+ /**
453
+ * @description Envelope for unpaginated list endpoints: `count` but no paging
454
+ * fields.
455
+ */
456
+ ListMeta: {
457
+ /**
458
+ * Format: int64
459
+ * @description Number of items in this response.
460
+ */
461
+ count: number;
462
+ /** @description Item-scoped failures isolated from an aggregate response. */
463
+ partial_errors?: components["schemas"]["PartialResponseError"][] | null;
464
+ /** Format: date-time */
465
+ refreshed_at: string;
466
+ request_id: string;
467
+ };
468
+ PartialResponseError: {
469
+ /** @description Machine-readable error code for the isolated item failure. */
470
+ code: string;
471
+ /** @description Human-readable error message. */
472
+ message: string;
473
+ /** @description Resource that failed inside the aggregate response, when known. */
474
+ resource_id?: string | null;
475
+ };
476
+ PnlBreakdown: {
477
+ /** @description Locked-in PnL from past disposals. */
478
+ realized: components["schemas"]["AmountPair"];
479
+ /** @description `unrealized` + `realized`. */
480
+ total: components["schemas"]["AmountPair"];
481
+ /** @description `value` − `cost_basis`. */
482
+ unrealized: components["schemas"]["AmountPair"];
483
+ };
484
+ PositionTimeseriesPoint: {
485
+ /** @description Cumulative cost of held shares (`usd` uses per-event historical pricing). */
486
+ cost_basis: components["schemas"]["AmountPair"];
487
+ /** @description Profit and loss grouped by total, unrealized, and realized values. */
488
+ pnl: components["schemas"]["PnlBreakdown"];
489
+ /** @description ROI ratio (`native` is in-kind; `usd` is null when pricing unavailable). */
490
+ roi_pct: components["schemas"]["RatioPair"];
491
+ /** @description Shares currently held by the wallet at this timestamp. */
492
+ shares_owned: string;
493
+ /** Format: date-time */
494
+ timestamp: string;
495
+ /**
496
+ * @description Position value at this timestamp (`native` = numeraire-token units,
497
+ * `usd` = `native` × historical USD price; null when unavailable).
498
+ */
499
+ value: components["schemas"]["AmountPair"];
500
+ };
501
+ PriceValue: {
502
+ /** Format: int32 */
503
+ decimals: number;
504
+ /** Format: double */
505
+ usd: number;
506
+ };
507
+ /**
508
+ * @description JSON-number ratio paired across native (in-kind) and USD denominations.
509
+ * Null when event history is unavailable or cannot support ROI replay.
510
+ */
511
+ RatioPair: {
512
+ /** Format: double */
513
+ native?: number | null;
514
+ /** Format: double */
515
+ usd?: number | null;
516
+ };
517
+ StrategyCard: {
518
+ /**
519
+ * Format: double
520
+ * @description Highest 7-day APY across the strategy's vaults ("APY Up To"),
521
+ * fraction (0.0953 = 9.53%). `null` while every vault's window is
522
+ * still warming up.
523
+ */
524
+ apy_7d_max?: number | null;
525
+ /**
526
+ * Format: double
527
+ * @description Highest 30-day APY across the strategy's vaults.
528
+ */
529
+ apy_30d_max?: number | null;
530
+ /**
531
+ * Format: double
532
+ * @description Highest 90-day APY across the strategy's vaults.
533
+ */
534
+ apy_90d_max?: number | null;
535
+ /** @description Marketing description of the strategy. */
536
+ description?: string | null;
537
+ /**
538
+ * @description Strategy identifier from the admin vocabulary (e.g. `earn`,
539
+ * `prime_lending`).
540
+ */
541
+ id: string;
542
+ /** @description Display name (e.g. "Prime Lending"). */
543
+ name: string;
544
+ /**
545
+ * @description Card-length copy (e.g. "Conservative lending yield with low
546
+ * risk"). `null` when the curator hasn't written any; consumers
547
+ * decide whether to fall back to `description`.
548
+ */
549
+ short_description?: string | null;
550
+ /**
551
+ * @description Aggregate TVL across the strategy's priced vaults ("Total
552
+ * Supply"). Vaults whose numeraire has no USD price are left out of
553
+ * the sum but still count toward `vault_count` and the APY maxes.
554
+ */
555
+ tvl: components["schemas"]["CuratedTvl"];
556
+ /**
557
+ * Format: date-time
558
+ * @description Most recent indexer snapshot among the strategy's vaults; `null`
559
+ * in the degenerate case where no matched row carried a timestamp.
560
+ */
561
+ updated_at?: string | null;
562
+ /**
563
+ * Format: int64
564
+ * @description Visible curated vaults in this strategy that matched at least one
565
+ * indexed deployment.
566
+ */
567
+ vault_count: number;
568
+ };
569
+ StrategyListResponse: {
570
+ data: components["schemas"]["StrategyCard"][];
571
+ meta: components["schemas"]["ListMeta"];
572
+ };
573
+ TimeseriesMeta: {
574
+ /**
575
+ * Format: int64
576
+ * @description Number of points in this response.
577
+ */
578
+ count: number;
579
+ /** Format: date-time */
580
+ end?: string | null;
581
+ /**
582
+ * Format: int64
583
+ * @description Page-size cap actually applied.
584
+ */
585
+ limit: number;
586
+ /** @description Set when more pages exist; pass back as `?next=`. */
587
+ next_cursor?: string | null;
588
+ /** @description Item-scoped failures isolated from an aggregate response. */
589
+ partial_errors?: components["schemas"]["PartialResponseError"][] | null;
590
+ /** Format: date-time */
591
+ refreshed_at: string;
592
+ request_id: string;
593
+ /**
594
+ * Format: date-time
595
+ * @description Window bounds the response covers (echoes the request when set).
596
+ */
597
+ start?: string | null;
598
+ };
599
+ TimeseriesPoint: {
600
+ price: components["schemas"]["HistoricalPriceValue"];
601
+ timestamp: string;
602
+ };
603
+ TimeseriesResponse: {
604
+ data: components["schemas"]["TimeseriesPoint"][];
605
+ };
606
+ TokenRef: {
607
+ address: string;
608
+ /** Format: int32 */
609
+ decimals?: number | null;
610
+ symbol?: string | null;
611
+ };
612
+ TvlAmount: {
613
+ usd: string;
614
+ };
615
+ TvlBreakdown: {
616
+ id: string;
617
+ label: string;
618
+ source_id: string;
619
+ tvl: components["schemas"]["TvlAmount"];
620
+ /** Format: date-time */
621
+ updated_at: string;
622
+ };
623
+ TvlResponse: {
624
+ data: components["schemas"]["TvlSummary"];
625
+ meta: components["schemas"]["BasicMeta"];
626
+ };
627
+ TvlSummary: {
628
+ breakdown?: components["schemas"]["TvlBreakdown"][] | null;
629
+ totals: components["schemas"]["TvlTotal"][];
630
+ tvl: components["schemas"]["TvlAmount"];
631
+ /** Format: date-time */
632
+ updated_at: string;
633
+ };
634
+ TvlTotal: {
635
+ id: string;
636
+ label: string;
637
+ tvl: components["schemas"]["TvlAmount"];
638
+ /** Format: date-time */
639
+ updated_at: string;
640
+ };
641
+ /**
642
+ * @description One immutable entry in the wallet's activity log.
643
+ *
644
+ * Each row represents a single on-chain event that affected the
645
+ * wallet's vault position. Async deposit/redeem lifecycles emit
646
+ * multiple rows (one per lifecycle event — request, solve, refund);
647
+ * each row is frozen at emission time and never mutates. To follow
648
+ * an async action across rows, correlate via `request_hash`.
649
+ */
650
+ UserActivity: {
651
+ /**
652
+ * @description Signed asset delta in the row's asset-token units, using a
653
+ * deposit-ledger sign convention (NOT wallet-flow direction):
654
+ * - Positive = a deposit-direction action (`deposit`,
655
+ * `deposit_pending`, `transfer_in`).
656
+ * - Negative = a withdraw-direction action (`withdraw`,
657
+ * `deposit_refunded`, `transfer_out`).
658
+ * - `0` = no asset movement at this event
659
+ * (`deposit` on Aera async solve, `withdraw_pending`,
660
+ * `withdraw_refunded`).
661
+ *
662
+ * Note: under this convention `deposit_refunded` is negative
663
+ * (a deposit was unwound) even though tokens flow back INTO the
664
+ * wallet, and async `withdraw` (Aera redeem_solved) is negative
665
+ * even though tokens flow back INTO the wallet — the sign tracks
666
+ * the deposit-ledger direction, not the user's wallet balance.
667
+ *
668
+ * Summing across rows for a single async lifecycle gives the net
669
+ * signed asset movement of that lifecycle (no double-counting).
670
+ * `assets_delta.token` identifies the asset token when known. Emitted
671
+ * as a struct (`{ native: "...", token: { address, symbol } }`) so
672
+ * derived denominations (e.g. usd) can be added later without breaking
673
+ * the response shape.
674
+ */
675
+ assets_delta: components["schemas"]["AssetDelta"];
676
+ /**
677
+ * @description Block hash — 1:1 identifier for the block this event was mined
678
+ * in. Consumers needing to detect reorgs should key off this rather
679
+ * than `block_number` (multiple blocks can share a number across a
680
+ * reorg).
681
+ */
682
+ block_hash: string;
683
+ /**
684
+ * Format: int64
685
+ * @description Block number — kept alongside `block_timestamp` for on-chain
686
+ * reconciliation / explorer linking.
687
+ */
688
+ block_number: number;
689
+ /**
690
+ * Format: int64
691
+ * @description Unix seconds, block time (`block.timestamp` from the chain).
692
+ */
693
+ block_timestamp: number;
694
+ /**
695
+ * @description Aera async-flow correlation hash. Links a `*_pending` row to
696
+ * its later terminal row (bare `deposit`/`withdraw` for settled,
697
+ * or `*_refunded`) of the same lifecycle. Emitted only on rows
698
+ * that participate in an async flow; omitted on sync rows and on
699
+ * secondary-market transfers.
700
+ */
701
+ request_hash?: string | null;
702
+ /**
703
+ * @description Signed share delta in 18-decimal units, reported at the event
704
+ * where the shares actually moved. Conventions by row type:
705
+ * - `deposit` — positive (shares minted to the wallet).
706
+ * - `deposit_pending` / `deposit_refunded` — `0` (no share
707
+ * movement; deposit requests touch assets only).
708
+ * - `withdraw_pending` — negative for Aera async redeems (shares
709
+ * leave the wallet at request time, escrowed to the Provisioner).
710
+ * - `withdraw` — negative for sync (Morpho) withdraws (shares
711
+ * burn on the same row that pays out assets); `0` for Aera
712
+ * async redeems (the share movement is recorded on the paired
713
+ * `withdraw_pending` row).
714
+ * - `withdraw_refunded` — positive (escrowed shares return).
715
+ * - `transfer_in` — positive; `transfer_out` — negative.
716
+ *
717
+ * Summing across rows for a single async lifecycle gives the net
718
+ * share movement of that lifecycle — there is no double-counting.
719
+ */
720
+ shares_delta: string;
721
+ /** @description Transaction hash of the on-chain event. */
722
+ tx_hash: string;
723
+ /**
724
+ * @description What happened. One of:
725
+ * - `deposit` — settled deposit (sync vault flow or async terminal solve).
726
+ * - `deposit_pending` — async deposit request submitted; awaiting solver.
727
+ * - `deposit_refunded` — async deposit returned without settling; assets bounced back.
728
+ * - `withdraw` — settled withdrawal (sync vault flow or async terminal solve).
729
+ * - `withdraw_pending` — async redeem request submitted; awaiting solver.
730
+ * - `withdraw_refunded` — async redeem returned without settling; shares bounced back.
731
+ * - `transfer_in` — vault shares received from another EOA (secondary market).
732
+ * - `transfer_out` — vault shares sent to another EOA.
733
+ *
734
+ * Async deposit/redeem lifecycles emit two rows (a `*_pending` at
735
+ * request time, then a separate terminal row — bare `deposit` or
736
+ * `_refunded` — at solve time). Rows are immutable; the pending
737
+ * row never mutates. Correlate the pair via `request_hash`.
738
+ */
739
+ type: string;
740
+ /** @description CAIP-10 vault identifier this row belongs to. Always emitted. */
741
+ vault_id: string;
742
+ };
743
+ UserActivityResponse: {
744
+ data: components["schemas"]["UserActivity"][];
745
+ meta: components["schemas"]["TimeseriesMeta"];
746
+ };
747
+ UserAllPositionsResponse: {
748
+ data: components["schemas"]["UserPosition"][];
749
+ meta: components["schemas"]["TimeseriesMeta"];
750
+ };
751
+ UserPosition: {
752
+ metrics: components["schemas"]["UserPositionMetrics"];
753
+ numeraire_token?: null | components["schemas"]["TokenRef"];
754
+ vault_id: string;
755
+ wallet_address: string;
756
+ };
757
+ UserPositionLatestResponse: {
758
+ data: components["schemas"]["UserPosition"];
759
+ meta: components["schemas"]["BasicMeta"];
760
+ };
761
+ UserPositionMetrics: {
762
+ /** @description Cumulative cost of currently-held shares. */
763
+ cost_basis: components["schemas"]["AmountPair"];
764
+ /**
765
+ * @description Assets escrowed at the Aera Provisioner pending share mint
766
+ * (`native` = numeraire-token units, `usd` = `native` × current USD price).
767
+ */
768
+ pending_deposit_assets: components["schemas"]["AmountPair"];
769
+ /** @description Shares escrowed at the Aera Provisioner pending asset return. */
770
+ pending_redeem_shares: string;
771
+ /** @description Profit and loss grouped by total, unrealized, and realized values. */
772
+ pnl: components["schemas"]["PnlBreakdown"];
773
+ /** @description Time-weighted ROI from user deposit/redeem history. */
774
+ roi_pct: components["schemas"]["RatioPair"];
775
+ /** @description Shares currently held by the wallet. */
776
+ shares_owned: string;
777
+ /**
778
+ * @description Current market value of held shares (`native` = numeraire-token
779
+ * units, `usd` = `native` × current USD price).
780
+ */
781
+ value: components["schemas"]["AmountPair"];
782
+ };
783
+ UserPositionsTimeseriesResponse: {
784
+ data: components["schemas"]["PositionTimeseriesPoint"][];
785
+ meta: components["schemas"]["TimeseriesMeta"];
786
+ };
787
+ VaultDetail: {
788
+ address: string;
789
+ /** Format: int64 */
790
+ chain_id: number;
791
+ metrics: components["schemas"]["VaultMetrics"];
792
+ name: string;
793
+ numeraire_token: components["schemas"]["TokenRef"];
794
+ symbol: string;
795
+ vault_id: string;
796
+ vault_type: string;
797
+ };
798
+ VaultDetailResponse: {
799
+ data: components["schemas"]["VaultDetail"];
800
+ meta: components["schemas"]["BasicMeta"];
801
+ };
802
+ VaultMetrics: {
803
+ /** Format: double */
804
+ apy_7d?: number | null;
805
+ /** Format: double */
806
+ apy_30d?: number | null;
807
+ /** Format: double */
808
+ apy_90d?: number | null;
809
+ /** Format: int64 */
810
+ as_of?: number | null;
811
+ total_supply: string;
812
+ tvl: components["schemas"]["AmountPair"];
813
+ unit_price: string;
814
+ };
815
+ VaultTimeseriesPoint: {
816
+ /** Format: double */
817
+ apy_7d?: number | null;
818
+ /** Format: double */
819
+ apy_30d?: number | null;
820
+ /** Format: double */
821
+ apy_90d?: number | null;
822
+ /** Format: date-time */
823
+ timestamp: string;
824
+ total_supply: string;
825
+ tvl: components["schemas"]["AmountPair"];
826
+ unit_price: string;
827
+ };
828
+ VaultTimeseriesResponse: {
829
+ data: components["schemas"]["VaultTimeseriesPoint"][];
830
+ meta: components["schemas"]["TimeseriesMeta"];
831
+ };
832
+ };
833
+ responses: never;
834
+ parameters: never;
835
+ requestBodies: never;
836
+ headers: never;
837
+ pathItems: never;
838
+ }
839
+ export type $defs = Record<string, never>;
840
+ export interface operations {
841
+ health: {
842
+ parameters: {
843
+ query?: never;
844
+ header?: never;
845
+ path?: never;
846
+ cookie?: never;
847
+ };
848
+ requestBody?: never;
849
+ responses: {
850
+ /** @description Service is live */
851
+ 200: {
852
+ headers: {
853
+ [name: string]: unknown;
854
+ };
855
+ content: {
856
+ "application/json": components["schemas"]["HealthResponse"];
857
+ };
858
+ };
859
+ };
860
+ };
861
+ chain_sync_status: {
862
+ parameters: {
863
+ query?: never;
864
+ header?: never;
865
+ path?: never;
866
+ cookie?: never;
867
+ };
868
+ requestBody?: never;
869
+ responses: {
870
+ /** @description Chain sync status */
871
+ 200: {
872
+ headers: {
873
+ [name: string]: unknown;
874
+ };
875
+ content: {
876
+ "application/json": components["schemas"]["ChainSyncStatus"][];
877
+ };
878
+ };
879
+ };
880
+ };
881
+ get_latest_price: {
882
+ parameters: {
883
+ query?: never;
884
+ header?: never;
885
+ path?: never;
886
+ cookie?: never;
887
+ };
888
+ requestBody?: never;
889
+ responses: {
890
+ /** @description Token price */
891
+ 200: {
892
+ headers: {
893
+ [name: string]: unknown;
894
+ };
895
+ content: {
896
+ "application/json": components["schemas"]["LatestPriceResponse"];
897
+ };
898
+ };
899
+ /** @description Token not found */
900
+ 404: {
901
+ headers: {
902
+ [name: string]: unknown;
903
+ };
904
+ content?: never;
905
+ };
906
+ /** @description Invalid parameters */
907
+ 422: {
908
+ headers: {
909
+ [name: string]: unknown;
910
+ };
911
+ content?: never;
912
+ };
913
+ /** @description Pricing service not configured */
914
+ 503: {
915
+ headers: {
916
+ [name: string]: unknown;
917
+ };
918
+ content?: never;
919
+ };
920
+ };
921
+ };
922
+ get_price_history: {
923
+ parameters: {
924
+ query?: never;
925
+ header?: never;
926
+ path?: never;
927
+ cookie?: never;
928
+ };
929
+ requestBody?: never;
930
+ responses: {
931
+ /** @description Price timeseries */
932
+ 200: {
933
+ headers: {
934
+ [name: string]: unknown;
935
+ };
936
+ content: {
937
+ "application/json": components["schemas"]["TimeseriesResponse"];
938
+ };
939
+ };
940
+ /** @description Invalid parameters */
941
+ 422: {
942
+ headers: {
943
+ [name: string]: unknown;
944
+ };
945
+ content?: never;
946
+ };
947
+ /** @description Pricing service not configured */
948
+ 503: {
949
+ headers: {
950
+ [name: string]: unknown;
951
+ };
952
+ content?: never;
953
+ };
954
+ };
955
+ };
956
+ list_strategies: {
957
+ parameters: {
958
+ query?: never;
959
+ header?: never;
960
+ path?: never;
961
+ cookie?: never;
962
+ };
963
+ requestBody?: never;
964
+ responses: {
965
+ /** @description List of strategy cards */
966
+ 200: {
967
+ headers: {
968
+ [name: string]: unknown;
969
+ };
970
+ content: {
971
+ "application/json": components["schemas"]["StrategyListResponse"];
972
+ };
973
+ };
974
+ /** @description Missing or invalid auth */
975
+ 401: {
976
+ headers: {
977
+ [name: string]: unknown;
978
+ };
979
+ content: {
980
+ "application/json": components["schemas"]["ErrorResponse"];
981
+ };
982
+ };
983
+ /** @description Data source unavailable */
984
+ 503: {
985
+ headers: {
986
+ [name: string]: unknown;
987
+ };
988
+ content: {
989
+ "application/json": components["schemas"]["ErrorResponse"];
990
+ };
991
+ };
992
+ };
993
+ };
994
+ get_tvl: {
995
+ parameters: {
996
+ query?: {
997
+ /** @description Include chain and external-source TVL breakdown rows. */
998
+ include_breakdown?: boolean;
999
+ /** @description Deprecated alias for include_breakdown. */
1000
+ include_sources?: boolean;
1001
+ };
1002
+ header?: never;
1003
+ path?: never;
1004
+ cookie?: never;
1005
+ };
1006
+ requestBody?: never;
1007
+ responses: {
1008
+ /** @description Live aggregate TVL */
1009
+ 200: {
1010
+ headers: {
1011
+ [name: string]: unknown;
1012
+ };
1013
+ content: {
1014
+ "application/json": components["schemas"]["TvlResponse"];
1015
+ };
1016
+ };
1017
+ /** @description Missing or invalid auth */
1018
+ 401: {
1019
+ headers: {
1020
+ [name: string]: unknown;
1021
+ };
1022
+ content: {
1023
+ "application/json": components["schemas"]["ErrorResponse"];
1024
+ };
1025
+ };
1026
+ /** @description Data source unavailable */
1027
+ 503: {
1028
+ headers: {
1029
+ [name: string]: unknown;
1030
+ };
1031
+ content: {
1032
+ "application/json": components["schemas"]["ErrorResponse"];
1033
+ };
1034
+ };
1035
+ };
1036
+ };
1037
+ get_user_activity: {
1038
+ parameters: {
1039
+ query?: {
1040
+ /** @description Wallet-wide feeds only: include activity in hidden (enabled but unlisted) vaults alongside visible ones. Activity in disabled vaults is never returned. Ignored when `vault_id` is set. */
1041
+ include_hidden?: boolean;
1042
+ /** @description Page size (1–1000, default 100). */
1043
+ limit?: number;
1044
+ /** @description Opaque cursor from previous `meta.next_cursor`. */
1045
+ next?: string;
1046
+ /** @description Sort direction: `desc` (default) or `asc`. */
1047
+ order?: string;
1048
+ /** @description CAIP-10 vault identifier. Optional — omit for wallet-wide activity across every vault the wallet has touched. */
1049
+ vault_id?: string;
1050
+ };
1051
+ header?: never;
1052
+ path: {
1053
+ /** @description Ethereum wallet address */
1054
+ wallet_address: string;
1055
+ };
1056
+ cookie?: never;
1057
+ };
1058
+ requestBody?: never;
1059
+ responses: {
1060
+ /** @description User wallet activity */
1061
+ 200: {
1062
+ headers: {
1063
+ [name: string]: unknown;
1064
+ };
1065
+ content: {
1066
+ "application/json": components["schemas"]["UserActivityResponse"];
1067
+ };
1068
+ };
1069
+ /** @description Missing or invalid auth */
1070
+ 401: {
1071
+ headers: {
1072
+ [name: string]: unknown;
1073
+ };
1074
+ content: {
1075
+ "application/json": components["schemas"]["ErrorResponse"];
1076
+ };
1077
+ };
1078
+ /** @description Invalid cursor */
1079
+ 422: {
1080
+ headers: {
1081
+ [name: string]: unknown;
1082
+ };
1083
+ content: {
1084
+ "application/json": components["schemas"]["ErrorResponse"];
1085
+ };
1086
+ };
1087
+ };
1088
+ };
1089
+ get_user_all_positions: {
1090
+ parameters: {
1091
+ query?: {
1092
+ /** @description Include positions in hidden (enabled but unlisted) vaults alongside visible ones. Positions in disabled vaults are never returned. */
1093
+ include_hidden?: boolean;
1094
+ /** @description Page size (1–500, default 100). */
1095
+ limit?: number;
1096
+ /** @description Opaque cursor from previous `meta.next_cursor`. */
1097
+ next?: string;
1098
+ };
1099
+ header?: never;
1100
+ path: {
1101
+ /** @description Ethereum wallet address */
1102
+ wallet_address: string;
1103
+ };
1104
+ cookie?: never;
1105
+ };
1106
+ requestBody?: never;
1107
+ responses: {
1108
+ /** @description All wallet positions */
1109
+ 200: {
1110
+ headers: {
1111
+ [name: string]: unknown;
1112
+ };
1113
+ content: {
1114
+ "application/json": components["schemas"]["UserAllPositionsResponse"];
1115
+ };
1116
+ };
1117
+ /** @description Missing or invalid auth */
1118
+ 401: {
1119
+ headers: {
1120
+ [name: string]: unknown;
1121
+ };
1122
+ content: {
1123
+ "application/json": components["schemas"]["ErrorResponse"];
1124
+ };
1125
+ };
1126
+ /** @description Invalid cursor */
1127
+ 422: {
1128
+ headers: {
1129
+ [name: string]: unknown;
1130
+ };
1131
+ content: {
1132
+ "application/json": components["schemas"]["ErrorResponse"];
1133
+ };
1134
+ };
1135
+ };
1136
+ };
1137
+ get_user_vault_position: {
1138
+ parameters: {
1139
+ query?: never;
1140
+ header?: never;
1141
+ path: {
1142
+ /** @description Vault identifier */
1143
+ vault_id: string;
1144
+ /** @description Ethereum wallet address */
1145
+ wallet_address: string;
1146
+ };
1147
+ cookie?: never;
1148
+ };
1149
+ requestBody?: never;
1150
+ responses: {
1151
+ /** @description Single vault position */
1152
+ 200: {
1153
+ headers: {
1154
+ [name: string]: unknown;
1155
+ };
1156
+ content: {
1157
+ "application/json": components["schemas"]["UserPositionLatestResponse"];
1158
+ };
1159
+ };
1160
+ /** @description Missing or invalid auth */
1161
+ 401: {
1162
+ headers: {
1163
+ [name: string]: unknown;
1164
+ };
1165
+ content: {
1166
+ "application/json": components["schemas"]["ErrorResponse"];
1167
+ };
1168
+ };
1169
+ /** @description Position not found */
1170
+ 404: {
1171
+ headers: {
1172
+ [name: string]: unknown;
1173
+ };
1174
+ content: {
1175
+ "application/json": components["schemas"]["ErrorResponse"];
1176
+ };
1177
+ };
1178
+ };
1179
+ };
1180
+ get_user_vault_position_timeseries: {
1181
+ parameters: {
1182
+ query?: {
1183
+ /** @description Window end: ISO 8601 date (`2026-01-01`, read as 00:00:00 UTC) or RFC 3339 timestamp (`2026-01-01T00:00:00Z`). */
1184
+ end?: string;
1185
+ /** @description Sampling granularity: `day` (default), `hour`, `week`, or `month`. Day/week/month buckets start at 00:00 UTC; weeks start Monday and months start on the 1st. */
1186
+ granularity?: string;
1187
+ /** @description Page size (1–10000, default 1000). */
1188
+ limit?: number;
1189
+ /** @description Opaque cursor from previous `meta.next_cursor`. */
1190
+ next?: string;
1191
+ /** @description Sort direction: `asc` (default) or `desc`. */
1192
+ order?: string;
1193
+ /** @description Window start: ISO 8601 date (`2026-01-01`, read as 00:00:00 UTC) or RFC 3339 timestamp (`2026-01-01T00:00:00Z`). */
1194
+ start?: string;
1195
+ };
1196
+ header?: never;
1197
+ path: {
1198
+ /** @description Vault identifier */
1199
+ vault_id: string;
1200
+ /** @description Ethereum wallet address */
1201
+ wallet_address: string;
1202
+ };
1203
+ cookie?: never;
1204
+ };
1205
+ requestBody?: never;
1206
+ responses: {
1207
+ /** @description Position timeseries */
1208
+ 200: {
1209
+ headers: {
1210
+ [name: string]: unknown;
1211
+ };
1212
+ content: {
1213
+ "application/json": components["schemas"]["UserPositionsTimeseriesResponse"];
1214
+ };
1215
+ };
1216
+ /** @description Missing or invalid auth */
1217
+ 401: {
1218
+ headers: {
1219
+ [name: string]: unknown;
1220
+ };
1221
+ content: {
1222
+ "application/json": components["schemas"]["ErrorResponse"];
1223
+ };
1224
+ };
1225
+ /** @description Invalid cursor */
1226
+ 422: {
1227
+ headers: {
1228
+ [name: string]: unknown;
1229
+ };
1230
+ content: {
1231
+ "application/json": components["schemas"]["ErrorResponse"];
1232
+ };
1233
+ };
1234
+ };
1235
+ };
1236
+ list_vaults: {
1237
+ parameters: {
1238
+ query?: {
1239
+ /** @description Include hidden (enabled but unlisted) vaults alongside visible ones. Disabled vaults are never listed. */
1240
+ include_hidden?: boolean;
1241
+ /** @description Page size (1–1000, default 1000). */
1242
+ limit?: number;
1243
+ /** @description Opaque cursor from previous `meta.next_cursor`. */
1244
+ next?: string;
1245
+ };
1246
+ header?: never;
1247
+ path?: never;
1248
+ cookie?: never;
1249
+ };
1250
+ requestBody?: never;
1251
+ responses: {
1252
+ /** @description List of vaults */
1253
+ 200: {
1254
+ headers: {
1255
+ [name: string]: unknown;
1256
+ };
1257
+ content?: never;
1258
+ };
1259
+ /** @description Missing or invalid auth */
1260
+ 401: {
1261
+ headers: {
1262
+ [name: string]: unknown;
1263
+ };
1264
+ content: {
1265
+ "application/json": components["schemas"]["ErrorResponse"];
1266
+ };
1267
+ };
1268
+ /** @description Invalid cursor */
1269
+ 422: {
1270
+ headers: {
1271
+ [name: string]: unknown;
1272
+ };
1273
+ content: {
1274
+ "application/json": components["schemas"]["ErrorResponse"];
1275
+ };
1276
+ };
1277
+ };
1278
+ };
1279
+ get_vault: {
1280
+ parameters: {
1281
+ query?: never;
1282
+ header?: never;
1283
+ path: {
1284
+ /** @description Vault identifier (CAIP-10 `chainId:address`) */
1285
+ vault_id: string;
1286
+ };
1287
+ cookie?: never;
1288
+ };
1289
+ requestBody?: never;
1290
+ responses: {
1291
+ /** @description Current vault metrics */
1292
+ 200: {
1293
+ headers: {
1294
+ [name: string]: unknown;
1295
+ };
1296
+ content: {
1297
+ "application/json": components["schemas"]["VaultDetailResponse"];
1298
+ };
1299
+ };
1300
+ /** @description Missing or invalid auth */
1301
+ 401: {
1302
+ headers: {
1303
+ [name: string]: unknown;
1304
+ };
1305
+ content: {
1306
+ "application/json": components["schemas"]["ErrorResponse"];
1307
+ };
1308
+ };
1309
+ /** @description Vault not found */
1310
+ 404: {
1311
+ headers: {
1312
+ [name: string]: unknown;
1313
+ };
1314
+ content: {
1315
+ "application/json": components["schemas"]["ErrorResponse"];
1316
+ };
1317
+ };
1318
+ };
1319
+ };
1320
+ get_vault_definition: {
1321
+ parameters: {
1322
+ query?: never;
1323
+ header?: never;
1324
+ path: {
1325
+ /** @description Vault identifier (CAIP-10 `chainId:address`) */
1326
+ vault_id: string;
1327
+ };
1328
+ cookie?: never;
1329
+ };
1330
+ requestBody?: never;
1331
+ responses: {
1332
+ /** @description Vault definition */
1333
+ 200: {
1334
+ headers: {
1335
+ [name: string]: unknown;
1336
+ };
1337
+ content?: never;
1338
+ };
1339
+ /** @description Missing or invalid auth */
1340
+ 401: {
1341
+ headers: {
1342
+ [name: string]: unknown;
1343
+ };
1344
+ content: {
1345
+ "application/json": components["schemas"]["ErrorResponse"];
1346
+ };
1347
+ };
1348
+ /** @description Vault not found */
1349
+ 404: {
1350
+ headers: {
1351
+ [name: string]: unknown;
1352
+ };
1353
+ content: {
1354
+ "application/json": components["schemas"]["ErrorResponse"];
1355
+ };
1356
+ };
1357
+ };
1358
+ };
1359
+ get_vault_timeseries: {
1360
+ parameters: {
1361
+ query?: {
1362
+ /** @description Window end: ISO 8601 date (`2026-01-01`, read as 00:00:00 UTC) or RFC 3339 timestamp (`2026-01-01T00:00:00Z`). */
1363
+ end?: string;
1364
+ /** @description Sampling granularity: `day` (default), `hour`, `week`, or `month`. Day/week/month buckets start at 00:00 UTC; weeks start Monday and months start on the 1st. */
1365
+ granularity?: string;
1366
+ /** @description Page size (1–10000, default 1000). */
1367
+ limit?: number;
1368
+ /** @description Opaque cursor from previous `meta.next_cursor`. */
1369
+ next?: string;
1370
+ /** @description Sort direction: `asc` (default) or `desc`. */
1371
+ order?: string;
1372
+ /** @description Window start: ISO 8601 date (`2026-01-01`, read as 00:00:00 UTC) or RFC 3339 timestamp (`2026-01-01T00:00:00Z`). */
1373
+ start?: string;
1374
+ };
1375
+ header?: never;
1376
+ path: {
1377
+ /** @description Vault identifier */
1378
+ vault_id: string;
1379
+ };
1380
+ cookie?: never;
1381
+ };
1382
+ requestBody?: never;
1383
+ responses: {
1384
+ /** @description Timeseries data points */
1385
+ 200: {
1386
+ headers: {
1387
+ [name: string]: unknown;
1388
+ };
1389
+ content: {
1390
+ "application/json": components["schemas"]["VaultTimeseriesResponse"];
1391
+ };
1392
+ };
1393
+ /** @description Missing or invalid auth */
1394
+ 401: {
1395
+ headers: {
1396
+ [name: string]: unknown;
1397
+ };
1398
+ content: {
1399
+ "application/json": components["schemas"]["ErrorResponse"];
1400
+ };
1401
+ };
1402
+ /** @description Vault not found */
1403
+ 404: {
1404
+ headers: {
1405
+ [name: string]: unknown;
1406
+ };
1407
+ content: {
1408
+ "application/json": components["schemas"]["ErrorResponse"];
1409
+ };
1410
+ };
1411
+ /** @description Invalid parameters */
1412
+ 422: {
1413
+ headers: {
1414
+ [name: string]: unknown;
1415
+ };
1416
+ content: {
1417
+ "application/json": components["schemas"]["ErrorResponse"];
1418
+ };
1419
+ };
1420
+ };
1421
+ };
1422
+ list_featured_vaults: {
1423
+ parameters: {
1424
+ query?: never;
1425
+ header?: never;
1426
+ path?: never;
1427
+ cookie?: never;
1428
+ };
1429
+ requestBody?: never;
1430
+ responses: {
1431
+ /** @description Featured vault cards */
1432
+ 200: {
1433
+ headers: {
1434
+ [name: string]: unknown;
1435
+ };
1436
+ content: {
1437
+ "application/json": components["schemas"]["FeaturedVaultsResponse"];
1438
+ };
1439
+ };
1440
+ /** @description Missing or invalid auth */
1441
+ 401: {
1442
+ headers: {
1443
+ [name: string]: unknown;
1444
+ };
1445
+ content: {
1446
+ "application/json": components["schemas"]["ErrorResponse"];
1447
+ };
1448
+ };
1449
+ /** @description Data source unavailable */
1450
+ 503: {
1451
+ headers: {
1452
+ [name: string]: unknown;
1453
+ };
1454
+ content: {
1455
+ "application/json": components["schemas"]["ErrorResponse"];
1456
+ };
1457
+ };
1458
+ };
1459
+ };
1460
+ }
1461
+ //# sourceMappingURL=generated.d.ts.map