@0xmonaco/types 1.1.5-prerelease.de852e2 → 1.1.6

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.
package/README.md CHANGED
@@ -237,8 +237,6 @@ interface TradingPair {
237
237
  marketType: TradingMode;
238
238
  category: string;
239
239
  isActive: boolean;
240
- makerFeeBps: number;
241
- takerFeeBps: number;
242
240
  minOrderSize: string;
243
241
  maxOrderSize: string;
244
242
  quantityStepSize: string;
@@ -34,6 +34,8 @@ export interface BuilderApplication {
34
34
  additionalTakerFeeBps: number;
35
35
  /** Maker add-on the application charges, in basis points. */
36
36
  additionalMakerFeeBps: number;
37
+ /** Whether this is the exchange's default application: the one a sign-in that names no client id is placed under. */
38
+ isDefault: boolean;
37
39
  }
38
40
  /** A builder's identity. */
39
41
  export interface Builder {
@@ -70,6 +72,12 @@ export interface BuilderFigures {
70
72
  takerFeesUsd: string;
71
73
  /** Maker add-ons on the trades it made, whoever took them. */
72
74
  makerFeesUsd: string;
75
+ /** USDC deposited through the builder's applications, in USD (1:1); other tokens are unvalued. */
76
+ depositsUsd: string;
77
+ /** USDC withdrawals the builder's applications initiated, in USD (1:1); attributed by the initiating application. */
78
+ withdrawalsUsd: string;
79
+ /** `depositsUsd` less `withdrawalsUsd`; negative when more left than arrived. */
80
+ netFlowUsd: string;
73
81
  }
74
82
  /** Every displayed builder, by name. */
75
83
  export interface ListBuildersResponse {
@@ -107,10 +115,17 @@ export interface ListBuilderLeaderboardParams extends AnalyticsWindowParams {
107
115
  /** Builders to return, largest volume first (1-100, default 25). */
108
116
  limit?: number;
109
117
  }
110
- /** One builder's row on the leaderboard; a display group ranks as one. */
118
+ /** One builder's row on the leaderboard; a display group ranks as one. A builder that only took deposits ranks with zero volume. */
111
119
  export interface BuilderLeaderboardRow extends BuilderFigures {
112
120
  builder: Builder;
113
121
  newTraders: number;
122
+ /**
123
+ * Distinct taker wallets that traded through the builder, each once. With
124
+ * `window: "all"`, every wallet that ever traded through it. `null` for a
125
+ * window counted in hours that starts before the 90 days its hourly sets
126
+ * are kept.
127
+ */
128
+ activeTakers?: number | null;
114
129
  }
115
130
  /** Displayed builders ranked by volume over a window. */
116
131
  export interface ListBuilderLeaderboardResponse {
@@ -15,6 +15,11 @@
15
15
  * explorer displays only. Fees, active takers, new traders and per-market
16
16
  * volume count every trade. USD amounts are decimal strings (USDC 1:1).
17
17
  *
18
+ * Custody: deposits, withdrawals, net flow and total value locked count USDC
19
+ * only (1:1); other tokens are unvalued. A withdrawal counts when initiated.
20
+ * TVL is the USDC custody (deposits less initiated withdrawals, never below
21
+ * zero) at a point, `null` before any custody was folded.
22
+ *
18
23
  * NOTE: These endpoints are **public (unauthenticated)** and rate limited per
19
24
  * client IP.
20
25
  */
@@ -62,14 +67,31 @@ export interface ProtocolFigures {
62
67
  /** Wallets whose first trade through a builder fell inside, once per (builder, wallet), all builders included. */
63
68
  newTraders: number;
64
69
  }
70
+ /** USDC custody flow over a window or one bucket, in USD (1:1). */
71
+ export interface CustodyFlows {
72
+ /** USDC deposited. */
73
+ depositsUsd: string;
74
+ /** USDC withdrawals initiated. */
75
+ withdrawalsUsd: string;
76
+ /** `depositsUsd` less `withdrawalsUsd`; negative when more left than arrived. */
77
+ netFlowUsd: string;
78
+ }
65
79
  /** Protocol totals over a window. */
66
- export interface GetProtocolTotalsResponse extends ProtocolFigures {
80
+ export interface GetProtocolTotalsResponse extends ProtocolFigures, CustodyFlows {
67
81
  window: AnalyticsWindow;
82
+ /** Total value locked in USD at the end of the window (the end of the bucket holding `endTime`); `null` before any custody was folded. */
83
+ tvlUsd?: string | null;
84
+ /** Total value locked in USD at the start of the window; `tvlUsd` less this is the window's change. `null` before any custody was folded. */
85
+ openingTvlUsd?: string | null;
86
+ /** Distinct wallets that took a trade, received a deposit or were paid out a withdrawal initiated in the window (by payout address), each once. */
87
+ activeAccounts: number;
68
88
  }
69
89
  /** Protocol figures for one bucket. */
70
- export interface ProtocolSeriesPoint extends ProtocolFigures {
90
+ export interface ProtocolSeriesPoint extends ProtocolFigures, CustodyFlows {
71
91
  /** Bucket start as Unix milliseconds (UTC; weeks start Monday). */
72
92
  bucketStart: number;
93
+ /** Total value locked in USD at the end of the bucket, carried across buckets without movement; `null` before any custody was folded. */
94
+ tvlUsd?: string | null;
73
95
  }
74
96
  /** Protocol figures per bucket over a window. */
75
97
  export interface GetProtocolSeriesResponse {
@@ -100,7 +122,7 @@ export interface ListMarketVolumesResponse {
100
122
  }
101
123
  /** The treasury's all-time net fees (not windowed). */
102
124
  export interface GetTreasuryNetFeesResponse {
103
- /** Net protocol fees in USD: the treasury's net fee less BuilderCodes payouts and TraderCodes rewards; negative when payouts exceed fees. */
125
+ /** Net protocol fees in USD: the treasury's net protocol fee (taker fees less maker rebates) plus the insurance fund's liquidation fees, less BuilderCodes payouts and TraderCodes rewards; negative when payouts exceed fees. */
104
126
  netFeesUsd: string;
105
127
  /** When the first counted fee landed, as Unix milliseconds; null before any. */
106
128
  countingSince?: number | null;
@@ -15,6 +15,11 @@
15
15
  * explorer displays only. Fees, active takers, new traders and per-market
16
16
  * volume count every trade. USD amounts are decimal strings (USDC 1:1).
17
17
  *
18
+ * Custody: deposits, withdrawals, net flow and total value locked count USDC
19
+ * only (1:1); other tokens are unvalued. A withdrawal counts when initiated.
20
+ * TVL is the USDC custody (deposits less initiated withdrawals, never below
21
+ * zero) at a point, `null` before any custody was folded.
22
+ *
18
23
  * NOTE: These endpoints are **public (unauthenticated)** and rate limited per
19
24
  * client IP.
20
25
  */
@@ -125,8 +125,12 @@ export interface GetTokenCustodyResponse {
125
125
  export interface VaultFeedParams {
126
126
  /** Rows per page (1-1000, default 50). */
127
127
  pageSize?: number;
128
- /** Cursor from the previous page. */
128
+ /** Cursor from the previous page; bound to `token` and `wallet`. */
129
129
  pageToken?: string;
130
+ /** Only this token's rows: an asset symbol (any case), asset UUID or contract address. A token nothing answers to lists nothing. */
131
+ token?: string;
132
+ /** Only rows whose destination (the credited account, or a withdrawal's payout address) is this wallet. */
133
+ wallet?: string;
130
134
  }
131
135
  /** One deposit into the vault. */
132
136
  export interface VaultDeposit {
@@ -54,26 +54,6 @@ export interface TradingPair {
54
54
  * `CROSS_MARGIN_NOT_ALLOWED`; open the position with `marginMode: "ISOLATED"`.
55
55
  */
56
56
  isolatedOnly: boolean;
57
- /**
58
- * Flat pair-level maker fee in basis points (negative = rebate).
59
- *
60
- * @deprecated Not the rate an order is charged: fees are tiered per account.
61
- * Use `fees.getFeeSchedule(tradingPairId)` for the pair's tier schedule,
62
- * `fees.getMyFeeTier({ tradingPairId })` for your own rate, and
63
- * `placementMakerFeeBps` on an order for the rate it was placed at. This
64
- * field will be removed in a later release.
65
- */
66
- makerFeeBps: number;
67
- /**
68
- * Flat pair-level taker fee in basis points.
69
- *
70
- * @deprecated Not the rate an order is charged: fees are tiered per account.
71
- * Use `fees.getFeeSchedule(tradingPairId)` for the pair's tier schedule,
72
- * `fees.getMyFeeTier({ tradingPairId })` for your own rate, and
73
- * `placementTakerFeeBps` on an order for the rate it was placed at. This
74
- * field will be removed in a later release.
75
- */
76
- takerFeeBps: number;
77
57
  /** Minimum order size */
78
58
  minOrderSize: string;
79
59
  /** Maximum order size */
@@ -612,23 +612,6 @@ export interface UserProfile {
612
612
  accountType: string;
613
613
  /** Whether the user can withdraw funds */
614
614
  canWithdraw: boolean;
615
- /**
616
- * Flat taker fee in basis points, echoed from a trading pair.
617
- *
618
- * @deprecated Not the rate you are charged: fees are tiered per account. Use
619
- * `fees.getMyFeeTier({ tradingPairId })` for your own rate. This field will
620
- * be removed in a later release.
621
- */
622
- takerFeeBps: number;
623
- /**
624
- * Flat maker fee in basis points (negative = rebate), echoed from a trading
625
- * pair.
626
- *
627
- * @deprecated Not the rate you are charged: fees are tiered per account. Use
628
- * `fees.getMyFeeTier({ tradingPairId })` for your own rate. This field will
629
- * be removed in a later release.
630
- */
631
- makerFeeBps: number;
632
615
  /** Account creation timestamp (ISO string) */
633
616
  createdAt: string;
634
617
  /** Additional taker fee in basis points contributed by the application (if any) */
@@ -129,6 +129,9 @@ export declare const RfqMakerSelectionSchema: z.ZodObject<{
129
129
  capacity: z.ZodString;
130
130
  }, z.core.$strip>>>;
131
131
  lastLookDeadlineAtMs: z.ZodNumber;
132
+ monacoFeeCbps: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
133
+ maxBuilderFeeCbps: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
134
+ estimatedNet: z.ZodOptional<z.ZodNullable<z.ZodString>>;
132
135
  }, z.core.$strip>;
133
136
  /**
134
137
  * Authoritative RFQ status. A taker sees `view` and `outcome`; a maker sees
@@ -206,6 +209,9 @@ export declare const RfqStatusSchema: z.ZodObject<{
206
209
  capacity: z.ZodString;
207
210
  }, z.core.$strip>>>;
208
211
  lastLookDeadlineAtMs: z.ZodNumber;
212
+ monacoFeeCbps: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
213
+ maxBuilderFeeCbps: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
214
+ estimatedNet: z.ZodOptional<z.ZodNullable<z.ZodString>>;
209
215
  }, z.core.$strip>>>;
210
216
  ownLatestVersion: z.ZodNumber;
211
217
  ownQuoteWithdrawn: z.ZodBoolean;
@@ -126,6 +126,20 @@ export const RfqMakerSelectionSchema = z.object({
126
126
  quantity: z.string(),
127
127
  frozenTerms: RfqQuoteTermsResponseSchema.nullish(),
128
128
  lastLookDeadlineAtMs: z.number(),
129
+ /** Your Monaco maker fee rate in centi-bps, frozen at acceptance; negative for a rebate. */
130
+ monacoFeeCbps: z.number().nullish(),
131
+ /**
132
+ * The MOST your frontend's builder add-on charges on this fill, in centi-bps:
133
+ * the rate stored on your quote order. A fill charges it or nothing, never
134
+ * more; an IMPROVE re-places the quote at the rate configured then.
135
+ */
136
+ maxBuilderFeeCbps: z.number().nullish(),
137
+ /**
138
+ * Estimated net at the selected quantity and frozen price, in the quote
139
+ * asset, at monacoFeeCbps plus the maximum add-on: the least you receive
140
+ * when selling, the most you pay when buying.
141
+ */
142
+ estimatedNet: z.string().nullish(),
129
143
  });
130
144
  /**
131
145
  * Authoritative RFQ status. A taker sees `view` and `outcome`; a maker sees
@@ -156,7 +156,9 @@ export interface TradingAPI extends BaseAPI {
156
156
  */
157
157
  listConditionalOrders(params?: ListConditionalOrdersParams): Promise<ListConditionalOrdersResponse>;
158
158
  /**
159
- * Batch cancels specific orders by their IDs.
159
+ * Batch cancels specific orders by their IDs. Every ID gets one result, in
160
+ * request order; an ID that is not one of your live orders fails with
161
+ * `ORDER_NOT_FOUND`.
160
162
  * @param orderIds - Array of order IDs to cancel
161
163
  * @returns Promise resolving to the batch cancellation result
162
164
  */
@@ -284,7 +284,13 @@ export interface BatchCancelResult {
284
284
  error?: BatchCancelError;
285
285
  }
286
286
  /**
287
- * Response from batch cancelling orders
287
+ * Response from batch cancelling orders.
288
+ *
289
+ * For `batchCancel`, `results` holds one entry per requested ID, in request
290
+ * order (a repeated ID is answered at each occurrence), and
291
+ * `totalRequested === totalCancelled + totalFailed === results.length`. An ID
292
+ * that is not one of your live orders (unknown, another user's, or already
293
+ * terminal) is a failed entry with code `ORDER_NOT_FOUND`.
288
294
  */
289
295
  export interface BatchCancelOrdersResponse {
290
296
  /** Total number of orders requested to cancel */
@@ -42,9 +42,17 @@ export interface RfqRequestedEvent {
42
42
  }
43
43
  /** One side of the taker's view: the allocation that would fill the quantity. */
44
44
  export interface RfqSideViewEventData {
45
- /** All-in volume-weighted price, the taker's fee included. */
45
+ /** All-in volume-weighted price, the taker's Monaco and builder fees included. */
46
46
  vwap: string;
47
47
  availableQuantity: string;
48
+ /** The volume-weighted price before fees. */
49
+ grossVwap?: string;
50
+ /** Estimated Monaco taker fee on `availableQuantity`, in the quote asset. */
51
+ estimatedMonacoFee?: string;
52
+ /** Estimated builder fee on `availableQuantity`, in the quote asset. */
53
+ estimatedBuilderFee?: string;
54
+ /** Estimated total taker fee on `availableQuantity`, in the quote asset. */
55
+ estimatedTotalFee?: string;
48
56
  }
49
57
  /** The taker's view of the quotes. No maker identity or individual quote. */
50
58
  export interface RfqViewEventData {
@@ -57,6 +65,10 @@ export interface RfqViewEventData {
57
65
  asOfMs: number;
58
66
  /** Pushes can arrive out of order: keep the view with the highest `sequence`. */
59
67
  sequence: number;
68
+ /** Your Monaco taker fee rate in this view, in centi-bps. */
69
+ monacoFeeCbps?: number;
70
+ /** Your frontend's builder fee rate in this view, in centi-bps; frozen when you accept. */
71
+ builderFeeCbps?: number;
60
72
  }
61
73
  /** To the taker: its view moved. */
62
74
  export interface RfqViewEvent {
@@ -82,6 +94,18 @@ export interface RfqSelectionEventData {
82
94
  makerFeeCbps: number;
83
95
  /** Reject or improve before this time; silence executes. */
84
96
  lastLookDeadlineAtMs: number;
97
+ /**
98
+ * The MOST your frontend's builder add-on charges on this fill, in centi-bps:
99
+ * the rate stored on your quote order. A fill charges it or nothing, never
100
+ * more; the receipt shows what was charged. Absent when it could not be read.
101
+ */
102
+ maxBuilderFeeCbps?: number;
103
+ /**
104
+ * Estimated net at `quantity` and `price`, in the quote asset, at
105
+ * `makerFeeCbps` plus `maxBuilderFeeCbps`: the least you receive when
106
+ * selling, the most you pay when buying. Absent with `maxBuilderFeeCbps`.
107
+ */
108
+ estimatedNet?: string;
85
109
  }
86
110
  /** To one selected maker: its last-look prompt. */
87
111
  export interface RfqSelectedEvent {
@@ -94,7 +118,12 @@ export interface RfqFillEventData {
94
118
  executionId: string;
95
119
  price: string;
96
120
  quantity: string;
121
+ /** Your whole taker fee on this fill: `monacoFee` plus `builderFee`. */
97
122
  fee: string;
123
+ /** The Monaco part of `fee`. */
124
+ monacoFee?: string;
125
+ /** The builder part of `fee`. */
126
+ builderFee?: string;
98
127
  }
99
128
  /** How an RFQ ended, for its taker. */
100
129
  export interface RfqOutcomeEventData {
@@ -40,6 +40,12 @@ export interface TradeEventData {
40
40
  quoteVolumeRaw?: string;
41
41
  /** Application (frontend) that placed the taker order; trade volume and fees are attributed to it. REST trade reads only. */
42
42
  takerApplicationId?: string;
43
+ /**
44
+ * The taker's builder fee: the add-on the taker's application charged, in
45
+ * raw quote-asset units, on top of `takerFeeRaw`; `"0"` when it charged
46
+ * none. REST trade reads only.
47
+ */
48
+ builderFeeRaw?: string;
43
49
  }
44
50
  /**
45
51
  * Trade event emitted when a trade is executed
@@ -2938,8 +2938,17 @@ export interface paths {
2938
2938
  * Batch cancel specific orders
2939
2939
  * @description Batch cancel specific orders.
2940
2940
  *
2941
- * Cancel multiple specific orders by their IDs. For canceling all orders,
2942
- * use /batch-cancel-all or /batch-cancel-all/{tradingPairId}.
2941
+ * Cancel multiple specific orders by their IDs. Every requested ID gets one
2942
+ * entry in `results`, in request order (a repeated ID is answered at each
2943
+ * occurrence), and the totals count every requested ID, so
2944
+ * `totalRequested == totalCancelled + totalFailed`. An ID that is not one of
2945
+ * your live orders (unknown, another user's, or already filled or
2946
+ * cancelled) is a failed entry with code `ORDER_NOT_FOUND`. An order the
2947
+ * matching engine accepted is cancellable as soon as it is acknowledged.
2948
+ * A delegated session's cancel policy is checked against each order's
2949
+ * persisted fields: an ID with no persisted order yet is a failed entry
2950
+ * (`BAD_REQUEST`) and is not cancelled. For canceling all orders, use
2951
+ * /batch-cancel-all or /batch-cancel-all/{tradingPairId}.
2943
2952
  */
2944
2953
  post: operations["batch_cancel_orders"];
2945
2954
  delete?: never;
@@ -4680,22 +4689,23 @@ export interface components {
4680
4689
  BatchCancelOrdersResponse: {
4681
4690
  /**
4682
4691
  * Format: int32
4683
- * @description Number of orders requested to cancel
4692
+ * @description Number of order IDs in the request, repeats included. Always equals totalCancelled + totalFailed and the length of results.
4684
4693
  * @example 5
4685
4694
  */
4686
4695
  totalRequested?: number | null;
4687
4696
  /**
4688
4697
  * Format: int32
4689
- * @description Number of orders successfully cancelled
4698
+ * @description Number of results with cancelledAt and no error
4690
4699
  * @example 4
4691
4700
  */
4692
4701
  totalCancelled?: number | null;
4693
4702
  /**
4694
4703
  * Format: int32
4695
- * @description Number of cancellations that failed
4704
+ * @description Number of results with an error, including IDs that are unknown or not yours (ORDER_NOT_FOUND)
4696
4705
  * @example 1
4697
4706
  */
4698
4707
  totalFailed?: number | null;
4708
+ /** @description One result per requested order ID, in request order */
4699
4709
  results?: components["schemas"]["BatchCancelResult"][] | null;
4700
4710
  };
4701
4711
  BatchCancelResult: {
@@ -4899,7 +4909,7 @@ export interface components {
4899
4909
  */
4900
4910
  postOnly?: boolean | null;
4901
4911
  /**
4902
- * @description Client-assigned correlation handle, echoed back on order reads (detail and list) and on order WebSocket events. At most 64 characters from [A-Za-z0-9._:-]; surrounding whitespace is trimmed before storage, and a blank or whitespace-only value is treated as absent. Uniqueness is enforced only among your orders that are RESTING on the book: an item reusing a value another of your resting orders still holds fails that item alone — the batch itself returns 2xx / OK and the offending item's result slot carries error.code CLIENT_ORDER_ID_CONFLICT; no transport-level 409 / ALREADY_EXISTS is raised. An order that never rests — MARKET, IOC/FOK, or a LIMIT that fills completely on arrival — does not take the handle, and the value is released the moment any order reaches a terminal state. It is therefore NOT an idempotency key: resubmitting after a lost response can execute a second time. Reconcile a lost response against the order WebSocket stream, which carries this value on the submit acknowledgement and on fills, including for orders that never rest; order history is replica-backed and can omit an order that did land. The stream is not replayable and has no sequence number to backfill from, and its fan-out is non-persistent Core NATS: the service can re-establish an ended upstream subscription without closing your socket, so events can be missed while your connection still looks healthy. A matching event is therefore positive proof the order was accepted, but silence is NEVER evidence it was not, and no client-observable condition makes it so. Absent positive evidence the outcome is unresolved: hold and escalate rather than resubmitting. Rejections split in two: an item rejected before acceptance (malformed, post-only would cross, handle conflict, a plain MARKET submit with no liquidity, rejected during pricing) fails only that item — a per-item error in an otherwise-successful response — emits no event and is never written to order history (an item rejected AFTER acceptance is persisted with status REJECTED, so only the pre-acceptance class is absent); an accepted LIMIT with IOC or FOK that cannot fill, or an accepted MARKET order whose apparent liquidity is invalidated by maker-risk revalidation, reports matchResult.status REJECTED in its result slot and emits OrderPlaced then OrderRejected, both carrying this value. Neither the batch's 2xx nor a populated result slot therefore means the order executed. Where no surface is conclusive, do not resubmit.
4912
+ * @description Client-assigned correlation handle, echoed back on order reads (detail and list) and on order WebSocket events. At most 64 characters from [A-Za-z0-9._:-]; surrounding whitespace is trimmed before storage, and a blank or whitespace-only value is treated as absent. Uniqueness is enforced only among your orders that are RESTING on the book: an item reusing a value another of your resting orders still holds fails that item alone — the batch itself returns 2xx / OK and the offending item's result slot carries error.code CLIENT_ORDER_ID_CONFLICT; no transport-level 409 / ALREADY_EXISTS is raised. An order that never rests — MARKET, IOC/FOK, or a LIMIT that fills completely on arrival — does not take the handle, and the value is released the moment any order reaches a terminal state. It is therefore NOT an idempotency key: resubmitting after a lost response can execute a second time. Reconcile a lost response against the order WebSocket stream, which carries this value on the submit acknowledgement and on fills, including for orders that never rest; order history is replica-backed and can omit an order that did land. The stream is not replayable and has no sequence number to backfill from, and events are not persisted for redelivery, so one can be missed while your connection still looks healthy. A matching event is therefore positive proof the order was accepted, but silence is NEVER evidence it was not, and no client-observable condition makes it so. Absent positive evidence the outcome is unresolved: hold and escalate rather than resubmitting. Rejections split in two: an item rejected before acceptance (malformed, post-only would cross, handle conflict, a plain MARKET submit with no liquidity, rejected during pricing) fails only that item — a per-item error in an otherwise-successful response — emits no event and is never written to order history (an item rejected AFTER acceptance is persisted with status REJECTED, so only the pre-acceptance class is absent); an accepted LIMIT with IOC or FOK that cannot fill, or an accepted MARKET order whose apparent liquidity is invalidated by maker-risk revalidation, reports matchResult.status REJECTED in its result slot and emits OrderPlaced then OrderRejected, both carrying this value. Neither the batch's 2xx nor a populated result slot therefore means the order executed. Where no surface is conclusive, do not resubmit.
4903
4913
  * @example quote-btc-1130-a
4904
4914
  */
4905
4915
  clientOrderId?: string | null;
@@ -4986,7 +4996,7 @@ export interface components {
4986
4996
  */
4987
4997
  postOnly?: boolean | null;
4988
4998
  /**
4989
- * @description Client-assigned correlation handle, echoed back on order reads (detail and list) and on order WebSocket events. At most 64 characters from [A-Za-z0-9._:-]; surrounding whitespace is trimmed before storage, and a blank or whitespace-only value is treated as absent. Uniqueness is enforced only among your orders that are RESTING on the book: an item reusing a value another of your resting orders still holds fails that item alone — the batch itself returns 2xx / OK and the offending item's result slot carries error.code CLIENT_ORDER_ID_CONFLICT; no transport-level 409 / ALREADY_EXISTS is raised. An order that never rests — MARKET, IOC/FOK, or a LIMIT that fills completely on arrival — does not take the handle, and the value is released the moment any order reaches a terminal state. It is therefore NOT an idempotency key, though on this replace path a retry cannot double-execute: the request names the original order id, and the sequencer revalidates that original in memory and on the book at sequence time, so once the first replacement succeeds the original is gone and a retry is rejected with ORDER_NOT_FOUND rather than placing a second order. That code is itself ambiguous — the original may instead have filled or been cancelled — so the risk here is acting on a stale view, not duplicate execution. Reconcile a lost response against the order WebSocket stream, which carries this value on the submit acknowledgement and on fills, including for orders that never rest; order history is replica-backed and can omit an order that did land. The stream is not replayable and has no sequence number to backfill from, and its fan-out is non-persistent Core NATS: the service can re-establish an ended upstream subscription without closing your socket, so events can be missed while your connection still looks healthy. A matching event is therefore positive proof the order was accepted, but silence is NEVER evidence it was not, and no client-observable condition makes it so. Absent positive evidence the outcome is unresolved: hold and escalate rather than resubmitting. A replace item carries no order type or time-in-force and its original must still be RESTING, so the IOC/FOK and MARKET post-acceptance rejection shapes are unreachable here. Failures split by WHEN they occur, and the difference decides whether your original survives. Before sequencing: every validation failure — a malformed value included — fails ITS ITEM alone with a structured error.code (INVALID_CLIENT_ORDER_ID for a malformed handle, the same code batch-create uses) and no mutation and no event, batch-create parity; the whole request 400s only for an empty or oversize batch. (Earlier releases rejected the whole batch for a malformed value here.) A pre-cancel gate then drops two more classes before anything is cancelled — a handle conflict, and a post-only replacement that would cross the book as it will stand once this batch's originals are cancelled — so in the ordinary POST_ONLY_WOULD_CROSS case the item fails with its original still RESTING and untouched. After that the endpoint is CANCEL-FIRST: the original is cancelled in pass 1, so a residual placement failure then — a self-trade rejection, or a crossing that only became apparent in pass 2 — leaves the original CANCELLED and emits its cancellation events (terminal reason 'replaced') while the item reports the placement error and no replacement is placed. Never assume a failed item left your original resting; read results[] and the stream. Single ReplaceOrder differs: it is atomic, and a rejected replacement leaves the original untouched. Where no surface is conclusive, do not resubmit. A replacement is a new order with a new id, so it carries its own value and inherits nothing from the original — restate it to keep the handle.
4999
+ * @description Client-assigned correlation handle, echoed back on order reads (detail and list) and on order WebSocket events. At most 64 characters from [A-Za-z0-9._:-]; surrounding whitespace is trimmed before storage, and a blank or whitespace-only value is treated as absent. Uniqueness is enforced only among your orders that are RESTING on the book: an item reusing a value another of your resting orders still holds fails that item alone — the batch itself returns 2xx / OK and the offending item's result slot carries error.code CLIENT_ORDER_ID_CONFLICT; no transport-level 409 / ALREADY_EXISTS is raised. An order that never rests — MARKET, IOC/FOK, or a LIMIT that fills completely on arrival — does not take the handle, and the value is released the moment any order reaches a terminal state. It is therefore NOT an idempotency key, though on this replace path a retry cannot double-execute: the request names the original order id, and the sequencer revalidates that original in memory and on the book at sequence time, so once the first replacement succeeds the original is gone and a retry is rejected with ORDER_NOT_FOUND rather than placing a second order. That code is itself ambiguous — the original may instead have filled or been cancelled — so the risk here is acting on a stale view, not duplicate execution. Reconcile a lost response against the order WebSocket stream, which carries this value on the submit acknowledgement and on fills, including for orders that never rest; order history is replica-backed and can omit an order that did land. The stream is not replayable and has no sequence number to backfill from, and events are not persisted for redelivery, so one can be missed while your connection still looks healthy. A matching event is therefore positive proof the order was accepted, but silence is NEVER evidence it was not, and no client-observable condition makes it so. Absent positive evidence the outcome is unresolved: hold and escalate rather than resubmitting. A replace item carries no order type or time-in-force and its original must still be RESTING, so the IOC/FOK and MARKET post-acceptance rejection shapes are unreachable here. Failures split by WHEN they occur, and the difference decides whether your original survives. Before sequencing: every validation failure — a malformed value included — fails ITS ITEM alone with a structured error.code (INVALID_CLIENT_ORDER_ID for a malformed handle, the same code batch-create uses) and no mutation and no event, batch-create parity; the whole request 400s only for an empty or oversize batch. (Earlier releases rejected the whole batch for a malformed value here.) A pre-cancel gate then drops two more classes before anything is cancelled — a handle conflict, and a post-only replacement that would cross the book as it will stand once this batch's originals are cancelled — so in the ordinary POST_ONLY_WOULD_CROSS case the item fails with its original still RESTING and untouched. After that the endpoint is CANCEL-FIRST: the original is cancelled in pass 1, so a residual placement failure then — a self-trade rejection, or a crossing that only became apparent in pass 2 — leaves the original CANCELLED and emits its cancellation events (terminal reason 'replaced') while the item reports the placement error and no replacement is placed. Never assume a failed item left your original resting; read results[] and the stream. Single ReplaceOrder differs: it is atomic, and a rejected replacement leaves the original untouched. Where no surface is conclusive, do not resubmit. A replacement is a new order with a new id, so it carries its own value and inherits nothing from the original — restate it to keep the handle.
4990
5000
  * @example quote-btc-1130-a
4991
5001
  */
4992
5002
  clientOrderId?: string | null;
@@ -5101,7 +5111,7 @@ export interface components {
5101
5111
  name?: string | null;
5102
5112
  /**
5103
5113
  * @description On-chain client id the application's deposits carry
5104
- * @example 688a21440e304c06b935f743dae88278
5114
+ * @example 6fe0da813f1a4adcbe675d52ca530a43
5105
5115
  */
5106
5116
  clientId?: string | null;
5107
5117
  /**
@@ -5126,6 +5136,11 @@ export interface components {
5126
5136
  * @example 0
5127
5137
  */
5128
5138
  additionalMakerFeeBps?: number | null;
5139
+ /**
5140
+ * @description Whether this is the exchange's default application: the one a sign-in that names no client id is placed under
5141
+ * @example false
5142
+ */
5143
+ isDefault?: boolean | null;
5129
5144
  };
5130
5145
  BuilderFeeChange: {
5131
5146
  /**
@@ -5232,6 +5247,27 @@ export interface components {
5232
5247
  * @example 4
5233
5248
  */
5234
5249
  newTraders?: number | null;
5250
+ /**
5251
+ * Format: int64
5252
+ * @description Distinct taker wallets that traded through the builder in the window, each once however many buckets or applications it traded in. With window=all, every wallet that ever traded through it. Null for a window counted in hours that starts before the 90 days its hourly sets are kept.
5253
+ * @example 18
5254
+ */
5255
+ activeTakers?: number | null;
5256
+ /**
5257
+ * @description USDC deposited through the builder's applications in the window, in USD (1:1). Other tokens are unvalued and not counted.
5258
+ * @example 15000
5259
+ */
5260
+ depositsUsd?: string | null;
5261
+ /**
5262
+ * @description USDC withdrawals initiated through the builder's applications in the window, in USD (1:1). Attributed by the application that initiated the withdrawal; other tokens are unvalued and not counted.
5263
+ * @example 4000
5264
+ */
5265
+ withdrawalsUsd?: string | null;
5266
+ /**
5267
+ * @description depositsUsd less withdrawalsUsd; negative when more left than arrived
5268
+ * @example 11000
5269
+ */
5270
+ netFlowUsd?: string | null;
5235
5271
  };
5236
5272
  BuilderSeriesPoint: {
5237
5273
  /**
@@ -5288,6 +5324,21 @@ export interface components {
5288
5324
  * @example 1
5289
5325
  */
5290
5326
  newTraders?: number | null;
5327
+ /**
5328
+ * @description USDC deposited through the builder's applications in the bucket, in USD (1:1)
5329
+ * @example 500
5330
+ */
5331
+ depositsUsd?: string | null;
5332
+ /**
5333
+ * @description USDC withdrawals initiated through the builder's applications in the bucket, in USD (1:1). Attributed by the application that initiated the withdrawal; other tokens are unvalued and not counted.
5334
+ * @example 4000
5335
+ */
5336
+ withdrawalsUsd?: string | null;
5337
+ /**
5338
+ * @description depositsUsd less withdrawalsUsd; negative when more left than arrived
5339
+ * @example 11000
5340
+ */
5341
+ netFlowUsd?: string | null;
5291
5342
  };
5292
5343
  BuildercodePayout: {
5293
5344
  /**
@@ -5972,7 +6023,7 @@ export interface components {
5972
6023
  */
5973
6024
  postOnly?: boolean | null;
5974
6025
  /**
5975
- * @description Client-assigned correlation handle, echoed back on order reads (detail and list) and on order WebSocket events. At most 64 characters from [A-Za-z0-9._:-]; surrounding whitespace is trimmed before storage, and a blank or whitespace-only value is treated as absent. Uniqueness is enforced only among your orders that are RESTING on the book: a create or replace reusing a value another of your resting orders still holds is rejected with HTTP 409 / gRPC ALREADY_EXISTS and the code CLIENT_ORDER_ID_CONFLICT. An order that never rests — MARKET, IOC/FOK, or a LIMIT that fills completely on arrival — does not take the handle, and the value is released the moment any order reaches a terminal state. It is therefore NOT an idempotency key: resubmitting after a lost response can execute a second time. Reconcile a lost response against the order WebSocket stream, which carries this value on the submit acknowledgement and on fills, including for orders that never rest; order history is replica-backed and can omit an order that did land. The stream is not replayable and has no sequence number to backfill from, and its fan-out is non-persistent Core NATS: the service can re-establish an ended upstream subscription without closing your socket, so events can be missed while your connection still looks healthy. A matching event is therefore positive proof the order was accepted, but silence is NEVER evidence it was not, and no client-observable condition makes it so. Absent positive evidence the outcome is unresolved: hold and escalate rather than resubmitting. Rejections split in two: one rejected before acceptance (malformed, post-only would cross, handle conflict, a plain MARKET submit with no liquidity, rejected during pricing) fails the request, emits no event and is never written to order history (an order rejected AFTER acceptance is persisted with status REJECTED, so only the pre-acceptance class is absent); an accepted LIMIT with IOC or FOK that cannot fill, or an accepted MARKET order whose apparent liquidity is invalidated by maker-risk revalidation, returns 2xx with matchResult.status REJECTED and emits OrderPlaced then OrderRejected, both carrying this value. A 2xx therefore does not mean the order executed. Where no surface is conclusive, do not resubmit.
6026
+ * @description Client-assigned correlation handle, echoed back on order reads (detail and list) and on order WebSocket events. At most 64 characters from [A-Za-z0-9._:-]; surrounding whitespace is trimmed before storage, and a blank or whitespace-only value is treated as absent. Uniqueness is enforced only among your orders that are RESTING on the book: a create or replace reusing a value another of your resting orders still holds is rejected with HTTP 409 / gRPC ALREADY_EXISTS and the code CLIENT_ORDER_ID_CONFLICT. An order that never rests — MARKET, IOC/FOK, or a LIMIT that fills completely on arrival — does not take the handle, and the value is released the moment any order reaches a terminal state. It is therefore NOT an idempotency key: resubmitting after a lost response can execute a second time. Reconcile a lost response against the order WebSocket stream, which carries this value on the submit acknowledgement and on fills, including for orders that never rest; order history is replica-backed and can omit an order that did land. The stream is not replayable and has no sequence number to backfill from, and events are not persisted for redelivery, so one can be missed while your connection still looks healthy. A matching event is therefore positive proof the order was accepted, but silence is NEVER evidence it was not, and no client-observable condition makes it so. Absent positive evidence the outcome is unresolved: hold and escalate rather than resubmitting. Rejections split in two: one rejected before acceptance (malformed, post-only would cross, handle conflict, a plain MARKET submit with no liquidity, rejected during pricing) fails the request, emits no event and is never written to order history (an order rejected AFTER acceptance is persisted with status REJECTED, so only the pre-acceptance class is absent); an accepted LIMIT with IOC or FOK that cannot fill, or an accepted MARKET order whose apparent liquidity is invalidated by maker-risk revalidation, returns 2xx with matchResult.status REJECTED and emits OrderPlaced then OrderRejected, both carrying this value. A 2xx therefore does not mean the order executed. Where no surface is conclusive, do not resubmit.
5976
6027
  * @example quote-btc-1130-a
5977
6028
  */
5978
6029
  clientOrderId?: string | null;
@@ -6811,6 +6862,21 @@ export interface components {
6811
6862
  * @example 4
6812
6863
  */
6813
6864
  newTraders?: number | null;
6865
+ /**
6866
+ * @description USDC deposited through the builder's applications in the window, in USD (1:1). Other tokens are unvalued and not counted.
6867
+ * @example 15000
6868
+ */
6869
+ depositsUsd?: string | null;
6870
+ /**
6871
+ * @description USDC withdrawals initiated through the builder's applications in the window, in USD (1:1). Attributed by the application that initiated the withdrawal; other tokens are unvalued and not counted.
6872
+ * @example 4000
6873
+ */
6874
+ withdrawalsUsd?: string | null;
6875
+ /**
6876
+ * @description depositsUsd less withdrawalsUsd; negative when more left than arrived
6877
+ * @example 11000
6878
+ */
6879
+ netFlowUsd?: string | null;
6814
6880
  };
6815
6881
  GetBuildercodePayoutSummaryResponse: {
6816
6882
  /**
@@ -8236,20 +8302,6 @@ export interface components {
8236
8302
  * @example 2023-11-13T10:30:00Z
8237
8303
  */
8238
8304
  createdAt?: string | null;
8239
- /**
8240
- * Format: int32
8241
- * @deprecated
8242
- * @description DEPRECATED: legacy flat maker fee in bps echoed from the trading pair. Does NOT reflect the tiered fee actually charged, which is per-user and fractional. Call GET /api/v1/fees/tier for the caller's real rate. Will be removed in a later release.
8243
- * @example -1
8244
- */
8245
- makerFeeBps?: number | null;
8246
- /**
8247
- * Format: int32
8248
- * @deprecated
8249
- * @description DEPRECATED: legacy flat taker fee in bps echoed from the trading pair. Does NOT reflect the tiered fee actually charged, which is per-user and fractional. Call GET /api/v1/fees/tier for the caller's real rate. Will be removed in a later release.
8250
- * @example 5
8251
- */
8252
- takerFeeBps?: number | null;
8253
8305
  /**
8254
8306
  * Format: int32
8255
8307
  * @description Additional taker fee in basis points from application
@@ -8313,6 +8365,37 @@ export interface components {
8313
8365
  * @example 27
8314
8366
  */
8315
8367
  newTraders?: number | null;
8368
+ /**
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.
8370
+ * @example 536172600
8371
+ */
8372
+ tvlUsd?: string | null;
8373
+ /**
8374
+ * @description Total value locked in USD at the start of the window (the start of its first bucket). tvlUsd less openingTvlUsd is the window's change. Null when no custody had been folded by then.
8375
+ * @example 535000000
8376
+ */
8377
+ openingTvlUsd?: string | null;
8378
+ /**
8379
+ * @description USDC deposited in the window, in USD (1:1). Other tokens are unvalued and not counted.
8380
+ * @example 1250000
8381
+ */
8382
+ depositsUsd?: string | null;
8383
+ /**
8384
+ * @description USDC withdrawals initiated in the window, in USD (1:1). Other tokens are unvalued and not counted.
8385
+ * @example 78000
8386
+ */
8387
+ withdrawalsUsd?: string | null;
8388
+ /**
8389
+ * @description depositsUsd less withdrawalsUsd; negative when more left than arrived
8390
+ * @example 1172000
8391
+ */
8392
+ netFlowUsd?: string | null;
8393
+ /**
8394
+ * Format: int64
8395
+ * @description Distinct wallets active in the window, each once: wallets that took a trade, received a deposit, or were paid out a withdrawal initiated in it (by payout address), all builders included
8396
+ * @example 418
8397
+ */
8398
+ activeAccounts?: number | null;
8316
8399
  };
8317
8400
  GetPulseResponse: {
8318
8401
  /**
@@ -8532,7 +8615,7 @@ export interface components {
8532
8615
  /** @description The treasury's all-time net fees. Not windowed: the treasury keeps only running totals. */
8533
8616
  GetTreasuryNetFeesResponse: {
8534
8617
  /**
8535
- * @description All-time net protocol fees in USD (USDC 1:1): the treasury's net fee less BuilderCodes payouts and TraderCodes rewards. Negative when payouts exceed fees; "0" before any fee. The definition may widen to more fee sources without a contract change.
8618
+ * @description All-time net protocol fees in USD (USDC 1:1): the treasury's net protocol fee (taker fees less maker rebates) plus the insurance fund's liquidation fees, less BuilderCodes payouts and TraderCodes rewards. Negative when payouts exceed fees; "0" before any fee. The definition may widen to more fee sources without a contract change.
8536
8619
  * @example 260.37
8537
8620
  */
8538
8621
  netFeesUsd?: string | null;
@@ -9263,7 +9346,7 @@ export interface components {
9263
9346
  /**
9264
9347
  * @description Displayed builders with figures in the window, largest volume first
9265
9348
  * (ties by builder id), up to limit. A builder that only earned maker
9266
- * add-ons ranks with zero volume.
9349
+ * add-ons, or only took deposits, ranks with zero volume.
9267
9350
  */
9268
9351
  rows?: components["schemas"]["BuilderLeaderboardRow"][] | null;
9269
9352
  };
@@ -10940,6 +11023,26 @@ export interface components {
10940
11023
  * @example 3
10941
11024
  */
10942
11025
  newTraders?: number | null;
11026
+ /**
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.
11028
+ * @example 536172600
11029
+ */
11030
+ tvlUsd?: string | null;
11031
+ /**
11032
+ * @description USDC deposited in the bucket, in USD (1:1)
11033
+ * @example 52000
11034
+ */
11035
+ depositsUsd?: string | null;
11036
+ /**
11037
+ * @description USDC withdrawals initiated in the bucket, in USD (1:1)
11038
+ * @example 3000
11039
+ */
11040
+ withdrawalsUsd?: string | null;
11041
+ /**
11042
+ * @description depositsUsd less withdrawalsUsd; negative when more left than arrived
11043
+ * @example 49000
11044
+ */
11045
+ netFlowUsd?: string | null;
10943
11046
  };
10944
11047
  PublicHealthCheckResponse: {
10945
11048
  /**
@@ -11288,7 +11391,7 @@ export interface components {
11288
11391
  */
11289
11392
  postOnly?: boolean | null;
11290
11393
  /**
11291
- * @description Client-assigned correlation handle, echoed back on order reads (detail and list) and on order WebSocket events. At most 64 characters from [A-Za-z0-9._:-]; surrounding whitespace is trimmed before storage, and a blank or whitespace-only value is treated as absent. Uniqueness is enforced only among your orders that are RESTING on the book: a create or replace reusing a value another of your resting orders still holds is rejected with HTTP 409 / gRPC ALREADY_EXISTS and the code CLIENT_ORDER_ID_CONFLICT. An order that never rests — MARKET, IOC/FOK, or a LIMIT that fills completely on arrival — does not take the handle, and the value is released the moment any order reaches a terminal state. It is therefore NOT an idempotency key, though on this replace path a retry cannot double-execute: the request names the original order id, and the sequencer revalidates that original in memory and on the book at sequence time, so once the first replacement succeeds the original is gone and a retry is rejected with ORDER_NOT_FOUND rather than placing a second order. That code is itself ambiguous — the original may instead have filled or been cancelled — so the risk here is acting on a stale view, not duplicate execution. Reconcile a lost response against the order WebSocket stream, which carries this value on the submit acknowledgement and on fills, including for orders that never rest; order history is replica-backed and can omit an order that did land. The stream is not replayable and has no sequence number to backfill from, and its fan-out is non-persistent Core NATS: the service can re-establish an ended upstream subscription without closing your socket, so events can be missed while your connection still looks healthy. A matching event is therefore positive proof the order was accepted, but silence is NEVER evidence it was not, and no client-observable condition makes it so. Absent positive evidence the outcome is unresolved: hold and escalate rather than resubmitting. A replacement carries no order type or time-in-force and its original must still be RESTING, so the post-acceptance rejection shapes are unreachable here: the reachable failures are all pre-acceptance — malformed, post-only would cross, handle conflict, or the original no longer resting (ORDER_NOT_FOUND) — and each fails the request, emits no event and is never written to order history (an order rejected AFTER acceptance is persisted with status REJECTED, so only the pre-acceptance class is absent). Where no surface is conclusive, do not resubmit. A replacement is a new order with a new id, so it carries its own value and inherits nothing from the original — restate it to keep the handle.
11394
+ * @description Client-assigned correlation handle, echoed back on order reads (detail and list) and on order WebSocket events. At most 64 characters from [A-Za-z0-9._:-]; surrounding whitespace is trimmed before storage, and a blank or whitespace-only value is treated as absent. Uniqueness is enforced only among your orders that are RESTING on the book: a create or replace reusing a value another of your resting orders still holds is rejected with HTTP 409 / gRPC ALREADY_EXISTS and the code CLIENT_ORDER_ID_CONFLICT. An order that never rests — MARKET, IOC/FOK, or a LIMIT that fills completely on arrival — does not take the handle, and the value is released the moment any order reaches a terminal state. It is therefore NOT an idempotency key, though on this replace path a retry cannot double-execute: the request names the original order id, and the sequencer revalidates that original in memory and on the book at sequence time, so once the first replacement succeeds the original is gone and a retry is rejected with ORDER_NOT_FOUND rather than placing a second order. That code is itself ambiguous — the original may instead have filled or been cancelled — so the risk here is acting on a stale view, not duplicate execution. Reconcile a lost response against the order WebSocket stream, which carries this value on the submit acknowledgement and on fills, including for orders that never rest; order history is replica-backed and can omit an order that did land. The stream is not replayable and has no sequence number to backfill from, and events are not persisted for redelivery, so one can be missed while your connection still looks healthy. A matching event is therefore positive proof the order was accepted, but silence is NEVER evidence it was not, and no client-observable condition makes it so. Absent positive evidence the outcome is unresolved: hold and escalate rather than resubmitting. A replacement carries no order type or time-in-force and its original must still be RESTING, so the post-acceptance rejection shapes are unreachable here: the reachable failures are all pre-acceptance — malformed, post-only would cross, handle conflict, or the original no longer resting (ORDER_NOT_FOUND) — and each fails the request, emits no event and is never written to order history (an order rejected AFTER acceptance is persisted with status REJECTED, so only the pre-acceptance class is absent). Where no surface is conclusive, do not resubmit. A replacement is a new order with a new id, so it carries its own value and inherits nothing from the original — restate it to keep the handle.
11292
11395
  * @example quote-btc-1130-a
11293
11396
  */
11294
11397
  clientOrderId?: string | null;
@@ -11447,6 +11550,18 @@ export interface components {
11447
11550
  frozenTerms?: components["schemas"]["RfqQuoteTerms"];
11448
11551
  /** Format: int64 */
11449
11552
  lastLookDeadlineAtMs?: number | null;
11553
+ /**
11554
+ * Format: int32
11555
+ * @description Your Monaco maker fee rate in centi-bps, frozen at acceptance; negative for a rebate
11556
+ */
11557
+ monacoFeeCbps?: number | null;
11558
+ /**
11559
+ * Format: int32
11560
+ * @description The MOST your frontend's builder add-on charges on this fill, in centi-bps: the rate stored on your quote order. A fill charges this rate or nothing, never more; the receipt shows what was charged. An IMPROVE re-places the quote at the rate configured then. Absent when it could not be read
11561
+ */
11562
+ maxBuilderFeeCbps?: number | null;
11563
+ /** @description Estimated net at the selected quantity and frozen price, in the quote asset, at monacoFeeCbps plus the maximum builder add-on: the least you receive when selling, the most you pay when buying. Absent with maxBuilderFeeCbps */
11564
+ estimatedNet?: string | null;
11450
11565
  };
11451
11566
  /** @description A market RFQ is offered on. */
11452
11567
  RfqMarketCapability: {
@@ -12566,6 +12681,11 @@ export interface components {
12566
12681
  * @example 789e0123-e45b-12d3-a456-426614174000
12567
12682
  */
12568
12683
  takerApplicationId?: string | null;
12684
+ /**
12685
+ * @description The taker's builder fee: the add-on the taker's application (frontend) charged on the trade, in raw quote-asset units (the asset's smallest unit), on top of takerFeeRaw. "0" when it charged none.
12686
+ * @example 4375
12687
+ */
12688
+ builderFeeRaw?: string | null;
12569
12689
  };
12570
12690
  TradeFlowBucket: {
12571
12691
  /**
@@ -12656,13 +12776,6 @@ export interface components {
12656
12776
  * @example true
12657
12777
  */
12658
12778
  isActive?: boolean | null;
12659
- /**
12660
- * Format: int32
12661
- * @deprecated
12662
- * @description DEPRECATED: legacy flat maker fee in bps (negative = rebate). This is the pre-tiered pair-level rate and does NOT reflect the tiered fee actually charged, which is per-user and fractional. Do not display this as the user's fee — call GET /api/v1/fees/tier for the caller's real rate. Will be removed in a later release.
12663
- * @example -2
12664
- */
12665
- makerFeeBps?: number | null;
12666
12779
  /**
12667
12780
  * @description Market type: SPOT or MARGIN
12668
12781
  * @example SPOT
@@ -12710,13 +12823,6 @@ export interface components {
12710
12823
  * @example BTC/USDC
12711
12824
  */
12712
12825
  symbol?: string | null;
12713
- /**
12714
- * Format: int32
12715
- * @deprecated
12716
- * @description DEPRECATED: legacy flat taker fee in bps. This is the pre-tiered pair-level rate and does NOT reflect the tiered fee actually charged, which is per-user and fractional. Do not display this as the user's fee — call GET /api/v1/fees/tier for the caller's real rate. Will be removed in a later release.
12717
- * @example 10
12718
- */
12719
- takerFeeBps?: number | null;
12720
12826
  /**
12721
12827
  * @description Minimum price increment
12722
12828
  * @example 0.01
@@ -15373,8 +15479,10 @@ export interface operations {
15373
15479
  query?: {
15374
15480
  /** @description Deposits per page (max 1000) */
15375
15481
  pageSize?: number;
15376
- /** @description Opaque keyset cursor from the previous response. */
15482
+ /** @description Opaque keyset cursor from the previous response, bound to the filters. */
15377
15483
  pageToken?: string;
15484
+ token?: string;
15485
+ wallet?: string;
15378
15486
  };
15379
15487
  header?: never;
15380
15488
  path?: never;
@@ -15811,8 +15919,10 @@ export interface operations {
15811
15919
  query?: {
15812
15920
  /** @description Withdrawals per page (max 1000) */
15813
15921
  pageSize?: number;
15814
- /** @description Opaque keyset cursor from the previous response. */
15922
+ /** @description Opaque keyset cursor from the previous response, bound to the filters. */
15815
15923
  pageToken?: string;
15924
+ token?: string;
15925
+ wallet?: string;
15816
15926
  };
15817
15927
  header?: never;
15818
15928
  path?: never;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xmonaco/types",
3
- "version": "1.1.5-prerelease.de852e2",
3
+ "version": "1.1.6",
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.5-prerelease.de852e2",
19
+ "@0xmonaco/contracts": "1.1.6",
20
20
  "zod": "^4.6.7"
21
21
  },
22
22
  "peerDependencies": {