@0xmonaco/types 1.0.90 → 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.
@@ -48,8 +48,10 @@ export interface BuildercodesAPI extends BaseAPI {
48
48
  * The bucket is resolved from the authenticated caller's own wallet address,
49
49
  * so a caller can only ever claim their own accrued balance. A wallet that
50
50
  * has never been an enrolled frontend's payout address has nothing to claim.
51
- * A wallet that *used to be* a payout address keeps what it accrued back then
52
- * and can still claim it — payout-address changes are not retroactive.
51
+ * Shortly after Monaco moves a frontend's payout address to a new wallet, the
52
+ * unclaimed balance accrued to the old wallet moves with it. A wallet that
53
+ * *used to be* a payout address can still claim whatever remains in its
54
+ * bucket.
53
55
  *
54
56
  * Throws 403 when the session is a delegated agent — a permanent
55
57
  * restriction on that session type, not a rollout state. No program switch
@@ -34,10 +34,8 @@ export declare const SimulateFeeResponseSchema: z.ZodObject<{
34
34
  applicationMakerFee: z.ZodOptional<z.ZodString>;
35
35
  applicationMakerFeeBps: z.ZodOptional<z.ZodNumber>;
36
36
  monacoMakerRebate: z.ZodString;
37
- monacoMakerRebateBps: z.ZodNumber;
38
37
  monacoMakerRebateBpsExact: z.ZodString;
39
38
  monacoTakerFee: z.ZodString;
40
- monacoTakerFeeBps: z.ZodNumber;
41
39
  monacoTakerFeeBpsExact: z.ZodString;
42
40
  notional: z.ZodString;
43
41
  takerTotalPayment: z.ZodString;
@@ -69,12 +69,6 @@ export const SimulateFeeResponseSchema = z.object({
69
69
  applicationMakerFeeBps: z.number().optional(),
70
70
  /** Monaco protocol maker rebate (negative = rebate) */
71
71
  monacoMakerRebate: z.string(),
72
- /**
73
- * Monaco maker rebate in basis points.
74
- * @deprecated Integer field cannot represent fractional tiered rebates (e.g. -1.15); it
75
- * echoes the flat trading-pair column, not the tier-resolved rate. Use monacoMakerRebateBpsExact.
76
- */
77
- monacoMakerRebateBps: z.number(),
78
72
  /**
79
73
  * Tier-resolved Monaco maker rebate as a decimal basis-points string (negative is a
80
74
  * rebate), e.g. "-1" — the exact rate the ledger credits this caller.
@@ -82,12 +76,6 @@ export const SimulateFeeResponseSchema = z.object({
82
76
  monacoMakerRebateBpsExact: z.string(),
83
77
  /** Monaco protocol taker fee */
84
78
  monacoTakerFee: z.string(),
85
- /**
86
- * Monaco taker fee in basis points.
87
- * @deprecated Integer field cannot represent fractional tiered rates (e.g. 6.5); it echoes
88
- * the flat trading-pair column, not the tier-resolved rate. Use monacoTakerFeeBpsExact.
89
- */
90
- monacoTakerFeeBps: z.number(),
91
79
  /**
92
80
  * Tier-resolved Monaco taker fee as a decimal basis-points string, e.g. "6.5" — the exact
93
81
  * rate the ledger charges this caller (equals monacoTakerFee / notional).
@@ -221,10 +221,26 @@ export interface TransferCollateralRequest {
221
221
  * bucket, which has no trading pair and so cannot be named any other way.
222
222
  */
223
223
  marginMode?: MarginMode;
224
+ /**
225
+ * Submission identity (1-64 of `A-Za-z0-9._:-`), shared with order create.
226
+ * Retrying the same key and request within 15 minutes returns the first
227
+ * transfer's result, its `movementId` included, and moves nothing again.
228
+ * Generate one per intended transfer and keep it across its retries; a
229
+ * different request under the same key fails with `IDEMPOTENCY_KEY_CONFLICT`.
230
+ */
231
+ idempotencyKey?: string;
224
232
  }
225
233
  export interface TransferCollateralToParentMarginAccountRequest {
226
234
  asset: string;
227
235
  amount: string;
236
+ /**
237
+ * Submission identity (1-64 of `A-Za-z0-9._:-`), shared with order create.
238
+ * Retrying the same key and request within 15 minutes returns the first
239
+ * transfer's result, its `movementId` included, and moves nothing again.
240
+ * Generate one per intended transfer and keep it across its retries; a
241
+ * different request under the same key fails with `IDEMPOTENCY_KEY_CONFLICT`.
242
+ */
243
+ idempotencyKey?: string;
228
244
  }
229
245
  /**
230
246
  * Fund a pair's isolated risk bucket from the parent margin account's
@@ -289,6 +305,14 @@ export type TransferCollateralToRiskBucketRequest = TransferCollateralToIsolated
289
305
  export interface TransferCollateralFromParentMarginAccountRequest {
290
306
  asset: string;
291
307
  amount: string;
308
+ /**
309
+ * Submission identity (1-64 of `A-Za-z0-9._:-`), shared with order create.
310
+ * Retrying the same key and request within 15 minutes returns the first
311
+ * transfer's result, its `movementId` included, and moves nothing again.
312
+ * Generate one per intended transfer and keep it across its retries; a
313
+ * different request under the same key fails with `IDEMPOTENCY_KEY_CONFLICT`.
314
+ */
315
+ idempotencyKey?: string;
292
316
  }
293
317
  export interface TransferCollateralResponse {
294
318
  movementId: string;
@@ -582,6 +606,14 @@ export interface TransferMarginCollateralRequest {
582
606
  amount: string;
583
607
  from: CollateralTransferEndpoint;
584
608
  to: CollateralTransferEndpoint;
609
+ /**
610
+ * Submission identity (1-64 of `A-Za-z0-9._:-`), shared with order create.
611
+ * Retrying the same key and request within 15 minutes returns the first
612
+ * transfer's result, its `movementId` included, and moves nothing again.
613
+ * Generate one per intended transfer and keep it across its retries; a
614
+ * different request under the same key fails with `IDEMPOTENCY_KEY_CONFLICT`.
615
+ */
616
+ idempotencyKey?: string;
585
617
  }
586
618
  export interface TransferMarginCollateralResponse {
587
619
  movementId: string;
@@ -28,6 +28,12 @@ export interface PortfolioSummaryCurrent {
28
28
  spotEquity?: string;
29
29
  perpsEquity: string;
30
30
  unrealizedPnl?: string;
31
+ /**
32
+ * What the user can spend or withdraw now: USDC available on spot plus the
33
+ * parent margin account's `withdrawableCollateral`. Other spot assets and
34
+ * unrealized margin gains are not counted. Served even when the valuation
35
+ * is partial.
36
+ */
31
37
  availableValue?: string;
32
38
  }
33
39
  export interface PortfolioSummaryActivity {
@@ -30,12 +30,14 @@ export declare const TransferCollateralSchema: z.ZodObject<{
30
30
  ISOLATED: "ISOLATED";
31
31
  CROSS: "CROSS";
32
32
  }>>;
33
+ idempotencyKey: z.ZodOptional<z.ZodString>;
33
34
  }, z.core.$strip>;
34
35
  }, z.core.$strip>;
35
36
  export declare const TransferCollateralToParentMarginAccountSchema: z.ZodObject<{
36
37
  request: z.ZodObject<{
37
38
  asset: z.ZodString;
38
39
  amount: z.ZodString;
40
+ idempotencyKey: z.ZodOptional<z.ZodString>;
39
41
  }, z.core.$strip>;
40
42
  }, z.core.$strip>;
41
43
  export declare const TransferCollateralToRiskBucketSchema: z.ZodObject<{
@@ -48,6 +50,7 @@ export declare const TransferCollateralToRiskBucketSchema: z.ZodObject<{
48
50
  }, z.core.$loose>, z.ZodUnion<readonly [z.ZodObject<{
49
51
  asset: z.ZodString;
50
52
  amount: z.ZodString;
53
+ idempotencyKey: z.ZodOptional<z.ZodString>;
51
54
  tradingPairId: z.ZodUUID;
52
55
  strategyKey: z.ZodOptional<z.ZodString>;
53
56
  marginMode: z.ZodOptional<z.ZodLiteral<"ISOLATED">>;
@@ -57,6 +60,7 @@ export declare const TransferCollateralToRiskBucketSchema: z.ZodObject<{
57
60
  }, z.core.$strict>, z.ZodObject<{
58
61
  asset: z.ZodString;
59
62
  amount: z.ZodString;
63
+ idempotencyKey: z.ZodOptional<z.ZodString>;
60
64
  marginMode: z.ZodLiteral<"CROSS">;
61
65
  marginAccountId: z.ZodOptional<z.ZodUUID>;
62
66
  selectedTradingPairIds: z.ZodOptional<z.ZodNever>;
@@ -68,6 +72,7 @@ export declare const TransferCollateralFromParentMarginAccountSchema: z.ZodObjec
68
72
  request: z.ZodObject<{
69
73
  asset: z.ZodString;
70
74
  amount: z.ZodString;
75
+ idempotencyKey: z.ZodOptional<z.ZodString>;
71
76
  }, z.core.$strip>;
72
77
  }, z.core.$strip>;
73
78
  export declare const GetMarginAccountMovementsSchema: z.ZodObject<{
@@ -200,6 +205,7 @@ export declare const CloseMarginSubAccountSchema: z.ZodObject<{
200
205
  export declare const SubAccountCollateralTransferSchema: z.ZodObject<{
201
206
  marginAccountId: z.ZodUUID;
202
207
  amount: z.ZodString;
208
+ idempotencyKey: z.ZodOptional<z.ZodString>;
203
209
  }, z.core.$strip>;
204
210
  export declare const GetMarginAccountPnlSchema: z.ZodObject<{
205
211
  marginAccountId: z.ZodUUID;
@@ -220,5 +226,6 @@ export declare const TransferMarginCollateralSchema: z.ZodObject<{
220
226
  marginAccountId: z.ZodUUID;
221
227
  riskBucketId: z.ZodOptional<z.ZodUUID>;
222
228
  }, z.core.$strict>]>;
229
+ idempotencyKey: z.ZodOptional<z.ZodString>;
223
230
  }, z.core.$strict>;
224
231
  }, z.core.$strip>;
@@ -2,7 +2,7 @@
2
2
  * Margin Account API Validation Schemas
3
3
  */
4
4
  import { z } from "zod";
5
- import { MarketSlippageToleranceBpsSchema, OrderSideSchema, OrderTypeSchema, PositionSideSchema, PositiveDecimalStringSchema, UUIDSchema } from "./trading";
5
+ import { MarketSlippageToleranceBpsSchema, OrderIdempotencyKeySchema, OrderSideSchema, OrderTypeSchema, PositionSideSchema, PositiveDecimalStringSchema, UUIDSchema, } from "./trading";
6
6
  const CursorPaginationSchema = z.object({
7
7
  /**
8
8
  * Rejected, not ignored. A non-strict object would let a JS or `any` caller
@@ -41,6 +41,7 @@ const TransferCollateralRequestSchema = z
41
41
  // A cross risk bucket has no trading pair, so CROSS is the only way to name
42
42
  // one on the way out (0XM-2420). The two never combine.
43
43
  marginMode: z.enum(["ISOLATED", "CROSS"]).optional(),
44
+ idempotencyKey: OrderIdempotencyKeySchema.optional(),
44
45
  })
45
46
  .refine((request) => !(request.marginMode === "CROSS" && request.tradingPairId !== undefined), {
46
47
  message: "tradingPairId is not supported for CROSS risk buckets",
@@ -49,6 +50,7 @@ const TransferCollateralRequestSchema = z
49
50
  const ParentMarginAccountCollateralRequestSchema = z.object({
50
51
  asset: z.string().trim().min(1, "Asset cannot be empty"),
51
52
  amount: PositiveDecimalStringSchema,
53
+ idempotencyKey: OrderIdempotencyKeySchema.optional(),
52
54
  });
53
55
  const RiskBucketRequestSchema = z.object({
54
56
  tradingPairId: UUIDSchema,
@@ -256,6 +258,7 @@ export const CloseMarginSubAccountSchema = z.object({
256
258
  export const SubAccountCollateralTransferSchema = z.object({
257
259
  marginAccountId: UUIDSchema,
258
260
  amount: PositiveDecimalStringSchema,
261
+ idempotencyKey: OrderIdempotencyKeySchema.optional(),
259
262
  });
260
263
  export const GetMarginAccountPnlSchema = z.object({
261
264
  marginAccountId: UUIDSchema,
@@ -271,6 +274,7 @@ export const TransferMarginCollateralSchema = z.object({
271
274
  amount: PositiveDecimalStringSchema,
272
275
  from: CollateralTransferEndpointSchema,
273
276
  to: CollateralTransferEndpointSchema,
277
+ idempotencyKey: OrderIdempotencyKeySchema.optional(),
274
278
  })
275
279
  .strict(),
276
280
  });
@@ -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
@@ -9147,6 +9149,7 @@ export interface components {
9147
9149
  spotEquity?: string | null;
9148
9150
  perpsEquity?: string | null;
9149
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. */
9150
9153
  availableValue?: string | null;
9151
9154
  };
9152
9155
  PortfolioWindow: {
@@ -10332,20 +10335,6 @@ export interface components {
10332
10335
  * @example 20030.00
10333
10336
  */
10334
10337
  buyOrderLockAmount?: string | null;
10335
- /**
10336
- * Format: int32
10337
- * @deprecated
10338
- * @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).
10339
- * @example 10
10340
- */
10341
- monacoTakerFeeBps?: number | null;
10342
- /**
10343
- * Format: int32
10344
- * @deprecated
10345
- * @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).
10346
- * @example -2
10347
- */
10348
- monacoMakerRebateBps?: number | null;
10349
10338
  /**
10350
10339
  * Format: int32
10351
10340
  * @description Application taker fee rate in basis points
@@ -10374,12 +10363,12 @@ export interface components {
10374
10363
  */
10375
10364
  slippageToleranceBps?: number | null;
10376
10365
  /**
10377
- * @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".
10378
10367
  * @example 6.5
10379
10368
  */
10380
10369
  monacoTakerFeeBpsExact?: string | null;
10381
10370
  /**
10382
- * @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".
10383
10372
  * @example -1
10384
10373
  */
10385
10374
  monacoMakerRebateBpsExact?: string | null;
@@ -11156,6 +11145,8 @@ export interface components {
11156
11145
  * trading pair and so cannot be named any other way. Values: ISOLATED, CROSS.
11157
11146
  */
11158
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;
11159
11150
  };
11160
11151
  TransferCollateralFromMarginAccountResponse: {
11161
11152
  movementId?: string | null;
@@ -11177,11 +11168,15 @@ export interface components {
11177
11168
  TransferCollateralFromParentMarginAccountRequest: {
11178
11169
  asset?: string | null;
11179
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;
11180
11173
  };
11181
11174
  TransferCollateralFromSubAccountRequest: {
11182
11175
  /** @description The caller's sub-account the collateral leaves. */
11183
11176
  marginAccountId?: string | null;
11184
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;
11185
11180
  };
11186
11181
  TransferCollateralRequest: {
11187
11182
  /** @description Collateral asset symbol or address. */
@@ -11191,6 +11186,8 @@ export interface components {
11191
11186
  from?: components["schemas"]["CollateralTransferEndpoint"] | null;
11192
11187
  /** @description Where the collateral goes. */
11193
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;
11194
11191
  };
11195
11192
  TransferCollateralResponse: {
11196
11193
  movementId?: string | null;
@@ -11216,6 +11213,8 @@ export interface components {
11216
11213
  tradingPairId?: string | null;
11217
11214
  /** @description Optional strategy key echoed in responses when callers scope a risk bucket. */
11218
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;
11219
11218
  };
11220
11219
  TransferCollateralToMarginAccountResponse: {
11221
11220
  movementId?: string | null;
@@ -11259,6 +11258,8 @@ export interface components {
11259
11258
  TransferCollateralToParentMarginAccountRequest: {
11260
11259
  asset?: string | null;
11261
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;
11262
11263
  };
11263
11264
  TransferCollateralToRiskBucketRequest: {
11264
11265
  asset?: string | null;
@@ -11314,11 +11315,15 @@ export interface components {
11314
11315
  * sub-account's buckets belong to its follow and are refused.
11315
11316
  */
11316
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;
11317
11320
  };
11318
11321
  TransferCollateralToSubAccountRequest: {
11319
11322
  /** @description The caller's sub-account that receives the collateral. */
11320
11323
  marginAccountId?: string | null;
11321
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;
11322
11327
  };
11323
11328
  TransferRewardsRequest: {
11324
11329
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xmonaco/types",
3
- "version": "1.0.90",
3
+ "version": "1.0.91",
4
4
  "type": "module",
5
5
  "homepage": "https://docs.0xmonaco.com/sdk/typescript",
6
6
  "main": "./dist/index.js",
@@ -16,7 +16,7 @@
16
16
  "lint": "biome lint ."
17
17
  },
18
18
  "dependencies": {
19
- "@0xmonaco/contracts": "1.0.90",
19
+ "@0xmonaco/contracts": "1.0.91",
20
20
  "zod": "^4.1.12"
21
21
  },
22
22
  "peerDependencies": {