@0xmonaco/types 1.0.88 → 1.0.91

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.
@@ -904,10 +904,12 @@ export interface paths {
904
904
  * The bucket is resolved from the AUTHENTICATED caller's own wallet address,
905
905
  * never from the request body, so a caller can only ever claim their own
906
906
  * accrued balance. A wallet that has never been an enrolled frontend's payout
907
- * address simply has an empty bucket. A wallet that USED to be a payout
908
- * address keeps whatever it accrued back then and can still claim it —
909
- * payout-address changes are not retroactive, so current enrollment is
910
- * deliberately not required.
907
+ * address simply has an empty bucket. Shortly after Monaco moves a
908
+ * frontend's payout address to a new wallet, the unclaimed balance accrued
909
+ * to the old wallet moves to the new wallet. A wallet several frontends paid
910
+ * into before each payout wallet was limited to one frontend is not moved.
911
+ * Current enrollment is deliberately not required, so a wallet that used to
912
+ * be a payout address can still claim whatever remains in its bucket.
911
913
  *
912
914
  * The payout wallet may be an EOA or a smart-contract wallet. An EOA answers
913
915
  * Monaco's signature challenge directly. A contract wallet — a multisig such
@@ -2202,6 +2204,48 @@ export interface paths {
2202
2204
  patch?: never;
2203
2205
  trace?: never;
2204
2206
  };
2207
+ "/api/v1/market/pairs/{tradingPairId}/liquidation-events": {
2208
+ parameters: {
2209
+ query?: never;
2210
+ header?: never;
2211
+ path?: never;
2212
+ cookie?: never;
2213
+ };
2214
+ /**
2215
+ * Liquidation Events
2216
+ * @description Stored liquidation events for one market. Wallet-addressed events are
2217
+ * newest-first and keyset-paged; event and side-summary reads remain
2218
+ * separate so clients can fetch either surface independently.
2219
+ */
2220
+ get: operations["list_liquidation_events"];
2221
+ put?: never;
2222
+ post?: never;
2223
+ delete?: never;
2224
+ options?: never;
2225
+ head?: never;
2226
+ patch?: never;
2227
+ trace?: never;
2228
+ };
2229
+ "/api/v1/market/pairs/{tradingPairId}/liquidation-metrics": {
2230
+ parameters: {
2231
+ query?: never;
2232
+ header?: never;
2233
+ path?: never;
2234
+ cookie?: never;
2235
+ };
2236
+ /**
2237
+ * Liquidation Metrics
2238
+ * @description UTC-aligned long/short liquidation totals for a bounded market time range.
2239
+ */
2240
+ get: operations["get_liquidation_metrics"];
2241
+ put?: never;
2242
+ post?: never;
2243
+ delete?: never;
2244
+ options?: never;
2245
+ head?: never;
2246
+ patch?: never;
2247
+ trace?: never;
2248
+ };
2205
2249
  "/api/v1/market/pairs/{tradingPairId}/mark-price": {
2206
2250
  parameters: {
2207
2251
  query?: never;
@@ -2297,6 +2341,46 @@ export interface paths {
2297
2341
  patch?: never;
2298
2342
  trace?: never;
2299
2343
  };
2344
+ "/api/v1/market/pairs/{tradingPairId}/trade-flow": {
2345
+ parameters: {
2346
+ query?: never;
2347
+ header?: never;
2348
+ path?: never;
2349
+ cookie?: never;
2350
+ };
2351
+ /**
2352
+ * Trade Flow
2353
+ * @description Bounded quote-notional taker flow and cumulative volume delta for a perp.
2354
+ */
2355
+ get: operations["get_trade_flow"];
2356
+ put?: never;
2357
+ post?: never;
2358
+ delete?: never;
2359
+ options?: never;
2360
+ head?: never;
2361
+ patch?: never;
2362
+ trace?: never;
2363
+ };
2364
+ "/api/v1/market/pairs/{tradingPairId}/trader-metrics": {
2365
+ parameters: {
2366
+ query?: never;
2367
+ header?: never;
2368
+ path?: never;
2369
+ cookie?: never;
2370
+ };
2371
+ /**
2372
+ * Trader Metrics
2373
+ * @description Current public trader positioning and participation aggregates for a perp.
2374
+ */
2375
+ get: operations["get_trader_metrics"];
2376
+ put?: never;
2377
+ post?: never;
2378
+ delete?: never;
2379
+ options?: never;
2380
+ head?: never;
2381
+ patch?: never;
2382
+ trace?: never;
2383
+ };
2300
2384
  "/api/v1/market/screener": {
2301
2385
  parameters: {
2302
2386
  query?: never;
@@ -2969,6 +3053,85 @@ export interface paths {
2969
3053
  patch?: never;
2970
3054
  trace?: never;
2971
3055
  };
3056
+ "/api/v1/sweeper/deposits": {
3057
+ parameters: {
3058
+ query?: never;
3059
+ header?: never;
3060
+ path?: never;
3061
+ cookie?: never;
3062
+ };
3063
+ /**
3064
+ * List the caller's sweeper deposits, newest first
3065
+ * @description The caller's sweeper deposits, newest first.
3066
+ *
3067
+ * Every transfer into one of the caller's deposit addresses, on any
3068
+ * supported chain, as the same `SweeperDeposit` entries
3069
+ * `get_sweeper_deposit_status` returns — so a client that has lost a
3070
+ * deposit's transaction hash can still find it and follow it. A swept CCTP
3071
+ * deposit is listed once, by its source-chain transfer: its hub mint is the
3072
+ * same deposit's second leg, not a deposit of its own. A burn made straight
3073
+ * to the hub deposit address has no source-chain transfer to the address,
3074
+ * so it is listed by its hub mint.
3075
+ *
3076
+ * Newest recorded first, walked by an opaque cursor: omit `pageToken` (or
3077
+ * send `""`) to start, then pass each response's `nextPageToken` until it
3078
+ * comes back empty. A shorter page proves the end; the token is pinned to
3079
+ * this listing and position-only — the caller always comes from the session.
3080
+ *
3081
+ * Authenticated: only deposits credited to the session's own address.
3082
+ */
3083
+ get: operations["list_sweeper_deposits"];
3084
+ put?: never;
3085
+ post?: never;
3086
+ delete?: never;
3087
+ options?: never;
3088
+ head?: never;
3089
+ patch?: never;
3090
+ trace?: never;
3091
+ };
3092
+ "/api/v1/sweeper/deposits/{txHash}": {
3093
+ parameters: {
3094
+ query?: never;
3095
+ header?: never;
3096
+ path?: never;
3097
+ cookie?: never;
3098
+ };
3099
+ /**
3100
+ * Get the status of the caller's sweeper deposits in one transaction
3101
+ * @description Where the caller's sweeper deposits made by one transaction are.
3102
+ *
3103
+ * Look a deposit up by the hash of the transaction that sent funds to one of
3104
+ * the caller's deposit addresses, on any supported chain. One transaction
3105
+ * can carry several such transfers, so the answer is a list (in chain, then
3106
+ * log order); it is empty until the sweeper has indexed the transaction, and
3107
+ * never includes deposits to anyone else's address.
3108
+ *
3109
+ * Each deposit moves through `RECEIVED` (indexed; not yet swept — a balance
3110
+ * below the asset's minimum waits for a later deposit) and then, on the hub
3111
+ * chain, straight to `DEPOSITED` when the sweep lands. A deposit on another
3112
+ * chain is bridged by CCTP: `BURNED` (swept off the source chain),
3113
+ * `ATTESTING` (waiting for Circle's attestation), `ATTESTED`, `SETTLING`
3114
+ * (minted on the hub, being swept into the exchange) and `DEPOSITED`.
3115
+ * `FAILED` means the sweep returned the funds to the depositor's wallet
3116
+ * (`failureReason` `REFUNDED`): the exchange was paused, the user is blocked,
3117
+ * or the token is not accepted.
3118
+ *
3119
+ * Sweeps move balances rather than individual transfers, so a sweep that
3120
+ * collected several deposits is attributed to each of them first in, first
3121
+ * out. Deposits bridged by a route other than CCTP stay at `BURNED`.
3122
+ *
3123
+ * Authenticated: the deposits returned are those credited to the session's
3124
+ * own address.
3125
+ */
3126
+ get: operations["get_sweeper_deposit_status"];
3127
+ put?: never;
3128
+ post?: never;
3129
+ delete?: never;
3130
+ options?: never;
3131
+ head?: never;
3132
+ patch?: never;
3133
+ trace?: never;
3134
+ };
2972
3135
  "/api/v1/sweeper/register": {
2973
3136
  parameters: {
2974
3137
  query?: never;
@@ -3503,6 +3666,30 @@ export interface components {
3503
3666
  */
3504
3667
  version?: number | null;
3505
3668
  };
3669
+ ActiveTraderWindow: {
3670
+ /**
3671
+ * @description Rolling window ending at asOf: 1h, 24h, or 7d
3672
+ * @example 24h
3673
+ */
3674
+ window?: string | null;
3675
+ /**
3676
+ * Format: int64
3677
+ * @description Distinct maker or taker user IDs in executed trade records in this window, including system IDs on liquidation and ADL fills; all counts are null when this window is suppressed
3678
+ */
3679
+ activeTraderCount?: number | null;
3680
+ /**
3681
+ * Format: int64
3682
+ * @description Distinct taker buyer user IDs in executed trade records in this window, including system IDs on liquidation and ADL fills; all counts are null when this window is suppressed
3683
+ */
3684
+ takerBuyerCount?: number | null;
3685
+ /**
3686
+ * Format: int64
3687
+ * @description Distinct taker seller user IDs in executed trade records in this window, including system IDs on liquidation and ADL fills; all counts are null when this window is suppressed
3688
+ */
3689
+ takerSellerCount?: number | null;
3690
+ /** @description True when any user count in this window is below five; all counts in the window are then null */
3691
+ suppressed?: boolean | null;
3692
+ };
3506
3693
  AddFollowPositionMarginRequest: {
3507
3694
  /**
3508
3695
  * Format: uuid
@@ -5045,7 +5232,7 @@ export interface components {
5045
5232
  */
5046
5233
  useMasterBalance?: boolean | null;
5047
5234
  /**
5048
- * @description Client-assigned idempotency key (max 36 chars), unique per user and application. A duplicate is rejected with 409.
5235
+ * @description Client-assigned idempotency key (max 36 chars), unique per user and application while the parent is live and for a reservation lifetime after it ends (30 days by default, operator-configurable). A duplicate inside that window is rejected with 409; after it the key may be used again.
5049
5236
  * @example oms-3f6a1c
5050
5237
  */
5051
5238
  clientTwapId?: string | null;
@@ -5726,6 +5913,10 @@ export interface components {
5726
5913
  */
5727
5914
  clientId?: string | null;
5728
5915
  };
5916
+ GetDepositStatusResponse: {
5917
+ /** @description The caller's deposits made by the transaction, in chain then log order; empty until the sweeper has indexed it */
5918
+ deposits?: components["schemas"]["SweeperDeposit"][] | null;
5919
+ };
5729
5920
  GetFaucetInfoResponse: {
5730
5921
  /**
5731
5922
  * Format: uint32
@@ -5807,6 +5998,36 @@ export interface components {
5807
5998
  GetLimitsResponse: {
5808
5999
  limits?: components["schemas"]["SubAccountLimit"][] | null;
5809
6000
  };
6001
+ /** @description Populated UTC-aligned buckets of long/short liquidation totals. Buckets with no events on either side are omitted. */
6002
+ GetLiquidationMetricsResponse: {
6003
+ /**
6004
+ * Format: uuid
6005
+ * @description Trading pair UUID
6006
+ */
6007
+ tradingPairId?: string | null;
6008
+ /**
6009
+ * @description Quote asset denomination for mark notionals; no USD FX conversion
6010
+ * @example USDC
6011
+ */
6012
+ quoteAssetSymbol?: string | null;
6013
+ /**
6014
+ * @description UTC-aligned bucket size
6015
+ * @example 5m
6016
+ */
6017
+ interval?: string | null;
6018
+ /**
6019
+ * Format: int64
6020
+ * @description Inclusive selected range start as Unix milliseconds
6021
+ */
6022
+ startTime?: number | null;
6023
+ /**
6024
+ * Format: int64
6025
+ * @description Exclusive selected range end as Unix milliseconds
6026
+ */
6027
+ endTime?: number | null;
6028
+ /** @description Populated UTC-aligned buckets; intervals with no events are omitted. */
6029
+ buckets?: components["schemas"]["LiquidationMetricsBucket"][] | null;
6030
+ };
5810
6031
  GetMarginAccountMovementsResponse: {
5811
6032
  movements?: components["schemas"]["MarginAccountMovement"][] | null;
5812
6033
  /** Format: uint32 */
@@ -6400,7 +6621,7 @@ export interface components {
6400
6621
  postOnly?: boolean | null;
6401
6622
  /**
6402
6623
  * Format: int64
6403
- * @description Opaque, compare-only revision counter for this order's state: the sequencer step that wrote it. A strictly higher value is strictly newer state for that order. The SAME counter is carried on every order WebSocket event and on the `orders` snapshot frame, so a reconnecting client reconciles on `(id, version)` — take the REST row when `snapshot.version >= local.version`, else keep local state. Note `>=`, not `>`: on the stream, equal versions mean the SAME STEP rather than identical state, because one step emits several events for one order (an `OrderPlaced` and then its fills) and a batch shares one step across every item. A REST row is that step's FINAL state, so it wins a tie. Between two REST reads the comparison is simpler — equal there does mean identical state. Do not read anything else into the number: it is not a count of updates, consecutive values are not expected (it is drawn from a global sequence shared by every order, so per-order values are sparse and gaps are normal), and it is not comparable across different orders. Absent means unknown: an order last written before this field existed. Fall back to a full field comparison for those rather than treating absent as version zero — and note that a comparison against an absent value is false in both directions, so an order held locally without one is never refreshed by the merge above; take the REST row unconditionally for those. Reconciling on this counter does NOT on its own close a reconnect gap: an order that filled or was cancelled while the socket was down appears in neither the resting snapshot nor the stream, so recover fills from `listUserTrades` (ordered by execution time) and resolve anything your local state believes is resting that the snapshot no longer lists with a targeted `getOrder`. Unlike `updatedAt`, this value is identical on every REST endpoint that serves the same order state, and never advances without a state change.
6624
+ * @description Opaque, compare-only revision counter for this order's state: the sequencer step that wrote it. A strictly higher value is strictly newer state for that order. The SAME counter is carried on every order WebSocket event and on the `orders` snapshot frame, so a reconnecting client reconciles on `(id, version)` — take the REST row when `snapshot.version >= local.version`, else keep local state. Note `>=`, not `>`: on the stream, equal versions mean the SAME STEP rather than identical state, because one step emits several events for one order (an `OrderPlaced` and then its fills) and a batch shares one step across every item. A REST row is that step's FINAL state, so it wins a tie. Between two REST reads the comparison is simpler — equal there does mean identical state. Do not read anything else into the number: it is not a count of updates, consecutive values are not expected (it is drawn from a global sequence shared by every order, so per-order values are sparse and gaps are normal), and it is not comparable across different orders. Absent means unknown: an order last written before this field existed. Fall back to a full field comparison for those rather than treating absent as version zero — and note that a comparison against an absent value is false in both directions, so an order held locally without one is never refreshed by the merge above; take the REST row unconditionally for those. Reconciling on this counter does NOT on its own close a reconnect gap: an order that filled or was cancelled while the socket was down appears in neither the resting snapshot nor the stream, so recover fills from `getUserTrades` (`GET /api/v1/accounts/trades`, newest first) and resolve anything your local state believes is resting that the snapshot no longer lists with a targeted `getOrder`. Unlike `updatedAt`, this value is identical on every REST endpoint that serves the same order state, and never advances without a state change.
6404
6625
  * @example 918342
6405
6626
  */
6406
6627
  version?: number | null;
@@ -6505,6 +6726,11 @@ export interface components {
6505
6726
  /** @description The market's full margin ladder, ascending by lowerBoundNotional and always non-empty (a market with no configured brackets reports a single tier). A position's bracket is the LAST tier whose lowerBoundNotional is at or below its notional, abs(quantity) x markPrice. */
6506
6727
  riskTiers?: components["schemas"]["RiskTier"][] | null;
6507
6728
  updatedAt?: string | null;
6729
+ /**
6730
+ * @description Quote notional Q_m that each funding premium sample walks through each side of the book to read the market's impact bid and impact ask. Set per market; markets start at 2000.
6731
+ * @example 2000
6732
+ */
6733
+ fundingImpactNotional?: string | null;
6508
6734
  };
6509
6735
  GetPerpMarketSummaryResponse: {
6510
6736
  /** Format: uuid */
@@ -7061,6 +7287,36 @@ export interface components {
7061
7287
  */
7062
7288
  tradingMode?: string | null;
7063
7289
  };
7290
+ /** @description Taker buy/sell quote notional, net flow and cumulative volume delta for a bounded time range. All executed trades, including liquidation and ADL fills, are included. Empty buckets are omitted. Buckets that closed more than two minutes before the request may be served from a per-replica cache for up to ten minutes. */
7291
+ GetTradeFlowResponse: {
7292
+ /**
7293
+ * Format: uuid
7294
+ * @description Trading pair UUID
7295
+ */
7296
+ tradingPairId?: string | null;
7297
+ /**
7298
+ * @description Quote asset used for all notional values, with no USD conversion
7299
+ * @example USDC
7300
+ */
7301
+ quoteAssetSymbol?: string | null;
7302
+ /**
7303
+ * @description UTC-aligned bucket size
7304
+ * @example 5m
7305
+ */
7306
+ interval?: string | null;
7307
+ /**
7308
+ * Format: int64
7309
+ * @description Inclusive selected start time as Unix milliseconds
7310
+ */
7311
+ startTime?: number | null;
7312
+ /**
7313
+ * Format: int64
7314
+ * @description Exclusive selected end time as Unix milliseconds
7315
+ */
7316
+ endTime?: number | null;
7317
+ /** @description Populated UTC-aligned buckets; intervals without trades are omitted. */
7318
+ buckets?: components["schemas"]["TradeFlowBucket"][] | null;
7319
+ };
7064
7320
  GetTraderCodeInfoResponse: {
7065
7321
  /**
7066
7322
  * @description The resolved TraderCode (normalized wallet address)
@@ -7068,6 +7324,45 @@ export interface components {
7068
7324
  */
7069
7325
  code?: string | null;
7070
7326
  };
7327
+ /** @description Current public long/short account positioning and active trader aggregates. Accounts are classified by net position across OPEN risk buckets. Account identifiers are never returned; position metrics are null when either side has fewer than five accounts. Responses may be reused from a per-pair cache for up to 30 seconds. */
7328
+ GetTraderMetricsResponse: {
7329
+ /**
7330
+ * Format: uuid
7331
+ * @description Trading pair UUID
7332
+ */
7333
+ tradingPairId?: string | null;
7334
+ /**
7335
+ * @description Quote asset symbol for this trading pair
7336
+ * @example USDC
7337
+ */
7338
+ quoteAssetSymbol?: string | null;
7339
+ /**
7340
+ * Format: int64
7341
+ * @description Snapshot calculation time in Unix milliseconds
7342
+ * @example 1736742000000
7343
+ */
7344
+ asOf?: number | null;
7345
+ /** @description True when either net-long or net-short side has fewer than five margin accounts; all position split fields are then null */
7346
+ positionMetricsSuppressed?: boolean | null;
7347
+ /**
7348
+ * Format: int64
7349
+ * @description Distinct margin accounts with positive net position across OPEN risk buckets; null when suppressed
7350
+ */
7351
+ longAccountCount?: number | null;
7352
+ /**
7353
+ * Format: int64
7354
+ * @description Distinct margin accounts with negative net position across OPEN risk buckets; null when suppressed
7355
+ */
7356
+ shortAccountCount?: number | null;
7357
+ /** @description Long account count divided by long plus short account counts, rounded to six decimal places; null when suppressed */
7358
+ longAccountShare?: string | null;
7359
+ /** @description Short account count divided by long plus short account counts, rounded to six decimal places; null when suppressed */
7360
+ shortAccountShare?: string | null;
7361
+ /** @description Net-long account count divided by net-short account count, rounded to six decimal places; null when suppressed */
7362
+ accountRatio?: string | null;
7363
+ /** @description Active-trader counts grouped by rolling time window. */
7364
+ activeTraderWindows?: components["schemas"]["ActiveTraderWindow"][] | null;
7365
+ };
7071
7366
  /** @description Recent trades for a trading pair. */
7072
7367
  GetTradesResponse: {
7073
7368
  trades?: components["schemas"]["PublicTrade"][] | null;
@@ -7552,6 +7847,86 @@ export interface components {
7552
7847
  */
7553
7848
  earned?: string | null;
7554
7849
  };
7850
+ /** @description One public per-position liquidation event. markNotional is positionSize multiplied by the mark price captured with the event, in quote-asset units. */
7851
+ LiquidationEvent: {
7852
+ /**
7853
+ * Format: uuid
7854
+ * @description Stable identifier of the stored liquidation event; use it to deduplicate REST backfills and WebSocket updates
7855
+ */
7856
+ eventId?: string | null;
7857
+ /**
7858
+ * Format: int64
7859
+ * @description Event time as Unix milliseconds
7860
+ * @example 1736742000123
7861
+ */
7862
+ timestamp?: number | null;
7863
+ /**
7864
+ * Format: uuid
7865
+ * @description Trading pair UUID
7866
+ */
7867
+ tradingPairId?: string | null;
7868
+ /**
7869
+ * @description Public wallet address associated with the liquidated position
7870
+ * @example 0x1234567890abcdef1234567890abcdef12345678
7871
+ */
7872
+ wallet?: string | null;
7873
+ /**
7874
+ * @description Liquidated position side: LONG or SHORT
7875
+ * @example LONG
7876
+ * @enum {string|null}
7877
+ */
7878
+ side?: "LONG" | "SHORT" | null;
7879
+ /**
7880
+ * @description Absolute position size in base-asset units
7881
+ * @example 0.25
7882
+ */
7883
+ positionSize?: string | null;
7884
+ /**
7885
+ * @description Mark price captured for this event, in quote units per base unit
7886
+ * @example 95410.25
7887
+ */
7888
+ markPrice?: string | null;
7889
+ /**
7890
+ * @description Position size multiplied by the event-time mark price, in quote-asset units; no USD FX conversion
7891
+ * @example 23852.5625
7892
+ */
7893
+ markNotional?: string | null;
7894
+ /**
7895
+ * @description Quote asset denomination of markNotional
7896
+ * @example USDC
7897
+ */
7898
+ quoteAssetSymbol?: string | null;
7899
+ };
7900
+ LiquidationMetricsBucket: {
7901
+ /**
7902
+ * Format: int64
7903
+ * @description UTC-aligned bucket start as Unix milliseconds
7904
+ * @example 1736742000000
7905
+ */
7906
+ bucketStart?: number | null;
7907
+ /** @description Long-side totals; zero-valued when the bucket has no long-side events */
7908
+ long?: components["schemas"]["LiquidationSideMetrics"] | null;
7909
+ /** @description Short-side totals; zero-valued when the bucket has no short-side events */
7910
+ short?: components["schemas"]["LiquidationSideMetrics"] | null;
7911
+ };
7912
+ LiquidationSideMetrics: {
7913
+ /**
7914
+ * Format: int64
7915
+ * @description Number of stored liquidation-event rows for this position side in the bucket; not a unique-wallet count
7916
+ * @example 12
7917
+ */
7918
+ eventCount?: number | null;
7919
+ /**
7920
+ * @description Sum of event position sizes in base-asset units
7921
+ * @example 3.75
7922
+ */
7923
+ positionSize?: string | null;
7924
+ /**
7925
+ * @description Sum of each event's positionSize multiplied by its event-time markPrice, in quote-asset units
7926
+ * @example 358163.4375
7927
+ */
7928
+ markNotional?: string | null;
7929
+ };
7555
7930
  ListAllFundingHistoryResponse: {
7556
7931
  records?: components["schemas"]["FundingRecord"][] | null;
7557
7932
  /**
@@ -7729,6 +8104,12 @@ export interface components {
7729
8104
  /** @description The calling owner's delegated agents */
7730
8105
  agents?: components["schemas"]["DelegatedAgent"][] | null;
7731
8106
  };
8107
+ ListDepositsResponse: {
8108
+ /** @description This page of the caller's deposits, newest recorded first */
8109
+ deposits?: components["schemas"]["SweeperDeposit"][] | null;
8110
+ /** @description Cursor for the next page; empty when this page is the last */
8111
+ nextPageToken?: string | null;
8112
+ };
7732
8113
  ListFollowLeaderPositionsResponse: {
7733
8114
  positions?: components["schemas"]["LeadTraderOpenPosition"][] | null;
7734
8115
  };
@@ -7828,6 +8209,23 @@ export interface components {
7828
8209
  /** @description Time of the leaderboard snapshot these rows come from (RFC 3339) */
7829
8210
  asOf?: string | null;
7830
8211
  };
8212
+ ListLiquidationEventsResponse: {
8213
+ /**
8214
+ * Format: uuid
8215
+ * @description Trading pair UUID
8216
+ */
8217
+ tradingPairId?: string | null;
8218
+ /** @description Events in reverse chronological order (newest first). Each row contains only public event fields. */
8219
+ events?: components["schemas"]["LiquidationEvent"][] | null;
8220
+ /**
8221
+ * Format: uint32
8222
+ * @description Number of events requested for this page
8223
+ * @example 50
8224
+ */
8225
+ pageSize?: number | null;
8226
+ /** @description Opaque cursor for the next page; empty when the page is the end of the ordered result */
8227
+ nextPageToken?: string | null;
8228
+ };
7831
8229
  ListManagedMarketAssignmentsResponse: {
7832
8230
  /** @description Expected assignments, including phases currently unable to quote. */
7833
8231
  items?: components["schemas"]["ManagedMarketAssignment"][] | null;
@@ -8751,6 +9149,7 @@ export interface components {
8751
9149
  spotEquity?: string | null;
8752
9150
  perpsEquity?: string | null;
8753
9151
  unrealizedPnl?: string | null;
9152
+ /** @description What the user can spend or withdraw now, in USD: the quote asset (USDC) available on spot, at face value, plus the parent margin account's withdrawableCollateral, the same figure the portfolio margin endpoint serves. Other spot assets and unrealized margin gains are equity, not availability, and are not counted. Prices nothing, so it is served even when valuationStatus is partial. */
8754
9153
  availableValue?: string | null;
8755
9154
  };
8756
9155
  PortfolioWindow: {
@@ -9936,20 +10335,6 @@ export interface components {
9936
10335
  * @example 20030.00
9937
10336
  */
9938
10337
  buyOrderLockAmount?: string | null;
9939
- /**
9940
- * Format: int32
9941
- * @deprecated
9942
- * @description DEPRECATED: whole-basis-points taker rate. An integer cannot represent fractional tiered rates (e.g. 6.5), so this echoes the flat trading_pairs column, NOT the tier-resolved rate the ledger charges. Kept for backward compatibility. Use monaco_taker_fee_bps_exact (or GET /api/v1/fees/tier).
9943
- * @example 10
9944
- */
9945
- monacoTakerFeeBps?: number | null;
9946
- /**
9947
- * Format: int32
9948
- * @deprecated
9949
- * @description DEPRECATED: whole-basis-points maker rebate. An integer cannot represent fractional tiered rebates (e.g. -1.15), so this echoes the flat trading_pairs column, NOT the tier-resolved rate. Kept for backward compatibility. Use monaco_maker_rebate_bps_exact (or GET /api/v1/fees/tier).
9950
- * @example -2
9951
- */
9952
- monacoMakerRebateBps?: number | null;
9953
10338
  /**
9954
10339
  * Format: int32
9955
10340
  * @description Application taker fee rate in basis points
@@ -9978,12 +10363,12 @@ export interface components {
9978
10363
  */
9979
10364
  slippageToleranceBps?: number | null;
9980
10365
  /**
9981
- * @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". Prefer this over the deprecated integer monaco_taker_fee_bps.
10366
+ * @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".
9982
10367
  * @example 6.5
9983
10368
  */
9984
10369
  monacoTakerFeeBpsExact?: string | null;
9985
10370
  /**
9986
- * @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". Prefer this over the deprecated integer monaco_maker_rebate_bps.
10371
+ * @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".
9987
10372
  * @example -1
9988
10373
  */
9989
10374
  monacoMakerRebateBpsExact?: string | null;
@@ -10375,15 +10760,92 @@ export interface components {
10375
10760
  */
10376
10761
  minSweepRaw?: string | null;
10377
10762
  };
10378
- TpSlLeg: {
10379
- triggerPrice?: string | null;
10380
- orderType?: string | null;
10381
- limitPrice?: string | null;
10382
- quantity?: string | null;
10383
- timeInForce?: string | null;
10384
- /** Format: int32 */
10385
- slippageToleranceBps?: number | null;
10386
- expiresAt?: string | null;
10763
+ /**
10764
+ * @description One transfer into one of the caller's deposit addresses, and how far it has
10765
+ * got. Amounts are raw base units of the token on the source chain.
10766
+ * Timestamps are RFC3339 and record when the sweeper observed each step.
10767
+ */
10768
+ SweeperDeposit: {
10769
+ /** @description The deposit transaction's hash, lowercase */
10770
+ txHash?: string | null;
10771
+ /**
10772
+ * Format: int64
10773
+ * @description EVM chain id the deposit was made on, as listed by `get_sweeper_chains`
10774
+ * @example 8453
10775
+ */
10776
+ sourceChainId?: number | null;
10777
+ /**
10778
+ * Format: uint32
10779
+ * @description The source chain's CCTP domain, once the deposit's CCTP burn is known; absent for hub deposits and before then
10780
+ * @example 6
10781
+ */
10782
+ sourceDomain?: number | null;
10783
+ /** @description The address the deposit is credited to (the caller's own), lowercase */
10784
+ beneficiary?: string | null;
10785
+ /** @description Client id of the application the deposit address was registered under */
10786
+ clientId?: string | null;
10787
+ /**
10788
+ * @description The ledger the deposit address asks to be credited to
10789
+ * @enum {string|null}
10790
+ */
10791
+ depositTarget?: "SPOT" | "MARGIN" | null;
10792
+ /** @description The deposited token's address on the source chain, lowercase */
10793
+ token?: string | null;
10794
+ /**
10795
+ * @description Amount deposited, raw base units of `token`
10796
+ * @example 5000000
10797
+ */
10798
+ amountRaw?: string | null;
10799
+ /**
10800
+ * @description Amount credited to the exchange, once `DEPOSITED`. Absent when one CCTP burn carried several deposits (its fee cannot be split between them)
10801
+ * @example 4999000
10802
+ */
10803
+ creditedAmountRaw?: string | null;
10804
+ /**
10805
+ * @description `amountRaw` minus `creditedAmountRaw` (Circle's fast-lane fee for a CCTP deposit, 0 on the hub); absent whenever `creditedAmountRaw` is
10806
+ * @example 1000
10807
+ */
10808
+ feeChargedRaw?: string | null;
10809
+ /**
10810
+ * @description The CCTP lane the burn requested, once the burn is known; absent for hub deposits
10811
+ * @enum {string|null}
10812
+ */
10813
+ transferType?: "FAST" | "STANDARD" | null;
10814
+ /**
10815
+ * @description Where the deposit is; see the operation description
10816
+ * @example ATTESTING
10817
+ * @enum {string|null}
10818
+ */
10819
+ status?: "RECEIVED" | "BURNED" | "ATTESTING" | "ATTESTED" | "SETTLING" | "DEPOSITED" | "FAILED" | null;
10820
+ /**
10821
+ * @description Why the deposit `FAILED`
10822
+ * @enum {string|null}
10823
+ */
10824
+ failureReason?: "REFUNDED" | null;
10825
+ /** @description The source-chain transaction that swept the deposit (the CCTP burn for a remote deposit), once swept */
10826
+ sweepTx?: string | null;
10827
+ /** @description The hub transaction that deposited the funds into the exchange, once `DEPOSITED` (the sweep itself for a hub deposit) */
10828
+ settleTx?: string | null;
10829
+ /** @description When Circle's attestation was first seen */
10830
+ attestedAt?: string | null;
10831
+ /** @description When the deposit was seen `DEPOSITED` */
10832
+ settledAt?: string | null;
10833
+ /** @description When the deposit was seen `FAILED` */
10834
+ failedAt?: string | null;
10835
+ /** @description When the sweeper indexed the deposit */
10836
+ createdAt?: string | null;
10837
+ /** @description When the sweeper last observed progress on the deposit */
10838
+ updatedAt?: string | null;
10839
+ };
10840
+ TpSlLeg: {
10841
+ triggerPrice?: string | null;
10842
+ orderType?: string | null;
10843
+ limitPrice?: string | null;
10844
+ quantity?: string | null;
10845
+ timeInForce?: string | null;
10846
+ /** Format: int32 */
10847
+ slippageToleranceBps?: number | null;
10848
+ expiresAt?: string | null;
10387
10849
  /**
10388
10850
  * @description Resolve the full live position size when triggered. Mutually exclusive
10389
10851
  * with quantity. For compatibility, omitting both quantity and this field
@@ -10437,6 +10899,28 @@ export interface components {
10437
10899
  */
10438
10900
  tradeId?: string | null;
10439
10901
  };
10902
+ TradeFlowBucket: {
10903
+ /**
10904
+ * Format: int64
10905
+ * @description UTC-aligned bucket start as Unix milliseconds
10906
+ */
10907
+ bucketStart?: number | null;
10908
+ /** @description Executed quote notional where maker side was SELL, in quote-asset units */
10909
+ takerBuyNotional?: string | null;
10910
+ /** @description Executed quote notional where maker side was BUY, in quote-asset units */
10911
+ takerSellNotional?: string | null;
10912
+ /** @description Taker buy notional divided by taker sell notional, rounded to six decimal places; null when sell notional is zero */
10913
+ buySellRatio?: string | null;
10914
+ /** @description Taker buy notional minus taker sell notional, in quote-asset units */
10915
+ netNotional?: string | null;
10916
+ /** @description Cumulative net notional from the selected range start through this bucket, in quote-asset units */
10917
+ cumulativeVolumeDelta?: string | null;
10918
+ /**
10919
+ * Format: int64
10920
+ * @description Number of executed trades in this bucket
10921
+ */
10922
+ tradeCount?: number | null;
10923
+ };
10440
10924
  TraderCodeResponse: {
10441
10925
  /**
10442
10926
  * @description Your TraderCode — your normalized wallet address (clients render it `Monaco - <address>`). Always present; the permanent reward identity and a public alias even when a custom handle is set.
@@ -10661,6 +11145,8 @@ export interface components {
10661
11145
  * trading pair and so cannot be named any other way. Values: ISOLATED, CROSS.
10662
11146
  */
10663
11147
  marginMode?: string | null;
11148
+ /** @description Optional submission identity, shared with order create (same 1-64 characters from [A-Za-z0-9._:-], same per user and application namespace). Retrying the same key and request within 15 minutes of the original acceptance returns the original transfer result, including its movementId, without moving money again; balance figures in a replayed response are as of the retry. The same key with a different request, or a key already used on another endpoint, returns IDEMPOTENCY_KEY_CONFLICT (HTTP 409 / gRPC ALREADY_EXISTS). ORDER_SUBMISSION_UNAVAILABLE and ORDER_SUBMISSION_CAPACITY_EXCEEDED (HTTP 503 / gRPC UNAVAILABLE) mean the outcome is held but cannot be read, or no new key can be accepted: retry with the same key and request. The window does not extend on retries; after it the key moves money again. Generate a fresh key for each intended transfer and keep it across retries of that transfer. */
11149
+ idempotencyKey?: string | null;
10664
11150
  };
10665
11151
  TransferCollateralFromMarginAccountResponse: {
10666
11152
  movementId?: string | null;
@@ -10682,11 +11168,15 @@ export interface components {
10682
11168
  TransferCollateralFromParentMarginAccountRequest: {
10683
11169
  asset?: string | null;
10684
11170
  amount?: string | null;
11171
+ /** @description Optional submission identity, shared with order create (same 1-64 characters from [A-Za-z0-9._:-], same per user and application namespace). Retrying the same key and request within 15 minutes of the original acceptance returns the original transfer result, including its movementId, without moving money again; balance figures in a replayed response are as of the retry. The same key with a different request, or a key already used on another endpoint, returns IDEMPOTENCY_KEY_CONFLICT (HTTP 409 / gRPC ALREADY_EXISTS). ORDER_SUBMISSION_UNAVAILABLE and ORDER_SUBMISSION_CAPACITY_EXCEEDED (HTTP 503 / gRPC UNAVAILABLE) mean the outcome is held but cannot be read, or no new key can be accepted: retry with the same key and request. The window does not extend on retries; after it the key moves money again. Generate a fresh key for each intended transfer and keep it across retries of that transfer. */
11172
+ idempotencyKey?: string | null;
10685
11173
  };
10686
11174
  TransferCollateralFromSubAccountRequest: {
10687
11175
  /** @description The caller's sub-account the collateral leaves. */
10688
11176
  marginAccountId?: string | null;
10689
11177
  amount?: string | null;
11178
+ /** @description Optional submission identity, shared with order create (same 1-64 characters from [A-Za-z0-9._:-], same per user and application namespace). Retrying the same key and request within 15 minutes of the original acceptance returns the original transfer result, including its movementId, without moving money again; balance figures in a replayed response are as of the retry. The same key with a different request, or a key already used on another endpoint, returns IDEMPOTENCY_KEY_CONFLICT (HTTP 409 / gRPC ALREADY_EXISTS). ORDER_SUBMISSION_UNAVAILABLE and ORDER_SUBMISSION_CAPACITY_EXCEEDED (HTTP 503 / gRPC UNAVAILABLE) mean the outcome is held but cannot be read, or no new key can be accepted: retry with the same key and request. The window does not extend on retries; after it the key moves money again. Generate a fresh key for each intended transfer and keep it across retries of that transfer. */
11179
+ idempotencyKey?: string | null;
10690
11180
  };
10691
11181
  TransferCollateralRequest: {
10692
11182
  /** @description Collateral asset symbol or address. */
@@ -10696,6 +11186,8 @@ export interface components {
10696
11186
  from?: components["schemas"]["CollateralTransferEndpoint"] | null;
10697
11187
  /** @description Where the collateral goes. */
10698
11188
  to?: components["schemas"]["CollateralTransferEndpoint"] | null;
11189
+ /** @description Optional submission identity, shared with order create (same 1-64 characters from [A-Za-z0-9._:-], same per user and application namespace). Retrying the same key and request within 15 minutes of the original acceptance returns the original transfer result, including its movementId, without moving money again; balance figures in a replayed response are as of the retry. The same key with a different request, or a key already used on another endpoint, returns IDEMPOTENCY_KEY_CONFLICT (HTTP 409 / gRPC ALREADY_EXISTS). ORDER_SUBMISSION_UNAVAILABLE and ORDER_SUBMISSION_CAPACITY_EXCEEDED (HTTP 503 / gRPC UNAVAILABLE) mean the outcome is held but cannot be read, or no new key can be accepted: retry with the same key and request. The window does not extend on retries; after it the key moves money again. Generate a fresh key for each intended transfer and keep it across retries of that transfer. */
11190
+ idempotencyKey?: string | null;
10699
11191
  };
10700
11192
  TransferCollateralResponse: {
10701
11193
  movementId?: string | null;
@@ -10721,6 +11213,8 @@ export interface components {
10721
11213
  tradingPairId?: string | null;
10722
11214
  /** @description Optional strategy key echoed in responses when callers scope a risk bucket. */
10723
11215
  strategyKey?: string | null;
11216
+ /** @description Optional submission identity, shared with order create (same 1-64 characters from [A-Za-z0-9._:-], same per user and application namespace). Retrying the same key and request within 15 minutes of the original acceptance returns the original transfer result, including its movementId, without moving money again; balance figures in a replayed response are as of the retry. The same key with a different request, or a key already used on another endpoint, returns IDEMPOTENCY_KEY_CONFLICT (HTTP 409 / gRPC ALREADY_EXISTS). ORDER_SUBMISSION_UNAVAILABLE and ORDER_SUBMISSION_CAPACITY_EXCEEDED (HTTP 503 / gRPC UNAVAILABLE) mean the outcome is held but cannot be read, or no new key can be accepted: retry with the same key and request. The window does not extend on retries; after it the key moves money again. Generate a fresh key for each intended transfer and keep it across retries of that transfer. */
11217
+ idempotencyKey?: string | null;
10724
11218
  };
10725
11219
  TransferCollateralToMarginAccountResponse: {
10726
11220
  movementId?: string | null;
@@ -10764,6 +11258,8 @@ export interface components {
10764
11258
  TransferCollateralToParentMarginAccountRequest: {
10765
11259
  asset?: string | null;
10766
11260
  amount?: string | null;
11261
+ /** @description Optional submission identity, shared with order create (same 1-64 characters from [A-Za-z0-9._:-], same per user and application namespace). Retrying the same key and request within 15 minutes of the original acceptance returns the original transfer result, including its movementId, without moving money again; balance figures in a replayed response are as of the retry. The same key with a different request, or a key already used on another endpoint, returns IDEMPOTENCY_KEY_CONFLICT (HTTP 409 / gRPC ALREADY_EXISTS). ORDER_SUBMISSION_UNAVAILABLE and ORDER_SUBMISSION_CAPACITY_EXCEEDED (HTTP 503 / gRPC UNAVAILABLE) mean the outcome is held but cannot be read, or no new key can be accepted: retry with the same key and request. The window does not extend on retries; after it the key moves money again. Generate a fresh key for each intended transfer and keep it across retries of that transfer. */
11262
+ idempotencyKey?: string | null;
10767
11263
  };
10768
11264
  TransferCollateralToRiskBucketRequest: {
10769
11265
  asset?: string | null;
@@ -10819,11 +11315,15 @@ export interface components {
10819
11315
  * sub-account's buckets belong to its follow and are refused.
10820
11316
  */
10821
11317
  marginAccountId?: string | null;
11318
+ /** @description Optional submission identity, shared with order create (same 1-64 characters from [A-Za-z0-9._:-], same per user and application namespace). Retrying the same key and request within 15 minutes of the original acceptance returns the original transfer result, including its movementId, without moving money again; balance figures in a replayed response are as of the retry. The same key with a different request, or a key already used on another endpoint, returns IDEMPOTENCY_KEY_CONFLICT (HTTP 409 / gRPC ALREADY_EXISTS). ORDER_SUBMISSION_UNAVAILABLE and ORDER_SUBMISSION_CAPACITY_EXCEEDED (HTTP 503 / gRPC UNAVAILABLE) mean the outcome is held but cannot be read, or no new key can be accepted: retry with the same key and request. The window does not extend on retries; after it the key moves money again. Generate a fresh key for each intended transfer and keep it across retries of that transfer. */
11319
+ idempotencyKey?: string | null;
10822
11320
  };
10823
11321
  TransferCollateralToSubAccountRequest: {
10824
11322
  /** @description The caller's sub-account that receives the collateral. */
10825
11323
  marginAccountId?: string | null;
10826
11324
  amount?: string | null;
11325
+ /** @description Optional submission identity, shared with order create (same 1-64 characters from [A-Za-z0-9._:-], same per user and application namespace). Retrying the same key and request within 15 minutes of the original acceptance returns the original transfer result, including its movementId, without moving money again; balance figures in a replayed response are as of the retry. The same key with a different request, or a key already used on another endpoint, returns IDEMPOTENCY_KEY_CONFLICT (HTTP 409 / gRPC ALREADY_EXISTS). ORDER_SUBMISSION_UNAVAILABLE and ORDER_SUBMISSION_CAPACITY_EXCEEDED (HTTP 503 / gRPC UNAVAILABLE) mean the outcome is held but cannot be read, or no new key can be accepted: retry with the same key and request. The window does not extend on retries; after it the key moves money again. Generate a fresh key for each intended transfer and keep it across retries of that transfer. */
11326
+ idempotencyKey?: string | null;
10827
11327
  };
10828
11328
  TransferRewardsRequest: {
10829
11329
  /**
@@ -11280,33 +11780,120 @@ export interface components {
11280
11780
  username?: string | null;
11281
11781
  };
11282
11782
  UserTrade: {
11783
+ /**
11784
+ * Format: uuid
11785
+ * @description Trade UUID
11786
+ * @example 123e4567-e89b-12d3-a456-426614174000
11787
+ */
11283
11788
  tradeId?: string | null;
11284
- /** Format: uuid */
11285
- orderId?: string | null;
11286
- positionId?: string | null;
11287
- /** Format: uuid */
11789
+ /**
11790
+ * Format: uuid
11791
+ * @description Trading pair UUID
11792
+ * @example 456e7890-e12b-12d3-a456-426614174000
11793
+ */
11288
11794
  tradingPairId?: string | null;
11289
- side?: string | null;
11795
+ /**
11796
+ * @description Execution price
11797
+ * @example 35000.00
11798
+ */
11290
11799
  price?: string | null;
11800
+ /**
11801
+ * @description Traded quantity
11802
+ * @example 0.5
11803
+ */
11291
11804
  quantity?: string | null;
11292
- liquidityRole?: string | null;
11293
11805
  /**
11294
- * @description Total fee this user paid on the trade, in raw quote units: for a taker,
11295
- * Monaco's taker fee plus the frontend's builder fee; for a maker, the maker
11296
- * fee (negative for a rebate) plus the frontend's maker add-on. Equals
11297
- * `monaco_fee + builder_fee`.
11806
+ * @description Quote volume (price * quantity)
11807
+ * @example 17500.00
11808
+ */
11809
+ quoteVolume?: string | null;
11810
+ /**
11811
+ * @description User's side: Buy or Sell
11812
+ * @example Buy
11813
+ */
11814
+ side?: string | null;
11815
+ /**
11816
+ * @description Total fee paid by this user for this trade. For a taker this is Monaco's taker fee plus the frontend's builder fee; for a maker it is the maker fee (negative for a rebate) plus the frontend's maker add-on. Equals `monacoFee + builderFee`.
11817
+ * @example 0.875
11298
11818
  */
11299
11819
  fee?: string | null;
11300
- realizedPnl?: string | null;
11301
- timestamp?: string | null;
11302
- /** @description Monaco's component of `fee`, in raw quote units. */
11820
+ /**
11821
+ * @description Token address of the fee
11822
+ * @example 0x6a86da986797d59a839d136db490292cd560c131
11823
+ */
11824
+ feeToken?: string | null;
11825
+ /**
11826
+ * @description Trade execution timestamp (RFC3339 with +00:00 offset)
11827
+ * @example 2023-11-13T10:30:00+00:00
11828
+ */
11829
+ executedAt?: string | null;
11830
+ /**
11831
+ * @description Trading mode: SPOT or MARGIN
11832
+ * @example SPOT
11833
+ */
11834
+ tradingMode?: string | null;
11835
+ /**
11836
+ * Format: uuid
11837
+ * @description Maker order UUID
11838
+ * @example 123e4567-e89b-12d3-a456-426614174000
11839
+ */
11840
+ makerOrderId?: string | null;
11841
+ /**
11842
+ * Format: uuid
11843
+ * @description Taker order UUID
11844
+ * @example 456e7890-e12b-12d3-a456-426614174000
11845
+ */
11846
+ takerOrderId?: string | null;
11847
+ /**
11848
+ * @description Traded quantity in smallest base-token unit
11849
+ * @example 500000000000000000
11850
+ */
11851
+ quantityRaw?: string | null;
11852
+ /**
11853
+ * @description Quote volume in smallest quote-token unit
11854
+ * @example 17500000000
11855
+ */
11856
+ quoteVolumeRaw?: string | null;
11857
+ /**
11858
+ * @description Total fee (`fee`) in smallest quote-token unit. Equals `monacoFeeRaw + builderFeeRaw`.
11859
+ * @example 875000
11860
+ */
11861
+ feeRaw?: string | null;
11862
+ /**
11863
+ * @description Settlement status: PENDING, SETTLED, or FAILED
11864
+ * @example SETTLED
11865
+ */
11866
+ settlementStatus?: string | null;
11867
+ /**
11868
+ * @description On-chain settlement transaction hash
11869
+ * @example 0xabc123
11870
+ */
11871
+ settlementTxHash?: string | null;
11872
+ /**
11873
+ * @description Monaco's component of `fee`
11874
+ * @example 0.875
11875
+ */
11303
11876
  monacoFee?: string | null;
11304
11877
  /**
11305
- * @description The frontend's builder fee component of `fee`, in raw quote units: for a
11306
- * taker, the builder fee; for a maker, the maker add-on, charged at the rate
11307
- * the order stored when it was placed. "0" when the frontend charges none.
11878
+ * @description Monaco's component of `feeRaw`, in smallest quote-token unit
11879
+ * @example 875000
11880
+ */
11881
+ monacoFeeRaw?: string | null;
11882
+ /**
11883
+ * @description The frontend's builder fee component of `fee`: for a taker, the builder fee its frontend charged; for a maker, the maker add-on its frontend charged at the rate the order stored when it was placed. "0" when the frontend charges none.
11884
+ * @example 0
11308
11885
  */
11309
11886
  builderFee?: string | null;
11887
+ /**
11888
+ * @description The frontend's builder fee component of `feeRaw`, in smallest quote-token unit
11889
+ * @example 0
11890
+ */
11891
+ builderFeeRaw?: string | null;
11892
+ /**
11893
+ * @description This user's role in the fill: MAKER or TAKER. A self-trade reads as MAKER.
11894
+ * @example TAKER
11895
+ */
11896
+ liquidityRole?: string | null;
11310
11897
  };
11311
11898
  VerifyRequest: {
11312
11899
  /**
@@ -12560,6 +13147,21 @@ export interface operations {
12560
13147
  * that produced the token.
12561
13148
  */
12562
13149
  pageToken?: string;
13150
+ /**
13151
+ * @description Optional margin account UUID filter: only trades where this user's side of
13152
+ * the fill was placed from this margin account. A self-trade is read as its
13153
+ * maker side, so it matches through its maker order's account. Like
13154
+ * `trading_pair_id`, a filtered response carries no `total`, and the filter
13155
+ * must match the request that produced a `page_token`.
13156
+ */
13157
+ marginAccountId?: string;
13158
+ /**
13159
+ * @description Optional order UUID filter: only trades where this user's side of the
13160
+ * fill was placed by this order. A self-trade is read as its maker side, so
13161
+ * it matches its maker order only. A filtered response carries no `total`,
13162
+ * and the filter must match the request that produced a `page_token`.
13163
+ */
13164
+ orderId?: string;
12563
13165
  };
12564
13166
  header?: never;
12565
13167
  path?: never;
@@ -16420,6 +17022,112 @@ export interface operations {
16420
17022
  };
16421
17023
  };
16422
17024
  };
17025
+ list_liquidation_events: {
17026
+ parameters: {
17027
+ query?: {
17028
+ /** @description Start time as Unix timestamp (milliseconds) */
17029
+ startTime?: number;
17030
+ /** @description End time as Unix timestamp (milliseconds) */
17031
+ endTime?: number;
17032
+ /** @description Events per page (max 1000) */
17033
+ pageSize?: number;
17034
+ /**
17035
+ * @description Opaque keyset cursor from the previous response. The token is bound to
17036
+ * this pair and the requested time filters.
17037
+ */
17038
+ pageToken?: string;
17039
+ };
17040
+ header?: never;
17041
+ path: {
17042
+ /** @example 893d2add-2f36-4ee7-b660-893d2add2f36 */
17043
+ tradingPairId: string;
17044
+ };
17045
+ cookie?: never;
17046
+ };
17047
+ requestBody?: never;
17048
+ responses: {
17049
+ /** @description OK */
17050
+ 200: {
17051
+ headers: {
17052
+ [name: string]: unknown;
17053
+ };
17054
+ content: {
17055
+ "application/json": components["schemas"]["ListLiquidationEventsResponse"];
17056
+ };
17057
+ };
17058
+ /** @description Invalid liquidation-event filter or page token */
17059
+ 400: {
17060
+ headers: {
17061
+ [name: string]: unknown;
17062
+ };
17063
+ content?: never;
17064
+ };
17065
+ /** @description Trading pair not found */
17066
+ 404: {
17067
+ headers: {
17068
+ [name: string]: unknown;
17069
+ };
17070
+ content?: never;
17071
+ };
17072
+ /** @description Internal server error */
17073
+ 500: {
17074
+ headers: {
17075
+ [name: string]: unknown;
17076
+ };
17077
+ content?: never;
17078
+ };
17079
+ };
17080
+ };
17081
+ get_liquidation_metrics: {
17082
+ parameters: {
17083
+ query?: {
17084
+ interval?: string;
17085
+ /** @description Start time as Unix timestamp (milliseconds) */
17086
+ startTime?: number;
17087
+ /** @description End time as Unix timestamp (milliseconds) */
17088
+ endTime?: number;
17089
+ };
17090
+ header?: never;
17091
+ path: {
17092
+ /** @example 893d2add-2f36-4ee7-b660-893d2add2f36 */
17093
+ tradingPairId: string;
17094
+ };
17095
+ cookie?: never;
17096
+ };
17097
+ requestBody?: never;
17098
+ responses: {
17099
+ /** @description OK */
17100
+ 200: {
17101
+ headers: {
17102
+ [name: string]: unknown;
17103
+ };
17104
+ content: {
17105
+ "application/json": components["schemas"]["GetLiquidationMetricsResponse"];
17106
+ };
17107
+ };
17108
+ /** @description Invalid interval or out-of-bounds time range */
17109
+ 400: {
17110
+ headers: {
17111
+ [name: string]: unknown;
17112
+ };
17113
+ content?: never;
17114
+ };
17115
+ /** @description Trading pair not found */
17116
+ 404: {
17117
+ headers: {
17118
+ [name: string]: unknown;
17119
+ };
17120
+ content?: never;
17121
+ };
17122
+ /** @description Internal server error */
17123
+ 500: {
17124
+ headers: {
17125
+ [name: string]: unknown;
17126
+ };
17127
+ content?: never;
17128
+ };
17129
+ };
17130
+ };
16423
17131
  get_mark_price: {
16424
17132
  parameters: {
16425
17133
  query?: never;
@@ -16563,6 +17271,101 @@ export interface operations {
16563
17271
  };
16564
17272
  };
16565
17273
  };
17274
+ get_trade_flow: {
17275
+ parameters: {
17276
+ query: {
17277
+ /** @description UTC-aligned bucket interval */
17278
+ interval: "1m" | "5m" | "1h";
17279
+ /** @description Unix timestamp in milliseconds; range is at most seven days */
17280
+ startTime: number;
17281
+ /** @description Unix timestamp in milliseconds; range is at most seven days */
17282
+ endTime: number;
17283
+ };
17284
+ header?: never;
17285
+ path: {
17286
+ /** @example 893d2add-2f36-4ee7-b660-893d2add2f36 */
17287
+ tradingPairId: string;
17288
+ };
17289
+ cookie?: never;
17290
+ };
17291
+ requestBody?: never;
17292
+ responses: {
17293
+ /** @description OK */
17294
+ 200: {
17295
+ headers: {
17296
+ [name: string]: unknown;
17297
+ };
17298
+ content: {
17299
+ "application/json": components["schemas"]["GetTradeFlowResponse"];
17300
+ };
17301
+ };
17302
+ /** @description Invalid or out-of-bounds time range */
17303
+ 400: {
17304
+ headers: {
17305
+ [name: string]: unknown;
17306
+ };
17307
+ content?: never;
17308
+ };
17309
+ /** @description Trading pair not found */
17310
+ 404: {
17311
+ headers: {
17312
+ [name: string]: unknown;
17313
+ };
17314
+ content?: never;
17315
+ };
17316
+ /** @description Internal server error */
17317
+ 500: {
17318
+ headers: {
17319
+ [name: string]: unknown;
17320
+ };
17321
+ content?: never;
17322
+ };
17323
+ };
17324
+ };
17325
+ get_trader_metrics: {
17326
+ parameters: {
17327
+ query?: never;
17328
+ header?: never;
17329
+ path: {
17330
+ /** @example 893d2add-2f36-4ee7-b660-893d2add2f36 */
17331
+ tradingPairId: string;
17332
+ };
17333
+ cookie?: never;
17334
+ };
17335
+ requestBody?: never;
17336
+ responses: {
17337
+ /** @description OK */
17338
+ 200: {
17339
+ headers: {
17340
+ [name: string]: unknown;
17341
+ };
17342
+ content: {
17343
+ "application/json": components["schemas"]["GetTraderMetricsResponse"];
17344
+ };
17345
+ };
17346
+ /** @description Invalid market request */
17347
+ 400: {
17348
+ headers: {
17349
+ [name: string]: unknown;
17350
+ };
17351
+ content?: never;
17352
+ };
17353
+ /** @description Trading pair not found */
17354
+ 404: {
17355
+ headers: {
17356
+ [name: string]: unknown;
17357
+ };
17358
+ content?: never;
17359
+ };
17360
+ /** @description Internal server error */
17361
+ 500: {
17362
+ headers: {
17363
+ [name: string]: unknown;
17364
+ };
17365
+ content?: never;
17366
+ };
17367
+ };
17368
+ };
16566
17369
  get_screener: {
16567
17370
  parameters: {
16568
17371
  query?: {
@@ -17351,7 +18154,7 @@ export interface operations {
17351
18154
  };
17352
18155
  content?: never;
17353
18156
  };
17354
- /** @description Duplicate clientTwapId for this user and application */
18157
+ /** @description Duplicate clientTwapId for this user and application: a parent with that key is live or ended within the reservation lifetime (30 days by default) */
17355
18158
  409: {
17356
18159
  headers: {
17357
18160
  [name: string]: unknown;
@@ -18176,6 +18979,133 @@ export interface operations {
18176
18979
  };
18177
18980
  };
18178
18981
  };
18982
+ list_sweeper_deposits: {
18983
+ parameters: {
18984
+ query?: {
18985
+ /** @description Items per page (max 100) */
18986
+ pageSize?: number;
18987
+ /**
18988
+ * @description Pagination cursor with two states:
18989
+ * - Omitted or empty string (""): start the walk from the newest deposit.
18990
+ * - Non-empty: an opaque cursor from a previous response's
18991
+ * `next_page_token`; results resume immediately after that position.
18992
+ *
18993
+ * The walk seeks on `(created_at, id)` descending over the caller's
18994
+ * inflows, served by `idx_sweeper_transfers_user_inflows`. `created_at` is
18995
+ * when the sweeper recorded the deposit and `id` an insertion-ordered
18996
+ * identity, so the key is total and immutable.
18997
+ */
18998
+ pageToken?: string;
18999
+ };
19000
+ header?: never;
19001
+ path?: never;
19002
+ cookie?: never;
19003
+ };
19004
+ requestBody?: never;
19005
+ responses: {
19006
+ /** @description OK */
19007
+ 200: {
19008
+ headers: {
19009
+ [name: string]: unknown;
19010
+ };
19011
+ content: {
19012
+ "application/json": components["schemas"]["ListDepositsResponse"];
19013
+ };
19014
+ };
19015
+ /** @description pageSize out of range, or a pageToken that is malformed or minted by another listing */
19016
+ 400: {
19017
+ headers: {
19018
+ [name: string]: unknown;
19019
+ };
19020
+ content?: never;
19021
+ };
19022
+ /** @description Authentication required */
19023
+ 401: {
19024
+ headers: {
19025
+ [name: string]: unknown;
19026
+ };
19027
+ content?: never;
19028
+ };
19029
+ /** @description Read rate limit exceeded — every authenticated read draws one request from the account's read budget; retry after the interval in details.retryAfter */
19030
+ 429: {
19031
+ headers: {
19032
+ [name: string]: unknown;
19033
+ };
19034
+ content?: never;
19035
+ };
19036
+ /** @description Internal server error */
19037
+ 500: {
19038
+ headers: {
19039
+ [name: string]: unknown;
19040
+ };
19041
+ content?: never;
19042
+ };
19043
+ /** @description Deposit status not available in this environment, or the read took too long; safe to retry */
19044
+ 503: {
19045
+ headers: {
19046
+ [name: string]: unknown;
19047
+ };
19048
+ content?: never;
19049
+ };
19050
+ };
19051
+ };
19052
+ get_sweeper_deposit_status: {
19053
+ parameters: {
19054
+ query?: never;
19055
+ header?: never;
19056
+ path: {
19057
+ txHash: string;
19058
+ };
19059
+ cookie?: never;
19060
+ };
19061
+ requestBody?: never;
19062
+ responses: {
19063
+ /** @description OK */
19064
+ 200: {
19065
+ headers: {
19066
+ [name: string]: unknown;
19067
+ };
19068
+ content: {
19069
+ "application/json": components["schemas"]["GetDepositStatusResponse"];
19070
+ };
19071
+ };
19072
+ /** @description txHash is not a 0x-prefixed 32-byte hex hash */
19073
+ 400: {
19074
+ headers: {
19075
+ [name: string]: unknown;
19076
+ };
19077
+ content?: never;
19078
+ };
19079
+ /** @description Authentication required */
19080
+ 401: {
19081
+ headers: {
19082
+ [name: string]: unknown;
19083
+ };
19084
+ content?: never;
19085
+ };
19086
+ /** @description Read rate limit exceeded — every authenticated read draws one request from the account's read budget; retry after the interval in details.retryAfter */
19087
+ 429: {
19088
+ headers: {
19089
+ [name: string]: unknown;
19090
+ };
19091
+ content?: never;
19092
+ };
19093
+ /** @description Internal server error */
19094
+ 500: {
19095
+ headers: {
19096
+ [name: string]: unknown;
19097
+ };
19098
+ content?: never;
19099
+ };
19100
+ /** @description Deposit status not available in this environment, or the read took too long; safe to retry */
19101
+ 503: {
19102
+ headers: {
19103
+ [name: string]: unknown;
19104
+ };
19105
+ content?: never;
19106
+ };
19107
+ };
19108
+ };
18179
19109
  register_deposit_address: {
18180
19110
  parameters: {
18181
19111
  query?: never;