@0xmonaco/types 1.1.6 → 1.1.8

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.
@@ -9,7 +9,7 @@
9
9
  * Fees here are the builder's own add-ons (taker plus maker), never the
10
10
  * protocol taker fee. USD amounts are decimal strings (USDC 1:1).
11
11
  */
12
- import type { AnalyticsWindow, AnalyticsWindowParams } from "./index";
12
+ import type { AnalyticsWindow, AnalyticsWindowParams, VolumeUsdBySource } from "./index";
13
13
  /** A builder's kind. */
14
14
  export type BuilderKind = "application" | "group";
15
15
  /** The display group an application is shown under. */
@@ -78,6 +78,8 @@ export interface BuilderFigures {
78
78
  withdrawalsUsd: string;
79
79
  /** `depositsUsd` less `withdrawalsUsd`; negative when more left than arrived. */
80
80
  netFlowUsd: string;
81
+ /** `volumeUsd` split into its order-book and RFQ parts, counting the trades the builder took; absent when it covers a bucket folded before the split was recorded. */
82
+ volumeBySource?: VolumeUsdBySource;
81
83
  }
82
84
  /** Every displayed builder, by name. */
83
85
  export interface ListBuildersResponse {
@@ -95,6 +97,8 @@ export interface GetBuilderTotalsResponse extends BuilderFigures {
95
97
  activeTakers: number;
96
98
  /** Wallets whose first trade through one of its applications fell in the window, once per (application, wallet). */
97
99
  newTraders: number;
100
+ /** Accounts registered in the window under one of its applications (sign-ups), whether or not they traded. */
101
+ newAccounts: number;
98
102
  }
99
103
  /** A builder's figures for one bucket. */
100
104
  export interface BuilderSeriesPoint extends BuilderFigures {
@@ -102,6 +106,7 @@ export interface BuilderSeriesPoint extends BuilderFigures {
102
106
  bucketStart: number;
103
107
  activeTakers: number;
104
108
  newTraders: number;
109
+ newAccounts: number;
105
110
  }
106
111
  /** A builder's figures per bucket over a window. */
107
112
  export interface GetBuilderSeriesResponse {
@@ -115,10 +120,12 @@ export interface ListBuilderLeaderboardParams extends AnalyticsWindowParams {
115
120
  /** Builders to return, largest volume first (1-100, default 25). */
116
121
  limit?: number;
117
122
  }
118
- /** One builder's row on the leaderboard; a display group ranks as one. A builder that only took deposits ranks with zero volume. */
123
+ /** One builder's row on the leaderboard; a display group ranks as one. A builder that only took deposits or only registered accounts ranks with zero volume. */
119
124
  export interface BuilderLeaderboardRow extends BuilderFigures {
120
125
  builder: Builder;
121
126
  newTraders: number;
127
+ /** Accounts registered in the window under one of its applications (sign-ups). */
128
+ newAccounts: number;
122
129
  /**
123
130
  * Distinct taker wallets that traded through the builder, each once. With
124
131
  * `window: "all"`, every wallet that ever traded through it. `null` for a
@@ -50,6 +50,16 @@ export interface AnalyticsWindow {
50
50
  /** Bucket size the window is counted in. */
51
51
  granularity: AnalyticsGranularity | (string & {});
52
52
  }
53
+ /**
54
+ * A USD volume split by how it executed (RFQ-17). `orderBookVolumeUsd` plus
55
+ * `rfqVolumeUsd` is exactly the `volumeUsd` beside it.
56
+ */
57
+ export interface VolumeUsdBySource {
58
+ /** The part of `volumeUsd` filled on the order book: `volumeUsd` less `rfqVolumeUsd`. */
59
+ orderBookVolumeUsd: string;
60
+ /** The part of `volumeUsd` filled by RFQ block trades. */
61
+ rfqVolumeUsd: string;
62
+ }
53
63
  /** Protocol figures over a window or one bucket. */
54
64
  export interface ProtocolFigures {
55
65
  /** Taker volume in USD routed by the displayed builders; hidden builders' trades are not counted. */
@@ -64,8 +74,15 @@ export interface ProtocolFigures {
64
74
  protocolFeesUsd: string;
65
75
  /** Distinct taker wallets that traded (each once), all builders included. */
66
76
  activeTakers: number;
67
- /** Wallets whose first trade through a builder fell inside, once per (builder, wallet), all builders included. */
77
+ /** Wallets whose first trade on the protocol fell inside, each counted once however many builders it traded through. */
68
78
  newTraders: number;
79
+ /**
80
+ * Accounts registered inside (sign-ups) under any application, whether or not
81
+ * they traded, all builders included; `newTraders` counts first trades instead.
82
+ */
83
+ newAccounts: number;
84
+ /** `volumeUsd` split into its order-book and RFQ parts; absent when it covers a bucket folded before the split was recorded. */
85
+ volumeBySource?: VolumeUsdBySource;
69
86
  }
70
87
  /** USDC custody flow over a window or one bucket, in USD (1:1). */
71
88
  export interface CustodyFlows {
@@ -113,6 +130,8 @@ export interface MarketVolume {
113
130
  protocolFeesUsd: string;
114
131
  /** Trades in the market. */
115
132
  tradesCount: number;
133
+ /** `volumeUsd` split into its order-book and RFQ parts; absent when the window holds a bucket folded before the split was recorded. */
134
+ volumeBySource?: VolumeUsdBySource;
116
135
  }
117
136
  /** Volume per market over a window. */
118
137
  export interface ListMarketVolumesResponse {
@@ -83,8 +83,9 @@ export interface ListWalletLiquidationsResponse {
83
83
  }
84
84
  /**
85
85
  * What the vault holds of one token. Amounts are raw token units. Custody is
86
- * folded into the aux database while `pendingWithdrawalsRaw` is read from core,
87
- * so the two can disagree briefly while the fold lags.
86
+ * `openingRaw` plus `depositedRaw` less `withdrawnRaw`. It is folded into the
87
+ * aux database while `pendingWithdrawalsRaw` is read from core, so the two can
88
+ * disagree briefly while the fold lags.
88
89
  */
89
90
  export interface TokenCustody {
90
91
  /** Asset UUID; null for a token with custody flow and no listed asset. */
@@ -95,12 +96,19 @@ export interface TokenCustody {
95
96
  iconUrl?: string | null;
96
97
  /** Token contract address, lowercase. */
97
98
  contractAddress: string;
99
+ /** Deposits since the explorer's history starts. */
98
100
  depositedRaw: string;
99
- /** All-time initiated withdrawals. */
101
+ /** Withdrawals initiated since the explorer's history starts. */
100
102
  withdrawnRaw: string;
101
103
  depositsCount: number;
102
104
  withdrawalsCount: number;
103
- /** Deposits less initiated withdrawals; null when not positive. */
105
+ /**
106
+ * What the vault held before the explorer's history starts: `"0"` where it
107
+ * starts at the exchange's first event, the measured balance carried in
108
+ * where it starts later.
109
+ */
110
+ openingRaw: string;
111
+ /** `openingRaw` plus deposits less initiated withdrawals; null when not positive. */
104
112
  custodyRaw?: string | null;
105
113
  /** Initiated but not yet executed on-chain; the vault's physical balance is `custodyRaw` plus this. */
106
114
  pendingWithdrawalsRaw: string;
@@ -85,6 +85,13 @@ export declare const GetMyFeeTierResponseSchema: z.ZodObject<{
85
85
  makerFeeBps: z.ZodString;
86
86
  takerFeeBps: z.ZodString;
87
87
  }, z.core.$strip>>;
88
+ rateSource: z.ZodEnum<{
89
+ custom: "custom";
90
+ tier_override: "tier_override";
91
+ volume: "volume";
92
+ }>;
93
+ makerFeeBps: z.ZodString;
94
+ takerFeeBps: z.ZodString;
88
95
  }, z.core.$strip>;
89
96
  /**
90
97
  * Zod schema for the parameters of a public fee schedule lookup
@@ -67,17 +67,19 @@ export const SimulateFeeResponseSchema = z.object({
67
67
  applicationMakerFee: z.string().optional(),
68
68
  /** Maker add-on rate in basis points an order placed now would store. Absent from servers older than this field */
69
69
  applicationMakerFeeBps: z.number().optional(),
70
- /** Monaco protocol maker rebate (negative = rebate) */
70
+ /** Monaco protocol maker fee: negative is a rebate, positive is a fee */
71
71
  monacoMakerRebate: z.string(),
72
72
  /**
73
- * Tier-resolved Monaco maker rebate as a decimal basis-points string (negative is a
74
- * rebate), e.g. "-1" — the exact rate the ledger credits this caller.
73
+ * Monaco maker rate as a decimal basis-points string (negative is a rebate, positive is
74
+ * a fee), e.g. "-1" — the exact rate this caller gets, from their tier or the assigned or
75
+ * custom rate on their wallet.
75
76
  */
76
77
  monacoMakerRebateBpsExact: z.string(),
77
78
  /** Monaco protocol taker fee */
78
79
  monacoTakerFee: z.string(),
79
80
  /**
80
- * Tier-resolved Monaco taker fee as a decimal basis-points string, e.g. "6.5" — the exact
81
+ * Monaco taker fee, from the caller's tier or the assigned or custom rate on their
82
+ * wallet, as a decimal basis-points string, e.g. "6.5" — the exact
81
83
  * rate the ledger charges this caller (equals monacoTakerFee / notional).
82
84
  */
83
85
  monacoTakerFeeBpsExact: z.string(),
@@ -118,7 +120,7 @@ export const FeeTierScheduleRowSchema = z.object({
118
120
  * Zod schema for the "my fee tier" response
119
121
  */
120
122
  export const GetMyFeeTierResponseSchema = z.object({
121
- /** Caller's resolved tier (1–6) from their wallet's recorded weighted 14-day volume */
123
+ /** Caller's tier (1–6) on the requested pair: the tier their rates come from, or the tier their wallet's recorded weighted 14-day volume earns when `rateSource` is `custom` */
122
124
  currentTierLevel: z.number().int(),
123
125
  /** Caller's weighted 14-day volume (perp + 2.5× spot), summed across every application the wallet trades through */
124
126
  weightedVolume14d: z.string(),
@@ -126,12 +128,18 @@ export const GetMyFeeTierResponseSchema = z.object({
126
128
  spotVolume14d: z.string(),
127
129
  /** Caller's rolling 14-day perp volume, summed across every application the wallet trades through */
128
130
  perpVolume14d: z.string(),
129
- /** Additional weighted volume needed to reach the next tier, counted from the volume the current tier resolved from; absent at tier 6 */
131
+ /** Additional weighted volume needed to reach the next tier, counted from the volume the current tier resolved from; absent at tier 6 and unless `rateSource` is `volume` */
130
132
  volumeToNextTier: z.string().nullable().optional(),
131
- /** Next tier level; absent when already at tier 6 */
133
+ /** Next tier level; absent when already at tier 6 and unless `rateSource` is `volume` */
132
134
  nextTierLevel: z.number().int().nullable().optional(),
133
135
  /** Six-row fee schedule for the requested pair, ascending by tier */
134
136
  feeSchedule: z.array(FeeTierScheduleRowSchema),
137
+ /** Why this rate applies: `volume` (the tier your 14-day volume earns), `tier_override` (an assigned tier), or `custom` (custom rates assigned to your wallet). Applies to orders you place now */
138
+ rateSource: z.enum(["volume", "tier_override", "custom"]),
139
+ /** Effective maker rate for the requested pair, in decimal basis points; negative is a rebate, positive is a fee */
140
+ makerFeeBps: z.string(),
141
+ /** Effective taker rate for the requested pair, in decimal basis points */
142
+ takerFeeBps: z.string(),
135
143
  });
136
144
  /**
137
145
  * Zod schema for the parameters of a public fee schedule lookup
@@ -329,6 +329,25 @@ export interface MarketMetadata {
329
329
  totalQuoteVolumeLtd: string;
330
330
  /** Life-to-date cumulative number of trades since inception (0 if no trades yet) */
331
331
  totalTradeCountLtd: number;
332
+ /**
333
+ * The rolling 24h volumes split into their order-book and RFQ parts; absent
334
+ * while any candle in the window has no recorded split.
335
+ */
336
+ volume24hBySource?: Volume24hBySource | null;
337
+ }
338
+ /**
339
+ * A market's rolling 24h volume split by execution source: each total is the
340
+ * order-book part plus the RFQ part (decimal strings).
341
+ */
342
+ export interface Volume24hBySource {
343
+ /** Base-token volume filled on the order book in the last 24 hours */
344
+ orderBookBaseVolume: string;
345
+ /** Base-token volume filled by RFQ block trades in the last 24 hours */
346
+ rfqBaseVolume: string;
347
+ /** Quote-token volume filled on the order book in the last 24 hours; null when the 24h quote volume is unavailable */
348
+ orderBookQuoteVolume?: string | null;
349
+ /** Quote-token volume filled by RFQ block trades in the last 24 hours; null when the 24h quote volume is unavailable */
350
+ rfqQuoteVolume?: string | null;
332
351
  }
333
352
  /**
334
353
  * Exchange-wide life-to-date cumulative statistics across all trading pairs.
@@ -33,6 +33,13 @@ export declare const RfqRequestTermsSchema: z.ZodObject<{
33
33
  leverage: z.ZodOptional<z.ZodNullable<z.ZodString>>;
34
34
  marginMode: z.ZodOptional<z.ZodNullable<z.ZodString>>;
35
35
  }, z.core.$strip>;
36
+ /** The taker's requested size priced against the public order book (RFQ-08). */
37
+ export declare const RfqBookComparisonSchema: z.ZodObject<{
38
+ vwap: z.ZodString;
39
+ grossVwap: z.ZodString;
40
+ asOfMs: z.ZodNumber;
41
+ levels: z.ZodNumber;
42
+ }, z.core.$strip>;
36
43
  /** One side of the taker's view: the allocation that would fill the quantity. */
37
44
  export declare const RfqSideViewSchema: z.ZodObject<{
38
45
  vwap: z.ZodString;
@@ -41,6 +48,12 @@ export declare const RfqSideViewSchema: z.ZodObject<{
41
48
  estimatedMonacoFee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
42
49
  estimatedBuilderFee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
43
50
  estimatedTotalFee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
51
+ book: z.ZodOptional<z.ZodNullable<z.ZodObject<{
52
+ vwap: z.ZodString;
53
+ grossVwap: z.ZodString;
54
+ asOfMs: z.ZodNumber;
55
+ levels: z.ZodNumber;
56
+ }, z.core.$strip>>>;
44
57
  }, z.core.$strip>;
45
58
  /** The taker's current view of the quotes. */
46
59
  export declare const RfqViewSchema: z.ZodObject<{
@@ -52,6 +65,12 @@ export declare const RfqViewSchema: z.ZodObject<{
52
65
  estimatedMonacoFee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
53
66
  estimatedBuilderFee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
54
67
  estimatedTotalFee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
68
+ book: z.ZodOptional<z.ZodNullable<z.ZodObject<{
69
+ vwap: z.ZodString;
70
+ grossVwap: z.ZodString;
71
+ asOfMs: z.ZodNumber;
72
+ levels: z.ZodNumber;
73
+ }, z.core.$strip>>>;
55
74
  }, z.core.$strip>>>;
56
75
  ask: z.ZodOptional<z.ZodNullable<z.ZodObject<{
57
76
  vwap: z.ZodString;
@@ -60,6 +79,12 @@ export declare const RfqViewSchema: z.ZodObject<{
60
79
  estimatedMonacoFee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
61
80
  estimatedBuilderFee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
62
81
  estimatedTotalFee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
82
+ book: z.ZodOptional<z.ZodNullable<z.ZodObject<{
83
+ vwap: z.ZodString;
84
+ grossVwap: z.ZodString;
85
+ asOfMs: z.ZodNumber;
86
+ levels: z.ZodNumber;
87
+ }, z.core.$strip>>>;
63
88
  }, z.core.$strip>>>;
64
89
  asOfMs: z.ZodNumber;
65
90
  monacoFeeCbps: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -87,6 +112,43 @@ export declare const RfqOutcomeSchema: z.ZodObject<{
87
112
  monacoFee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
88
113
  builderFee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
89
114
  }, z.core.$strip>>;
115
+ allInVwap: z.ZodOptional<z.ZodNullable<z.ZodString>>;
116
+ bookAtFill: z.ZodOptional<z.ZodNullable<z.ZodObject<{
117
+ vwap: z.ZodString;
118
+ grossVwap: z.ZodString;
119
+ asOfMs: z.ZodNumber;
120
+ levels: z.ZodNumber;
121
+ }, z.core.$strip>>>;
122
+ bookAtFillFullSize: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
123
+ }, z.core.$strip>;
124
+ /**
125
+ * One fill of your quote, as a maker. The fee parts are what the trade
126
+ * recorded as charged, unset until trade history has the fill.
127
+ */
128
+ export declare const RfqMakerFillSchema: z.ZodObject<{
129
+ executionId: z.ZodString;
130
+ price: z.ZodString;
131
+ quantity: z.ZodString;
132
+ fee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
133
+ monacoFee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
134
+ builderFee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
135
+ }, z.core.$strip>;
136
+ /** What the taker's view showed on the accepted side when it accepted (RFQ-08). */
137
+ export declare const RfqAcceptanceRecordSchema: z.ZodObject<{
138
+ viewVersion: z.ZodNumber;
139
+ acceptedAtMs: z.ZodNumber;
140
+ vwap: z.ZodOptional<z.ZodNullable<z.ZodString>>;
141
+ grossVwap: z.ZodOptional<z.ZodNullable<z.ZodString>>;
142
+ availableQuantity: z.ZodOptional<z.ZodNullable<z.ZodString>>;
143
+ monacoFeeCbps: z.ZodNumber;
144
+ builderFeeCbps: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
145
+ book: z.ZodOptional<z.ZodNullable<z.ZodObject<{
146
+ vwap: z.ZodString;
147
+ grossVwap: z.ZodString;
148
+ asOfMs: z.ZodNumber;
149
+ levels: z.ZodNumber;
150
+ }, z.core.$strip>>>;
151
+ bookFullSize: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
90
152
  }, z.core.$strip>;
91
153
  /** A quoted side the venue refused; nothing is reserved for it. */
92
154
  export declare const RfqRefusedSideSchema: z.ZodObject<{
@@ -163,6 +225,12 @@ export declare const RfqStatusSchema: z.ZodObject<{
163
225
  estimatedMonacoFee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
164
226
  estimatedBuilderFee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
165
227
  estimatedTotalFee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
228
+ book: z.ZodOptional<z.ZodNullable<z.ZodObject<{
229
+ vwap: z.ZodString;
230
+ grossVwap: z.ZodString;
231
+ asOfMs: z.ZodNumber;
232
+ levels: z.ZodNumber;
233
+ }, z.core.$strip>>>;
166
234
  }, z.core.$strip>>>;
167
235
  ask: z.ZodOptional<z.ZodNullable<z.ZodObject<{
168
236
  vwap: z.ZodString;
@@ -171,6 +239,12 @@ export declare const RfqStatusSchema: z.ZodObject<{
171
239
  estimatedMonacoFee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
172
240
  estimatedBuilderFee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
173
241
  estimatedTotalFee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
242
+ book: z.ZodOptional<z.ZodNullable<z.ZodObject<{
243
+ vwap: z.ZodString;
244
+ grossVwap: z.ZodString;
245
+ asOfMs: z.ZodNumber;
246
+ levels: z.ZodNumber;
247
+ }, z.core.$strip>>>;
174
248
  }, z.core.$strip>>>;
175
249
  asOfMs: z.ZodNumber;
176
250
  monacoFeeCbps: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
@@ -227,8 +301,40 @@ export declare const RfqStatusSchema: z.ZodObject<{
227
301
  monacoFee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
228
302
  builderFee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
229
303
  }, z.core.$strip>>;
304
+ allInVwap: z.ZodOptional<z.ZodNullable<z.ZodString>>;
305
+ bookAtFill: z.ZodOptional<z.ZodNullable<z.ZodObject<{
306
+ vwap: z.ZodString;
307
+ grossVwap: z.ZodString;
308
+ asOfMs: z.ZodNumber;
309
+ levels: z.ZodNumber;
310
+ }, z.core.$strip>>>;
311
+ bookAtFillFullSize: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
230
312
  }, z.core.$strip>>>;
231
313
  durableSequence: z.ZodNumber;
314
+ ownFills: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
315
+ executionId: z.ZodString;
316
+ price: z.ZodString;
317
+ quantity: z.ZodString;
318
+ fee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
319
+ monacoFee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
320
+ builderFee: z.ZodOptional<z.ZodNullable<z.ZodString>>;
321
+ }, z.core.$strip>>>>;
322
+ acceptance: z.ZodOptional<z.ZodNullable<z.ZodObject<{
323
+ viewVersion: z.ZodNumber;
324
+ acceptedAtMs: z.ZodNumber;
325
+ vwap: z.ZodOptional<z.ZodNullable<z.ZodString>>;
326
+ grossVwap: z.ZodOptional<z.ZodNullable<z.ZodString>>;
327
+ availableQuantity: z.ZodOptional<z.ZodNullable<z.ZodString>>;
328
+ monacoFeeCbps: z.ZodNumber;
329
+ builderFeeCbps: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
330
+ book: z.ZodOptional<z.ZodNullable<z.ZodObject<{
331
+ vwap: z.ZodString;
332
+ grossVwap: z.ZodString;
333
+ asOfMs: z.ZodNumber;
334
+ levels: z.ZodNumber;
335
+ }, z.core.$strip>>>;
336
+ bookFullSize: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
337
+ }, z.core.$strip>>>;
232
338
  }, z.core.$strip>;
233
339
  /** A market RFQ is offered on. */
234
340
  export declare const RfqMarketCapabilitySchema: z.ZodObject<{
@@ -272,6 +378,9 @@ export type RfqSideView = z.infer<typeof RfqSideViewSchema>;
272
378
  export type RfqView = z.infer<typeof RfqViewSchema>;
273
379
  export type RfqFill = z.infer<typeof RfqFillSchema>;
274
380
  export type RfqOutcome = z.infer<typeof RfqOutcomeSchema>;
381
+ export type RfqMakerFill = z.infer<typeof RfqMakerFillSchema>;
382
+ export type RfqBookComparison = z.infer<typeof RfqBookComparisonSchema>;
383
+ export type RfqAcceptanceRecord = z.infer<typeof RfqAcceptanceRecordSchema>;
275
384
  export type RfqQuoteVersion = z.infer<typeof RfqQuoteVersionSchema>;
276
385
  export type RfqRefusedSide = z.infer<typeof RfqRefusedSideSchema>;
277
386
  export type RfqMakerSelection = z.infer<typeof RfqMakerSelectionSchema>;
@@ -46,6 +46,17 @@ export const RfqRequestTermsSchema = z.object({
46
46
  /** Taker only: the margin mode given on create (perpetuals). */
47
47
  marginMode: z.string().nullish(),
48
48
  });
49
+ /** The taker's requested size priced against the public order book (RFQ-08). */
50
+ export const RfqBookComparisonSchema = z.object({
51
+ /** All-in book VWAP: the cost per unit when buying, the net proceeds per unit when selling. */
52
+ vwap: z.string(),
53
+ /** The book VWAP before fees. */
54
+ grossVwap: z.string(),
55
+ /** When the book snapshot was read, Unix milliseconds. */
56
+ asOfMs: z.number(),
57
+ /** Price levels the size walked. */
58
+ levels: z.number(),
59
+ });
49
60
  /** One side of the taker's view: the allocation that would fill the quantity. */
50
61
  export const RfqSideViewSchema = z.object({
51
62
  /** All-in volume-weighted price, fees included. */
@@ -59,6 +70,11 @@ export const RfqSideViewSchema = z.object({
59
70
  estimatedBuilderFee: z.string().nullish(),
60
71
  /** Estimated total taker fee on availableQuantity, in the quote asset. */
61
72
  estimatedTotalFee: z.string().nullish(),
73
+ /**
74
+ * The requested size on the public order book, for comparison. Display
75
+ * only; absent when a fresh book snapshot cannot fill the whole size.
76
+ */
77
+ book: RfqBookComparisonSchema.nullish(),
62
78
  });
63
79
  /** The taker's current view of the quotes. */
64
80
  export const RfqViewSchema = z.object({
@@ -88,6 +104,59 @@ export const RfqOutcomeSchema = z.object({
88
104
  unfilledQuantity: z.string(),
89
105
  vwap: z.string(),
90
106
  fills: z.array(RfqFillSchema),
107
+ /**
108
+ * Your all-in VWAP: notional plus your whole fee for a buy, minus it for a
109
+ * sell, over the executed quantity. Unset when nothing filled.
110
+ */
111
+ allInVwap: z.string().nullish(),
112
+ /**
113
+ * Post-fill benchmark: the executed quantity priced against the public
114
+ * order book on your side, at the rates frozen at acceptance, read when the
115
+ * outcome was recorded. Display only.
116
+ */
117
+ bookAtFill: RfqBookComparisonSchema.nullish(),
118
+ /** Whether a fresh book snapshot filled the executed quantity then; absent when none was fresh. */
119
+ bookAtFillFullSize: z.boolean().nullish(),
120
+ });
121
+ /**
122
+ * One fill of your quote, as a maker. The fee parts are what the trade
123
+ * recorded as charged, unset until trade history has the fill.
124
+ */
125
+ export const RfqMakerFillSchema = z.object({
126
+ executionId: z.string(),
127
+ price: z.string(),
128
+ quantity: z.string(),
129
+ /** Your whole fee as charged: monacoFee plus builderFee; negative for a net rebate. */
130
+ fee: z.string().nullish(),
131
+ /** Your Monaco maker fee as charged; negative is a rebate. */
132
+ monacoFee: z.string().nullish(),
133
+ /** The builder add-on your frontend charged (0 when none). */
134
+ builderFee: z.string().nullish(),
135
+ });
136
+ /** What the taker's view showed on the accepted side when it accepted (RFQ-08). */
137
+ export const RfqAcceptanceRecordSchema = z.object({
138
+ /** The view version accepted. */
139
+ viewVersion: z.number(),
140
+ /** When the taker accepted, Unix milliseconds. */
141
+ acceptedAtMs: z.number(),
142
+ /** All-in VWAP shown for the accepted side, fees included. */
143
+ vwap: z.string().nullish(),
144
+ /** The VWAP shown before fees. */
145
+ grossVwap: z.string().nullish(),
146
+ /** Quantity the shown allocation filled. */
147
+ availableQuantity: z.string().nullish(),
148
+ /** The Monaco fee rate frozen at acceptance, in centi-bps. */
149
+ monacoFeeCbps: z.number(),
150
+ /** The builder fee rate frozen at acceptance, in centi-bps. */
151
+ builderFeeCbps: z.number().nullish(),
152
+ /**
153
+ * The requested size on the public order book when the taker accepted: the
154
+ * pair's latest snapshot at most 500 ms old, at the rates frozen at
155
+ * acceptance. `asOfMs` identifies the snapshot.
156
+ */
157
+ book: RfqBookComparisonSchema.nullish(),
158
+ /** Whether that snapshot filled the whole size; absent when no snapshot at most 500 ms old was held. */
159
+ bookFullSize: z.boolean().nullish(),
91
160
  });
92
161
  /** A quoted side the venue refused; nothing is reserved for it. */
93
162
  export const RfqRefusedSideSchema = z.object({
@@ -159,6 +228,10 @@ export const RfqStatusSchema = z.object({
159
228
  ownQuoteWithdrawn: z.boolean(),
160
229
  outcome: RfqOutcomeSchema.nullish(),
161
230
  durableSequence: z.number(),
231
+ /** Maker only: your own fills once the RFQ settled, never another maker's. */
232
+ ownFills: z.array(RfqMakerFillSchema).nullish(),
233
+ /** Taker only: what your view showed when you accepted. */
234
+ acceptance: RfqAcceptanceRecordSchema.nullish(),
162
235
  });
163
236
  /** A market RFQ is offered on. */
164
237
  export const RfqMarketCapabilitySchema = z.object({
@@ -204,6 +204,121 @@ export interface ListSweeperDepositsResponse {
204
204
  /** Cursor for the next page; empty when this page is the last */
205
205
  nextPageToken: string;
206
206
  }
207
+ /**
208
+ * Which Hyperliquid (HyperCore) balance a {@link SweeperAPI.depositFromHypercore}
209
+ * withdrawal draws on.
210
+ */
211
+ export type HypercoreBalanceSource = "perp" | "spot";
212
+ /**
213
+ * A Hyperliquid account's abstraction mode, as Hyperliquid's `userAbstraction`
214
+ * query reports it. `unifiedAccount` and `portfolioMargin` keep one balance per
215
+ * asset, reported as spot; the others keep separate perp and spot balances.
216
+ * Widened: Hyperliquid may add modes this SDK version predates.
217
+ */
218
+ export type HypercoreAccountMode = "unifiedAccount" | "portfolioMargin" | "disabled" | "default" | "dexAbstraction" | (string & {});
219
+ /**
220
+ * What a deposit from Hyperliquid can draw on, from
221
+ * {@link SweeperAPI.getHypercoreDepositInfo}. Amounts are raw USDC base units
222
+ * (6 decimals), truncated from Hyperliquid's own decimals.
223
+ */
224
+ export interface HypercoreDepositInfo {
225
+ /** The wallet's address, which is its Hyperliquid account */
226
+ account: string;
227
+ /** The account's abstraction mode */
228
+ accountMode: HypercoreAccountMode;
229
+ /** Withdrawable USDC in the perp balance; `0n` for a unified or portfolio-margin account */
230
+ perpBalance: bigint;
231
+ /** USDC in the spot balance not on hold */
232
+ spotBalance: bigint;
233
+ /**
234
+ * The most one deposit can draw: a withdrawal draws on a single balance, and
235
+ * 0.1 USDC stays back for the fee Hyperliquid charges on top of the amount —
236
+ * in spot when spot can hold it, otherwise in the balance drawn
237
+ */
238
+ available: bigint;
239
+ /** The most Circle deducts to forward a withdrawal to Sei, read from Circle's CoreDepositWallet on HyperEVM */
240
+ maxFee: bigint;
241
+ /** The smallest `amount` {@link SweeperAPI.depositFromHypercore} accepts: `maxFee` plus the Sei hub's USDC minimum */
242
+ minimumAmount: bigint;
243
+ }
244
+ /** Body for {@link SweeperAPI.depositFromHypercore}. */
245
+ export interface DepositFromHypercoreRequest {
246
+ /**
247
+ * USDC to withdraw from Hyperliquid, in raw base units (6 decimals). Circle
248
+ * deducts its forwarding fee on the way, so at least `amount - maxFee`
249
+ * reaches Sei, and that must clear the Sei hub's USDC `minSweepRaw` (see
250
+ * {@link SweeperAPI.getChains}).
251
+ */
252
+ amount: bigint;
253
+ /**
254
+ * Which deposit address receives it, as in
255
+ * {@link RegisterSweeperRequest.depositTarget}. Defaults to `"spot"`.
256
+ */
257
+ depositTarget?: DepositTarget;
258
+ }
259
+ /** Result of {@link SweeperAPI.depositFromHypercore}: Hyperliquid accepted the withdrawal. */
260
+ export interface DepositFromHypercoreResponse {
261
+ /** The deposit address on Sei the USDC is minted to */
262
+ sweeperAddress: string;
263
+ /** USDC withdrawn from Hyperliquid, raw base units */
264
+ amount: bigint;
265
+ /** The Hyperliquid balance it was drawn from */
266
+ source: HypercoreBalanceSource;
267
+ /**
268
+ * The most Circle deducts to forward the withdrawal to Sei, raw base units,
269
+ * read from Circle's CoreDepositWallet on HyperEVM before signing
270
+ */
271
+ maxFee: bigint;
272
+ /** `amount - maxFee`: the least that is minted on Sei and credited */
273
+ minimumCredit: bigint;
274
+ /** The Hyperliquid action's nonce (milliseconds since the epoch) */
275
+ nonce: number;
276
+ }
277
+ /**
278
+ * What a deposit from HyperEVM can draw on, from
279
+ * {@link SweeperAPI.getHyperEvmDepositInfo}. USDC amounts are raw base units
280
+ * (6 decimals).
281
+ */
282
+ export interface HyperEvmDepositInfo {
283
+ /** The wallet's address on HyperEVM */
284
+ account: string;
285
+ /** The wallet's Circle USDC on HyperEVM */
286
+ usdcBalance: bigint;
287
+ /** The wallet's HYPE on HyperEVM, in wei: it pays the approval and burn gas */
288
+ gasBalance: bigint;
289
+ /** Circle's forwarding fee to Sei, quoted from Circle's API: the most Circle keeps */
290
+ maxFee: bigint;
291
+ /** The smallest `amount` {@link SweeperAPI.depositFromHyperEvm} accepts: `maxFee` plus the Sei hub's USDC minimum */
292
+ minimumAmount: bigint;
293
+ }
294
+ /** Body for {@link SweeperAPI.depositFromHyperEvm}. */
295
+ export interface DepositFromHyperEvmRequest {
296
+ /**
297
+ * USDC to burn on HyperEVM, in raw base units (6 decimals). Circle keeps its
298
+ * forwarding fee, so at least `amount - maxFee` reaches Sei.
299
+ */
300
+ amount: bigint;
301
+ /**
302
+ * Which deposit address receives it, as in
303
+ * {@link RegisterSweeperRequest.depositTarget}. Defaults to `"spot"`.
304
+ */
305
+ depositTarget?: DepositTarget;
306
+ }
307
+ /** Result of {@link SweeperAPI.depositFromHyperEvm}: the burn landed on HyperEVM. */
308
+ export interface DepositFromHyperEvmResponse {
309
+ /** The deposit address on Sei the USDC is minted to */
310
+ sweeperAddress: string;
311
+ /** USDC burned on HyperEVM, raw base units */
312
+ amount: bigint;
313
+ /** The most Circle keeps to forward the transfer to Sei, raw base units */
314
+ maxFee: bigint;
315
+ /** `amount - maxFee`: the least that is minted on Sei and credited */
316
+ minimumCredit: bigint;
317
+ /** The HyperEVM approval transaction, when the allowance had to be raised */
318
+ approveTxHash?: string;
319
+ /** The HyperEVM burn transaction */
320
+ burnTxHash: string;
321
+ }
207
322
  /**
208
323
  * Sweeper API interface. Registration and deposit status require
209
324
  * authentication; the chain listing is public.
@@ -266,4 +381,70 @@ export interface SweeperAPI extends BaseAPI {
266
381
  * sending).
267
382
  */
268
383
  listDeposits(params?: ListSweeperDepositsParams): Promise<ListSweeperDepositsResponse>;
384
+ /**
385
+ * Deposits USDC the wallet holds on Hyperliquid (HyperCore): the wallet
386
+ * signs Circle's CCTP withdrawal to the caller's deposit address on Sei, and
387
+ * the SDK posts it to Hyperliquid, which executes it. Circle forwards the
388
+ * mint to Sei and the sweeper credits it like any deposit to the address —
389
+ * it lists in {@link listDeposits} by its Sei mint once minted. No gas and
390
+ * no HyperEVM transaction from the user.
391
+ *
392
+ * The balance is chosen from the account itself: the spot balance for a
393
+ * unified or portfolio-margin account, otherwise whichever of perp (first)
394
+ * or spot covers `amount`.
395
+ *
396
+ * Needs a session (it registers the deposit address first) and a wallet
397
+ * client on Sei, whose account must be the one holding the Hyperliquid
398
+ * balance. Throws before signing on an invalid amount, a wallet on another
399
+ * chain, a failed Hyperliquid balance read, a hub that does not sweep USDC,
400
+ * an amount below {@link HypercoreDepositInfo.minimumAmount}, and an amount
401
+ * above {@link HypercoreDepositInfo.available}.
402
+ *
403
+ * Throws `APIError` when Hyperliquid refuses the action (a decided outcome:
404
+ * nothing moved). A lost or unreadable reply is an UNKNOWN outcome — the
405
+ * error carries `retryable: false`, because calling this again signs a
406
+ * second withdrawal. Check {@link listDeposits} or the Hyperliquid balance
407
+ * first.
408
+ */
409
+ depositFromHypercore(body: DepositFromHypercoreRequest): Promise<DepositFromHypercoreResponse>;
410
+ /**
411
+ * What the wallet can deposit from Hyperliquid: its account mode and USDC
412
+ * balances, the most one deposit can draw, Circle's fee and the smallest
413
+ * accepted amount — everything a deposit form needs before the user types.
414
+ * Reads only public data, so it needs a wallet client on Sei but no
415
+ * session. A failed Hyperliquid read throws `APIError`.
416
+ */
417
+ getHypercoreDepositInfo(): Promise<HypercoreDepositInfo>;
418
+ /**
419
+ * Deposits Circle USDC the wallet holds on HyperEVM: the wallet approves
420
+ * and burns it through Circle's TokenMessengerV2 on HyperEVM, naming the
421
+ * caller's Sei deposit address as the recipient and asking Circle to
422
+ * forward the mint. Circle mints on Sei and the sweeper credits it like any
423
+ * deposit to the address — it lists in {@link listDeposits} by its Sei mint.
424
+ * The wallet pays HYPE for gas; no Monaco contract is involved on HyperEVM.
425
+ *
426
+ * Needs a session (it registers the deposit address) and a wallet client
427
+ * on Sei. A browser or embedded wallet is switched to HyperEVM (added
428
+ * first if it does not know the chain) and back to Sei afterwards. Throws
429
+ * before registering or sending on an invalid amount, a wallet on another
430
+ * chain, a failed read or fee quote, a hub that does not sweep USDC, an
431
+ * amount below {@link HyperEvmDepositInfo.minimumAmount} or above the
432
+ * wallet's HyperEVM USDC, and a wallet with no HYPE.
433
+ *
434
+ * A burn that reverts throws `ContractError` (nothing burned). A burn
435
+ * broadcast but whose receipt cannot be read is an UNKNOWN outcome: the
436
+ * `APIError` carries `retryable: false` and the burn's hash, because
437
+ * calling this again burns a second time. Check {@link listDeposits} or the
438
+ * HyperEVM transaction first.
439
+ */
440
+ depositFromHyperEvm(body: DepositFromHyperEvmRequest): Promise<DepositFromHyperEvmResponse>;
441
+ /**
442
+ * What the wallet can deposit from HyperEVM: its Circle USDC and HYPE on
443
+ * HyperEVM, Circle's forwarding fee and the smallest accepted amount.
444
+ * Reads only public data, so it needs a wallet client on Sei but no
445
+ * session.
446
+ */
447
+ getHyperEvmDepositInfo(): Promise<HyperEvmDepositInfo>;
448
+ /** Set the wallet client that signs {@link depositFromHypercore} and {@link depositFromHyperEvm}. */
449
+ setWalletClient(walletClient: unknown): void;
269
450
  }
@@ -79,6 +79,11 @@ export interface MarketStatsData {
79
79
  dailyPriceChange?: string;
80
80
  /** 24h percentage price change, two decimals (decimal string) */
81
81
  dailyPriceChangePercent?: string;
82
+ /**
83
+ * The 24h volumes split into their order-book and RFQ parts. Omitted while
84
+ * any candle in the window has no recorded split.
85
+ */
86
+ dailyVolumeBySource?: DailyVolumeBySource;
82
87
  /** Current (last settled) funding rate (decimal string). Perp-only; omitted for spot. */
83
88
  currentFundingRate?: string;
84
89
  /** Estimated next-window funding rate (decimal string). Perp-only; omitted for spot. */
@@ -185,3 +190,17 @@ export interface MarketStatsAllEvent {
185
190
  /** One summary row per market */
186
191
  markets: MarketStatsSummary[];
187
192
  }
193
+ /**
194
+ * A market's 24h volume split by execution source: each total is the
195
+ * order-book part plus the RFQ part (decimal strings, normalized token units).
196
+ */
197
+ export interface DailyVolumeBySource {
198
+ /** 24h base-token volume filled on the order book */
199
+ orderBookBaseTokenVolume: string;
200
+ /** 24h base-token volume filled by RFQ block trades */
201
+ rfqBaseTokenVolume: string;
202
+ /** 24h quote-token volume filled on the order book; omitted when the 24h quote volume is unavailable */
203
+ orderBookQuoteTokenVolume?: string;
204
+ /** 24h quote-token volume filled by RFQ block trades; omitted when the 24h quote volume is unavailable */
205
+ rfqQuoteTokenVolume?: string;
206
+ }
@@ -101,8 +101,9 @@ export interface PositionEventData {
101
101
  /**
102
102
  * Initial margin this position requires at `markPrice` (decimal string),
103
103
  * honoring both its effective leverage and the market initial-margin floor —
104
- * the same `initialMarginRequired` REST returns (0XM-2668). `"0"` when the
105
- * position has no open exposure.
104
+ * the same `initialMarginRequired` REST returns (0XM-2668). Each unit keeps
105
+ * the leverage of the order that opened it. `"0"` when the position has no
106
+ * open exposure.
106
107
  *
107
108
  * UNVERSIONED, for the same reason as `maintenanceMarginRequired`.
108
109
  */
@@ -53,6 +53,22 @@ export interface RfqSideViewEventData {
53
53
  estimatedBuilderFee?: string;
54
54
  /** Estimated total taker fee on `availableQuantity`, in the quote asset. */
55
55
  estimatedTotalFee?: string;
56
+ /**
57
+ * The requested size on the public order book, for comparison. Display
58
+ * only; absent when a fresh book snapshot cannot fill the whole size.
59
+ */
60
+ book?: RfqBookComparisonEventData;
61
+ }
62
+ /** The taker's requested size priced against the public order book, with the view's fee rates. */
63
+ export interface RfqBookComparisonEventData {
64
+ /** All-in book VWAP: the cost per unit when buying, the net proceeds per unit when selling. */
65
+ vwap: string;
66
+ /** The book VWAP before fees. */
67
+ grossVwap: string;
68
+ /** When the book snapshot was read, Unix milliseconds. */
69
+ asOfMs: number;
70
+ /** Price levels the size walked. */
71
+ levels: number;
56
72
  }
57
73
  /** The taker's view of the quotes. No maker identity or individual quote. */
58
74
  export interface RfqViewEventData {
@@ -132,6 +148,11 @@ export interface RfqOutcomeEventData {
132
148
  /** Gross VWAP of the fills; absent when nothing filled. */
133
149
  vwap?: string;
134
150
  fills: RfqFillEventData[];
151
+ /**
152
+ * Your all-in VWAP: notional plus your whole fee for a buy, minus it for a
153
+ * sell, over the executed quantity. Absent when nothing filled.
154
+ */
155
+ allInVwap?: string;
135
156
  }
136
157
  /** To the taker and every maker that quoted: the RFQ ended. */
137
158
  export interface RfqOutcomeEvent {
@@ -1953,9 +1953,11 @@ export interface paths {
1953
1953
  };
1954
1954
  /**
1955
1955
  * Get my fee tier and pair schedule
1956
- * @description Return the caller's current fee tier, rolling 14-day volumes, and a pair's schedule.
1956
+ * @description Return the caller's current fee tier, rolling 14-day volumes, the rates that
1957
+ * apply to them on a pair and why, and the pair's schedule.
1957
1958
  *
1958
- * Volumes and the tier are wallet-wide: the caller's wallet total across every application.
1959
+ * Volumes and the volume-earned tier are wallet-wide: the caller's wallet total
1960
+ * across every application.
1959
1961
  */
1960
1962
  get: operations["get_my_fee_tier"];
1961
1963
  put?: never;
@@ -5268,6 +5270,13 @@ export interface components {
5268
5270
  * @example 11000
5269
5271
  */
5270
5272
  netFlowUsd?: string | null;
5273
+ volumeBySource?: components["schemas"]["VolumeUsdBySource"];
5274
+ /**
5275
+ * Format: int64
5276
+ * @description Accounts registered in the window under one of the builder's applications, whether or not they traded, summed over a group's applications (newTraders counts first trades instead)
5277
+ * @example 12
5278
+ */
5279
+ newAccounts?: number | null;
5271
5280
  };
5272
5281
  BuilderSeriesPoint: {
5273
5282
  /**
@@ -5339,6 +5348,13 @@ export interface components {
5339
5348
  * @example 11000
5340
5349
  */
5341
5350
  netFlowUsd?: string | null;
5351
+ volumeBySource?: components["schemas"]["VolumeUsdBySource"];
5352
+ /**
5353
+ * Format: int64
5354
+ * @description Accounts registered in the bucket under one of the builder's applications, whether or not they traded, summed over a group's applications (newTraders counts first trades instead)
5355
+ * @example 2
5356
+ */
5357
+ newAccounts?: number | null;
5342
5358
  };
5343
5359
  BuildercodePayout: {
5344
5360
  /**
@@ -6877,6 +6893,13 @@ export interface components {
6877
6893
  * @example 11000
6878
6894
  */
6879
6895
  netFlowUsd?: string | null;
6896
+ volumeBySource?: components["schemas"]["VolumeUsdBySource"];
6897
+ /**
6898
+ * Format: int64
6899
+ * @description Accounts registered in the window under one of the builder's applications, whether or not they traded, summed over a group's applications (newTraders counts first trades instead)
6900
+ * @example 12
6901
+ */
6902
+ newAccounts?: number | null;
6880
6903
  };
6881
6904
  GetBuildercodePayoutSummaryResponse: {
6882
6905
  /**
@@ -7334,6 +7357,7 @@ export interface components {
7334
7357
  * @example 117845632.18
7335
7358
  */
7336
7359
  quoteVolume24h?: string | null;
7360
+ volume24hBySource?: components["schemas"]["Volume24hBySource"];
7337
7361
  };
7338
7362
  /** @description Exchange-wide life-to-date cumulative market statistics across all trading pairs. */
7339
7363
  GetMarketStatsResponse: {
@@ -7386,7 +7410,7 @@ export interface components {
7386
7410
  GetMyFeeTierResponse: {
7387
7411
  /**
7388
7412
  * Format: int32
7389
- * @description Caller's resolved tier (1–6) from their wallet's recorded weighted 14-day volume
7413
+ * @description Caller's tier (1–6) on the requested pair: the tier their rates come from, or the tier their wallet's recorded weighted 14-day volume earns when rateSource is custom
7390
7414
  * @example 2
7391
7415
  */
7392
7416
  currentTierLevel?: number | null;
@@ -7406,18 +7430,33 @@ export interface components {
7406
7430
  */
7407
7431
  perpVolume14d?: string | null;
7408
7432
  /**
7409
- * @description Additional weighted volume needed to reach the next tier, counted from the volume the current tier resolved from; omitted at tier 6
7433
+ * @description Additional weighted volume needed to reach the next tier, counted from the volume the current tier resolved from; omitted at tier 6 and unless rateSource is volume
7410
7434
  * @example 17500000
7411
7435
  */
7412
7436
  volumeToNextTier?: string | null;
7413
7437
  /**
7414
7438
  * Format: int32
7415
- * @description Next tier level when not already at 6
7439
+ * @description Next tier level when not already at 6; omitted unless rateSource is volume
7416
7440
  * @example 3
7417
7441
  */
7418
7442
  nextTierLevel?: number | null;
7419
7443
  /** @description Six-row fee schedule for the requested pair, ascending by tier */
7420
7444
  feeSchedule?: components["schemas"]["FeeTierScheduleRow"][] | null;
7445
+ /**
7446
+ * @description Why this rate applies: volume (the tier your 14-day volume earns), tier_override (an assigned tier), or custom (custom rates assigned to your wallet). Applies to orders you place now.
7447
+ * @example volume
7448
+ */
7449
+ rateSource?: string | null;
7450
+ /**
7451
+ * @description Effective maker rate for the requested pair, in decimal basis points; negative is a rebate, positive is a fee
7452
+ * @example -1.15
7453
+ */
7454
+ makerFeeBps?: string | null;
7455
+ /**
7456
+ * @description Effective taker rate for the requested pair, in decimal basis points
7457
+ * @example 6
7458
+ */
7459
+ takerFeeBps?: string | null;
7421
7460
  };
7422
7461
  GetMyReferralDownlineResponse: {
7423
7462
  /** @description One page of rows, one per (source account, level, token) the caller earns from, across every reward level, ordered by each source account's own total, largest first. A wallet that traded through several applications has one account per application: its rows within a page are merged into one row at the position of its first (largest) part, so a merged row can sit below a smaller one, and the wallet can appear again on a later page. Paged by `pageSize` / `pageToken`; follow `nextPageToken` for the rest. Comes from the caller's maintained reward totals — no tree walk. */
@@ -8082,8 +8121,9 @@ export interface components {
8082
8121
  maintenanceMarginRequired?: string | null;
8083
8122
  /**
8084
8123
  * @description Initial margin required by this position at mark_price, honoring both its
8085
- * effective leverage and the market initial-margin floor. Zero when the
8086
- * position has no open exposure.
8124
+ * effective leverage and the market initial-margin floor. Each unit keeps
8125
+ * the leverage of the order that opened it. Zero when the position has no
8126
+ * open exposure.
8087
8127
  */
8088
8128
  initialMarginRequired?: string | null;
8089
8129
  /**
@@ -8238,8 +8278,9 @@ export interface components {
8238
8278
  maintenanceMarginRequired?: string | null;
8239
8279
  /**
8240
8280
  * @description Initial margin required by this position at mark_price, honoring both its
8241
- * effective leverage and the market initial-margin floor. Zero when the
8242
- * position has no open exposure.
8281
+ * effective leverage and the market initial-margin floor. Each unit keeps
8282
+ * the leverage of the order that opened it. Zero when the position has no
8283
+ * open exposure.
8243
8284
  */
8244
8285
  initialMarginRequired?: string | null;
8245
8286
  /**
@@ -8361,12 +8402,12 @@ export interface components {
8361
8402
  activeTakers?: number | null;
8362
8403
  /**
8363
8404
  * Format: int64
8364
- * @description Wallets whose first trade through a builder fell in the window, counted once per (builder, wallet), all builders included
8405
+ * @description Wallets whose first trade on the protocol fell in the window, each counted once however many builders it traded through
8365
8406
  * @example 27
8366
8407
  */
8367
8408
  newTraders?: number | null;
8368
8409
  /**
8369
- * @description Total value locked in USD at the end of the window (the end of the bucket holding endTime): USDC custody, deposits less initiated withdrawals, valued 1:1. Null when no custody had been folded by then.
8410
+ * @description Total value locked in USD at the end of the window (the end of the bucket holding endTime): USDC custody (the opening custody plus deposits less initiated withdrawals), valued 1:1. Null when no custody had been folded by then.
8370
8411
  * @example 536172600
8371
8412
  */
8372
8413
  tvlUsd?: string | null;
@@ -8396,6 +8437,13 @@ export interface components {
8396
8437
  * @example 418
8397
8438
  */
8398
8439
  activeAccounts?: number | null;
8440
+ volumeBySource?: components["schemas"]["VolumeUsdBySource"];
8441
+ /**
8442
+ * Format: int64
8443
+ * @description Accounts registered in the window: every account with an application, whether or not it traded, all builders included (newTraders counts first trades instead). Every sign-up counts, in buckets without trades too; window=all starts where the analytics history does.
8444
+ * @example 57
8445
+ */
8446
+ newAccounts?: number | null;
8399
8447
  };
8400
8448
  GetPulseResponse: {
8401
8449
  /**
@@ -9346,7 +9394,8 @@ export interface components {
9346
9394
  /**
9347
9395
  * @description Displayed builders with figures in the window, largest volume first
9348
9396
  * (ties by builder id), up to limit. A builder that only earned maker
9349
- * add-ons, or only took deposits, ranks with zero volume.
9397
+ * add-ons, only took deposits, or only registered accounts, ranks with zero
9398
+ * volume.
9350
9399
  */
9351
9400
  rows?: components["schemas"]["BuilderLeaderboardRow"][] | null;
9352
9401
  };
@@ -10054,6 +10103,7 @@ export interface components {
10054
10103
  * @example 2100
10055
10104
  */
10056
10105
  tradesCount?: number | null;
10106
+ volumeBySource?: components["schemas"]["VolumeUsdBySource"];
10057
10107
  };
10058
10108
  MatchResult: {
10059
10109
  /**
@@ -10637,8 +10687,9 @@ export interface components {
10637
10687
  maintenanceMarginRequired?: string | null;
10638
10688
  /**
10639
10689
  * @description Initial margin required by this position at mark_price, honoring both its
10640
- * effective leverage and the market initial-margin floor. Zero when the
10641
- * position has no open exposure.
10690
+ * effective leverage and the market initial-margin floor. Each unit keeps
10691
+ * the leverage of the order that opened it. Zero when the position has no
10692
+ * open exposure.
10642
10693
  */
10643
10694
  initialMarginRequired?: string | null;
10644
10695
  /**
@@ -11019,12 +11070,12 @@ export interface components {
11019
11070
  activeTakers?: number | null;
11020
11071
  /**
11021
11072
  * Format: int64
11022
- * @description Wallets whose first trade through a builder fell in the bucket, counted once per (builder, wallet), all builders included
11073
+ * @description Wallets whose first trade on the protocol fell in the bucket, each counted once however many builders it traded through
11023
11074
  * @example 3
11024
11075
  */
11025
11076
  newTraders?: number | null;
11026
11077
  /**
11027
- * @description Total value locked in USD at the end of the bucket: USDC custody, deposits less initiated withdrawals, valued 1:1. Carried across buckets without custody movement; null before the first folded custody hour.
11078
+ * @description Total value locked in USD at the end of the bucket: USDC custody (the opening custody plus deposits less initiated withdrawals), valued 1:1. Carried across buckets without custody movement; null before the first folded custody hour.
11028
11079
  * @example 536172600
11029
11080
  */
11030
11081
  tvlUsd?: string | null;
@@ -11043,6 +11094,13 @@ export interface components {
11043
11094
  * @example 49000
11044
11095
  */
11045
11096
  netFlowUsd?: string | null;
11097
+ volumeBySource?: components["schemas"]["VolumeUsdBySource"];
11098
+ /**
11099
+ * Format: int64
11100
+ * @description Accounts registered in the bucket: every account with an application, whether or not it traded, all builders included (newTraders counts first trades instead)
11101
+ * @example 4
11102
+ */
11103
+ newAccounts?: number | null;
11046
11104
  };
11047
11105
  PublicHealthCheckResponse: {
11048
11106
  /**
@@ -11524,6 +11582,55 @@ export interface components {
11524
11582
  */
11525
11583
  available?: string | null;
11526
11584
  };
11585
+ /** @description What your view showed on the accepted side when you accepted. */
11586
+ RfqAcceptanceRecord: {
11587
+ /**
11588
+ * Format: int64
11589
+ * @description The view version you accepted
11590
+ */
11591
+ viewVersion?: number | null;
11592
+ /**
11593
+ * Format: int64
11594
+ * @description When you accepted, Unix milliseconds
11595
+ */
11596
+ acceptedAtMs?: number | null;
11597
+ /** @description All-in VWAP shown for the accepted side, fees included */
11598
+ vwap?: string | null;
11599
+ /** @description VWAP shown before fees */
11600
+ grossVwap?: string | null;
11601
+ /** @description Quantity the shown allocation filled */
11602
+ availableQuantity?: string | null;
11603
+ /**
11604
+ * Format: int32
11605
+ * @description Your Monaco fee rate frozen at acceptance, in centi-bps
11606
+ */
11607
+ monacoFeeCbps?: number | null;
11608
+ /**
11609
+ * Format: int32
11610
+ * @description Your builder fee rate frozen at acceptance, in centi-bps
11611
+ */
11612
+ builderFeeCbps?: number | null;
11613
+ book?: components["schemas"]["RfqBookComparison"];
11614
+ /** @description Whether that snapshot filled the whole size; absent when no snapshot at most 500 ms old was held at acceptance */
11615
+ bookFullSize?: boolean | null;
11616
+ };
11617
+ /** @description The taker's requested size priced against the public order book. */
11618
+ RfqBookComparison: {
11619
+ /** @description All-in book VWAP with the same fee rates as the view: cost per unit when buying, net proceeds per unit when selling */
11620
+ vwap?: string | null;
11621
+ /** @description Book VWAP before fees */
11622
+ grossVwap?: string | null;
11623
+ /**
11624
+ * Format: int64
11625
+ * @description When the book snapshot was read, Unix milliseconds
11626
+ */
11627
+ asOfMs?: number | null;
11628
+ /**
11629
+ * Format: uint32
11630
+ * @description Price levels the size walked
11631
+ */
11632
+ levels?: number | null;
11633
+ };
11527
11634
  /** @description One fill of an executed RFQ. */
11528
11635
  RfqFill: {
11529
11636
  executionId?: string | null;
@@ -11536,6 +11643,22 @@ export interface components {
11536
11643
  /** @description The builder part of fee */
11537
11644
  builderFee?: string | null;
11538
11645
  };
11646
+ /** @description One fill of the calling maker's quote. */
11647
+ RfqMakerFill: {
11648
+ /**
11649
+ * Format: uuid
11650
+ * @description The trade id
11651
+ */
11652
+ executionId?: string | null;
11653
+ price?: string | null;
11654
+ quantity?: string | null;
11655
+ /** @description Your whole fee on this fill as charged: monacoFee plus builderFee; negative for a net rebate. Unset until trade history has the fill */
11656
+ fee?: string | null;
11657
+ /** @description Your Monaco maker fee as charged; negative is a rebate */
11658
+ monacoFee?: string | null;
11659
+ /** @description The builder add-on your frontend charged, as charged (0 when none) */
11660
+ builderFee?: string | null;
11661
+ };
11539
11662
  /** @description A selected maker's own part of an acceptance, for answering last look. */
11540
11663
  RfqMakerSelection: {
11541
11664
  /** Format: uuid */
@@ -11578,6 +11701,11 @@ export interface components {
11578
11701
  unfilledQuantity?: string | null;
11579
11702
  vwap?: string | null;
11580
11703
  fills?: components["schemas"]["RfqFill"][] | null;
11704
+ /** @description Your all-in VWAP: notional plus your whole fee for a buy, minus it for a sell, over the executed quantity. Empty when nothing filled */
11705
+ allInVwap?: string | null;
11706
+ bookAtFill?: components["schemas"]["RfqBookComparison"];
11707
+ /** @description Whether a fresh book snapshot filled the executed quantity then; absent when none was fresh */
11708
+ bookAtFillFullSize?: boolean | null;
11581
11709
  };
11582
11710
  /** @description A quote's price and capacity. */
11583
11711
  RfqQuoteTerms: {
@@ -11673,6 +11801,7 @@ export interface components {
11673
11801
  estimatedBuilderFee?: string | null;
11674
11802
  /** @description Estimated total taker fee on available_quantity, in the quote asset */
11675
11803
  estimatedTotalFee?: string | null;
11804
+ book?: components["schemas"]["RfqBookComparison"];
11676
11805
  };
11677
11806
  /** @description Authoritative RFQ status. */
11678
11807
  RfqStatus: {
@@ -11697,6 +11826,9 @@ export interface components {
11697
11826
  outcome?: components["schemas"]["RfqOutcome"];
11698
11827
  /** Format: int64 */
11699
11828
  durableSequence?: number | null;
11829
+ /** @description Maker only: your own fills once the RFQ settled, never another maker's */
11830
+ ownFills?: components["schemas"]["RfqMakerFill"][] | null;
11831
+ acceptance?: components["schemas"]["RfqAcceptanceRecord"];
11700
11832
  };
11701
11833
  /** @description The taker's current view of the quotes. */
11702
11834
  RfqView: {
@@ -12011,7 +12143,7 @@ export interface components {
12011
12143
  */
12012
12144
  monacoTakerFee?: string | null;
12013
12145
  /**
12014
- * @description Monaco maker rebate in quote token (negative)
12146
+ * @description Monaco maker fee in quote token: negative is a rebate, positive is a fee
12015
12147
  * @example -5.00
12016
12148
  */
12017
12149
  monacoMakerRebate?: string | null;
@@ -12068,12 +12200,12 @@ export interface components {
12068
12200
  */
12069
12201
  slippageToleranceBps?: number | null;
12070
12202
  /**
12071
- * @description Tier-resolved Monaco taker fee rate as a decimal basis-points string — the exact rate the ledger charges this caller (equals monaco_taker_fee / notional). Fractional and per-tier, e.g. "6.5".
12203
+ * @description Monaco taker fee rate as a decimal basis-points string — the exact rate the ledger charges this caller, from their tier or the assigned or custom rate on their wallet (equals monaco_taker_fee / notional). Fractional, e.g. "6.5".
12072
12204
  * @example 6.5
12073
12205
  */
12074
12206
  monacoTakerFeeBpsExact?: string | null;
12075
12207
  /**
12076
- * @description Tier-resolved Monaco maker rebate as a decimal basis-points string (negative is a rebate) — the exact rate the ledger credits this caller. Fractional and per-tier, e.g. "-1".
12208
+ * @description Monaco maker rate as a decimal basis-points string (negative is a rebate, positive is a fee) — the exact rate this caller gets, from their tier or the assigned or custom rate on their wallet. Fractional, e.g. "-1".
12077
12209
  * @example -1
12078
12210
  */
12079
12211
  monacoMakerRebateBpsExact?: string | null;
@@ -12511,7 +12643,7 @@ export interface components {
12511
12643
  /** @description When the sweeper last observed progress on the deposit */
12512
12644
  updatedAt?: string | null;
12513
12645
  };
12514
- /** @description What the vault holds of one token. Amounts are raw token units. Withdrawals count when initiated; the vault's physical balance is custodyRaw plus pendingWithdrawalsRaw. Custody is folded from the trade and transfer stream into the aux database while pendingWithdrawalsRaw is read from core, so the two can disagree briefly while the fold lags. */
12646
+ /** @description What the vault holds of one token. Amounts are raw token units. Custody is openingRaw plus depositedRaw less withdrawnRaw. Withdrawals count when initiated; the vault's physical balance is custodyRaw plus pendingWithdrawalsRaw. Custody is folded from the trade and transfer stream into the aux database while pendingWithdrawalsRaw is read from core, so the two can disagree briefly while the fold lags. */
12515
12647
  TokenCustody: {
12516
12648
  /**
12517
12649
  * Format: uuid
@@ -12542,12 +12674,12 @@ export interface components {
12542
12674
  */
12543
12675
  contractAddress?: string | null;
12544
12676
  /**
12545
- * @description All-time deposits in raw token units
12677
+ * @description Deposits since the explorer's history starts, in raw token units
12546
12678
  * @example 536172601000000
12547
12679
  */
12548
12680
  depositedRaw?: string | null;
12549
12681
  /**
12550
- * @description All-time initiated withdrawals in raw token units
12682
+ * @description Withdrawals initiated since the explorer's history starts, in raw token units
12551
12683
  * @example 1000000
12552
12684
  */
12553
12685
  withdrawnRaw?: string | null;
@@ -12564,7 +12696,7 @@ export interface components {
12564
12696
  */
12565
12697
  withdrawalsCount?: number | null;
12566
12698
  /**
12567
- * @description Deposits less initiated withdrawals in raw token units; null when not positive (never zero: a token held in no amount and one not indexed are different facts)
12699
+ * @description openingRaw plus deposits less initiated withdrawals, in raw token units; null when not positive (never zero: a token held in no amount and one not indexed are different facts)
12568
12700
  * @example 536172600000000
12569
12701
  */
12570
12702
  custodyRaw?: string | null;
@@ -12588,6 +12720,11 @@ export interface components {
12588
12720
  * @example true
12589
12721
  */
12590
12722
  countsTowardTvl?: boolean | null;
12723
+ /**
12724
+ * @description What the vault held before the explorer's history starts, in raw token units: 0 where the history starts at the exchange's first event, the measured balance carried in where it starts later
12725
+ * @example 924746312510000
12726
+ */
12727
+ openingRaw?: string | null;
12591
12728
  };
12592
12729
  TpSlLeg: {
12593
12730
  triggerPrice?: string | null;
@@ -13896,6 +14033,48 @@ export interface components {
13896
14033
  */
13897
14034
  referralNotAppliedReason?: "REFERRAL_NOT_APPLIED_REASON_UNSPECIFIED" | "REFERRAL_NOT_APPLIED_REASON_ALREADY_REFERRED" | "REFERRAL_NOT_APPLIED_REASON_UNKNOWN_CODE" | "REFERRAL_NOT_APPLIED_REASON_SELF_REFERRAL" | null;
13898
14035
  };
14036
+ /**
14037
+ * @description A market's rolling 24h volume split by execution source (RFQ-17). Each
14038
+ * total is the order-book part plus the RFQ part.
14039
+ */
14040
+ Volume24hBySource: {
14041
+ /**
14042
+ * @description Base-token volume filled on the order book in the last 24 hours
14043
+ * @example 1200.50000000
14044
+ */
14045
+ orderBookBaseVolume?: string | null;
14046
+ /**
14047
+ * @description Base-token volume filled by RFQ block trades in the last 24 hours
14048
+ * @example 34.00000000
14049
+ */
14050
+ rfqBaseVolume?: string | null;
14051
+ /**
14052
+ * @description Quote-token volume filled on the order book in the last 24 hours; null when the 24h quote volume is unavailable
14053
+ * @example 91000000.00
14054
+ */
14055
+ orderBookQuoteVolume?: string | null;
14056
+ /**
14057
+ * @description Quote-token volume filled by RFQ block trades in the last 24 hours; null when the 24h quote volume is unavailable
14058
+ * @example 2580000.00
14059
+ */
14060
+ rfqQuoteVolume?: string | null;
14061
+ };
14062
+ /**
14063
+ * @description A USD volume split by how it executed (RFQ-17): the order-book part and the
14064
+ * RFQ part add back exactly to the volumeUsd beside it.
14065
+ */
14066
+ VolumeUsdBySource: {
14067
+ /**
14068
+ * @description The part of volumeUsd filled on the order book: volumeUsd less rfqVolumeUsd
14069
+ * @example 1180000.5
14070
+ */
14071
+ orderBookVolumeUsd?: string | null;
14072
+ /**
14073
+ * @description The part of volumeUsd filled by RFQ block trades
14074
+ * @example 70000
14075
+ */
14076
+ rfqVolumeUsd?: string | null;
14077
+ };
13899
14078
  /** @description A wallet's figures through one displayed builder. A display group's applications fold into one row under the group. */
13900
14079
  WalletBuilderVolume: {
13901
14080
  /** @description The builder the figures are reported under; applications is empty. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xmonaco/types",
3
- "version": "1.1.6",
3
+ "version": "1.1.8",
4
4
  "type": "module",
5
5
  "homepage": "https://docs.0xmonaco.com/sdk/typescript",
6
6
  "main": "./dist/index.js",
@@ -16,7 +16,7 @@
16
16
  "lint": "biome lint ."
17
17
  },
18
18
  "dependencies": {
19
- "@0xmonaco/contracts": "1.1.6",
19
+ "@0xmonaco/contracts": "1.1.8",
20
20
  "zod": "^4.6.7"
21
21
  },
22
22
  "peerDependencies": {