@0xmonaco/types 1.1.2 → 1.1.5

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.
@@ -2141,6 +2141,51 @@ export interface paths {
2141
2141
  patch?: never;
2142
2142
  trace?: never;
2143
2143
  };
2144
+ "/api/v1/market/insurance-funds": {
2145
+ parameters: {
2146
+ query?: never;
2147
+ header?: never;
2148
+ path?: never;
2149
+ cookie?: never;
2150
+ };
2151
+ /**
2152
+ * Insurance Funds
2153
+ * @description The insurance funds' current balances, one per asset. Public; each client
2154
+ * IP has a read budget, and a request over it gets HTTP 429 /
2155
+ * RESOURCE_EXHAUSTED.
2156
+ */
2157
+ get: operations["list_insurance_funds"];
2158
+ put?: never;
2159
+ post?: never;
2160
+ delete?: never;
2161
+ options?: never;
2162
+ head?: never;
2163
+ patch?: never;
2164
+ trace?: never;
2165
+ };
2166
+ "/api/v1/market/liquidation-events": {
2167
+ parameters: {
2168
+ query?: never;
2169
+ header?: never;
2170
+ path?: never;
2171
+ cookie?: never;
2172
+ };
2173
+ /**
2174
+ * All Liquidation Events
2175
+ * @description Liquidation events across every market, newest first, with the same
2176
+ * event shape, time filters and keyset cursor as ListLiquidationEvents.
2177
+ * Public; each client IP has a read budget, and a request over it gets
2178
+ * HTTP 429 / RESOURCE_EXHAUSTED.
2179
+ */
2180
+ get: operations["list_all_liquidation_events"];
2181
+ put?: never;
2182
+ post?: never;
2183
+ delete?: never;
2184
+ options?: never;
2185
+ head?: never;
2186
+ patch?: never;
2187
+ trace?: never;
2188
+ };
2144
2189
  "/api/v1/market/pairs": {
2145
2190
  parameters: {
2146
2191
  query?: never;
@@ -2698,6 +2743,38 @@ export interface paths {
2698
2743
  patch?: never;
2699
2744
  trace?: never;
2700
2745
  };
2746
+ "/api/v1/orders/cancel-all-after": {
2747
+ parameters: {
2748
+ query?: never;
2749
+ header?: never;
2750
+ path?: never;
2751
+ cookie?: never;
2752
+ };
2753
+ get?: never;
2754
+ put?: never;
2755
+ /**
2756
+ * Cancel all orders after a timeout
2757
+ * @description Cancel all orders after a timeout.
2758
+ *
2759
+ * Arm, refresh or disarm a dead man's switch. If the timer is not refreshed
2760
+ * before it runs out, the exchange cancels your resting orders with
2761
+ * terminalReason CANCEL_ALL_AFTER: GTC and other resting limit orders,
2762
+ * triggered TP/SL legs resting on the book, and TWAP parents that are not
2763
+ * reduce-only. Untriggered TP/SL and other conditional orders on a position,
2764
+ * reduce-only TWAPs and RFQ quotes stay; legs still pending on a cancelled
2765
+ * entry order end with it, as on any cancel. Call it again before the deadline to push the
2766
+ * deadline out; send timeoutMs 0 to disarm. One timer covers the whole
2767
+ * account, or one trading pair when tradingPairId is set; the two scopes are
2768
+ * separate timers. A timer that fires is spent, so arm it again to keep the
2769
+ * switch on. Works during a maintenance pause, like cancels.
2770
+ */
2771
+ post: operations["cancel_all_after"];
2772
+ delete?: never;
2773
+ options?: never;
2774
+ head?: never;
2775
+ patch?: never;
2776
+ trace?: never;
2777
+ };
2701
2778
  "/api/v1/orders/conditional": {
2702
2779
  parameters: {
2703
2780
  query?: never;
@@ -3079,6 +3156,171 @@ export interface paths {
3079
3156
  patch?: never;
3080
3157
  trace?: never;
3081
3158
  };
3159
+ "/api/v1/rfq/capabilities": {
3160
+ parameters: {
3161
+ query?: never;
3162
+ header?: never;
3163
+ path?: never;
3164
+ cookie?: never;
3165
+ };
3166
+ /**
3167
+ * Get RFQ capabilities
3168
+ * @description Get RFQ capabilities.
3169
+ *
3170
+ * The caller's RFQ limits and the markets RFQ is offered on.
3171
+ */
3172
+ get: operations["get_rfq_capabilities"];
3173
+ put?: never;
3174
+ post?: never;
3175
+ delete?: never;
3176
+ options?: never;
3177
+ head?: never;
3178
+ patch?: never;
3179
+ trace?: never;
3180
+ };
3181
+ "/api/v1/rfqs": {
3182
+ parameters: {
3183
+ query?: never;
3184
+ header?: never;
3185
+ path?: never;
3186
+ cookie?: never;
3187
+ };
3188
+ get?: never;
3189
+ put?: never;
3190
+ /**
3191
+ * Request quotes
3192
+ * @description Request quotes.
3193
+ *
3194
+ * Opens an RFQ for up to `quantity` on a market. Without a side the request
3195
+ * is two-way and makers never see the taker's direction.
3196
+ */
3197
+ post: operations["create_rfq"];
3198
+ delete?: never;
3199
+ options?: never;
3200
+ head?: never;
3201
+ patch?: never;
3202
+ trace?: never;
3203
+ };
3204
+ "/api/v1/rfqs/{rfqId}": {
3205
+ parameters: {
3206
+ query?: never;
3207
+ header?: never;
3208
+ path?: never;
3209
+ cookie?: never;
3210
+ };
3211
+ /**
3212
+ * Get an RFQ
3213
+ * @description Get an RFQ.
3214
+ *
3215
+ * The authoritative status. A taker sees the current view and outcome; a
3216
+ * maker sees its own latest quote and, once selected, its own selection.
3217
+ */
3218
+ get: operations["get_rfq"];
3219
+ put?: never;
3220
+ post?: never;
3221
+ delete?: never;
3222
+ options?: never;
3223
+ head?: never;
3224
+ patch?: never;
3225
+ trace?: never;
3226
+ };
3227
+ "/api/v1/rfqs/{rfqId}/accept": {
3228
+ parameters: {
3229
+ query?: never;
3230
+ header?: never;
3231
+ path?: never;
3232
+ cookie?: never;
3233
+ };
3234
+ get?: never;
3235
+ put?: never;
3236
+ /**
3237
+ * Accept an RFQ
3238
+ * @description Accept an RFQ.
3239
+ *
3240
+ * The taker accepts one side of the view it last saw. Binding: the
3241
+ * selected makers' last look follows, and silence executes.
3242
+ */
3243
+ post: operations["accept_rfq"];
3244
+ delete?: never;
3245
+ options?: never;
3246
+ head?: never;
3247
+ patch?: never;
3248
+ trace?: never;
3249
+ };
3250
+ "/api/v1/rfqs/{rfqId}/cancel": {
3251
+ parameters: {
3252
+ query?: never;
3253
+ header?: never;
3254
+ path?: never;
3255
+ cookie?: never;
3256
+ };
3257
+ get?: never;
3258
+ put?: never;
3259
+ /**
3260
+ * Cancel an RFQ
3261
+ * @description Cancel an RFQ.
3262
+ *
3263
+ * The taker cancels an RFQ it has not accepted, before its deadline.
3264
+ */
3265
+ post: operations["cancel_rfq"];
3266
+ delete?: never;
3267
+ options?: never;
3268
+ head?: never;
3269
+ patch?: never;
3270
+ trace?: never;
3271
+ };
3272
+ "/api/v1/rfqs/{rfqId}/last-look": {
3273
+ parameters: {
3274
+ query?: never;
3275
+ header?: never;
3276
+ path?: never;
3277
+ cookie?: never;
3278
+ };
3279
+ get?: never;
3280
+ put?: never;
3281
+ /**
3282
+ * Answer last look
3283
+ * @description Answer last look.
3284
+ *
3285
+ * A selected maker rejects, or improves its frozen terms, before the
3286
+ * last-look deadline. There is no accept: silence executes.
3287
+ */
3288
+ post: operations["respond_rfq_last_look"];
3289
+ delete?: never;
3290
+ options?: never;
3291
+ head?: never;
3292
+ patch?: never;
3293
+ trace?: never;
3294
+ };
3295
+ "/api/v1/rfqs/{rfqId}/quote": {
3296
+ parameters: {
3297
+ query?: never;
3298
+ header?: never;
3299
+ path?: never;
3300
+ cookie?: never;
3301
+ };
3302
+ get?: never;
3303
+ /**
3304
+ * Quote an RFQ
3305
+ * @description Quote an RFQ.
3306
+ *
3307
+ * A maker places or replaces its quote: a bid, an ask or both. Replacing
3308
+ * names the maker's current version; the first quote names 0.
3309
+ */
3310
+ put: operations["upsert_rfq_quote"];
3311
+ post?: never;
3312
+ /**
3313
+ * Withdraw a quote
3314
+ * @description Withdraw a quote.
3315
+ *
3316
+ * A maker withdraws its current quote, naming its current version.
3317
+ */
3318
+ delete: operations["withdraw_rfq_quote"];
3319
+ options?: never;
3320
+ head?: never;
3321
+ patch?: never;
3322
+ trace?: never;
3323
+ };
3082
3324
  "/api/v1/sweeper/chains": {
3083
3325
  parameters: {
3084
3326
  query?: never;
@@ -3496,6 +3738,31 @@ export interface paths {
3496
3738
  patch?: never;
3497
3739
  trace?: never;
3498
3740
  };
3741
+ "/api/v1/trades": {
3742
+ parameters: {
3743
+ query?: never;
3744
+ header?: never;
3745
+ path?: never;
3746
+ cookie?: never;
3747
+ };
3748
+ /**
3749
+ * Trade Feed
3750
+ * @description Trade Feed
3751
+ *
3752
+ * Trades across every market, newest first, from the full history (recent
3753
+ * and archived trades alike). Set `taker_application_id` to list only the
3754
+ * trades an application (frontend) took. Public; each client IP has a read
3755
+ * budget, and a request over it gets HTTP 429 / RESOURCE_EXHAUSTED.
3756
+ */
3757
+ get: operations["list_trades"];
3758
+ put?: never;
3759
+ post?: never;
3760
+ delete?: never;
3761
+ options?: never;
3762
+ head?: never;
3763
+ patch?: never;
3764
+ trace?: never;
3765
+ };
3499
3766
  "/api/v1/trades/by-id/{tradeId}": {
3500
3767
  parameters: {
3501
3768
  query?: never;
@@ -3632,6 +3899,16 @@ export interface paths {
3632
3899
  export type webhooks = Record<string, never>;
3633
3900
  export interface components {
3634
3901
  schemas: {
3902
+ AcceptRfqRequest: {
3903
+ /**
3904
+ * Format: int64
3905
+ * @description The view version being accepted
3906
+ */
3907
+ viewVersion: number;
3908
+ idempotencyKey: string;
3909
+ /** @description The taker's side: BUY or SELL */
3910
+ side: string;
3911
+ };
3635
3912
  AccountBalance: {
3636
3913
  /**
3637
3914
  * @description Token contract address
@@ -4546,6 +4823,39 @@ export interface components {
4546
4823
  */
4547
4824
  available?: string | null;
4548
4825
  };
4826
+ CancelAllAfterRequest: {
4827
+ /**
4828
+ * Format: uint32
4829
+ * @description Milliseconds from now until your resting orders are cancelled: 0 disarms, otherwise 5000 to 900000 (5 seconds to 15 minutes). Each call replaces the previous deadline.
4830
+ * @example 30000
4831
+ */
4832
+ timeoutMs: number;
4833
+ /**
4834
+ * Format: uuid
4835
+ * @description Scope the timer to one trading pair. Omitted, the timer covers every market. Required for a delegated session.
4836
+ * @example 456e7890-e12b-12d3-a456-426614174000
4837
+ */
4838
+ tradingPairId?: string | null;
4839
+ };
4840
+ CancelAllAfterResponse: {
4841
+ /**
4842
+ * @description When the exchange cancels your resting orders unless you call again first (ISO 8601). Absent when the timer was disarmed.
4843
+ * @example 2026-06-01T00:00:30Z
4844
+ */
4845
+ cancelAt?: string | null;
4846
+ /**
4847
+ * Format: uint32
4848
+ * @description The timeout that was set, echoed back; 0 when disarmed
4849
+ * @example 30000
4850
+ */
4851
+ timeoutMs: number;
4852
+ /**
4853
+ * Format: uuid
4854
+ * @description The trading pair the timer covers; absent for the account-wide timer
4855
+ * @example 456e7890-e12b-12d3-a456-426614174000
4856
+ */
4857
+ tradingPairId?: string | null;
4858
+ };
4549
4859
  CancelConditionalOrderResponse: {
4550
4860
  /**
4551
4861
  * Format: uuid
@@ -4591,6 +4901,9 @@ export interface components {
4591
4901
  */
4592
4902
  message?: string | null;
4593
4903
  };
4904
+ CancelRfqRequest: {
4905
+ idempotencyKey: string;
4906
+ };
4594
4907
  CancelTwapOrderResponse: {
4595
4908
  /**
4596
4909
  * Format: uuid
@@ -5153,6 +5466,34 @@ export interface components {
5153
5466
  */
5154
5467
  trailingStopOrderId?: string | null;
5155
5468
  };
5469
+ CreateRfqRequest: {
5470
+ /** @description Client key: a retry with the same key and body returns the first result */
5471
+ idempotencyKey: string;
5472
+ /**
5473
+ * Format: uuid
5474
+ * @description Trading pair UUID
5475
+ */
5476
+ tradingPairId: string;
5477
+ /**
5478
+ * @description SPOT or PERPETUAL
5479
+ * @example PERPETUAL
5480
+ */
5481
+ product: string;
5482
+ /**
5483
+ * @description Maximum base quantity, exact decimal string
5484
+ * @example 25
5485
+ */
5486
+ quantity: string;
5487
+ /** @description BUY or SELL for a one-way RFQ: makers see it and may quote only the side that fills it (an ask when you buy, a bid when you sell). Absent for a two-way RFQ, whose direction stays hidden from makers */
5488
+ side?: string | null;
5489
+ /**
5490
+ * @description Perpetuals: the leverage the taker's order takes when it accepts, as on an order (refused on spot). For a two-way RFQ it applies to whichever side is accepted
5491
+ * @example 5
5492
+ */
5493
+ leverage?: string | null;
5494
+ /** @description Perpetuals: ISOLATED (the default) or CROSS, as on an order */
5495
+ marginMode?: string | null;
5496
+ };
5156
5497
  CreateSubAccountRequest: {
5157
5498
  /**
5158
5499
  * @description Sub-account key: up to 64 letters, digits, `_`, `-`, `.` or `:`. Keys
@@ -5480,7 +5821,7 @@ export interface components {
5480
5821
  */
5481
5822
  tierLevel?: number | null;
5482
5823
  /**
5483
- * @description Weighted 14-day volume floor for this tier, in quote/USD units
5824
+ * @description Minimum weighted 14-day volume for this tier, in quote/USD units
5484
5825
  * @example 5000000
5485
5826
  */
5486
5827
  minVolumeThreshold?: string | null;
@@ -6342,7 +6683,7 @@ export interface components {
6342
6683
  GetMyFeeTierResponse: {
6343
6684
  /**
6344
6685
  * Format: int32
6345
- * @description Caller's resolved tier (1–6) from the higher of their wallet's weighted 14-day volume and any volume floor set on the wallet. A floor that is set or changed counts once it applies to the wallet's fills, usually within a minute, and likewise for an account the wallet opens in a new application; a removed or expired floor stops counting at once
6686
+ * @description Caller's resolved tier (1–6) from their wallet's recorded weighted 14-day volume
6346
6687
  * @example 2
6347
6688
  */
6348
6689
  currentTierLevel?: number | null;
@@ -6655,7 +6996,7 @@ export interface components {
6655
6996
  */
6656
6997
  batchId?: string | null;
6657
6998
  /**
6658
- * @description Stable terminal cause for a cancelled order: USER_REQUESTED, REPLACED, LIQUIDATION, INSUFFICIENT_MARGIN, REDUCE_ONLY_EXHAUSTED, POSITION_CLOSED, OCO_SIBLING_TRIGGERED, SELF_TRADE_PREVENTION, AUTO_DELEVERAGING, PRICE_BAND, SLIPPAGE_TOLERANCE, BANKRUPTCY_PRICE, or SYSTEM. AUTO_DELEVERAGING means auto-deleveraging closed the position your risk bucket held and this resting order was cancelled with it; you were deleveraged as a counterparty, not liquidated. PRICE_BAND means the exchange's protective price band stopped the order and its remainder was cancelled, or, on a resting perp order, that the mark moved the order past the band, where no taker may trade with it; SLIPPAGE_TOLERANCE means your own slippageToleranceBps did. BANKRUPTCY_PRICE means a resting order was cancelled because filling it would have taken its risk bucket below zero equity in liquidation zero mode (its bankruptcy price).
6999
+ * @description Stable terminal cause for a cancelled order: USER_REQUESTED, REPLACED, LIQUIDATION, INSUFFICIENT_MARGIN, REDUCE_ONLY_EXHAUSTED, POSITION_CLOSED, OCO_SIBLING_TRIGGERED, SELF_TRADE_PREVENTION, AUTO_DELEVERAGING, PRICE_BAND, SLIPPAGE_TOLERANCE, BANKRUPTCY_PRICE, CANCEL_ALL_AFTER, or SYSTEM. CANCEL_ALL_AFTER means your cancel-all-after timer ran out (POST /api/v1/orders/cancel-all-after). AUTO_DELEVERAGING means auto-deleveraging closed the position your risk bucket held and this resting order was cancelled with it; you were deleveraged as a counterparty, not liquidated. PRICE_BAND means the exchange's protective price band stopped the order and its remainder was cancelled, or, on a resting perp order, that the mark moved the order past the band, where no taker may trade with it; SLIPPAGE_TOLERANCE means your own slippageToleranceBps did. BANKRUPTCY_PRICE means a resting order was cancelled because filling it would have taken its risk bucket below zero equity in liquidation zero mode (its bankruptcy price).
6659
7000
  * @example REDUCE_ONLY_EXHAUSTED
6660
7001
  */
6661
7002
  terminalReason?: string | null;
@@ -7246,14 +7587,14 @@ export interface components {
7246
7587
  /**
7247
7588
  * Format: int32
7248
7589
  * @deprecated
7249
- * @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.
7590
+ * @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.
7250
7591
  * @example -1
7251
7592
  */
7252
7593
  makerFeeBps?: number | null;
7253
7594
  /**
7254
7595
  * Format: int32
7255
7596
  * @deprecated
7256
- * @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.
7597
+ * @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.
7257
7598
  * @example 5
7258
7599
  */
7259
7600
  takerFeeBps?: number | null;
@@ -7306,6 +7647,32 @@ export interface components {
7306
7647
  /** @description One entry per reward token that has a non-zero available balance. */
7307
7648
  balances?: components["schemas"]["RewardsBalanceEntry"][] | null;
7308
7649
  };
7650
+ GetRfqCapabilitiesResponse: {
7651
+ /** Format: uint32 */
7652
+ protocolVersion?: number | null;
7653
+ /** @description Whether RFQ is enabled for the caller */
7654
+ enabled?: boolean | null;
7655
+ markets?: components["schemas"]["RfqMarketCapability"][] | null;
7656
+ /** Format: int64 */
7657
+ requestWindowMs?: number | null;
7658
+ /** Format: int64 */
7659
+ minQuoteValidityMs?: number | null;
7660
+ /** Format: int64 */
7661
+ maxQuoteValidityMs?: number | null;
7662
+ /** Format: int64 */
7663
+ lastLookMs?: number | null;
7664
+ /**
7665
+ * Format: uint32
7666
+ * @description RFQs the caller may create per quota window
7667
+ */
7668
+ maxNewRfqs?: number | null;
7669
+ /** Format: int64 */
7670
+ quotaWindowMs?: number | null;
7671
+ /** Format: uint32 */
7672
+ quotaRemaining?: number | null;
7673
+ /** Format: int64 */
7674
+ quotaRetryAfterMs?: number | null;
7675
+ };
7309
7676
  /** @description Paginated screener response sorted by quoteVolume24h desc (nulls last). */
7310
7677
  GetScreenerResponse: {
7311
7678
  items?: components["schemas"]["ScreenerItem"][] | null;
@@ -7444,23 +7811,11 @@ export interface components {
7444
7811
  * one row past `page_size`, so an empty token means the walk is finished and
7445
7812
  * a non-empty token means a further trade was actually seen. Unlike
7446
7813
  * `ListUserTradesResponse.next_page_token` (AIP-158 "maybe more"), a client
7447
- * can stop here on the empty token without a confirming extra request — this
7448
- * listing reads one table, so there is no hot/archive interleave that could
7449
- * hide rows behind a short page.
7450
- *
7451
- * That one table is the hot `trades` table, so a walk reaches the end of the
7452
- * archiver's retention window rather than the end of the pair's history. This
7453
- * is the endpoint's long-standing scope, unchanged by the cursor.
7814
+ * can stop here on the empty token without a confirming extra request.
7454
7815
  *
7455
- * There is no public walk over a pair's ARCHIVED history, and this endpoint is
7456
- * not a partial one — do not point market-data consumers at the user trade
7457
- * listings to continue it. `GetUserTrades` / `ListUserTrades` do merge the
7458
- * archive, but they are authenticated and user-scoped (`auth.user_id` is the
7459
- * read's first mandatory filter), so they return only trades where the caller
7460
- * was maker or taker. Following them to extend a public pair tape would
7461
- * silently drop every fill between two other parties. An individual archived
7462
- * trade does stay publicly reachable by id: `GetTradeById` falls back to the
7463
- * archive table on a hot miss.
7816
+ * The walk covers the pair's whole history: recent and archived trades are
7817
+ * read together, in one statement, so the empty token is the end of the
7818
+ * pair's history, not of a retention window.
7464
7819
  */
7465
7820
  nextPageToken?: string | null;
7466
7821
  };
@@ -7608,6 +7963,24 @@ export interface components {
7608
7963
  */
7609
7964
  source?: string | null;
7610
7965
  };
7966
+ /** @description One asset's insurance fund. Resolve the asset's symbol and decimals from the trading pairs listing. */
7967
+ InsuranceFund: {
7968
+ /**
7969
+ * Format: uuid
7970
+ * @description Asset UUID
7971
+ */
7972
+ assetId?: string | null;
7973
+ /**
7974
+ * @description Balance available to cover bad debt, in raw asset units (the asset's smallest unit)
7975
+ * @example 125000000000
7976
+ */
7977
+ availableBalanceRaw?: string | null;
7978
+ /**
7979
+ * @description When the balance last changed (ISO 8601)
7980
+ * @example 2026-11-01T10:30:00Z
7981
+ */
7982
+ updatedAt?: string | null;
7983
+ };
7611
7984
  InviteCode: {
7612
7985
  /**
7613
7986
  * Format: uuid
@@ -7963,11 +8336,21 @@ export interface components {
7963
8336
  * @example USDC
7964
8337
  */
7965
8338
  quoteAssetSymbol?: string | null;
7966
- };
7967
- LiquidationMetricsBucket: {
7968
8339
  /**
7969
- * Format: int64
7970
- * @description UTC-aligned bucket start as Unix milliseconds
8340
+ * @description The position's liquidation (trigger) price captured with the event, in quote units per base unit
8341
+ * @example 95120.5
8342
+ */
8343
+ liquidationPrice?: string | null;
8344
+ /**
8345
+ * @description Liquidation penalty charged on the event, in quote-asset units; null when none was charged
8346
+ * @example 27.06
8347
+ */
8348
+ liquidationFee?: string | null;
8349
+ };
8350
+ LiquidationMetricsBucket: {
8351
+ /**
8352
+ * Format: int64
8353
+ * @description UTC-aligned bucket start as Unix milliseconds
7971
8354
  * @example 1736742000000
7972
8355
  */
7973
8356
  bucketStart?: number | null;
@@ -8016,6 +8399,18 @@ export interface components {
8016
8399
  */
8017
8400
  totalCapped?: boolean | null;
8018
8401
  };
8402
+ ListAllLiquidationEventsResponse: {
8403
+ /** @description Events in reverse chronological order (newest first), across every market. */
8404
+ events?: components["schemas"]["LiquidationEvent"][] | null;
8405
+ /**
8406
+ * Format: uint32
8407
+ * @description Number of events requested for this page
8408
+ * @example 50
8409
+ */
8410
+ pageSize?: number | null;
8411
+ /** @description Opaque cursor for the next page; empty when the page is the end of the ordered result */
8412
+ nextPageToken?: string | null;
8413
+ };
8019
8414
  ListAppBalancesResponse: {
8020
8415
  balances?: components["schemas"]["ApplicationBalance"][] | null;
8021
8416
  /**
@@ -8234,6 +8629,10 @@ export interface components {
8234
8629
  */
8235
8630
  totalCapped?: boolean | null;
8236
8631
  };
8632
+ ListInsuranceFundsResponse: {
8633
+ /** @description Every insurance fund, one per asset, oldest update first. */
8634
+ funds?: components["schemas"]["InsuranceFund"][] | null;
8635
+ };
8237
8636
  ListInviteCodesResponse: {
8238
8637
  /**
8239
8638
  * @description Executed Mainnet USDC quote notional since the configured production launch, counting maker and taker wallets at 1 USDC = 1 USD. Zero until volume rewards and the launch timestamp are configured.
@@ -8444,6 +8843,24 @@ export interface components {
8444
8843
  */
8445
8844
  total?: number | null;
8446
8845
  };
8846
+ /** @description One page of the trade feed, newest first. */
8847
+ ListTradesResponse: {
8848
+ trades?: components["schemas"]["PublicTrade"][] | null;
8849
+ /**
8850
+ * Format: uint32
8851
+ * @description Maximum number of trades returned
8852
+ * @example 25
8853
+ */
8854
+ pageSize?: number | null;
8855
+ /**
8856
+ * @description Cursor for the next page. The read fetches one row past `page_size`, so
8857
+ * an empty token means the walk is finished and a non-empty token means a
8858
+ * further trade exists. Recent and archived trades are read in one
8859
+ * statement, so a client can stop on the empty token without a confirming
8860
+ * request.
8861
+ */
8862
+ nextPageToken?: string | null;
8863
+ };
8447
8864
  /** @description Paginated list of trading pairs. */
8448
8865
  ListTradingPairsResponse: {
8449
8866
  tradingPairs?: components["schemas"]["TradingPairData"][] | null;
@@ -10067,6 +10484,22 @@ export interface components {
10067
10484
  /** @description Revoked allowance slots; they cannot be minted again. */
10068
10485
  revokedMilestones?: number[] | null;
10069
10486
  };
10487
+ RespondRfqLastLookRequest: {
10488
+ improvedTerms?: components["schemas"]["RfqQuoteTerms"];
10489
+ idempotencyKey: string;
10490
+ /** Format: uuid */
10491
+ acceptanceId: string;
10492
+ /** @description REJECT or IMPROVE */
10493
+ response: string;
10494
+ };
10495
+ RespondRfqLastLookResponse: {
10496
+ /** Format: uuid */
10497
+ acceptanceId?: string | null;
10498
+ /** @description REJECT or IMPROVE as recorded */
10499
+ response?: string | null;
10500
+ /** Format: int64 */
10501
+ recordedAtMs?: number | null;
10502
+ };
10070
10503
  RevokeDelegatedAgentResponse: {
10071
10504
  /**
10072
10505
  * @description Revocation status
@@ -10094,6 +10527,170 @@ export interface components {
10094
10527
  */
10095
10528
  available?: string | null;
10096
10529
  };
10530
+ /** @description One fill of an executed RFQ. */
10531
+ RfqFill: {
10532
+ executionId?: string | null;
10533
+ price?: string | null;
10534
+ quantity?: string | null;
10535
+ fee?: string | null;
10536
+ };
10537
+ /** @description A selected maker's own part of an acceptance, for answering last look. */
10538
+ RfqMakerSelection: {
10539
+ /** Format: uuid */
10540
+ acceptanceId?: string | null;
10541
+ /** @description BUY or SELL */
10542
+ takerSide?: string | null;
10543
+ /** Format: uuid */
10544
+ quoteId?: string | null;
10545
+ /** Format: int64 */
10546
+ quoteVersion?: number | null;
10547
+ quantity?: string | null;
10548
+ frozenTerms?: components["schemas"]["RfqQuoteTerms"];
10549
+ /** Format: int64 */
10550
+ lastLookDeadlineAtMs?: number | null;
10551
+ };
10552
+ /** @description A market RFQ is offered on. */
10553
+ RfqMarketCapability: {
10554
+ /** Format: uuid */
10555
+ tradingPairId?: string | null;
10556
+ /** @description SPOT or PERPETUAL */
10557
+ product?: string | null;
10558
+ minQuantity?: string | null;
10559
+ maxQuantity?: string | null;
10560
+ };
10561
+ /** @description What an accepted RFQ executed. */
10562
+ RfqOutcome: {
10563
+ executedQuantity?: string | null;
10564
+ unfilledQuantity?: string | null;
10565
+ vwap?: string | null;
10566
+ fills?: components["schemas"]["RfqFill"][] | null;
10567
+ };
10568
+ /** @description A quote's price and capacity. */
10569
+ RfqQuoteTerms: {
10570
+ /**
10571
+ * @description Price in quote units per base unit, exact decimal string
10572
+ * @example 65000.5
10573
+ */
10574
+ price: string;
10575
+ /**
10576
+ * @description Capacity in base units, exact decimal string
10577
+ * @example 10
10578
+ */
10579
+ capacity: string;
10580
+ };
10581
+ /** @description A quote version as its maker sees it. */
10582
+ RfqQuoteVersion: {
10583
+ /** Format: uuid */
10584
+ rfqId?: string | null;
10585
+ /** Format: uuid */
10586
+ quoteId?: string | null;
10587
+ /**
10588
+ * Format: int64
10589
+ * @description This version; name it to replace or withdraw
10590
+ */
10591
+ version?: number | null;
10592
+ bid?: components["schemas"]["RfqQuoteTerms"];
10593
+ ask?: components["schemas"]["RfqQuoteTerms"];
10594
+ /** Format: int64 */
10595
+ issuedAtMs?: number | null;
10596
+ /** Format: int64 */
10597
+ validUntilMs?: number | null;
10598
+ /** @description Perpetuals: the leverage the quote's orders reserve with */
10599
+ leverage?: string | null;
10600
+ /** @description Perpetuals: ISOLATED or CROSS */
10601
+ marginMode?: string | null;
10602
+ /** @description Quoted sides the venue refused. A quote reserves funds as a resting limit order does, each side on its own: the version holds only the funded sides, and a refused side on a replacement is withdrawn. When no side is funded the quote is refused instead */
10603
+ refusedSides?: components["schemas"]["RfqRefusedSide"][] | null;
10604
+ };
10605
+ /** @description A quoted side the venue refused; nothing is reserved for it. */
10606
+ RfqRefusedSide: {
10607
+ /** @description BID or ASK */
10608
+ side?: string | null;
10609
+ /** @description INSUFFICIENT_BALANCE or QUOTE_REJECTED */
10610
+ code?: string | null;
10611
+ reason?: string | null;
10612
+ };
10613
+ /** @description The request as created. */
10614
+ RfqRequestTerms: {
10615
+ /**
10616
+ * Format: uuid
10617
+ * @description RFQ UUID
10618
+ */
10619
+ rfqId?: string | null;
10620
+ /**
10621
+ * Format: uuid
10622
+ * @description Trading pair UUID
10623
+ */
10624
+ tradingPairId?: string | null;
10625
+ /** @description SPOT or PERPETUAL */
10626
+ product?: string | null;
10627
+ /** @description Maximum base quantity; not a guaranteed fill */
10628
+ quantity?: string | null;
10629
+ /**
10630
+ * Format: int64
10631
+ * @description Creation time, Unix milliseconds
10632
+ */
10633
+ createdAtMs?: number | null;
10634
+ /**
10635
+ * Format: int64
10636
+ * @description Request deadline, Unix milliseconds: no new quotes after it
10637
+ */
10638
+ deadlineAtMs?: number | null;
10639
+ /** @description The taker's side, BUY or SELL, for a one-way RFQ, shown to makers too; absent for a two-way RFQ */
10640
+ side?: string | null;
10641
+ /** @description Taker only: the leverage given on CreateRfq (perpetuals) */
10642
+ leverage?: string | null;
10643
+ /** @description Taker only: the margin mode given on CreateRfq (perpetuals) */
10644
+ marginMode?: string | null;
10645
+ /** @description The side makers quote on a one-way RFQ, the one that fills the taker: ASK (an offer) when the taker buys, BID when it sells; a quote on the other side is refused (RFQ_SIDE_NOT_REQUESTED). Absent for a two-way RFQ, where makers may quote either or both */
10646
+ quoteSide?: string | null;
10647
+ };
10648
+ /** @description One side of the taker's view. */
10649
+ RfqSideView: {
10650
+ /** @description All-in volume-weighted price of the allocation, fees included */
10651
+ vwap?: string | null;
10652
+ /** @description Quantity the allocation fills */
10653
+ availableQuantity?: string | null;
10654
+ };
10655
+ /** @description Authoritative RFQ status. */
10656
+ RfqStatus: {
10657
+ terms?: components["schemas"]["RfqRequestTerms"];
10658
+ /** @description COLLECTING, LAST_LOOK, RISK_CLEARING, CONFIRMED, SETTLED, CANCELLED, EXPIRED or REJECTED */
10659
+ state?: string | null;
10660
+ /** Format: int64 */
10661
+ stateVersion?: number | null;
10662
+ /** @description BUY or SELL, once accepted */
10663
+ acceptedSide?: string | null;
10664
+ /** Format: int64 */
10665
+ lastLookDeadlineAtMs?: number | null;
10666
+ view?: components["schemas"]["RfqView"];
10667
+ ownQuote?: components["schemas"]["RfqQuoteVersion"];
10668
+ ownSelection?: components["schemas"]["RfqMakerSelection"];
10669
+ /**
10670
+ * Format: int64
10671
+ * @description The expected version for the caller's next quote or withdrawal
10672
+ */
10673
+ ownLatestVersion?: number | null;
10674
+ ownQuoteWithdrawn?: boolean | null;
10675
+ outcome?: components["schemas"]["RfqOutcome"];
10676
+ /** Format: int64 */
10677
+ durableSequence?: number | null;
10678
+ };
10679
+ /** @description The taker's current view of the quotes. */
10680
+ RfqView: {
10681
+ /**
10682
+ * Format: int64
10683
+ * @description The version to accept; a newer view refuses an older one
10684
+ */
10685
+ viewVersion?: number | null;
10686
+ bid?: components["schemas"]["RfqSideView"];
10687
+ ask?: components["schemas"]["RfqSideView"];
10688
+ /**
10689
+ * Format: int64
10690
+ * @description View time, Unix milliseconds
10691
+ */
10692
+ asOfMs?: number | null;
10693
+ };
10097
10694
  /**
10098
10695
  * @description One notional bracket of a market's margin ladder. Brackets are MARGINAL:
10099
10696
  * a bracket's rate applies only to the notional inside it, and the deduction
@@ -10934,6 +11531,37 @@ export interface components {
10934
11531
  * @example 123e4567-e89b-12d3-a456-426614174000
10935
11532
  */
10936
11533
  tradeId?: string | null;
11534
+ /**
11535
+ * @description How the trade executed: CLOB (on the order book) or RFQ (a request-for-quote block fill).
11536
+ * @example CLOB
11537
+ */
11538
+ executionSource?: string | null;
11539
+ /**
11540
+ * @description Wallet address of the maker
11541
+ * @example 0x1234567890abcdef1234567890abcdef12345678
11542
+ */
11543
+ makerAddress?: string | null;
11544
+ /**
11545
+ * @description Wallet address of the taker
11546
+ * @example 0xabcdef1234567890abcdef1234567890abcdef12
11547
+ */
11548
+ takerAddress?: string | null;
11549
+ /**
11550
+ * @description Monaco's taker fee on the trade, in raw quote-asset units (the asset's smallest unit). Excludes the frontend's builder fee. Omitted when the trade recorded none.
11551
+ * @example 8750
11552
+ */
11553
+ takerFeeRaw?: string | null;
11554
+ /**
11555
+ * @description Executed notional (price times quantity), in raw quote-asset units (the asset's smallest unit). Omitted when the trade recorded none.
11556
+ * @example 17500000000
11557
+ */
11558
+ quoteVolumeRaw?: string | null;
11559
+ /**
11560
+ * Format: uuid
11561
+ * @description Application (frontend) that placed the taker order. A trade's volume and fees are attributed to it. Omitted when unknown.
11562
+ * @example 789e0123-e45b-12d3-a456-426614174000
11563
+ */
11564
+ takerApplicationId?: string | null;
10937
11565
  };
10938
11566
  TradeFlowBucket: {
10939
11567
  /**
@@ -11027,7 +11655,7 @@ export interface components {
11027
11655
  /**
11028
11656
  * Format: int32
11029
11657
  * @deprecated
11030
- * @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.
11658
+ * @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.
11031
11659
  * @example -2
11032
11660
  */
11033
11661
  makerFeeBps?: number | null;
@@ -11081,7 +11709,7 @@ export interface components {
11081
11709
  /**
11082
11710
  * Format: int32
11083
11711
  * @deprecated
11084
- * @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.
11712
+ * @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.
11085
11713
  * @example 10
11086
11714
  */
11087
11715
  takerFeeBps?: number | null;
@@ -11794,6 +12422,28 @@ export interface components {
11794
12422
  */
11795
12423
  shareBps?: number | null;
11796
12424
  };
12425
+ UpsertRfqQuoteRequest: {
12426
+ /** @description Perpetuals: ISOLATED (the default) or CROSS, as on an order */
12427
+ marginMode?: string | null;
12428
+ idempotencyKey: string;
12429
+ /**
12430
+ * Format: int64
12431
+ * @description The caller's current version for this RFQ; 0 for its first quote
12432
+ */
12433
+ expectedVersion: number;
12434
+ bid?: components["schemas"]["RfqQuoteTerms"];
12435
+ ask?: components["schemas"]["RfqQuoteTerms"];
12436
+ /**
12437
+ * Format: int64
12438
+ * @description 15000 to 60000; absent means 60000. Capped at the request deadline
12439
+ */
12440
+ validityMs?: number | null;
12441
+ /**
12442
+ * @description Perpetuals: the leverage each side's order reserves with, as on an order (required there, refused on spot). Fixed while a side rests: a new version with another leverage or margin mode is refused; withdraw and quote again
12443
+ * @example 5
12444
+ */
12445
+ leverage?: string | null;
12446
+ };
11797
12447
  UserInfo: {
11798
12448
  /**
11799
12449
  * Format: uuid
@@ -11997,6 +12647,23 @@ export interface components {
11997
12647
  */
11998
12648
  referralNotAppliedReason?: "REFERRAL_NOT_APPLIED_REASON_UNSPECIFIED" | "REFERRAL_NOT_APPLIED_REASON_ALREADY_REFERRED" | "REFERRAL_NOT_APPLIED_REASON_UNKNOWN_CODE" | "REFERRAL_NOT_APPLIED_REASON_SELF_REFERRAL" | null;
11999
12649
  };
12650
+ WithdrawRfqQuoteRequest: {
12651
+ /**
12652
+ * Format: int64
12653
+ * @description The caller's current version
12654
+ */
12655
+ expectedVersion: number;
12656
+ idempotencyKey: string;
12657
+ };
12658
+ WithdrawRfqQuoteResponse: {
12659
+ /** Format: uuid */
12660
+ rfqId?: string | null;
12661
+ /**
12662
+ * Format: int64
12663
+ * @description The withdrawal's version
12664
+ */
12665
+ version?: number | null;
12666
+ };
12000
12667
  Withdrawal: {
12001
12668
  /**
12002
12669
  * @description Allocated withdrawal index — matches executeWithdrawal.index on-chain
@@ -16885,6 +17552,93 @@ export interface operations {
16885
17552
  };
16886
17553
  };
16887
17554
  };
17555
+ list_insurance_funds: {
17556
+ parameters: {
17557
+ query?: never;
17558
+ header?: never;
17559
+ path?: never;
17560
+ cookie?: never;
17561
+ };
17562
+ requestBody?: never;
17563
+ responses: {
17564
+ /** @description OK */
17565
+ 200: {
17566
+ headers: {
17567
+ [name: string]: unknown;
17568
+ };
17569
+ content: {
17570
+ "application/json": components["schemas"]["ListInsuranceFundsResponse"];
17571
+ };
17572
+ };
17573
+ /** @description Public read rate limit exceeded for this client */
17574
+ 429: {
17575
+ headers: {
17576
+ [name: string]: unknown;
17577
+ };
17578
+ content?: never;
17579
+ };
17580
+ /** @description Internal server error */
17581
+ 500: {
17582
+ headers: {
17583
+ [name: string]: unknown;
17584
+ };
17585
+ content?: never;
17586
+ };
17587
+ };
17588
+ };
17589
+ list_all_liquidation_events: {
17590
+ parameters: {
17591
+ query?: {
17592
+ /** @description Start time as Unix timestamp (milliseconds) */
17593
+ startTime?: number;
17594
+ /** @description End time as Unix timestamp (milliseconds) */
17595
+ endTime?: number;
17596
+ /** @description Events per page (max 1000) */
17597
+ pageSize?: number;
17598
+ /**
17599
+ * @description Opaque keyset cursor from the previous response. The token is bound to
17600
+ * the requested time filters.
17601
+ */
17602
+ pageToken?: string;
17603
+ };
17604
+ header?: never;
17605
+ path?: never;
17606
+ cookie?: never;
17607
+ };
17608
+ requestBody?: never;
17609
+ responses: {
17610
+ /** @description OK */
17611
+ 200: {
17612
+ headers: {
17613
+ [name: string]: unknown;
17614
+ };
17615
+ content: {
17616
+ "application/json": components["schemas"]["ListAllLiquidationEventsResponse"];
17617
+ };
17618
+ };
17619
+ /** @description Invalid liquidation-event filter or page token */
17620
+ 400: {
17621
+ headers: {
17622
+ [name: string]: unknown;
17623
+ };
17624
+ content?: never;
17625
+ };
17626
+ /** @description Public read rate limit exceeded for this client */
17627
+ 429: {
17628
+ headers: {
17629
+ [name: string]: unknown;
17630
+ };
17631
+ content?: never;
17632
+ };
17633
+ /** @description Internal server error */
17634
+ 500: {
17635
+ headers: {
17636
+ [name: string]: unknown;
17637
+ };
17638
+ content?: never;
17639
+ };
17640
+ };
17641
+ };
16888
17642
  list_trading_pairs: {
16889
17643
  parameters: {
16890
17644
  query?: {
@@ -17541,7 +18295,7 @@ export interface operations {
17541
18295
  /** @description Trading mode */
17542
18296
  tradingMode?: "SPOT" | "MARGIN";
17543
18297
  /** @description Price grouping magnitude */
17544
- magnitude?: "0.0001" | "0.001" | "0.01" | "0.1" | "1" | "10" | "100" | "1000" | "10000";
18298
+ magnitude?: "0.000001" | "0.00001" | "0.0001" | "0.001" | "0.01" | "0.1" | "1" | "10" | "100" | "1000" | "10000";
17545
18299
  /** @description Price denomination */
17546
18300
  denomination?: "base" | "quote";
17547
18301
  };
@@ -18039,35 +18793,18 @@ export interface operations {
18039
18793
  };
18040
18794
  };
18041
18795
  };
18042
- list_conditional_orders: {
18796
+ cancel_all_after: {
18043
18797
  parameters: {
18044
- query?: {
18045
- marginAccountId?: string;
18046
- /** @description Trading pair identifier (UUID) */
18047
- tradingPairId?: string;
18048
- state?: string;
18049
- /** @description Items per page (max 100 in page-number mode; up to 1000 when pageToken is present) */
18050
- pageSize?: number;
18051
- /**
18052
- * @description Pagination cursor with two states:
18053
- * - Omitted or empty string (""): start a cursor walk with no prior
18054
- * position, from the newest conditional order.
18055
- * - Non-empty: an opaque cursor from a previous response's
18056
- * `next_page_token`; results resume immediately after that position.
18057
- *
18058
- * `total` is the matching row count, bounded at a server ceiling of 10,000
18059
- * and saturating there. Pages are keyset seeks on `(createdAt, id)`, so a
18060
- * page size up to 1000 is allowed. Filters must match the request that
18061
- * produced the token; a token replayed against different filters is
18062
- * rejected.
18063
- */
18064
- pageToken?: string;
18065
- };
18798
+ query?: never;
18066
18799
  header?: never;
18067
18800
  path?: never;
18068
18801
  cookie?: never;
18069
18802
  };
18070
- requestBody?: never;
18803
+ requestBody: {
18804
+ content: {
18805
+ "application/json": components["schemas"]["CancelAllAfterRequest"];
18806
+ };
18807
+ };
18071
18808
  responses: {
18072
18809
  /** @description OK */
18073
18810
  200: {
@@ -18075,22 +18812,105 @@ export interface operations {
18075
18812
  [name: string]: unknown;
18076
18813
  };
18077
18814
  content: {
18078
- "application/json": components["schemas"]["ListConditionalOrdersResponse"];
18815
+ "application/json": components["schemas"]["CancelAllAfterResponse"];
18079
18816
  };
18080
18817
  };
18081
- /** @description Read rate limit exceeded — every authenticated read draws one request from the account's read budget; retry after the interval in details.retryAfter */
18082
- 429: {
18818
+ /** @description timeoutMs is neither 0 nor between 5000 and 900000, or tradingPairId is not a valid UUID or not a listed trading pair */
18819
+ 400: {
18083
18820
  headers: {
18084
18821
  [name: string]: unknown;
18085
18822
  };
18086
18823
  content?: never;
18087
18824
  };
18088
- };
18089
- };
18090
- get_conditional_order: {
18091
- parameters: {
18092
- query?: never;
18093
- header?: never;
18825
+ /** @description Authentication required */
18826
+ 401: {
18827
+ headers: {
18828
+ [name: string]: unknown;
18829
+ };
18830
+ content?: never;
18831
+ };
18832
+ /** @description A delegated session must set tradingPairId and hold cancel permission on that pair */
18833
+ 403: {
18834
+ headers: {
18835
+ [name: string]: unknown;
18836
+ };
18837
+ content?: never;
18838
+ };
18839
+ /** @description Risk-reduction rate limit exceeded — each call costs one risk-reduction item (per account and account family); retry after the interval in details.retryAfter */
18840
+ 429: {
18841
+ headers: {
18842
+ [name: string]: unknown;
18843
+ };
18844
+ content?: never;
18845
+ };
18846
+ /** @description Internal server error or matching engine failure */
18847
+ 500: {
18848
+ headers: {
18849
+ [name: string]: unknown;
18850
+ };
18851
+ content?: never;
18852
+ };
18853
+ /** @description With error code OVERLOADED the matching engine refused the call before applying it, so nothing changed; retry. Any other 503 is a transport failure whose outcome is unknown: retry, and read the deadline from the response that succeeds */
18854
+ 503: {
18855
+ headers: {
18856
+ [name: string]: unknown;
18857
+ };
18858
+ content?: never;
18859
+ };
18860
+ };
18861
+ };
18862
+ list_conditional_orders: {
18863
+ parameters: {
18864
+ query?: {
18865
+ marginAccountId?: string;
18866
+ /** @description Trading pair identifier (UUID) */
18867
+ tradingPairId?: string;
18868
+ state?: string;
18869
+ /** @description Items per page (max 100 in page-number mode; up to 1000 when pageToken is present) */
18870
+ pageSize?: number;
18871
+ /**
18872
+ * @description Pagination cursor with two states:
18873
+ * - Omitted or empty string (""): start a cursor walk with no prior
18874
+ * position, from the newest conditional order.
18875
+ * - Non-empty: an opaque cursor from a previous response's
18876
+ * `next_page_token`; results resume immediately after that position.
18877
+ *
18878
+ * `total` is the matching row count, bounded at a server ceiling of 10,000
18879
+ * and saturating there. Pages are keyset seeks on `(createdAt, id)`, so a
18880
+ * page size up to 1000 is allowed. Filters must match the request that
18881
+ * produced the token; a token replayed against different filters is
18882
+ * rejected.
18883
+ */
18884
+ pageToken?: string;
18885
+ };
18886
+ header?: never;
18887
+ path?: never;
18888
+ cookie?: never;
18889
+ };
18890
+ requestBody?: never;
18891
+ responses: {
18892
+ /** @description OK */
18893
+ 200: {
18894
+ headers: {
18895
+ [name: string]: unknown;
18896
+ };
18897
+ content: {
18898
+ "application/json": components["schemas"]["ListConditionalOrdersResponse"];
18899
+ };
18900
+ };
18901
+ /** @description Read rate limit exceeded — every authenticated read draws one request from the account's read budget; retry after the interval in details.retryAfter */
18902
+ 429: {
18903
+ headers: {
18904
+ [name: string]: unknown;
18905
+ };
18906
+ content?: never;
18907
+ };
18908
+ };
18909
+ };
18910
+ get_conditional_order: {
18911
+ parameters: {
18912
+ query?: never;
18913
+ header?: never;
18094
18914
  path: {
18095
18915
  /** @example 2b1a5f9c-0000-4000-8000-000000000004 */
18096
18916
  conditionalOrderId: string;
@@ -19042,7 +19862,7 @@ export interface operations {
19042
19862
  };
19043
19863
  };
19044
19864
  };
19045
- get_sweeper_chains: {
19865
+ get_rfq_capabilities: {
19046
19866
  parameters: {
19047
19867
  query?: never;
19048
19868
  header?: never;
@@ -19057,17 +19877,24 @@ export interface operations {
19057
19877
  [name: string]: unknown;
19058
19878
  };
19059
19879
  content: {
19060
- "application/json": components["schemas"]["GetChainsResponse"];
19880
+ "application/json": components["schemas"]["GetRfqCapabilitiesResponse"];
19061
19881
  };
19062
19882
  };
19063
- /** @description Internal server error */
19064
- 500: {
19883
+ /** @description Authentication required */
19884
+ 401: {
19065
19885
  headers: {
19066
19886
  [name: string]: unknown;
19067
19887
  };
19068
19888
  content?: never;
19069
19889
  };
19070
- /** @description Sweeper unavailable (not configured or resolver down); safe to retry */
19890
+ /** @description RFQ is not enabled for this account (RFQ_DISABLED) */
19891
+ 403: {
19892
+ headers: {
19893
+ [name: string]: unknown;
19894
+ };
19895
+ content?: never;
19896
+ };
19897
+ /** @description RFQ service unavailable; retry */
19071
19898
  503: {
19072
19899
  headers: {
19073
19900
  [name: string]: unknown;
@@ -19076,29 +19903,18 @@ export interface operations {
19076
19903
  };
19077
19904
  };
19078
19905
  };
19079
- list_sweeper_deposits: {
19906
+ create_rfq: {
19080
19907
  parameters: {
19081
- query?: {
19082
- /** @description Items per page (max 100) */
19083
- pageSize?: number;
19084
- /**
19085
- * @description Pagination cursor with two states:
19086
- * - Omitted or empty string (""): start the walk from the newest deposit.
19087
- * - Non-empty: an opaque cursor from a previous response's
19088
- * `next_page_token`; results resume immediately after that position.
19089
- *
19090
- * The walk seeks on `(created_at, id)` descending over the caller's
19091
- * inflows, served by `idx_sweeper_transfers_user_inflows`. `created_at` is
19092
- * when the sweeper recorded the deposit and `id` an insertion-ordered
19093
- * identity, so the key is total and immutable.
19094
- */
19095
- pageToken?: string;
19096
- };
19908
+ query?: never;
19097
19909
  header?: never;
19098
19910
  path?: never;
19099
19911
  cookie?: never;
19100
19912
  };
19101
- requestBody?: never;
19913
+ requestBody: {
19914
+ content: {
19915
+ "application/json": components["schemas"]["CreateRfqRequest"];
19916
+ };
19917
+ };
19102
19918
  responses: {
19103
19919
  /** @description OK */
19104
19920
  200: {
@@ -19106,10 +19922,10 @@ export interface operations {
19106
19922
  [name: string]: unknown;
19107
19923
  };
19108
19924
  content: {
19109
- "application/json": components["schemas"]["ListDepositsResponse"];
19925
+ "application/json": components["schemas"]["RfqStatus"];
19110
19926
  };
19111
19927
  };
19112
- /** @description pageSize out of range, or a pageToken that is malformed or minted by another listing */
19928
+ /** @description Invalid request */
19113
19929
  400: {
19114
19930
  headers: {
19115
19931
  [name: string]: unknown;
@@ -19123,21 +19939,28 @@ export interface operations {
19123
19939
  };
19124
19940
  content?: never;
19125
19941
  };
19126
- /** @description Read rate limit exceeded — every authenticated read draws one request from the account's read budget; retry after the interval in details.retryAfter */
19127
- 429: {
19942
+ /** @description RFQ is not enabled for this account, or the caller is a delegated agent */
19943
+ 403: {
19128
19944
  headers: {
19129
19945
  [name: string]: unknown;
19130
19946
  };
19131
19947
  content?: never;
19132
19948
  };
19133
- /** @description Internal server error */
19134
- 500: {
19949
+ /** @description Idempotency key reused with a different body, or the market is not tradable */
19950
+ 409: {
19135
19951
  headers: {
19136
19952
  [name: string]: unknown;
19137
19953
  };
19138
19954
  content?: never;
19139
19955
  };
19140
- /** @description Deposit status not available in this environment, or the read took too long; safe to retry */
19956
+ /** @description RFQ creation quota spent (RFQ_QUOTA_EXCEEDED); retry after the Retry-After interval */
19957
+ 429: {
19958
+ headers: {
19959
+ [name: string]: unknown;
19960
+ };
19961
+ content?: never;
19962
+ };
19963
+ /** @description RFQ service unavailable; retry */
19141
19964
  503: {
19142
19965
  headers: {
19143
19966
  [name: string]: unknown;
@@ -19146,12 +19969,12 @@ export interface operations {
19146
19969
  };
19147
19970
  };
19148
19971
  };
19149
- get_sweeper_deposit_status: {
19972
+ get_rfq: {
19150
19973
  parameters: {
19151
19974
  query?: never;
19152
19975
  header?: never;
19153
19976
  path: {
19154
- txHash: string;
19977
+ rfqId: string;
19155
19978
  };
19156
19979
  cookie?: never;
19157
19980
  };
@@ -19163,15 +19986,8 @@ export interface operations {
19163
19986
  [name: string]: unknown;
19164
19987
  };
19165
19988
  content: {
19166
- "application/json": components["schemas"]["GetDepositStatusResponse"];
19167
- };
19168
- };
19169
- /** @description txHash is not a 0x-prefixed 32-byte hex hash */
19170
- 400: {
19171
- headers: {
19172
- [name: string]: unknown;
19989
+ "application/json": components["schemas"]["RfqStatus"];
19173
19990
  };
19174
- content?: never;
19175
19991
  };
19176
19992
  /** @description Authentication required */
19177
19993
  401: {
@@ -19180,21 +19996,21 @@ export interface operations {
19180
19996
  };
19181
19997
  content?: never;
19182
19998
  };
19183
- /** @description Read rate limit exceeded — every authenticated read draws one request from the account's read budget; retry after the interval in details.retryAfter */
19184
- 429: {
19999
+ /** @description RFQ is not enabled for this account (RFQ_DISABLED) */
20000
+ 403: {
19185
20001
  headers: {
19186
20002
  [name: string]: unknown;
19187
20003
  };
19188
20004
  content?: never;
19189
20005
  };
19190
- /** @description Internal server error */
19191
- 500: {
20006
+ /** @description RFQ not found */
20007
+ 404: {
19192
20008
  headers: {
19193
20009
  [name: string]: unknown;
19194
20010
  };
19195
20011
  content?: never;
19196
20012
  };
19197
- /** @description Deposit status not available in this environment, or the read took too long; safe to retry */
20013
+ /** @description RFQ service unavailable; retry */
19198
20014
  503: {
19199
20015
  headers: {
19200
20016
  [name: string]: unknown;
@@ -19203,16 +20019,18 @@ export interface operations {
19203
20019
  };
19204
20020
  };
19205
20021
  };
19206
- register_deposit_address: {
20022
+ accept_rfq: {
19207
20023
  parameters: {
19208
20024
  query?: never;
19209
20025
  header?: never;
19210
- path?: never;
20026
+ path: {
20027
+ rfqId: string;
20028
+ };
19211
20029
  cookie?: never;
19212
20030
  };
19213
20031
  requestBody: {
19214
20032
  content: {
19215
- "application/json": components["schemas"]["RegisterRequest"];
20033
+ "application/json": components["schemas"]["AcceptRfqRequest"];
19216
20034
  };
19217
20035
  };
19218
20036
  responses: {
@@ -19222,10 +20040,10 @@ export interface operations {
19222
20040
  [name: string]: unknown;
19223
20041
  };
19224
20042
  content: {
19225
- "application/json": components["schemas"]["RegisterResponse"];
20043
+ "application/json": components["schemas"]["RfqStatus"];
19226
20044
  };
19227
20045
  };
19228
- /** @description Invalid request parameters */
20046
+ /** @description Invalid request */
19229
20047
  400: {
19230
20048
  headers: {
19231
20049
  [name: string]: unknown;
@@ -19239,28 +20057,28 @@ export interface operations {
19239
20057
  };
19240
20058
  content?: never;
19241
20059
  };
19242
- /** @description The application for this session is not active */
20060
+ /** @description RFQ is not enabled for this account (RFQ_DISABLED) */
19243
20061
  403: {
19244
20062
  headers: {
19245
20063
  [name: string]: unknown;
19246
20064
  };
19247
20065
  content?: never;
19248
20066
  };
19249
- /** @description Registration admission limit exceeded; retry shortly */
19250
- 429: {
20067
+ /** @description RFQ not found */
20068
+ 404: {
19251
20069
  headers: {
19252
20070
  [name: string]: unknown;
19253
20071
  };
19254
20072
  content?: never;
19255
20073
  };
19256
- /** @description Internal server error */
19257
- 500: {
20074
+ /** @description The view changed (accept the current one), or the RFQ moved on */
20075
+ 409: {
19258
20076
  headers: {
19259
20077
  [name: string]: unknown;
19260
20078
  };
19261
20079
  content?: never;
19262
20080
  };
19263
- /** @description Sweeper unavailable (not configured or resolver down); nothing was registered, safe to retry */
20081
+ /** @description RFQ service unavailable; retry */
19264
20082
  503: {
19265
20083
  headers: {
19266
20084
  [name: string]: unknown;
@@ -19269,16 +20087,20 @@ export interface operations {
19269
20087
  };
19270
20088
  };
19271
20089
  };
19272
- check_trader_code_availability: {
20090
+ cancel_rfq: {
19273
20091
  parameters: {
19274
- query?: {
19275
- code?: string;
19276
- };
20092
+ query?: never;
19277
20093
  header?: never;
19278
- path?: never;
20094
+ path: {
20095
+ rfqId: string;
20096
+ };
19279
20097
  cookie?: never;
19280
20098
  };
19281
- requestBody?: never;
20099
+ requestBody: {
20100
+ content: {
20101
+ "application/json": components["schemas"]["CancelRfqRequest"];
20102
+ };
20103
+ };
19282
20104
  responses: {
19283
20105
  /** @description OK */
19284
20106
  200: {
@@ -19286,59 +20108,46 @@ export interface operations {
19286
20108
  [name: string]: unknown;
19287
20109
  };
19288
20110
  content: {
19289
- "application/json": components["schemas"]["CheckTraderCodeAvailabilityResponse"];
20111
+ "application/json": components["schemas"]["RfqStatus"];
19290
20112
  };
19291
20113
  };
19292
- /** @description Availability check rate-limit exceeded */
19293
- 429: {
20114
+ /** @description Invalid request */
20115
+ 400: {
19294
20116
  headers: {
19295
20117
  [name: string]: unknown;
19296
20118
  };
19297
20119
  content?: never;
19298
20120
  };
19299
- /** @description Internal server error */
19300
- 500: {
20121
+ /** @description Authentication required */
20122
+ 401: {
19301
20123
  headers: {
19302
20124
  [name: string]: unknown;
19303
20125
  };
19304
20126
  content?: never;
19305
20127
  };
19306
- };
19307
- };
19308
- get_my_trader_code: {
19309
- parameters: {
19310
- query?: never;
19311
- header?: never;
19312
- path?: never;
19313
- cookie?: never;
19314
- };
19315
- requestBody?: never;
19316
- responses: {
19317
- /** @description OK */
19318
- 200: {
20128
+ /** @description RFQ is not enabled for this account (RFQ_DISABLED) */
20129
+ 403: {
19319
20130
  headers: {
19320
20131
  [name: string]: unknown;
19321
20132
  };
19322
- content: {
19323
- "application/json": components["schemas"]["TraderCodeResponse"];
19324
- };
20133
+ content?: never;
19325
20134
  };
19326
- /** @description Authentication required */
19327
- 401: {
20135
+ /** @description RFQ not found */
20136
+ 404: {
19328
20137
  headers: {
19329
20138
  [name: string]: unknown;
19330
20139
  };
19331
20140
  content?: never;
19332
20141
  };
19333
- /** @description Read rate limit exceeded — every authenticated read draws one request from the account's read budget; retry after the interval in details.retryAfter */
19334
- 429: {
20142
+ /** @description The RFQ can no longer be cancelled */
20143
+ 409: {
19335
20144
  headers: {
19336
20145
  [name: string]: unknown;
19337
20146
  };
19338
20147
  content?: never;
19339
20148
  };
19340
- /** @description Internal server error */
19341
- 500: {
20149
+ /** @description RFQ service unavailable; retry */
20150
+ 503: {
19342
20151
  headers: {
19343
20152
  [name: string]: unknown;
19344
20153
  };
@@ -19346,16 +20155,18 @@ export interface operations {
19346
20155
  };
19347
20156
  };
19348
20157
  };
19349
- set_trader_code: {
20158
+ respond_rfq_last_look: {
19350
20159
  parameters: {
19351
20160
  query?: never;
19352
20161
  header?: never;
19353
- path?: never;
20162
+ path: {
20163
+ rfqId: string;
20164
+ };
19354
20165
  cookie?: never;
19355
20166
  };
19356
20167
  requestBody: {
19357
20168
  content: {
19358
- "application/json": components["schemas"]["SetTraderCodeRequest"];
20169
+ "application/json": components["schemas"]["RespondRfqLastLookRequest"];
19359
20170
  };
19360
20171
  };
19361
20172
  responses: {
@@ -19365,46 +20176,46 @@ export interface operations {
19365
20176
  [name: string]: unknown;
19366
20177
  };
19367
20178
  content: {
19368
- "application/json": components["schemas"]["TraderCodeResponse"];
20179
+ "application/json": components["schemas"]["RespondRfqLastLookResponse"];
19369
20180
  };
19370
20181
  };
19371
- /** @description Authentication required */
19372
- 401: {
20182
+ /** @description Invalid response, or the improvement is not strictly better */
20183
+ 400: {
19373
20184
  headers: {
19374
20185
  [name: string]: unknown;
19375
20186
  };
19376
20187
  content?: never;
19377
20188
  };
19378
- /** @description Custom trader codes are not enabled */
19379
- 403: {
20189
+ /** @description Authentication required */
20190
+ 401: {
19380
20191
  headers: {
19381
20192
  [name: string]: unknown;
19382
20193
  };
19383
20194
  content?: never;
19384
20195
  };
19385
- /** @description Handle is taken (case-insensitive) or cooling down */
19386
- 409: {
20196
+ /** @description RFQ is not enabled for this account (RFQ_DISABLED) */
20197
+ 403: {
19387
20198
  headers: {
19388
20199
  [name: string]: unknown;
19389
20200
  };
19390
20201
  content?: never;
19391
20202
  };
19392
- /** @description Validation failed; body carries a reason code */
19393
- 422: {
20203
+ /** @description RFQ or acceptance not found */
20204
+ 404: {
19394
20205
  headers: {
19395
20206
  [name: string]: unknown;
19396
20207
  };
19397
20208
  content?: never;
19398
20209
  };
19399
- /** @description Edit rate-limit exceeded */
19400
- 429: {
20210
+ /** @description The last-look deadline passed, or the caller already answered */
20211
+ 409: {
19401
20212
  headers: {
19402
20213
  [name: string]: unknown;
19403
20214
  };
19404
20215
  content?: never;
19405
20216
  };
19406
- /** @description Internal server error */
19407
- 500: {
20217
+ /** @description RFQ service unavailable; retry */
20218
+ 503: {
19408
20219
  headers: {
19409
20220
  [name: string]: unknown;
19410
20221
  };
@@ -19412,14 +20223,20 @@ export interface operations {
19412
20223
  };
19413
20224
  };
19414
20225
  };
19415
- clear_trader_code: {
20226
+ upsert_rfq_quote: {
19416
20227
  parameters: {
19417
20228
  query?: never;
19418
20229
  header?: never;
19419
- path?: never;
20230
+ path: {
20231
+ rfqId: string;
20232
+ };
19420
20233
  cookie?: never;
19421
20234
  };
19422
- requestBody?: never;
20235
+ requestBody: {
20236
+ content: {
20237
+ "application/json": components["schemas"]["UpsertRfqQuoteRequest"];
20238
+ };
20239
+ };
19423
20240
  responses: {
19424
20241
  /** @description OK */
19425
20242
  200: {
@@ -19427,10 +20244,510 @@ export interface operations {
19427
20244
  [name: string]: unknown;
19428
20245
  };
19429
20246
  content: {
19430
- "application/json": components["schemas"]["TraderCodeResponse"];
20247
+ "application/json": components["schemas"]["RfqQuoteVersion"];
19431
20248
  };
19432
20249
  };
19433
- /** @description Authentication required */
20250
+ /** @description Invalid quote, or no side could be placed: RFQ_INSUFFICIENT_BALANCE when the maker cannot fund it, RFQ_QUOTE_REJECTED when the venue refuses it as it would the order, RFQ_SIDE_NOT_REQUESTED when it quotes the side a one-way RFQ did not ask for */
20251
+ 400: {
20252
+ headers: {
20253
+ [name: string]: unknown;
20254
+ };
20255
+ content?: never;
20256
+ };
20257
+ /** @description Authentication required */
20258
+ 401: {
20259
+ headers: {
20260
+ [name: string]: unknown;
20261
+ };
20262
+ content?: never;
20263
+ };
20264
+ /** @description The caller may not quote this RFQ (its own wallet, or RFQ disabled) */
20265
+ 403: {
20266
+ headers: {
20267
+ [name: string]: unknown;
20268
+ };
20269
+ content?: never;
20270
+ };
20271
+ /** @description RFQ not found */
20272
+ 404: {
20273
+ headers: {
20274
+ [name: string]: unknown;
20275
+ };
20276
+ content?: never;
20277
+ };
20278
+ /** @description Stale expected version, the deadline passed, or the RFQ takes no quotes */
20279
+ 409: {
20280
+ headers: {
20281
+ [name: string]: unknown;
20282
+ };
20283
+ content?: never;
20284
+ };
20285
+ /** @description RFQ service unavailable; retry */
20286
+ 503: {
20287
+ headers: {
20288
+ [name: string]: unknown;
20289
+ };
20290
+ content?: never;
20291
+ };
20292
+ };
20293
+ };
20294
+ withdraw_rfq_quote: {
20295
+ parameters: {
20296
+ query?: never;
20297
+ header?: never;
20298
+ path: {
20299
+ rfqId: string;
20300
+ };
20301
+ cookie?: never;
20302
+ };
20303
+ requestBody: {
20304
+ content: {
20305
+ "application/json": components["schemas"]["WithdrawRfqQuoteRequest"];
20306
+ };
20307
+ };
20308
+ responses: {
20309
+ /** @description OK */
20310
+ 200: {
20311
+ headers: {
20312
+ [name: string]: unknown;
20313
+ };
20314
+ content: {
20315
+ "application/json": components["schemas"]["WithdrawRfqQuoteResponse"];
20316
+ };
20317
+ };
20318
+ /** @description Invalid request */
20319
+ 400: {
20320
+ headers: {
20321
+ [name: string]: unknown;
20322
+ };
20323
+ content?: never;
20324
+ };
20325
+ /** @description Authentication required */
20326
+ 401: {
20327
+ headers: {
20328
+ [name: string]: unknown;
20329
+ };
20330
+ content?: never;
20331
+ };
20332
+ /** @description RFQ is not enabled for this account (RFQ_DISABLED) */
20333
+ 403: {
20334
+ headers: {
20335
+ [name: string]: unknown;
20336
+ };
20337
+ content?: never;
20338
+ };
20339
+ /** @description RFQ or quote not found */
20340
+ 404: {
20341
+ headers: {
20342
+ [name: string]: unknown;
20343
+ };
20344
+ content?: never;
20345
+ };
20346
+ /** @description Stale expected version, or the quote is already withdrawn */
20347
+ 409: {
20348
+ headers: {
20349
+ [name: string]: unknown;
20350
+ };
20351
+ content?: never;
20352
+ };
20353
+ /** @description RFQ service unavailable; retry */
20354
+ 503: {
20355
+ headers: {
20356
+ [name: string]: unknown;
20357
+ };
20358
+ content?: never;
20359
+ };
20360
+ };
20361
+ };
20362
+ get_sweeper_chains: {
20363
+ parameters: {
20364
+ query?: never;
20365
+ header?: never;
20366
+ path?: never;
20367
+ cookie?: never;
20368
+ };
20369
+ requestBody?: never;
20370
+ responses: {
20371
+ /** @description OK */
20372
+ 200: {
20373
+ headers: {
20374
+ [name: string]: unknown;
20375
+ };
20376
+ content: {
20377
+ "application/json": components["schemas"]["GetChainsResponse"];
20378
+ };
20379
+ };
20380
+ /** @description Internal server error */
20381
+ 500: {
20382
+ headers: {
20383
+ [name: string]: unknown;
20384
+ };
20385
+ content?: never;
20386
+ };
20387
+ /** @description Sweeper unavailable (not configured or resolver down); safe to retry */
20388
+ 503: {
20389
+ headers: {
20390
+ [name: string]: unknown;
20391
+ };
20392
+ content?: never;
20393
+ };
20394
+ };
20395
+ };
20396
+ list_sweeper_deposits: {
20397
+ parameters: {
20398
+ query?: {
20399
+ /** @description Items per page (max 100) */
20400
+ pageSize?: number;
20401
+ /**
20402
+ * @description Pagination cursor with two states:
20403
+ * - Omitted or empty string (""): start the walk from the newest deposit.
20404
+ * - Non-empty: an opaque cursor from a previous response's
20405
+ * `next_page_token`; results resume immediately after that position.
20406
+ *
20407
+ * The walk seeks on `(created_at, id)` descending over the caller's
20408
+ * inflows, served by `idx_sweeper_transfers_user_inflows`. `created_at` is
20409
+ * when the sweeper recorded the deposit and `id` an insertion-ordered
20410
+ * identity, so the key is total and immutable.
20411
+ */
20412
+ pageToken?: string;
20413
+ };
20414
+ header?: never;
20415
+ path?: never;
20416
+ cookie?: never;
20417
+ };
20418
+ requestBody?: never;
20419
+ responses: {
20420
+ /** @description OK */
20421
+ 200: {
20422
+ headers: {
20423
+ [name: string]: unknown;
20424
+ };
20425
+ content: {
20426
+ "application/json": components["schemas"]["ListDepositsResponse"];
20427
+ };
20428
+ };
20429
+ /** @description pageSize out of range, or a pageToken that is malformed or minted by another listing */
20430
+ 400: {
20431
+ headers: {
20432
+ [name: string]: unknown;
20433
+ };
20434
+ content?: never;
20435
+ };
20436
+ /** @description Authentication required */
20437
+ 401: {
20438
+ headers: {
20439
+ [name: string]: unknown;
20440
+ };
20441
+ content?: never;
20442
+ };
20443
+ /** @description Read rate limit exceeded — every authenticated read draws one request from the account's read budget; retry after the interval in details.retryAfter */
20444
+ 429: {
20445
+ headers: {
20446
+ [name: string]: unknown;
20447
+ };
20448
+ content?: never;
20449
+ };
20450
+ /** @description Internal server error */
20451
+ 500: {
20452
+ headers: {
20453
+ [name: string]: unknown;
20454
+ };
20455
+ content?: never;
20456
+ };
20457
+ /** @description Deposit status not available in this environment, or the read took too long; safe to retry */
20458
+ 503: {
20459
+ headers: {
20460
+ [name: string]: unknown;
20461
+ };
20462
+ content?: never;
20463
+ };
20464
+ };
20465
+ };
20466
+ get_sweeper_deposit_status: {
20467
+ parameters: {
20468
+ query?: never;
20469
+ header?: never;
20470
+ path: {
20471
+ txHash: string;
20472
+ };
20473
+ cookie?: never;
20474
+ };
20475
+ requestBody?: never;
20476
+ responses: {
20477
+ /** @description OK */
20478
+ 200: {
20479
+ headers: {
20480
+ [name: string]: unknown;
20481
+ };
20482
+ content: {
20483
+ "application/json": components["schemas"]["GetDepositStatusResponse"];
20484
+ };
20485
+ };
20486
+ /** @description txHash is not a 0x-prefixed 32-byte hex hash */
20487
+ 400: {
20488
+ headers: {
20489
+ [name: string]: unknown;
20490
+ };
20491
+ content?: never;
20492
+ };
20493
+ /** @description Authentication required */
20494
+ 401: {
20495
+ headers: {
20496
+ [name: string]: unknown;
20497
+ };
20498
+ content?: never;
20499
+ };
20500
+ /** @description Read rate limit exceeded — every authenticated read draws one request from the account's read budget; retry after the interval in details.retryAfter */
20501
+ 429: {
20502
+ headers: {
20503
+ [name: string]: unknown;
20504
+ };
20505
+ content?: never;
20506
+ };
20507
+ /** @description Internal server error */
20508
+ 500: {
20509
+ headers: {
20510
+ [name: string]: unknown;
20511
+ };
20512
+ content?: never;
20513
+ };
20514
+ /** @description Deposit status not available in this environment, or the read took too long; safe to retry */
20515
+ 503: {
20516
+ headers: {
20517
+ [name: string]: unknown;
20518
+ };
20519
+ content?: never;
20520
+ };
20521
+ };
20522
+ };
20523
+ register_deposit_address: {
20524
+ parameters: {
20525
+ query?: never;
20526
+ header?: never;
20527
+ path?: never;
20528
+ cookie?: never;
20529
+ };
20530
+ requestBody: {
20531
+ content: {
20532
+ "application/json": components["schemas"]["RegisterRequest"];
20533
+ };
20534
+ };
20535
+ responses: {
20536
+ /** @description OK */
20537
+ 200: {
20538
+ headers: {
20539
+ [name: string]: unknown;
20540
+ };
20541
+ content: {
20542
+ "application/json": components["schemas"]["RegisterResponse"];
20543
+ };
20544
+ };
20545
+ /** @description Invalid request parameters */
20546
+ 400: {
20547
+ headers: {
20548
+ [name: string]: unknown;
20549
+ };
20550
+ content?: never;
20551
+ };
20552
+ /** @description Authentication required */
20553
+ 401: {
20554
+ headers: {
20555
+ [name: string]: unknown;
20556
+ };
20557
+ content?: never;
20558
+ };
20559
+ /** @description The application for this session is not active */
20560
+ 403: {
20561
+ headers: {
20562
+ [name: string]: unknown;
20563
+ };
20564
+ content?: never;
20565
+ };
20566
+ /** @description Registration admission limit exceeded; retry shortly */
20567
+ 429: {
20568
+ headers: {
20569
+ [name: string]: unknown;
20570
+ };
20571
+ content?: never;
20572
+ };
20573
+ /** @description Internal server error */
20574
+ 500: {
20575
+ headers: {
20576
+ [name: string]: unknown;
20577
+ };
20578
+ content?: never;
20579
+ };
20580
+ /** @description Sweeper unavailable (not configured or resolver down); nothing was registered, safe to retry */
20581
+ 503: {
20582
+ headers: {
20583
+ [name: string]: unknown;
20584
+ };
20585
+ content?: never;
20586
+ };
20587
+ };
20588
+ };
20589
+ check_trader_code_availability: {
20590
+ parameters: {
20591
+ query?: {
20592
+ code?: string;
20593
+ };
20594
+ header?: never;
20595
+ path?: never;
20596
+ cookie?: never;
20597
+ };
20598
+ requestBody?: never;
20599
+ responses: {
20600
+ /** @description OK */
20601
+ 200: {
20602
+ headers: {
20603
+ [name: string]: unknown;
20604
+ };
20605
+ content: {
20606
+ "application/json": components["schemas"]["CheckTraderCodeAvailabilityResponse"];
20607
+ };
20608
+ };
20609
+ /** @description Availability check rate-limit exceeded */
20610
+ 429: {
20611
+ headers: {
20612
+ [name: string]: unknown;
20613
+ };
20614
+ content?: never;
20615
+ };
20616
+ /** @description Internal server error */
20617
+ 500: {
20618
+ headers: {
20619
+ [name: string]: unknown;
20620
+ };
20621
+ content?: never;
20622
+ };
20623
+ };
20624
+ };
20625
+ get_my_trader_code: {
20626
+ parameters: {
20627
+ query?: never;
20628
+ header?: never;
20629
+ path?: never;
20630
+ cookie?: never;
20631
+ };
20632
+ requestBody?: never;
20633
+ responses: {
20634
+ /** @description OK */
20635
+ 200: {
20636
+ headers: {
20637
+ [name: string]: unknown;
20638
+ };
20639
+ content: {
20640
+ "application/json": components["schemas"]["TraderCodeResponse"];
20641
+ };
20642
+ };
20643
+ /** @description Authentication required */
20644
+ 401: {
20645
+ headers: {
20646
+ [name: string]: unknown;
20647
+ };
20648
+ content?: never;
20649
+ };
20650
+ /** @description Read rate limit exceeded — every authenticated read draws one request from the account's read budget; retry after the interval in details.retryAfter */
20651
+ 429: {
20652
+ headers: {
20653
+ [name: string]: unknown;
20654
+ };
20655
+ content?: never;
20656
+ };
20657
+ /** @description Internal server error */
20658
+ 500: {
20659
+ headers: {
20660
+ [name: string]: unknown;
20661
+ };
20662
+ content?: never;
20663
+ };
20664
+ };
20665
+ };
20666
+ set_trader_code: {
20667
+ parameters: {
20668
+ query?: never;
20669
+ header?: never;
20670
+ path?: never;
20671
+ cookie?: never;
20672
+ };
20673
+ requestBody: {
20674
+ content: {
20675
+ "application/json": components["schemas"]["SetTraderCodeRequest"];
20676
+ };
20677
+ };
20678
+ responses: {
20679
+ /** @description OK */
20680
+ 200: {
20681
+ headers: {
20682
+ [name: string]: unknown;
20683
+ };
20684
+ content: {
20685
+ "application/json": components["schemas"]["TraderCodeResponse"];
20686
+ };
20687
+ };
20688
+ /** @description Authentication required */
20689
+ 401: {
20690
+ headers: {
20691
+ [name: string]: unknown;
20692
+ };
20693
+ content?: never;
20694
+ };
20695
+ /** @description Custom trader codes are not enabled */
20696
+ 403: {
20697
+ headers: {
20698
+ [name: string]: unknown;
20699
+ };
20700
+ content?: never;
20701
+ };
20702
+ /** @description Handle is taken (case-insensitive) or cooling down */
20703
+ 409: {
20704
+ headers: {
20705
+ [name: string]: unknown;
20706
+ };
20707
+ content?: never;
20708
+ };
20709
+ /** @description Validation failed; body carries a reason code */
20710
+ 422: {
20711
+ headers: {
20712
+ [name: string]: unknown;
20713
+ };
20714
+ content?: never;
20715
+ };
20716
+ /** @description Edit rate-limit exceeded */
20717
+ 429: {
20718
+ headers: {
20719
+ [name: string]: unknown;
20720
+ };
20721
+ content?: never;
20722
+ };
20723
+ /** @description Internal server error */
20724
+ 500: {
20725
+ headers: {
20726
+ [name: string]: unknown;
20727
+ };
20728
+ content?: never;
20729
+ };
20730
+ };
20731
+ };
20732
+ clear_trader_code: {
20733
+ parameters: {
20734
+ query?: never;
20735
+ header?: never;
20736
+ path?: never;
20737
+ cookie?: never;
20738
+ };
20739
+ requestBody?: never;
20740
+ responses: {
20741
+ /** @description OK */
20742
+ 200: {
20743
+ headers: {
20744
+ [name: string]: unknown;
20745
+ };
20746
+ content: {
20747
+ "application/json": components["schemas"]["TraderCodeResponse"];
20748
+ };
20749
+ };
20750
+ /** @description Authentication required */
19434
20751
  401: {
19435
20752
  headers: {
19436
20753
  [name: string]: unknown;
@@ -19751,6 +21068,63 @@ export interface operations {
19751
21068
  };
19752
21069
  };
19753
21070
  };
21071
+ list_trades: {
21072
+ parameters: {
21073
+ query?: {
21074
+ takerApplicationId?: string;
21075
+ /** @description Max trades to return (max 1000) */
21076
+ pageSize?: number;
21077
+ /**
21078
+ * @description Pagination cursor with two states:
21079
+ * - Omitted or empty string (""): start from the most recent trade.
21080
+ * - Non-empty: an opaque cursor from a previous response's
21081
+ * `next_page_token`; results resume immediately after that position.
21082
+ *
21083
+ * The walk is a keyset seek on `(executed_at, id)`, both immutable once a
21084
+ * trade is written, so a page neither repeats nor skips a trade when new
21085
+ * fills land mid-walk. `taker_application_id` is pinned inside the token, so
21086
+ * a token is rejected if the filter changes.
21087
+ */
21088
+ pageToken?: string;
21089
+ };
21090
+ header?: never;
21091
+ path?: never;
21092
+ cookie?: never;
21093
+ };
21094
+ requestBody?: never;
21095
+ responses: {
21096
+ /** @description OK */
21097
+ 200: {
21098
+ headers: {
21099
+ [name: string]: unknown;
21100
+ };
21101
+ content: {
21102
+ "application/json": components["schemas"]["ListTradesResponse"];
21103
+ };
21104
+ };
21105
+ /** @description Invalid filter, page size or page token */
21106
+ 400: {
21107
+ headers: {
21108
+ [name: string]: unknown;
21109
+ };
21110
+ content?: never;
21111
+ };
21112
+ /** @description Public read rate limit exceeded for this client */
21113
+ 429: {
21114
+ headers: {
21115
+ [name: string]: unknown;
21116
+ };
21117
+ content?: never;
21118
+ };
21119
+ /** @description Internal server error */
21120
+ 500: {
21121
+ headers: {
21122
+ [name: string]: unknown;
21123
+ };
21124
+ content?: never;
21125
+ };
21126
+ };
21127
+ };
19754
21128
  get_trade_by_id: {
19755
21129
  parameters: {
19756
21130
  query?: never;