@whisk/graphql 0.0.15 → 0.0.17

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.
@@ -0,0 +1,825 @@
1
+ type Query {
2
+ aeraVaults(where: AeraVaultFilter, before: String, after: String, limit: Int): AeraVaultPage!
3
+ aeraVaultPositions(where: AeraVaultPositionFilter!, before: String, after: String, limit: Int): AeraVaultPositionPage!
4
+ chains(where: ChainFilter): [Chain!]!
5
+ tokens(inputs: [TokenInput!]!): [Token]!
6
+ tokenHoldings(inputs: [TokenHoldingInput!]!): [TokenHolding]!
7
+ erc4626Vaults(where: Erc4626VaultFilter, before: String, after: String, limit: Int): Erc4626VaultPage!
8
+ erc4626VaultPositions(where: Erc4626VaultPositionFilter, before: String, after: String, limit: Int): Erc4626VaultPositionPage!
9
+ identity(address: Address!, resolverOrder: [IdentityResolver!]): Identity
10
+ identities(addresses: [Address!]!, resolverOrder: [IdentityResolver!]): [Identity!]!
11
+ merklAccountRewards(chainId: ChainId!, accountAddress: Address!): [MerklAccountReward!]!
12
+ morphoMarkets(where: MorphoMarketFilter, before: String, after: String, limit: Int): MorphoMarketPage!
13
+ morphoVaults(where: MorphoVaultFilter, before: String, after: String, limit: Int): MorphoVaultPage!
14
+ morphoMarketPositions(where: MorphoMarketPositionFilter!, before: String, after: String, limit: Int): MorphoMarketPositionPage!
15
+ morphoVaultPositions(where: MorphoVaultPositionFilter!, before: String, after: String, limit: Int): MorphoVaultPositionPage!
16
+ steakhouseStats: SteakhouseStats!
17
+ steakhouseTvl: SteakhouseTvl! @deprecated(reason: "Use steakhouseStats.tvl instead")
18
+ vaults(inputs: [VaultInput!]!): [Vault]!
19
+ }
20
+
21
+ input AeraVaultFilter {
22
+ chainId_in: [ChainId!]
23
+ vaultAddress_in: [Address!]
24
+ }
25
+
26
+ input AeraVaultPositionFilter {
27
+ chainId_in: [ChainId!]
28
+ vaultAddress_in: [Address!]
29
+ accountAddress_in: [Address!]
30
+ }
31
+
32
+ type AeraVaultPage {
33
+ items: [AeraVault]!
34
+ pageInfo: PageInfo!
35
+ totalCount: Int!
36
+ }
37
+
38
+ type AeraVaultPositionPage {
39
+ items: [AeraVaultPosition]!
40
+ pageInfo: PageInfo!
41
+ totalCount: Int!
42
+ }
43
+
44
+ type AeraVault {
45
+ chain: Chain!
46
+ vaultAddress: Address!
47
+ name: String!
48
+ totalSupplied: TokenAmount!
49
+ supplyApy1d: Apy!
50
+ supplyApy7d: Apy!
51
+ supplyApy30d: Apy!
52
+ isPaused: Boolean!
53
+ numeraireAsset: Token!
54
+ performanceFee: OnchainAmount!
55
+ managementFee: OnchainAmount!
56
+ }
57
+
58
+ type AeraVaultPosition {
59
+ vault: AeraVault!
60
+ accountAddress: Address!
61
+ supplyShares: OnchainAmount!
62
+ supplyAmount: TokenAmount!
63
+ hasPendingDeposit: Boolean!
64
+ hasPendingWithdrawal: Boolean!
65
+ pendingDeposits: [AeraPendingAction!]!
66
+ pendingWithdrawals: [AeraPendingAction!]!
67
+ }
68
+
69
+ type AeraPendingAction {
70
+ hash: Hex!
71
+ token: Token!
72
+ amount: TokenAmount!
73
+ }
74
+
75
+ scalar BigInt
76
+
77
+ scalar URL
78
+
79
+ scalar Hex
80
+
81
+ scalar Address
82
+
83
+ scalar ChainId
84
+
85
+ type OnchainAmount {
86
+ raw: BigInt!
87
+ formatted: String!
88
+ }
89
+
90
+ type PageInfo {
91
+ hasNextPage: Boolean!
92
+ hasPreviousPage: Boolean!
93
+ startCursor: String
94
+ endCursor: String
95
+ }
96
+
97
+ type Reward {
98
+ asset: Token!
99
+ apr: Float!
100
+ }
101
+
102
+ enum ApySide {
103
+ Supply
104
+ Borrow
105
+ }
106
+
107
+ type TimeSeriesPoint {
108
+ timestamp: Int!
109
+ value: Float!
110
+ }
111
+
112
+ type Apy {
113
+ side: ApySide!
114
+ base: Float!
115
+ rewards: [Reward!]!
116
+ fee: Float!
117
+ total: Float!
118
+ }
119
+
120
+ type BoxVault implements Erc4626Vault & Erc20 {
121
+ chain: Chain!
122
+ address: Address!
123
+ name: String!
124
+ symbol: String!
125
+ decimals: Int!
126
+ icon: URL
127
+ priceUsd: Float
128
+ category: TokenCategory
129
+ riskAssessment: RiskAssessment!
130
+ yield: YieldInfo
131
+ vaultAddress: Address! @deprecated(reason: "Use address instead")
132
+ asset: Token!
133
+ totalAssets: TokenAmount!
134
+ apy(timeframe: ApyTimeframe!): Apy!
135
+ historical: Erc4626VaultHistorical
136
+ allocations: [TokenHolding!]! @deprecated(reason: "Schema is subject to change, not yet stable")
137
+ fundingModules: [BoxFundingModule!]! @deprecated(reason: "Schema is subject to change, not yet stable")
138
+ }
139
+
140
+ interface BoxFundingModule {
141
+ fundingModuleAddress: Address! @deprecated(reason: "Schema is subject to change, not yet stable")
142
+ collateralHoldings: [TokenHolding!]! @deprecated(reason: "Schema is subject to change, not yet stable")
143
+ debtHoldings: [TokenHolding!]! @deprecated(reason: "Schema is subject to change, not yet stable")
144
+ nav: TokenAmount! @deprecated(reason: "Schema is subject to change, not yet stable")
145
+ }
146
+
147
+ type BoxMorphoFundingModule implements BoxFundingModule {
148
+ fundingModuleAddress: Address! @deprecated(reason: "Schema is subject to change, not yet stable")
149
+ collateralHoldings: [TokenHolding!]! @deprecated(reason: "Schema is subject to change, not yet stable")
150
+ debtHoldings: [TokenHolding!]! @deprecated(reason: "Schema is subject to change, not yet stable")
151
+ nav: TokenAmount! @deprecated(reason: "Schema is subject to change, not yet stable")
152
+ positions: [MorphoMarketPosition!]! @deprecated(reason: "Schema is subject to change, not yet stable")
153
+ }
154
+
155
+ type BoxUnknownFundingModule implements BoxFundingModule {
156
+ fundingModuleAddress: Address! @deprecated(reason: "Schema is subject to change, not yet stable")
157
+ collateralHoldings: [TokenHolding!]! @deprecated(reason: "Schema is subject to change, not yet stable")
158
+ debtHoldings: [TokenHolding!]! @deprecated(reason: "Schema is subject to change, not yet stable")
159
+ nav: TokenAmount! @deprecated(reason: "Schema is subject to change, not yet stable")
160
+ }
161
+
162
+ input ChainFilter {
163
+ chainId_in: [ChainId!]
164
+ }
165
+
166
+ type Chain {
167
+ id: ChainId!
168
+ name: String!
169
+ icon: URL!
170
+ nativeToken: Token!
171
+ wrappedNativeToken: Token!
172
+ }
173
+
174
+ type YieldInfo {
175
+ intrinsicApy: Float!
176
+ trailingPeriod: Int
177
+ maturity: Int
178
+ }
179
+
180
+ interface Erc20 {
181
+ chain: Chain!
182
+ address: Address!
183
+ name: String!
184
+ symbol: String!
185
+ decimals: Int!
186
+ icon: URL
187
+ priceUsd: Float
188
+ category: TokenCategory
189
+ riskAssessment: RiskAssessment!
190
+ yield: YieldInfo
191
+ }
192
+
193
+ input TokenInput {
194
+ chainId: ChainId!
195
+ tokenAddress: Address!
196
+ }
197
+
198
+ enum TokenCategory {
199
+ Stable
200
+ Eth
201
+ Btc
202
+ }
203
+
204
+ type Token implements Erc20 {
205
+ chain: Chain!
206
+ address: Address!
207
+ name: String!
208
+ symbol: String!
209
+ decimals: Int!
210
+ icon: URL
211
+ category: TokenCategory
212
+ priceUsd: Float
213
+ riskAssessment: RiskAssessment!
214
+ yield: YieldInfo
215
+ }
216
+
217
+ type TokenAmount {
218
+ raw: BigInt!
219
+ formatted: String!
220
+ usd: Float
221
+ }
222
+
223
+ input TokenHoldingInput {
224
+ chainId: ChainId!
225
+ tokenAddress: Address!
226
+ accountAddress: Address!
227
+ }
228
+
229
+ type TokenHolding {
230
+ token: Erc20!
231
+ accountAddress: Address!
232
+ balance: TokenAmount!
233
+ }
234
+
235
+ enum Erc4626VaultProtocol {
236
+ generic
237
+ morpho_v1
238
+ morpho_v2
239
+ box
240
+ }
241
+
242
+ input Erc4626VaultKey {
243
+ chainId: ChainId!
244
+ vaultAddress: Address!
245
+ protocol: Erc4626VaultProtocol!
246
+ }
247
+
248
+ input Erc4626VaultFilter {
249
+ keys: [Erc4626VaultKey!]
250
+ }
251
+
252
+ type Erc4626VaultPage {
253
+ items: [Erc4626Vault]!
254
+ pageInfo: PageInfo!
255
+ totalCount: Int!
256
+ }
257
+
258
+ input Erc4626VaultPositionFilter {
259
+ keys: [Erc4626VaultPositionKey!]
260
+ }
261
+
262
+ input Erc4626VaultPositionKey {
263
+ chainId: ChainId!
264
+ vaultAddress: Address!
265
+ protocol: Erc4626VaultProtocol!
266
+ accountAddress: Address!
267
+ }
268
+
269
+ type Erc4626VaultPositionPage {
270
+ items: [Erc4626VaultPosition]!
271
+ pageInfo: PageInfo!
272
+ totalCount: Int!
273
+ }
274
+
275
+ enum ApyTimeframe {
276
+ six_hours
277
+ one_day
278
+ seven_days
279
+ thirty_days
280
+ }
281
+
282
+ interface Erc4626VaultHistorical {
283
+ returns: [TimeSeriesPoint!]
284
+ }
285
+
286
+ type GenericErc4626VaultHistorical implements Erc4626VaultHistorical {
287
+ returns: [TimeSeriesPoint!]
288
+ }
289
+
290
+ interface Erc4626Vault implements Erc20 {
291
+ chain: Chain!
292
+ address: Address!
293
+ name: String!
294
+ symbol: String!
295
+ decimals: Int!
296
+ icon: URL
297
+ priceUsd: Float
298
+ category: TokenCategory
299
+ riskAssessment: RiskAssessment!
300
+ yield: YieldInfo
301
+ vaultAddress: Address! @deprecated(reason: "Use address instead")
302
+ asset: Token!
303
+ totalAssets: TokenAmount!
304
+ apy(timeframe: ApyTimeframe!): Apy!
305
+ historical: Erc4626VaultHistorical
306
+ }
307
+
308
+ type GenericErc4626Vault implements Erc4626Vault & Erc20 {
309
+ chain: Chain!
310
+ address: Address!
311
+ name: String!
312
+ symbol: String!
313
+ decimals: Int!
314
+ icon: URL
315
+ priceUsd: Float
316
+ category: TokenCategory
317
+ riskAssessment: RiskAssessment!
318
+ yield: YieldInfo
319
+ vaultAddress: Address! @deprecated(reason: "Use address instead")
320
+ asset: Token!
321
+ totalAssets: TokenAmount!
322
+ apy(timeframe: ApyTimeframe!): Apy!
323
+ historical: Erc4626VaultHistorical
324
+ }
325
+
326
+ interface Erc4626VaultPosition {
327
+ vault: Erc4626Vault!
328
+ accountAddress: Address!
329
+ shares: OnchainAmount!
330
+ assets: TokenAmount!
331
+ walletAssetHolding: TokenHolding!
332
+ }
333
+
334
+ type GenericErc4626VaultPosition implements Erc4626VaultPosition {
335
+ vault: Erc4626Vault!
336
+ accountAddress: Address!
337
+ shares: OnchainAmount!
338
+ assets: TokenAmount!
339
+ walletAssetHolding: TokenHolding!
340
+ }
341
+
342
+ enum IdentityResolver {
343
+ ens
344
+ farcaster
345
+ nns
346
+ base
347
+ uni
348
+ lens
349
+ world
350
+ }
351
+
352
+ type Identity {
353
+ aggregate: IdentityResolverOutput!
354
+ isOfacSanctioned: Boolean!
355
+ ens: IdentityResolverOutput!
356
+ farcaster: IdentityResolverOutput!
357
+ nns: IdentityResolverOutput!
358
+ base: IdentityResolverOutput!
359
+ uni: IdentityResolverOutput!
360
+ lens: IdentityResolverOutput!
361
+ world: IdentityResolverOutput!
362
+ }
363
+
364
+ type IdentityResolverOutput {
365
+ name: String
366
+ avatar: String
367
+ bio: String
368
+ website: String
369
+ x: String
370
+ github: String
371
+ discord: String
372
+ telegram: String
373
+ }
374
+
375
+ enum MerklAction {
376
+ Lend
377
+ Borrow
378
+ }
379
+
380
+ input MerklRewardInput {
381
+ chainId: ChainId!
382
+ mainProtocolId: String!
383
+ identifier: String!
384
+ action: MerklAction
385
+ }
386
+
387
+ type MerklAccountReward {
388
+ token: Token!
389
+ creditedAmount: TokenAmount!
390
+ claimableAmount: TokenAmount!
391
+ pendingAmount: TokenAmount!
392
+ proofs: [Hex!]!
393
+ distributorAddress: Address!
394
+ }
395
+
396
+ input MorphoVaultFilter {
397
+ chainId_in: [ChainId!]
398
+ vaultAddress_in: [Address!]
399
+ whitelisted: Boolean
400
+ }
401
+
402
+ type MorphoVaultPage {
403
+ items: [MorphoVault]!
404
+ pageInfo: PageInfo!
405
+ totalCount: Int!
406
+ }
407
+
408
+ type MorphoVault implements Erc4626Vault & Erc20 {
409
+ chain: Chain!
410
+ address: Address!
411
+ name: String!
412
+ symbol: String!
413
+ decimals: Int!
414
+ icon: URL
415
+ priceUsd: Float
416
+ category: TokenCategory
417
+ riskAssessment: RiskAssessment!
418
+ yield: YieldInfo
419
+ vaultAddress: Address! @deprecated(reason: "Use address instead")
420
+ asset: Token!
421
+ totalAssets: TokenAmount!
422
+ apy(timeframe: ApyTimeframe!): Apy!
423
+ metadata: MorphoVaultMetadata
424
+ performanceFee: Float!
425
+ feeRecipientAddress: Address
426
+ ownerAddress: Address!
427
+ curatorAddress: Address!
428
+ guardianAddress: Address!
429
+ totalLiquidity: TokenAmount!
430
+ marketAllocations: [MorphoVaultMarketAllocation!]!
431
+ historical: MorphoVaultHistorical
432
+ deploymentTimestamp: Int
433
+ timelockDuration: BigInt!
434
+ totalSupplied: TokenAmount! @deprecated(reason: "Use totalAssets instead")
435
+ supplyApy: Apy! @deprecated(reason: "Use apy(timeframe: one_day) instead")
436
+ supplyApy1d: Apy! @deprecated(reason: "Use apy(timeframe: one_day) instead")
437
+ supplyApy7d: Apy! @deprecated(reason: "Use apy(timeframe: seven_days) instead")
438
+ supplyApy30d: Apy! @deprecated(reason: "Use apy(timeframe: thirty_days) instead")
439
+ }
440
+
441
+ type MorphoVaultV2 implements Erc4626Vault & Erc20 {
442
+ chain: Chain!
443
+ address: Address!
444
+ name: String!
445
+ symbol: String!
446
+ decimals: Int!
447
+ icon: URL
448
+ priceUsd: Float
449
+ category: TokenCategory
450
+ riskAssessment: RiskAssessment!
451
+ yield: YieldInfo
452
+ vaultAddress: Address! @deprecated(reason: "Use address instead")
453
+ asset: Token!
454
+ totalAssets: TokenAmount!
455
+ apy(timeframe: ApyTimeframe!): Apy!
456
+ idleAssets: TokenAmount! @deprecated(reason: "Schema is subject to change, not yet stable")
457
+ liquidityAssets: TokenAmount! @deprecated(reason: "Schema is subject to change, not yet stable")
458
+ metadata: MorphoVaultMetadata @deprecated(reason: "Schema is subject to change, not yet stable")
459
+ ownerAddress: Address! @deprecated(reason: "Schema is subject to change, not yet stable")
460
+ curatorAddress: Address! @deprecated(reason: "Schema is subject to change, not yet stable")
461
+ performanceFee: OnchainAmount! @deprecated(reason: "Schema is subject to change, not yet stable")
462
+ performanceFeeRecipientAddress: Address! @deprecated(reason: "Schema is subject to change, not yet stable")
463
+ managementFee: OnchainAmount! @deprecated(reason: "Schema is subject to change, not yet stable")
464
+ managementFeeRecipientAddress: Address! @deprecated(reason: "Schema is subject to change, not yet stable")
465
+ allocatorAddresses: [Address!] @deprecated(reason: "Schema is subject to change, not yet stable")
466
+ sentinelAddresses: [Address!] @deprecated(reason: "Schema is subject to change, not yet stable")
467
+ allocations: [Adapter!]!
468
+ adapters: [Adapter!]! @deprecated(reason: "Use allocations instead")
469
+ caps: [Cap!] @deprecated(reason: "Schema is subject to change, not yet stable")
470
+ liquidityAdapterAddress: Address! @deprecated(reason: "Schema is subject to change, not yet stable")
471
+ receiveSharesGateAddress: Address! @deprecated(reason: "Schema is subject to change, not yet stable")
472
+ sendSharesGateAddress: Address! @deprecated(reason: "Schema is subject to change, not yet stable")
473
+ receiveAssetsGateAddress: Address! @deprecated(reason: "Schema is subject to change, not yet stable")
474
+ sendAssetsGateAddress: Address! @deprecated(reason: "Schema is subject to change, not yet stable")
475
+ historical: MorphoVaultHistorical
476
+ deploymentTimestamp: Int @deprecated(reason: "Schema is subject to change, not yet stable")
477
+ nav: TokenAmount! @deprecated(reason: "Schema is subject to change, not yet stable")
478
+ }
479
+
480
+ interface Adapter {
481
+ adapterAddress: Address! @deprecated(reason: "Schema is subject to change, not yet stable")
482
+ adapterCap: AdapterCap @deprecated(reason: "Schema is subject to change, not yet stable")
483
+ name: String
484
+ riskAssessment: RiskAssessment!
485
+ }
486
+
487
+ type MarketV1Adapter implements Adapter {
488
+ adapterAddress: Address! @deprecated(reason: "Schema is subject to change, not yet stable")
489
+ adapterCap: AdapterCap @deprecated(reason: "Schema is subject to change, not yet stable")
490
+ name: String @deprecated(reason: "Schema is subject to change, not yet stable")
491
+ riskAssessment: RiskAssessment!
492
+ marketCaps: [MarketV1ExposureCap!]! @deprecated(reason: "Schema is subject to change, not yet stable")
493
+ }
494
+
495
+ type VaultV1Adapter implements Adapter {
496
+ adapterAddress: Address! @deprecated(reason: "Schema is subject to change, not yet stable")
497
+ adapterCap: AdapterCap @deprecated(reason: "Schema is subject to change, not yet stable")
498
+ name: String @deprecated(reason: "Schema is subject to change, not yet stable")
499
+ riskAssessment: RiskAssessment!
500
+ vault: MorphoVault @deprecated(reason: "Schema is subject to change, not yet stable")
501
+ }
502
+
503
+ type BoxVaultAdapter implements Adapter {
504
+ adapterAddress: Address! @deprecated(reason: "Schema is subject to change, not yet stable")
505
+ adapterCap: AdapterCap @deprecated(reason: "Schema is subject to change, not yet stable")
506
+ name: String @deprecated(reason: "Schema is subject to change, not yet stable")
507
+ riskAssessment: RiskAssessment!
508
+ vault: BoxVault @deprecated(reason: "Schema is subject to change, not yet stable")
509
+ }
510
+
511
+ type Erc4626VaultAdapter implements Adapter {
512
+ adapterAddress: Address!
513
+ adapterCap: AdapterCap
514
+ name: String
515
+ riskAssessment: RiskAssessment!
516
+ vault: Erc4626Vault
517
+ }
518
+
519
+ type UnknownAdapter implements Adapter {
520
+ adapterAddress: Address! @deprecated(reason: "Schema is subject to change, not yet stable")
521
+ adapterCap: AdapterCap @deprecated(reason: "Schema is subject to change, not yet stable")
522
+ name: String @deprecated(reason: "Schema is subject to change, not yet stable")
523
+ riskAssessment: RiskAssessment!
524
+ }
525
+
526
+ interface Cap {
527
+ capId: Hex! @deprecated(reason: "Schema is subject to change, not yet stable")
528
+ allocation: TokenAmount! @deprecated(reason: "Schema is subject to change, not yet stable")
529
+ absoluteCap: TokenAmount! @deprecated(reason: "Schema is subject to change, not yet stable")
530
+ relativeCap: OnchainAmount! @deprecated(reason: "Schema is subject to change, not yet stable")
531
+ }
532
+
533
+ type AdapterCap implements Cap {
534
+ capId: Hex! @deprecated(reason: "Schema is subject to change, not yet stable")
535
+ allocation: TokenAmount! @deprecated(reason: "Schema is subject to change, not yet stable")
536
+ absoluteCap: TokenAmount! @deprecated(reason: "Schema is subject to change, not yet stable")
537
+ relativeCap: OnchainAmount! @deprecated(reason: "Schema is subject to change, not yet stable")
538
+ }
539
+
540
+ type MarketV1ExposureCap implements Cap {
541
+ capId: Hex! @deprecated(reason: "Schema is subject to change, not yet stable")
542
+ allocation: TokenAmount! @deprecated(reason: "Schema is subject to change, not yet stable")
543
+ absoluteCap: TokenAmount! @deprecated(reason: "Schema is subject to change, not yet stable")
544
+ relativeCap: OnchainAmount! @deprecated(reason: "Schema is subject to change, not yet stable")
545
+ market: MorphoMarket! @deprecated(reason: "Schema is subject to change, not yet stable")
546
+ }
547
+
548
+ type CollateralExposureCap implements Cap {
549
+ capId: Hex! @deprecated(reason: "Schema is subject to change, not yet stable")
550
+ allocation: TokenAmount! @deprecated(reason: "Schema is subject to change, not yet stable")
551
+ absoluteCap: TokenAmount! @deprecated(reason: "Schema is subject to change, not yet stable")
552
+ relativeCap: OnchainAmount! @deprecated(reason: "Schema is subject to change, not yet stable")
553
+ collateralToken: Token! @deprecated(reason: "Schema is subject to change, not yet stable")
554
+ }
555
+
556
+ type UnknownCap implements Cap {
557
+ capId: Hex! @deprecated(reason: "Schema is subject to change, not yet stable")
558
+ allocation: TokenAmount! @deprecated(reason: "Schema is subject to change, not yet stable")
559
+ absoluteCap: TokenAmount! @deprecated(reason: "Schema is subject to change, not yet stable")
560
+ relativeCap: OnchainAmount! @deprecated(reason: "Schema is subject to change, not yet stable")
561
+ }
562
+
563
+ type Curator {
564
+ name: String!
565
+ image: String!
566
+ url: String!
567
+ }
568
+
569
+ type MorphoVaultMetadata {
570
+ description: String
571
+ image: String
572
+ curator: Curator
573
+ forumLink: String @deprecated(reason: "Hourly data is currently not supported, and will return an empty array. Use daily or weekly instead.")
574
+ curators: [Curator!]! @deprecated(reason: "Use curator field instead.")
575
+ }
576
+
577
+ type MorphoVaultHistoricalEntry {
578
+ bucketTimestamp: Int!
579
+ totalSupplied: TokenAmount!
580
+ supplyApy6h: Apy!
581
+ supplyApy1d: Apy!
582
+ supplyApy7d: Apy!
583
+ supplyApy30d: Apy!
584
+ }
585
+
586
+ type MorphoVaultHistorical implements Erc4626VaultHistorical {
587
+ returns: [TimeSeriesPoint!]
588
+ hourly: [MorphoVaultHistoricalEntry!]! @deprecated(reason: "Hourly data is currently not supported, and will return an empty array. Use daily or weekly instead.")
589
+ daily: [MorphoVaultHistoricalEntry!]!
590
+ weekly: [MorphoVaultHistoricalEntry!]!
591
+ }
592
+
593
+ input MorphoMarketFilter {
594
+ chainId_in: [ChainId!]
595
+ marketId_in: [Hex!]
596
+ whitelisted: Boolean
597
+ }
598
+
599
+ type MorphoMarketPage {
600
+ items: [MorphoMarket]!
601
+ pageInfo: PageInfo!
602
+ totalCount: Int!
603
+ }
604
+
605
+ type MorphoMarket {
606
+ chain: Chain!
607
+ marketId: Hex!
608
+ loanAsset: Token!
609
+ collateralAsset: Token
610
+ name: String!
611
+ isIdle: Boolean!
612
+ oracleAddress: Address!
613
+ irm: MorphoIrm!
614
+ lltv: OnchainAmount!
615
+ liquidationPenalty: Float!
616
+ fee: OnchainAmount!
617
+ totalSupplied: TokenAmount!
618
+ totalBorrowed: TokenAmount!
619
+ liquidityInMarket: TokenAmount!
620
+ publicAllocatorSharedLiquidity: TokenAmount!
621
+ utilization: Float!
622
+ collateralPriceInLoanAsset: OnchainAmount
623
+ supplyApy: Apy!
624
+ supplyApy6h: Apy!
625
+ supplyApy1d: Apy!
626
+ supplyApy7d: Apy!
627
+ supplyApy30d: Apy!
628
+ borrowApy: Apy!
629
+ borrowApy6h: Apy!
630
+ borrowApy1d: Apy!
631
+ borrowApy7d: Apy!
632
+ borrowApy30d: Apy!
633
+ vaultAllocations: [MorphoVaultMarketAllocation!]!
634
+ historical: MorphoMarketHistorical
635
+ totalCollateral: TokenAmount
636
+ riskAssessment: RiskAssessment!
637
+ }
638
+
639
+ type MorphoIrm {
640
+ address: Address!
641
+ targetUtilization: Float!
642
+ curve: [MorphoIrmCurvePoint!]
643
+ rateAtTarget: BigInt
644
+ }
645
+
646
+ type MorphoIrmCurvePoint {
647
+ supplyApy: Float!
648
+ borrowApy: Float!
649
+ utilization: Float!
650
+ }
651
+
652
+ type MorphoMarketHistoricalEntry {
653
+ bucketTimestamp: Int!
654
+ totalSupplied: TokenAmount!
655
+ totalBorrowed: TokenAmount!
656
+ totalCollateral: TokenAmount!
657
+ collateralPriceInLoanAsset: OnchainAmount
658
+ supplyApyInstantaneous: Apy!
659
+ supplyApy6h: Apy!
660
+ supplyApy1d: Apy!
661
+ supplyApy7d: Apy!
662
+ supplyApy30d: Apy!
663
+ borrowApyInstantaneous: Apy!
664
+ borrowApy6h: Apy!
665
+ borrowApy1d: Apy!
666
+ borrowApy7d: Apy!
667
+ borrowApy30d: Apy!
668
+ }
669
+
670
+ type MorphoMarketHistorical {
671
+ hourly: [MorphoMarketHistoricalEntry!]! @deprecated(reason: "Hourly data is no longer supported")
672
+ daily: [MorphoMarketHistoricalEntry!]!
673
+ weekly: [MorphoMarketHistoricalEntry!]!
674
+ }
675
+
676
+ input MorphoMarketPositionFilter {
677
+ chainId_in: [ChainId!]
678
+ marketId_in: [Hex!]
679
+ accountAddress_in: [Address!]!
680
+ whitelisted: Boolean
681
+ }
682
+
683
+ type MorphoMarketPositionPage {
684
+ items: [MorphoMarketPosition]!
685
+ pageInfo: PageInfo!
686
+ totalCount: Int!
687
+ }
688
+
689
+ type MorphoMarketPosition {
690
+ market: MorphoMarket!
691
+ accountAddress: Address!
692
+ supplyShares: BigInt!
693
+ borrowShares: BigInt!
694
+ supplyAmount: TokenAmount!
695
+ borrowAmount: TokenAmount!
696
+ collateralAmount: TokenAmount
697
+ healthFactor: OnchainAmount
698
+ ltv: OnchainAmount
699
+ walletLoanAssetHolding: TokenHolding!
700
+ walletCollateralAssetHolding: TokenHolding
701
+ }
702
+
703
+ input MorphoVaultPositionFilter {
704
+ chainId_in: [ChainId!]
705
+ vaultAddress_in: [Address!]
706
+ accountAddress_in: [Address!]!
707
+ whitelisted: Boolean
708
+ }
709
+
710
+ type MorphoVaultPositionPage {
711
+ items: [MorphoVaultPosition]!
712
+ pageInfo: PageInfo!
713
+ totalCount: Int!
714
+ }
715
+
716
+ type MorphoVaultPosition {
717
+ vault: MorphoVault!
718
+ accountAddress: Address!
719
+ supplyShares: BigInt!
720
+ supplyAmount: TokenAmount!
721
+ walletUnderlyingAssetHolding: TokenHolding
722
+ }
723
+
724
+ type MorphoVaultMarketAllocation {
725
+ vault: MorphoVault!
726
+ market: MorphoMarket!
727
+ position: MorphoMarketPosition!
728
+ enabled: Boolean!
729
+ supplyCap: TokenAmount!
730
+ vaultSupplyShare: Float!
731
+ marketSupplyShare: Float!
732
+ }
733
+
734
+ type SteakhouseRiskAssessment {
735
+ score: Float!
736
+ rating: String!
737
+ }
738
+
739
+ type RiskAssessment {
740
+ steakhouse: SteakhouseRiskAssessment
741
+ }
742
+
743
+ type SteakhouseStats {
744
+ tvl: SteakhouseTvl!
745
+ uniqueDepositors: Int
746
+ }
747
+
748
+ type SteakhouseTvlSnapshot {
749
+ timestamp: Int!
750
+ totalUsd: Float!
751
+ byChain: [SteakhouseTvlByChain!]!
752
+ byProtocol: [SteakhouseTvlByProtocol!]!
753
+ byAssetCategory: [SteakhouseTvlByAssetCategory!]!
754
+ }
755
+
756
+ type SteakhouseTvl {
757
+ current: SteakhouseTvlSnapshot!
758
+ historical: [SteakhouseTvlSnapshot!]!
759
+ totalUsd: Float! @deprecated(reason: "Use current.totalUsd")
760
+ computedAt: Int! @deprecated(reason: "Use current.timestamp")
761
+ byChain: [SteakhouseTvlByChain!]! @deprecated(reason: "Use current.byChain")
762
+ byProtocol: [SteakhouseTvlByProtocol!]! @deprecated(reason: "Use current.byProtocol")
763
+ byAssetCategory: [SteakhouseTvlByAssetCategory!]! @deprecated(reason: "Use current.byAssetCategory")
764
+ }
765
+
766
+ type SteakhouseTvlByChain {
767
+ chain: Chain!
768
+ tvlUsd: Float!
769
+ }
770
+
771
+ type SteakhouseTvlByProtocol {
772
+ protocol: Erc4626VaultProtocol!
773
+ tvlUsd: Float!
774
+ }
775
+
776
+ type SteakhouseTvlByAssetCategory {
777
+ category: TokenCategory
778
+ tvlUsd: Float!
779
+ }
780
+
781
+ enum VaultProtocol {
782
+ euler_v2
783
+ euler_earn
784
+ morpho
785
+ enzyme
786
+ mellow
787
+ midas
788
+ turtle_club
789
+ silo
790
+ reserve
791
+ napier
792
+ gearbox
793
+ pendle
794
+ lista
795
+ }
796
+
797
+ enum VaultType {
798
+ lending
799
+ staking
800
+ index
801
+ }
802
+
803
+ input VaultInput {
804
+ chainId: ChainId!
805
+ protocol: VaultProtocol!
806
+ vaultAddress: Address!
807
+ }
808
+
809
+ type Protocol {
810
+ name: String!
811
+ icon: String!
812
+ }
813
+
814
+ type Vault {
815
+ chain: Chain!
816
+ protocol: Protocol!
817
+ vaultAddress: Address!
818
+ type: VaultType!
819
+ name: String!
820
+ description: String
821
+ url: String!
822
+ asset: Token!
823
+ totalSupplied: TokenAmount!
824
+ supplyApy: Apy!
825
+ }