@0xmonaco/types 1.0.80 → 1.0.82

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.
Files changed (35) hide show
  1. package/dist/auth/index.d.ts +2 -2
  2. package/dist/auth/responses.d.ts +1 -1
  3. package/dist/copy-trading/responses.d.ts +19 -19
  4. package/dist/index.d.ts +1 -0
  5. package/dist/index.js +1 -0
  6. package/dist/margin-accounts/index.d.ts +10 -0
  7. package/dist/market/index.d.ts +19 -8
  8. package/dist/pitpass/index.d.ts +9 -137
  9. package/dist/pitpass/index.js +5 -3
  10. package/dist/positions/index.d.ts +18 -4
  11. package/dist/profile/index.d.ts +40 -25
  12. package/dist/sdk/index.d.ts +9 -1
  13. package/dist/tradercodes/index.d.ts +142 -0
  14. package/dist/tradercodes/index.js +6 -0
  15. package/dist/{pitpass → tradercodes}/responses.d.ts +2 -2
  16. package/dist/{pitpass → tradercodes}/responses.js +3 -3
  17. package/dist/trading/index.d.ts +24 -2
  18. package/dist/trading/orders.d.ts +24 -5
  19. package/dist/trading/responses.d.ts +38 -0
  20. package/dist/validation/positions.d.ts +6 -1
  21. package/dist/validation/positions.js +18 -2
  22. package/dist/validation/trading.d.ts +12 -2
  23. package/dist/validation/trading.js +9 -0
  24. package/dist/websocket/base.d.ts +34 -5
  25. package/dist/websocket/client.d.ts +31 -10
  26. package/dist/websocket/client.js +8 -6
  27. package/dist/websocket/events/copy-events.d.ts +1 -1
  28. package/dist/websocket/events/market-stats-events.d.ts +13 -9
  29. package/dist/websocket/events/position-events.d.ts +14 -0
  30. package/dist/websocket/snapshots.d.ts +21 -3
  31. package/dist/websocket/snapshots.js +5 -3
  32. package/dist/wire/operations.d.ts +1 -1
  33. package/dist/wire/operations.js +11 -0
  34. package/dist/wire/schema.d.ts +1104 -170
  35. package/package.json +2 -2
@@ -2197,7 +2197,7 @@ export interface paths {
2197
2197
  };
2198
2198
  /**
2199
2199
  * Open Interest
2200
- * @description Open interest for a perp market.
2200
+ * @description Gross open interest (longs plus shorts) for a perp market.
2201
2201
  */
2202
2202
  get: operations["get_open_interest"];
2203
2203
  put?: never;
@@ -2616,6 +2616,32 @@ export interface paths {
2616
2616
  patch?: never;
2617
2617
  trace?: never;
2618
2618
  };
2619
+ "/api/v1/orders/twap/{twapOrderId}/slices": {
2620
+ parameters: {
2621
+ query?: never;
2622
+ header?: never;
2623
+ path?: never;
2624
+ cookie?: never;
2625
+ };
2626
+ /**
2627
+ * List TWAP order slices
2628
+ * @description List TWAP order slices.
2629
+ *
2630
+ * List the child orders a TWAP parent placed (its slices), each in the
2631
+ * same shape as GetOrder, in placement order. A passive TWAP's reprices and
2632
+ * deadline sweeps are slices too, so a parent can have more slices than
2633
+ * `slicesPlaced`. Resting and finished slices are both listed. Users can
2634
+ * only access their own TWAP orders.
2635
+ */
2636
+ get: operations["list_twap_order_slices"];
2637
+ put?: never;
2638
+ post?: never;
2639
+ delete?: never;
2640
+ options?: never;
2641
+ head?: never;
2642
+ patch?: never;
2643
+ trace?: never;
2644
+ };
2619
2645
  "/api/v1/orders/twap/{twapOrderId}/tca": {
2620
2646
  parameters: {
2621
2647
  query?: never;
@@ -2685,7 +2711,8 @@ export interface paths {
2685
2711
  cookie?: never;
2686
2712
  };
2687
2713
  /**
2688
- * Check custom TraderCode availability
2714
+ * Check custom TraderCode availability (deprecated PitPass path)
2715
+ * @deprecated
2689
2716
  * @description Check custom-handle availability (public, advisory).
2690
2717
  *
2691
2718
  * Unauthenticated as-you-type check for a custom handle: returns `available`
@@ -2693,7 +2720,7 @@ export interface paths {
2693
2720
  * authoritative gate is the atomic claim in SetTraderCode — so a positive
2694
2721
  * result never reserves the handle.
2695
2722
  */
2696
- get: operations["check_trader_code_availability"];
2723
+ get: operations["pitpass_check_trader_code_availability"];
2697
2724
  put?: never;
2698
2725
  post?: never;
2699
2726
  delete?: never;
@@ -2710,7 +2737,8 @@ export interface paths {
2710
2737
  cookie?: never;
2711
2738
  };
2712
2739
  /**
2713
- * Get your TraderCode
2740
+ * Get your TraderCode (deprecated PitPass path)
2741
+ * @deprecated
2714
2742
  * @description Claim your TraderCode.
2715
2743
  *
2716
2744
  * Get your TraderCode.
@@ -2720,7 +2748,7 @@ export interface paths {
2720
2748
  * code always exists for a signed-in wallet — and ensures the backing row so
2721
2749
  * referrals attributed to this wallet have a code to link.
2722
2750
  */
2723
- get: operations["get_my_trader_code"];
2751
+ get: operations["pitpass_get_my_trader_code"];
2724
2752
  put?: never;
2725
2753
  post?: never;
2726
2754
  delete?: never;
@@ -2738,7 +2766,8 @@ export interface paths {
2738
2766
  };
2739
2767
  get?: never;
2740
2768
  /**
2741
- * Claim or edit your custom TraderCode
2769
+ * Claim or edit your custom TraderCode (deprecated PitPass path)
2770
+ * @deprecated
2742
2771
  * @description Claim or edit your custom TraderCode handle.
2743
2772
  *
2744
2773
  * Single claim-or-edit entry point: set the authenticated caller's custom
@@ -2749,10 +2778,11 @@ export interface paths {
2749
2778
  * uniqueness is case-insensitive. Gated by the `custom_trader_codes_enabled`
2750
2779
  * feature flag. Returns the caller's updated TraderCode identity.
2751
2780
  */
2752
- put: operations["set_trader_code"];
2781
+ put: operations["pitpass_set_trader_code"];
2753
2782
  post?: never;
2754
2783
  /**
2755
- * Clear your custom TraderCode
2784
+ * Clear your custom TraderCode (deprecated PitPass path)
2785
+ * @deprecated
2756
2786
  * @description Clear your custom TraderCode handle.
2757
2787
  *
2758
2788
  * Revert the authenticated caller to their wallet-derived default, releasing
@@ -2761,7 +2791,7 @@ export interface paths {
2761
2791
  * rolling-hour rate-limit. Gated by the `custom_trader_codes_enabled` feature
2762
2792
  * flag.
2763
2793
  */
2764
- delete: operations["clear_trader_code"];
2794
+ delete: operations["pitpass_clear_trader_code"];
2765
2795
  options?: never;
2766
2796
  head?: never;
2767
2797
  patch?: never;
@@ -2775,14 +2805,15 @@ export interface paths {
2775
2805
  cookie?: never;
2776
2806
  };
2777
2807
  /**
2778
- * Look up a TraderCode
2808
+ * Look up a TraderCode (deprecated PitPass path)
2809
+ * @deprecated
2779
2810
  * @description Look up a TraderCode (public).
2780
2811
  *
2781
2812
  * Public, unauthenticated lookup used to validate a referral code at signup.
2782
2813
  * The code is a wallet address; returns the normalized code when it resolves
2783
2814
  * to a known wallet. Returns 404 when the code does not resolve to a user.
2784
2815
  */
2785
- get: operations["get_trader_code_info"];
2816
+ get: operations["pitpass_get_trader_code_info"];
2786
2817
  put?: never;
2787
2818
  post?: never;
2788
2819
  delete?: never;
@@ -2799,7 +2830,8 @@ export interface paths {
2799
2830
  cookie?: never;
2800
2831
  };
2801
2832
  /**
2802
- * Get your referral position
2833
+ * Get your referral position (deprecated PitPass path)
2834
+ * @deprecated
2803
2835
  * @description Read your own referral position (self-scoped).
2804
2836
  *
2805
2837
  * Return the authenticated caller's referral position: their referral chain
@@ -2811,7 +2843,7 @@ export interface paths {
2811
2843
  * identified by their public wallet address, never an internal id. An empty
2812
2844
  * `referrer` means the caller was not referred.
2813
2845
  */
2814
- get: operations["get_my_referral_position"];
2846
+ get: operations["pitpass_get_my_referral_position"];
2815
2847
  put?: never;
2816
2848
  post?: never;
2817
2849
  delete?: never;
@@ -2828,7 +2860,8 @@ export interface paths {
2828
2860
  cookie?: never;
2829
2861
  };
2830
2862
  /**
2831
- * Get your referral downline and earnings
2863
+ * Get your referral downline and earnings (deprecated PitPass path)
2864
+ * @deprecated
2832
2865
  * @description Read your own downline earnings (self-scoped).
2833
2866
  *
2834
2867
  * Return who the authenticated caller earns from and how much: one page of
@@ -2841,7 +2874,7 @@ export interface paths {
2841
2874
  * source and referee is identified by their public wallet address, never an
2842
2875
  * internal id.
2843
2876
  */
2844
- get: operations["get_my_referral_downline"];
2877
+ get: operations["pitpass_get_my_referral_downline"];
2845
2878
  put?: never;
2846
2879
  post?: never;
2847
2880
  delete?: never;
@@ -2858,7 +2891,8 @@ export interface paths {
2858
2891
  cookie?: never;
2859
2892
  };
2860
2893
  /**
2861
- * Get one level of your referral tree
2894
+ * Get one level of your referral tree (deprecated PitPass path)
2895
+ * @deprecated
2862
2896
  * @description Read one level of your own referral tree (self-scoped).
2863
2897
  *
2864
2898
  * Return the wallets directly referred by `parent` — the authenticated caller
@@ -2877,7 +2911,7 @@ export interface paths {
2877
2911
  * anyone else's tree. Every node is identified by its public wallet address,
2878
2912
  * never an internal id.
2879
2913
  */
2880
- get: operations["get_my_referral_tree"];
2914
+ get: operations["pitpass_get_my_referral_tree"];
2881
2915
  put?: never;
2882
2916
  post?: never;
2883
2917
  delete?: never;
@@ -2894,15 +2928,16 @@ export interface paths {
2894
2928
  cookie?: never;
2895
2929
  };
2896
2930
  /**
2897
- * Get your rewards balance
2898
- * @description Read accrued PitPass rewards balance.
2931
+ * Get your rewards balance (deprecated PitPass path)
2932
+ * @deprecated
2933
+ * @description Read accrued TraderCodes rewards balance.
2899
2934
  *
2900
2935
  * Return the caller's current rewards-bucket balances across all reward tokens.
2901
2936
  * Rewards accumulate here as referred users trade; call TransferRewards to move
2902
2937
  * them into a tradeable balance. Returns an empty list when no rewards have
2903
2938
  * been earned yet.
2904
2939
  */
2905
- get: operations["get_rewards_balance"];
2940
+ get: operations["pitpass_get_rewards_balance"];
2906
2941
  put?: never;
2907
2942
  post?: never;
2908
2943
  delete?: never;
@@ -2921,17 +2956,18 @@ export interface paths {
2921
2956
  get?: never;
2922
2957
  put?: never;
2923
2958
  /**
2924
- * Transfer rewards into a trading balance
2959
+ * Transfer rewards into a trading balance (deprecated PitPass path)
2960
+ * @deprecated
2925
2961
  * @description Transfer earned rewards into a trading balance.
2926
2962
  *
2927
- * Move spendable PitPass reward balance from your rewards bucket into a
2963
+ * Move spendable TraderCodes reward balance from your rewards bucket into a
2928
2964
  * trading balance under the authenticated application, making it tradeable
2929
2965
  * immediately. Ledger-only (one shared vault + one backend ledger) — no
2930
- * on-chain transaction and no gas. Fails with 402 when the rewards balance is
2966
+ * on-chain transaction and no gas. Fails with 409 when the rewards balance is
2931
2967
  * insufficient. It spends the per-user movement budget withdrawals and
2932
2968
  * collateral transfers share.
2933
2969
  */
2934
- post: operations["transfer_rewards"];
2970
+ post: operations["pitpass_transfer_rewards"];
2935
2971
  delete?: never;
2936
2972
  options?: never;
2937
2973
  head?: never;
@@ -2967,10 +3003,11 @@ export interface paths {
2967
3003
  * @description Close all open positions in a single batch ("panic close").
2968
3004
  *
2969
3005
  * Submits a MARKET reduce-only close for every open position owned by the
2970
- * caller, optionally filtered to a single trading pair. Best-effort and
2971
- * partial: each position closes independently and per-position failures are
2972
- * reported in `results` rather than aborting the batch. Each close draws
2973
- * one item from the risk-reduction rate limit (an empty call draws one).
3006
+ * caller, optionally filtered to one trading pair or a set of them, and to
3007
+ * one side (LONG or SHORT). Best-effort and partial: each position closes
3008
+ * independently and per-position failures are reported in `results` rather
3009
+ * than aborting the batch. Each close draws one item from the
3010
+ * risk-reduction rate limit (an empty call draws one).
2974
3011
  * The first 100 are charged before anything is sent: over budget, the
2975
3012
  * whole call is refused with 429 and nothing is closed. Past 100 open
2976
3013
  * positions the rest are charged 100 at a time as the call reaches them,
@@ -3194,7 +3231,7 @@ export interface paths {
3194
3231
  patch?: never;
3195
3232
  trace?: never;
3196
3233
  };
3197
- "/api/v1/trades/by-id/{tradeId}": {
3234
+ "/api/v1/tradercodes/codes/available": {
3198
3235
  parameters: {
3199
3236
  query?: never;
3200
3237
  header?: never;
@@ -3202,12 +3239,15 @@ export interface paths {
3202
3239
  cookie?: never;
3203
3240
  };
3204
3241
  /**
3205
- * Get Trade by ID
3206
- * @description Get Trade by ID
3242
+ * Check custom TraderCode availability
3243
+ * @description Check custom-handle availability (public, advisory).
3207
3244
  *
3208
- * Retrieve a single trade by its unique identifier.
3245
+ * Unauthenticated as-you-type check for a custom handle: returns `available`
3246
+ * plus, when unavailable, a snake_case `reason` code. Advisory only — the
3247
+ * authoritative gate is the atomic claim in SetTraderCode — so a positive
3248
+ * result never reserves the handle.
3209
3249
  */
3210
- get: operations["get_trade_by_id"];
3250
+ get: operations["check_trader_code_availability"];
3211
3251
  put?: never;
3212
3252
  post?: never;
3213
3253
  delete?: never;
@@ -3216,7 +3256,7 @@ export interface paths {
3216
3256
  patch?: never;
3217
3257
  trace?: never;
3218
3258
  };
3219
- "/api/v1/trades/{tradingPairId}": {
3259
+ "/api/v1/tradercodes/codes/me": {
3220
3260
  parameters: {
3221
3261
  query?: never;
3222
3262
  header?: never;
@@ -3224,12 +3264,17 @@ export interface paths {
3224
3264
  cookie?: never;
3225
3265
  };
3226
3266
  /**
3227
- * Recent Trades
3228
- * @description Recent Trades
3267
+ * Get your TraderCode
3268
+ * @description Claim your TraderCode.
3229
3269
  *
3230
- * Get recent trades for a trading pair sorted by execution time.
3270
+ * Get your TraderCode.
3271
+ *
3272
+ * Return the authenticated caller's TraderCode, which is derived from their
3273
+ * wallet address (rendered `Monaco - <address>` by clients). Never 404s — the
3274
+ * code always exists for a signed-in wallet — and ensures the backing row so
3275
+ * referrals attributed to this wallet have a code to link.
3231
3276
  */
3232
- get: operations["get_trades"];
3277
+ get: operations["get_my_trader_code"];
3233
3278
  put?: never;
3234
3279
  post?: never;
3235
3280
  delete?: never;
@@ -3238,7 +3283,7 @@ export interface paths {
3238
3283
  patch?: never;
3239
3284
  trace?: never;
3240
3285
  };
3241
- "/api/v1/whitelist": {
3286
+ "/api/v1/tradercodes/codes/me/custom": {
3242
3287
  parameters: {
3243
3288
  query?: never;
3244
3289
  header?: never;
@@ -3246,24 +3291,61 @@ export interface paths {
3246
3291
  cookie?: never;
3247
3292
  };
3248
3293
  get?: never;
3249
- put?: never;
3250
3294
  /**
3251
- * Whitelist applications closed
3252
- * @deprecated
3253
- * @description Public whitelist applications are closed.
3295
+ * Claim or edit your custom TraderCode
3296
+ * @description Claim or edit your custom TraderCode handle.
3254
3297
  *
3255
- * Retained for client compatibility. Every decoded submission is rejected with
3256
- * HTTP 403 Forbidden / gRPC PERMISSION_DENIED and no applicant data is changed.
3257
- * Existing applications and administrative approvals remain available.
3298
+ * Single claim-or-edit entry point: set the authenticated caller's custom
3299
+ * vanity handle (a `[A-Za-z0-9_]`, letter-first, 5–20-char name), keeping the
3300
+ * permanent wallet-derived code as the reward identity. The first claim is
3301
+ * free; subsequent changes are rate-limited and release the freed handle into
3302
+ * a cooldown before anyone else can reclaim it. Case is preserved on store;
3303
+ * uniqueness is case-insensitive. Gated by the `custom_trader_codes_enabled`
3304
+ * feature flag. Returns the caller's updated TraderCode identity.
3258
3305
  */
3259
- post: operations["submit_whitelist"];
3306
+ put: operations["set_trader_code"];
3307
+ post?: never;
3308
+ /**
3309
+ * Clear your custom TraderCode
3310
+ * @description Clear your custom TraderCode handle.
3311
+ *
3312
+ * Revert the authenticated caller to their wallet-derived default, releasing
3313
+ * the freed handle into cooldown. A no-op (returns the current default) when
3314
+ * no custom handle is set. Like an edit, a clear counts against the
3315
+ * rolling-hour rate-limit. Gated by the `custom_trader_codes_enabled` feature
3316
+ * flag.
3317
+ */
3318
+ delete: operations["clear_trader_code"];
3319
+ options?: never;
3320
+ head?: never;
3321
+ patch?: never;
3322
+ trace?: never;
3323
+ };
3324
+ "/api/v1/tradercodes/codes/{code}": {
3325
+ parameters: {
3326
+ query?: never;
3327
+ header?: never;
3328
+ path?: never;
3329
+ cookie?: never;
3330
+ };
3331
+ /**
3332
+ * Look up a TraderCode
3333
+ * @description Look up a TraderCode (public).
3334
+ *
3335
+ * Public, unauthenticated lookup used to validate a referral code at signup.
3336
+ * The code is a wallet address; returns the normalized code when it resolves
3337
+ * to a known wallet. Returns 404 when the code does not resolve to a user.
3338
+ */
3339
+ get: operations["get_trader_code_info"];
3340
+ put?: never;
3341
+ post?: never;
3260
3342
  delete?: never;
3261
3343
  options?: never;
3262
3344
  head?: never;
3263
3345
  patch?: never;
3264
3346
  trace?: never;
3265
3347
  };
3266
- "/api/v1/withdrawals": {
3348
+ "/api/v1/tradercodes/referrals/me": {
3267
3349
  parameters: {
3268
3350
  query?: never;
3269
3351
  header?: never;
@@ -3271,36 +3353,58 @@ export interface paths {
3271
3353
  cookie?: never;
3272
3354
  };
3273
3355
  /**
3274
- * List pending withdrawals
3275
- * @description List the caller's pending withdrawals.
3356
+ * Get your referral position
3357
+ * @description Read your own referral position (self-scoped).
3276
3358
  *
3277
- * Authenticated. Returns the caller's withdrawals that are still awaiting
3278
- * on-chain root confirmation (status `pending`) — i.e. those for which the
3279
- * merkle proof, and therefore the executable calldata from GetWithdrawal, is
3280
- * not available yet. Scoped to the authenticated account: only withdrawals
3281
- * owned by the caller's user + application are returned. Newest first, paged.
3359
+ * Return the authenticated caller's referral position: their referral chain
3360
+ * upward (L1, L2 and onward — who referred them, who referred that wallet, and
3361
+ * so on, as many levels as their trades on this client application pay), the
3362
+ * total rewards they have earned, and their most recent reward rows.
3363
+ * Self-scoped — identity comes only from the session, never a path id,
3364
+ * so a caller can only ever read their own chain. Every other user is
3365
+ * identified by their public wallet address, never an internal id. An empty
3366
+ * `referrer` means the caller was not referred.
3282
3367
  */
3283
- get: operations["list_pending_withdrawals"];
3368
+ get: operations["get_my_referral_position"];
3284
3369
  put?: never;
3370
+ post?: never;
3371
+ delete?: never;
3372
+ options?: never;
3373
+ head?: never;
3374
+ patch?: never;
3375
+ trace?: never;
3376
+ };
3377
+ "/api/v1/tradercodes/referrals/me/downline": {
3378
+ parameters: {
3379
+ query?: never;
3380
+ header?: never;
3381
+ path?: never;
3382
+ cookie?: never;
3383
+ };
3285
3384
  /**
3286
- * Initiate withdrawal
3287
- * @description Initiate a withdrawal.
3385
+ * Get your referral downline and earnings
3386
+ * @description Read your own downline earnings (self-scoped).
3288
3387
  *
3289
- * Master accounts with the withdraw permission only. Routes through the
3290
- * matching engine to debit the balance and allocate a `withdrawal_index`,
3291
- * then returns it plus the target vault address. The `calldata` field is
3292
- * empty: `executeWithdrawal` requires the merkle proof, which only exists
3293
- * after the withdrawal's root is confirmed on-chain. Poll GetWithdrawal to
3294
- * obtain the calldata once it is ready.
3388
+ * Return who the authenticated caller earns from and how much: one page of
3389
+ * the earnings-by-source breakdown across every reward level, their L1
3390
+ * direct-referee roster (including referees who have not traded yet), and a
3391
+ * per-level earnings summary that always covers every level and source,
3392
+ * whatever page is requested. `earnings_by_source` is paged (`page_size`,
3393
+ * `page_token`); a request without them gets the first page, not every row.
3394
+ * Self-scoped — identity comes only from the session, never a path id. Every
3395
+ * source and referee is identified by their public wallet address, never an
3396
+ * internal id.
3295
3397
  */
3296
- post: operations["initiate_withdrawal"];
3398
+ get: operations["get_my_referral_downline"];
3399
+ put?: never;
3400
+ post?: never;
3297
3401
  delete?: never;
3298
3402
  options?: never;
3299
3403
  head?: never;
3300
3404
  patch?: never;
3301
3405
  trace?: never;
3302
3406
  };
3303
- "/api/v1/withdrawals/{withdrawalIndex}": {
3407
+ "/api/v1/tradercodes/referrals/me/tree": {
3304
3408
  parameters: {
3305
3409
  query?: never;
3306
3410
  header?: never;
@@ -3308,18 +3412,26 @@ export interface paths {
3308
3412
  cookie?: never;
3309
3413
  };
3310
3414
  /**
3311
- * Get withdrawal
3312
- * @description Fetch a withdrawal's executable calldata by index.
3415
+ * Get one level of your referral tree
3416
+ * @description Read one level of your own referral tree (self-scoped).
3313
3417
  *
3314
- * Public lookup — no auth. Returns the vault address and ABI-encoded
3315
- * `executeWithdrawal(...)` calldata for a previously-initiated
3316
- * `withdrawal_index`. The calldata is bound to the fixed
3317
- * (index, metadata, owner, destination, token, amount) tuple persisted for
3318
- * the withdrawal, so re-fetching it cannot redirect funds. Returns 409 while
3319
- * the withdrawal's root has not been confirmed on-chain yet (proof not
3320
- * available) — clients poll this endpoint until it succeeds.
3418
+ * Return the wallets directly referred by `parent` — the authenticated caller
3419
+ * when `parent` is omitted, otherwise one of the caller's own referees above
3420
+ * the deepest rewarded level — one page at a time, newest first. Each node carries its level
3421
+ * relative to the caller, its parent, how many wallets it has referred (so the
3422
+ * client knows whether it can be expanded), and what the caller has earned
3423
+ * from that wallet's own trades. Expanding a node is another call with
3424
+ * `parent` set to that node's wallet; the tree always lists the caller's
3425
+ * direct referees (L1) and goes as deep as any client application rewards,
3426
+ * at most 10 levels.
3427
+ *
3428
+ * Self-scoped — identity comes only from the session. A `parent` that is not
3429
+ * the caller or a referee the caller can expand returns 404, the same
3430
+ * as a wallet that does not exist, so the endpoint cannot be used to read
3431
+ * anyone else's tree. Every node is identified by its public wallet address,
3432
+ * never an internal id.
3321
3433
  */
3322
- get: operations["get_withdrawal"];
3434
+ get: operations["get_my_referral_tree"];
3323
3435
  put?: never;
3324
3436
  post?: never;
3325
3437
  delete?: never;
@@ -3328,7 +3440,7 @@ export interface paths {
3328
3440
  patch?: never;
3329
3441
  trace?: never;
3330
3442
  };
3331
- "/health": {
3443
+ "/api/v1/tradercodes/rewards/balance": {
3332
3444
  parameters: {
3333
3445
  query?: never;
3334
3446
  header?: never;
@@ -3336,13 +3448,15 @@ export interface paths {
3336
3448
  cookie?: never;
3337
3449
  };
3338
3450
  /**
3339
- * Health check
3340
- * @description Health check.
3451
+ * Get your rewards balance
3452
+ * @description Read accrued TraderCodes rewards balance.
3341
3453
  *
3342
- * Returns the current health status of the API gateway and its connected
3343
- * services. Can be used for monitoring and load balancer health checks.
3454
+ * Return the caller's current rewards-bucket balances across all reward tokens.
3455
+ * Rewards accumulate here as referred users trade; call TransferRewards to move
3456
+ * them into a tradeable balance. Returns an empty list when no rewards have
3457
+ * been earned yet.
3344
3458
  */
3345
- get: operations["health_check"];
3459
+ get: operations["get_rewards_balance"];
3346
3460
  put?: never;
3347
3461
  post?: never;
3348
3462
  delete?: never;
@@ -3351,39 +3465,223 @@ export interface paths {
3351
3465
  patch?: never;
3352
3466
  trace?: never;
3353
3467
  };
3354
- }
3355
- export type webhooks = Record<string, never>;
3356
- export interface components {
3357
- schemas: {
3358
- AccountBalance: {
3359
- /**
3360
- * @description Token contract address
3361
- * @example 0x6a86da986797d59a839d136db490292cd560c131
3362
- */
3363
- token?: string | null;
3364
- /**
3365
- * @description Token symbol
3366
- * @example USDC
3367
- */
3368
- symbol?: string | null;
3369
- /**
3370
- * Format: int32
3371
- * @description Token decimal places
3372
- * @example 6
3373
- */
3374
- decimals?: number | null;
3375
- /**
3376
- * @description Available (unlocked) balance in token units
3377
- * @example 1000.50
3378
- */
3379
- availableBalance?: string | null;
3380
- /**
3381
- * @description Balance locked in open orders
3382
- * @example 50.25
3383
- */
3384
- lockedBalance?: string | null;
3385
- /**
3386
- * @description Total balance (available + locked)
3468
+ "/api/v1/tradercodes/rewards/transfer": {
3469
+ parameters: {
3470
+ query?: never;
3471
+ header?: never;
3472
+ path?: never;
3473
+ cookie?: never;
3474
+ };
3475
+ get?: never;
3476
+ put?: never;
3477
+ /**
3478
+ * Transfer rewards into a trading balance
3479
+ * @description Transfer earned rewards into a trading balance.
3480
+ *
3481
+ * Move spendable TraderCodes reward balance from your rewards bucket into a
3482
+ * trading balance under the authenticated application, making it tradeable
3483
+ * immediately. Ledger-only (one shared vault + one backend ledger) — no
3484
+ * on-chain transaction and no gas. Fails with 409 when the rewards balance is
3485
+ * insufficient. It spends the per-user movement budget withdrawals and
3486
+ * collateral transfers share.
3487
+ */
3488
+ post: operations["transfer_rewards"];
3489
+ delete?: never;
3490
+ options?: never;
3491
+ head?: never;
3492
+ patch?: never;
3493
+ trace?: never;
3494
+ };
3495
+ "/api/v1/trades/by-id/{tradeId}": {
3496
+ parameters: {
3497
+ query?: never;
3498
+ header?: never;
3499
+ path?: never;
3500
+ cookie?: never;
3501
+ };
3502
+ /**
3503
+ * Get Trade by ID
3504
+ * @description Get Trade by ID
3505
+ *
3506
+ * Retrieve a single trade by its unique identifier.
3507
+ */
3508
+ get: operations["get_trade_by_id"];
3509
+ put?: never;
3510
+ post?: never;
3511
+ delete?: never;
3512
+ options?: never;
3513
+ head?: never;
3514
+ patch?: never;
3515
+ trace?: never;
3516
+ };
3517
+ "/api/v1/trades/{tradingPairId}": {
3518
+ parameters: {
3519
+ query?: never;
3520
+ header?: never;
3521
+ path?: never;
3522
+ cookie?: never;
3523
+ };
3524
+ /**
3525
+ * Recent Trades
3526
+ * @description Recent Trades
3527
+ *
3528
+ * Get recent trades for a trading pair sorted by execution time.
3529
+ */
3530
+ get: operations["get_trades"];
3531
+ put?: never;
3532
+ post?: never;
3533
+ delete?: never;
3534
+ options?: never;
3535
+ head?: never;
3536
+ patch?: never;
3537
+ trace?: never;
3538
+ };
3539
+ "/api/v1/whitelist": {
3540
+ parameters: {
3541
+ query?: never;
3542
+ header?: never;
3543
+ path?: never;
3544
+ cookie?: never;
3545
+ };
3546
+ get?: never;
3547
+ put?: never;
3548
+ /**
3549
+ * Whitelist applications closed
3550
+ * @deprecated
3551
+ * @description Public whitelist applications are closed.
3552
+ *
3553
+ * Retained for client compatibility. Every decoded submission is rejected with
3554
+ * HTTP 403 Forbidden / gRPC PERMISSION_DENIED and no applicant data is changed.
3555
+ * Existing applications and administrative approvals remain available.
3556
+ */
3557
+ post: operations["submit_whitelist"];
3558
+ delete?: never;
3559
+ options?: never;
3560
+ head?: never;
3561
+ patch?: never;
3562
+ trace?: never;
3563
+ };
3564
+ "/api/v1/withdrawals": {
3565
+ parameters: {
3566
+ query?: never;
3567
+ header?: never;
3568
+ path?: never;
3569
+ cookie?: never;
3570
+ };
3571
+ /**
3572
+ * List pending withdrawals
3573
+ * @description List the caller's pending withdrawals.
3574
+ *
3575
+ * Authenticated. Returns the caller's withdrawals that are still awaiting
3576
+ * on-chain root confirmation (status `pending`) — i.e. those for which the
3577
+ * merkle proof, and therefore the executable calldata from GetWithdrawal, is
3578
+ * not available yet. Scoped to the authenticated account: only withdrawals
3579
+ * owned by the caller's user + application are returned. Newest first, paged.
3580
+ */
3581
+ get: operations["list_pending_withdrawals"];
3582
+ put?: never;
3583
+ /**
3584
+ * Initiate withdrawal
3585
+ * @description Initiate a withdrawal.
3586
+ *
3587
+ * Master accounts with the withdraw permission only. Routes through the
3588
+ * matching engine to debit the balance and allocate a `withdrawal_index`,
3589
+ * then returns it plus the target vault address. The `calldata` field is
3590
+ * empty: `executeWithdrawal` requires the merkle proof, which only exists
3591
+ * after the withdrawal's root is confirmed on-chain. Poll GetWithdrawal to
3592
+ * obtain the calldata once it is ready.
3593
+ */
3594
+ post: operations["initiate_withdrawal"];
3595
+ delete?: never;
3596
+ options?: never;
3597
+ head?: never;
3598
+ patch?: never;
3599
+ trace?: never;
3600
+ };
3601
+ "/api/v1/withdrawals/{withdrawalIndex}": {
3602
+ parameters: {
3603
+ query?: never;
3604
+ header?: never;
3605
+ path?: never;
3606
+ cookie?: never;
3607
+ };
3608
+ /**
3609
+ * Get withdrawal
3610
+ * @description Fetch a withdrawal's executable calldata by index.
3611
+ *
3612
+ * Public lookup — no auth. Returns the vault address and ABI-encoded
3613
+ * `executeWithdrawal(...)` calldata for a previously-initiated
3614
+ * `withdrawal_index`. The calldata is bound to the fixed
3615
+ * (index, metadata, owner, destination, token, amount) tuple persisted for
3616
+ * the withdrawal, so re-fetching it cannot redirect funds. Returns 409 while
3617
+ * the withdrawal's root has not been confirmed on-chain yet (proof not
3618
+ * available) — clients poll this endpoint until it succeeds.
3619
+ */
3620
+ get: operations["get_withdrawal"];
3621
+ put?: never;
3622
+ post?: never;
3623
+ delete?: never;
3624
+ options?: never;
3625
+ head?: never;
3626
+ patch?: never;
3627
+ trace?: never;
3628
+ };
3629
+ "/health": {
3630
+ parameters: {
3631
+ query?: never;
3632
+ header?: never;
3633
+ path?: never;
3634
+ cookie?: never;
3635
+ };
3636
+ /**
3637
+ * Health check
3638
+ * @description Health check.
3639
+ *
3640
+ * Returns the current health status of the API gateway and its connected
3641
+ * services. Can be used for monitoring and load balancer health checks.
3642
+ */
3643
+ get: operations["health_check"];
3644
+ put?: never;
3645
+ post?: never;
3646
+ delete?: never;
3647
+ options?: never;
3648
+ head?: never;
3649
+ patch?: never;
3650
+ trace?: never;
3651
+ };
3652
+ }
3653
+ export type webhooks = Record<string, never>;
3654
+ export interface components {
3655
+ schemas: {
3656
+ AccountBalance: {
3657
+ /**
3658
+ * @description Token contract address
3659
+ * @example 0x6a86da986797d59a839d136db490292cd560c131
3660
+ */
3661
+ token?: string | null;
3662
+ /**
3663
+ * @description Token symbol
3664
+ * @example USDC
3665
+ */
3666
+ symbol?: string | null;
3667
+ /**
3668
+ * Format: int32
3669
+ * @description Token decimal places
3670
+ * @example 6
3671
+ */
3672
+ decimals?: number | null;
3673
+ /**
3674
+ * @description Available (unlocked) balance in token units
3675
+ * @example 1000.50
3676
+ */
3677
+ availableBalance?: string | null;
3678
+ /**
3679
+ * @description Balance locked in open orders
3680
+ * @example 50.25
3681
+ */
3682
+ lockedBalance?: string | null;
3683
+ /**
3684
+ * @description Total balance (available + locked)
3387
3685
  * @example 1050.75
3388
3686
  */
3389
3687
  totalBalance?: string | null;
@@ -3780,7 +4078,8 @@ export interface components {
3780
4078
  /**
3781
4079
  * Format: uuid
3782
4080
  * @description Optional trading-pair filter. When set, only open positions on this
3783
- * trading pair are closed; otherwise every open position is closed.
4081
+ * trading pair are closed; otherwise every open position is closed. Cannot
4082
+ * be combined with `trading_pair_ids`.
3784
4083
  */
3785
4084
  tradingPairId?: string | null;
3786
4085
  /**
@@ -3788,6 +4087,22 @@ export interface components {
3788
4087
  * @description Optional slippage tolerance (basis points) applied to each MARKET close.
3789
4088
  */
3790
4089
  slippageToleranceBps?: number | null;
4090
+ /**
4091
+ * @description Optional set of trading-pair UUIDs, at most 256. When non-empty, only
4092
+ * open positions on one of these pairs are closed. An empty or omitted
4093
+ * list applies no pair filter, so every open position is closed. Duplicate
4094
+ * ids are ignored, and an id that matches no open position closes nothing.
4095
+ * Cannot be combined with `trading_pair_id`. Delegated sessions must pass
4096
+ * `trading_pair_id` or a non-empty `trading_pair_ids`.
4097
+ */
4098
+ tradingPairIds?: string[] | null;
4099
+ /**
4100
+ * @description Optional side filter: LONG or SHORT (case-insensitive). When set, only
4101
+ * open positions on that side are closed. It applies on top of the pair
4102
+ * filter, and on its own does not meet the delegated-session pair
4103
+ * requirement.
4104
+ */
4105
+ side?: string | null;
3791
4106
  };
3792
4107
  BatchCloseAllResponse: {
3793
4108
  /**
@@ -3935,7 +4250,7 @@ export interface components {
3935
4250
  */
3936
4251
  strategyKey?: string | null;
3937
4252
  /**
3938
- * @description Risk bucket mode for margin orders. Defaults to ISOLATED. Values: ISOLATED, CROSS. On an isolated-only market (TradingPairData.isolated_only) a CROSS order that is not reduce-only is rejected with HTTP 400 / gRPC INVALID_ARGUMENT carrying the structured error code CROSS_MARGIN_NOT_ALLOWED.
4253
+ * @description Risk bucket mode for margin orders. Defaults to ISOLATED. Values: ISOLATED, CROSS. On an isolated-only market (TradingPairData.isolated_only) a CROSS order that is not reduce-only is rejected with HTTP 400 / gRPC INVALID_ARGUMENT carrying the structured error code CROSS_MARGIN_NOT_ALLOWED. One margin mode per market and margin account: while the account holds the pair in its other risk bucket (an open position, or a resting order that is not reduce-only), an order that is not reduce-only is rejected with HTTP 400 / gRPC INVALID_ARGUMENT carrying the structured error code MARGIN_MODE_CONFLICT; reduce-only orders always pass, so a pair already held in both modes can be reduced on either side until one closes.
3939
4254
  * @example CROSS
3940
4255
  * @enum {string|null}
3941
4256
  */
@@ -4736,7 +5051,7 @@ export interface components {
4736
5051
  */
4737
5052
  strategyKey?: string | null;
4738
5053
  /**
4739
- * @description Risk bucket mode for margin orders. Defaults to ISOLATED. Values: ISOLATED, CROSS. On an isolated-only market (TradingPairData.isolated_only) a CROSS order that is not reduce-only is rejected with HTTP 400 / gRPC INVALID_ARGUMENT carrying the structured error code CROSS_MARGIN_NOT_ALLOWED.
5054
+ * @description Risk bucket mode for margin orders. Defaults to ISOLATED. Values: ISOLATED, CROSS. On an isolated-only market (TradingPairData.isolated_only) a CROSS order that is not reduce-only is rejected with HTTP 400 / gRPC INVALID_ARGUMENT carrying the structured error code CROSS_MARGIN_NOT_ALLOWED. One margin mode per market and margin account: while the account holds the pair in its other risk bucket (an open position, or a resting order that is not reduce-only), an order that is not reduce-only is rejected with HTTP 400 / gRPC INVALID_ARGUMENT carrying the structured error code MARGIN_MODE_CONFLICT; reduce-only orders always pass, so a pair already held in both modes can be reduced on either side until one closes.
4740
5055
  * @example CROSS
4741
5056
  * @enum {string|null}
4742
5057
  */
@@ -4902,7 +5217,7 @@ export interface components {
4902
5217
  */
4903
5218
  riskBucketId?: string | null;
4904
5219
  /**
4905
- * @description Risk bucket mode for margin TWAP orders. Defaults to ISOLATED. Values: ISOLATED, CROSS. On an isolated-only market (TradingPairData.isolated_only) a CROSS order that is not reduce-only is rejected with HTTP 400 / gRPC INVALID_ARGUMENT carrying the structured error code CROSS_MARGIN_NOT_ALLOWED.
5220
+ * @description Risk bucket mode for margin TWAP orders. Defaults to ISOLATED. Values: ISOLATED, CROSS. On an isolated-only market (TradingPairData.isolated_only) a CROSS order that is not reduce-only is rejected with HTTP 400 / gRPC INVALID_ARGUMENT carrying the structured error code CROSS_MARGIN_NOT_ALLOWED. One margin mode per market and margin account: while the account holds the pair in its other risk bucket (an open position, or a resting order that is not reduce-only), an order that is not reduce-only is rejected with HTTP 400 / gRPC INVALID_ARGUMENT carrying the structured error code MARGIN_MODE_CONFLICT; reduce-only orders always pass, so a pair already held in both modes can be reduced on either side until one closes.
4906
5221
  * @example CROSS
4907
5222
  * @enum {string|null}
4908
5223
  */
@@ -5627,12 +5942,12 @@ export interface components {
5627
5942
  */
5628
5943
  currentFundingRate?: string | null;
5629
5944
  /**
5630
- * @description Implied rate for the in-progress window. An estimate refreshed on each accepted premium sample (roughly every sample interval plus persistence lag), not a real-time stream; absent when the window has no samples
5945
+ * @description Implied rate for the in-progress window. An estimate refreshed on each accepted premium sample (roughly every sample interval plus persistence lag), not a real-time stream; absent when the window has no samples. A window that ends with too few accepted samples settles at the previous settled rate instead (0 for a market that has never settled one), so the settled rate can differ from this estimate
5631
5946
  * @example 0.00012
5632
5947
  */
5633
5948
  estimatedNextFundingRate?: string | null;
5634
5949
  /**
5635
- * @description Scheduled end of the current funding window (ms epoch string). An estimate, not a guarantee: settlement lands at or shortly after this boundary when the market is alive, and boundaries that pass while the engine is down are skipped, never settled retroactively
5950
+ * @description Scheduled end of the current funding window (ms epoch string), always after the response time: once a window's end passes, this is the following boundary, even before the new window's first sample is recorded. An estimate, not a guarantee: settlement lands at or shortly after this boundary when the market is alive, and boundaries that pass while the engine is down are skipped, never settled retroactively
5636
5951
  * @example 1754006400000
5637
5952
  */
5638
5953
  nextFundingTime?: string | null;
@@ -6013,7 +6328,7 @@ export interface components {
6013
6328
  /** @description Cursor for the next page; empty when there are no more. */
6014
6329
  nextPageToken?: string | null;
6015
6330
  };
6016
- /** @description Latest public open interest for a trading pair. */
6331
+ /** @description Latest public gross open interest (longs plus shorts) for a trading pair. */
6017
6332
  GetOpenInterestResponse: {
6018
6333
  /**
6019
6334
  * Format: uuid
@@ -6022,7 +6337,7 @@ export interface components {
6022
6337
  */
6023
6338
  tradingPairId?: string | null;
6024
6339
  /**
6025
- * @description Current open interest in base-asset units
6340
+ * @description Current gross open interest (longs plus shorts) in base-asset units
6026
6341
  * @example 12345.67
6027
6342
  */
6028
6343
  openInterest?: string | null;
@@ -6032,12 +6347,12 @@ export interface components {
6032
6347
  */
6033
6348
  updatedAt?: string | null;
6034
6349
  /**
6035
- * @description Current open interest in base-asset units
6350
+ * @description Current gross open interest (longs plus shorts) in base-asset units
6036
6351
  * @example 12345.67
6037
6352
  */
6038
6353
  openInterestBase?: string | null;
6039
6354
  /**
6040
- * @description Current open interest notional in quote units
6355
+ * @description Current gross open-interest notional (longs plus shorts) in quote units (openInterestBase x mark price, falling back to the last trade price when no mark is available)
6041
6356
  * @example 1172836500.00
6042
6357
  */
6043
6358
  openInterestNotional?: string | null;
@@ -6116,33 +6431,33 @@ export interface components {
6116
6431
  */
6117
6432
  expirationDate?: string | null;
6118
6433
  /**
6119
- * @description Application taker fee in bps
6120
- * @example 5
6434
+ * @description Application (builder) taker fee this order paid, in quote token units, summed over the fills where it was the taker: each fill's fee as charged, rounded down to the quote token's smallest unit. A replacement order also includes the fills of the order it replaced. 0 on a liquidation order. An amount, not a rate.
6435
+ * @example 0.88
6121
6436
  */
6122
6437
  applicationTakerFee?: string | null;
6123
6438
  /**
6124
- * @description Monaco protocol taker fee in bps
6125
- * @example 10
6439
+ * @description Monaco protocol taker fee this order paid, in quote token units, summed over the fills where it was the taker: each fill's fee as charged, rounded down to the quote token's smallest unit. A replacement order also includes the fills of the order it replaced. A liquidation order carries the liquidation fee it was charged instead. An amount, not a rate.
6440
+ * @example 1.75
6126
6441
  */
6127
6442
  monacoTakerFee?: string | null;
6128
6443
  /**
6129
- * @description Monaco maker rebate in bps (negative)
6130
- * @example -2
6444
+ * @description Monaco maker fee on this order, in quote token units, summed over the fills where it was the maker; negative is a rebate credited to the maker. A replacement order also includes the fills of the order it replaced. An amount, not a rate.
6445
+ * @example -0.35
6131
6446
  */
6132
6447
  monacoMakerRebate?: string | null;
6133
6448
  /**
6134
- * @description Total taker fees charged in quote token
6449
+ * @description Total taker fees charged in quote token (monaco_taker_fee + application_taker_fee)
6135
6450
  * @example 2.63
6136
6451
  */
6137
6452
  totalTakerFees?: string | null;
6138
6453
  /**
6139
- * @description Total amount paid by taker (price * qty + fees)
6454
+ * @description Total amount paid by taker, in quote token units: the filled notional as the ledger booked it (each fill's price * qty, rounded down to the quote token's smallest unit) plus total_taker_fees. A replacement order also includes the fills of the order it replaced.
6140
6455
  * @example 17502.63
6141
6456
  */
6142
6457
  takerTotalPayment?: string | null;
6143
6458
  /**
6144
- * @description Total amount received by maker (price * qty - rebate)
6145
- * @example 17496.50
6459
+ * @description Total amount received by maker, in quote token units: the notional of its maker fills as the ledger booked it (each fill's price * qty, rounded down to the quote token's smallest unit) minus monaco_maker_rebate, so a rebate adds. A replacement order also includes the fills of the order it replaced.
6460
+ * @example 17500.35
6146
6461
  */
6147
6462
  makerTotalReceipt?: string | null;
6148
6463
  /**
@@ -6275,6 +6590,11 @@ export interface components {
6275
6590
  * @example 019aefab-f665-854c-99dc-ced6db9014aa
6276
6591
  */
6277
6592
  conditionalOrderId?: string | null;
6593
+ /**
6594
+ * @description What placed the order: USER (the account itself, including its TP/SL triggers and TWAP slices), LIQUIDATION (the liquidation engine closing the account's position), ADL (an auto-deleveraging close), COPY (the copy trading engine mirroring a leader for one of the account's follows), or SYSTEM. Use it to label a row in order history: a liquidation is a reduce-only IOC limit order, so orderType, timeInForce and reduceOnly alone read the same as an order the user placed. The same labels as the origin key on the order WebSocket events. Present on every book order. Absent on a TWAP parent row and a conditional order row, which are the account's own instructions, not orders an engine placed. A plain string, not a closed set: a value added later must read as an origin this client does not know yet, not fail the response.
6595
+ * @example LIQUIDATION
6596
+ */
6597
+ origin?: string | null;
6278
6598
  };
6279
6599
  /** @description Orderbook snapshot with token metadata and sequence number. */
6280
6600
  GetOrderbookResponse: {
@@ -6378,7 +6698,7 @@ export interface components {
6378
6698
  priceChange24h?: string | null;
6379
6699
  priceChangePercent24h?: string | null;
6380
6700
  /**
6381
- * @description Open interest in base-asset units (legacy alias of openInterestBase)
6701
+ * @description Gross open interest (longs plus shorts) in base-asset units (legacy alias of openInterestBase)
6382
6702
  * @example 12345.67
6383
6703
  */
6384
6704
  openInterest?: string | null;
@@ -6389,12 +6709,12 @@ export interface components {
6389
6709
  marketRegime?: string | null;
6390
6710
  updatedAt?: string | null;
6391
6711
  /**
6392
- * @description Open interest in base-asset units (e.g. BTC)
6712
+ * @description Gross open interest (longs plus shorts) in base-asset units (e.g. BTC)
6393
6713
  * @example 12345.67
6394
6714
  */
6395
6715
  openInterestBase?: string | null;
6396
6716
  /**
6397
- * @description Open interest notional in quote units (openInterestBase x mark price, falling back to the last trade price when no mark is available)
6717
+ * @description Gross open-interest notional (longs plus shorts) in quote units (openInterestBase x mark price, falling back to the last trade price when no mark is available)
6398
6718
  * @example 1172836500.00
6399
6719
  */
6400
6720
  openInterestNotional?: string | null;
@@ -6669,9 +6989,14 @@ export interface components {
6669
6989
  */
6670
6990
  exitPrice?: string | null;
6671
6991
  /**
6672
- * @description Lifetime funding paid (signed; negative means received), summed over the
6673
- * position's reducing executions. Terminal rows only; absent when the
6674
- * position's reducing executions do not account for its whole lifetime.
6992
+ * @description Lifetime funding paid since the position opened (signed; negative means
6993
+ * received). On a terminal row, summed over the position's reducing
6994
+ * executions. On an OPEN or LIQUIDATING row, the funding accrued on the size
6995
+ * still open plus the funding its partial closes settled, so the last open
6996
+ * value equals the terminal value. Absent when the position's reducing
6997
+ * executions do not account for its whole lifetime, and on an OPEN or
6998
+ * LIQUIDATING row whenever lifetime_totals_status is not COMPLETE; never an
6999
+ * understated partial.
6675
7000
  */
6676
7001
  fundingPaid?: string | null;
6677
7002
  /**
@@ -7049,6 +7374,23 @@ export interface components {
7049
7374
  * token.
7050
7375
  */
7051
7376
  nextPageToken?: string | null;
7377
+ /**
7378
+ * Format: uint32
7379
+ * @description Number of trades a full walk returns, hot and archived, with a self-trade counted once; bounded by the server ceiling (10,000), a lower bound when totalCapped is true. Can briefly differ from a walk while the read replica catches up. Absent when tradingPairId filters the request or the count ran out of time: treat absent as unknown.
7380
+ * @example 150
7381
+ */
7382
+ total?: number | null;
7383
+ /**
7384
+ * Format: uint32
7385
+ * @description Number of pages at this pageSize, from the same bounded count as total; a lower bound when totalCapped is true. Absent exactly when total is.
7386
+ * @example 8
7387
+ */
7388
+ totalPages?: number | null;
7389
+ /**
7390
+ * @description True when more than the server ceiling of trades matched, so the count stopped at the ceiling and total/totalPages are a lower bound. False when total is exact, including exactly the ceiling, and when total is absent.
7391
+ * @example false
7392
+ */
7393
+ totalCapped?: boolean | null;
7052
7394
  };
7053
7395
  IndexComponent: {
7054
7396
  provider?: string | null;
@@ -7783,6 +8125,26 @@ export interface components {
7783
8125
  */
7784
8126
  totalPages?: number | null;
7785
8127
  };
8128
+ ListTwapOrderSlicesResponse: {
8129
+ /**
8130
+ * @description The parent's child orders, each as GetOrder returns it; every one carries
8131
+ * the parent's id in `parentOrderId`.
8132
+ */
8133
+ slices?: components["schemas"]["GetOrderResponse"][] | null;
8134
+ /**
8135
+ * Format: uint32
8136
+ * @description Items per page
8137
+ * @example 20
8138
+ */
8139
+ pageSize?: number | null;
8140
+ /**
8141
+ * @description Cursor for the next page, minted only when a further page exists — the
8142
+ * read over-fetches one row to decide. Empty on the final page; that empty
8143
+ * token is the definitive end of the walk. Do not feed the empty token back
8144
+ * as `page_token` — an empty input `page_token` restarts the walk.
8145
+ */
8146
+ nextPageToken?: string | null;
8147
+ };
7786
8148
  ListTwapOrdersResponse: {
7787
8149
  orders?: components["schemas"]["TwapOrder"][] | null;
7788
8150
  /**
@@ -8642,9 +9004,14 @@ export interface components {
8642
9004
  */
8643
9005
  exitPrice?: string | null;
8644
9006
  /**
8645
- * @description Lifetime funding paid (signed; negative means received), summed over the
8646
- * position's reducing executions. Terminal rows only; absent when the
8647
- * position's reducing executions do not account for its whole lifetime.
9007
+ * @description Lifetime funding paid since the position opened (signed; negative means
9008
+ * received). On a terminal row, summed over the position's reducing
9009
+ * executions. On an OPEN or LIQUIDATING row, the funding accrued on the size
9010
+ * still open plus the funding its partial closes settled, so the last open
9011
+ * value equals the terminal value. Absent when the position's reducing
9012
+ * executions do not account for its whole lifetime, and on an OPEN or
9013
+ * LIQUIDATING row whenever lifetime_totals_status is not COMPLETE; never an
9014
+ * understated partial.
8648
9015
  */
8649
9016
  fundingPaid?: string | null;
8650
9017
  /**
@@ -8722,8 +9089,8 @@ export interface components {
8722
9089
  * checkpoint is seeded, PENDING arises only when the position row changed
8723
9090
  * between the row read and the totals read. OPEN and LIQUIDATING positions
8724
9091
  * are checked against realized PnL too, and are INCOMPLETE without cum_fees
8725
- * when their reductions do not account for it. Set on every row of the REST and
8726
- * gRPC reads; WebSocket position frames do not carry it.
9092
+ * or funding_paid when their reductions do not account for it. Set on every
9093
+ * row of the REST and gRPC reads; WebSocket position frames do not carry it.
8727
9094
  * @enum {string|null}
8728
9095
  */
8729
9096
  lifetimeTotalsStatus?: "LIFETIME_TOTALS_STATUS_UNSPECIFIED" | "LIFETIME_TOTALS_STATUS_COMPLETE" | "LIFETIME_TOTALS_STATUS_PENDING" | "LIFETIME_TOTALS_STATUS_INCOMPLETE" | null;
@@ -9036,7 +9403,7 @@ export interface components {
9036
9403
  source?: string | null;
9037
9404
  /**
9038
9405
  * Format: int32
9039
- * @description Referral level the caller earns from this source at: 1 (direct), 2, and so on (at most 10). Rows at a level deeper than PitPass rewards today are earlier earnings, kept as history.
9406
+ * @description Referral level the caller earns from this source at: 1 (direct), 2, and so on (at most 10). Rows at a level deeper than TraderCodes rewards today are earlier earnings, kept as history.
9040
9407
  * @example 1
9041
9408
  */
9042
9409
  level?: number | null;
@@ -9065,7 +9432,7 @@ export interface components {
9065
9432
  * `GetRewardsBalance` reports the live bucket, which `TransferRewards` draws
9066
9433
  * down, so the two diverge after any transfer. Read the rewards balance for
9067
9434
  * current availability. Denominated in the single reward token's atomic units
9068
- * (Monaco pays PitPass rewards in one token — the quote asset); if a deployment
9435
+ * (Monaco pays TraderCodes rewards in one token — the quote asset); if a deployment
9069
9436
  * ever pays in more than one reward token, atomic units across tokens are not
9070
9437
  * additive, so read the per-token `earnings_by_source` rows for a correct
9071
9438
  * breakdown.
@@ -9098,7 +9465,7 @@ export interface components {
9098
9465
  * @example 100000
9099
9466
  */
9100
9467
  level3Earned?: string | null;
9101
- /** @description All-time credited earnings per referral level, ascending by level, one entry per level the caller has earned at (levels with nothing earned are omitted). Covers every level, including levels deeper than PitPass rewards today. */
9468
+ /** @description All-time credited earnings per referral level, ascending by level, one entry per level the caller has earned at (levels with nothing earned are omitted). Covers every level, including levels deeper than TraderCodes rewards today. */
9102
9469
  byLevel?: components["schemas"]["LevelEarnings"][] | null;
9103
9470
  };
9104
9471
  /** @description A single reward the caller has earned, one row per referred trade × level. */
@@ -9457,12 +9824,12 @@ export interface components {
9457
9824
  */
9458
9825
  lastFundingTime?: string | null;
9459
9826
  /**
9460
- * @description Open interest in base-asset units (e.g. BTC); null for spot pairs, "0" for a margin pair with no open positions
9827
+ * @description Gross open interest (longs plus shorts) in base-asset units (e.g. BTC); null for spot pairs, "0" for a margin pair with no open positions
9461
9828
  * @example 12345.67
9462
9829
  */
9463
9830
  openInterestBase?: string | null;
9464
9831
  /**
9465
- * @description Open interest notional in quote units (openInterestBase x latest trade price); null for spot pairs. Valued at the pair's latest trade price (a snapshot); the mark-accurate notional lives on getPerpMarketSummary / getOpenInterest
9832
+ * @description Gross open-interest notional (longs plus shorts) in quote units (openInterestBase x latest trade price); null for spot pairs. Valued at the pair's latest trade price (a snapshot); the mark-accurate notional lives on getPerpMarketSummary / getOpenInterest
9466
9833
  * @example 1172836500.00
9467
9834
  */
9468
9835
  openInterestNotional?: string | null;
@@ -9481,9 +9848,14 @@ export interface components {
9481
9848
  * @example 1172836500.00
9482
9849
  */
9483
9850
  openInterestNotionalAvg7d?: string | null;
9484
- };
9485
- /** @description One UTC-day bucket in a pair's 7-day snapshot. */
9486
- ScreenerSnapshotPoint: {
9851
+ /**
9852
+ * @description Estimated rate for the in-progress funding window, the same value as getFundingState / getPerpMarketSummary estimatedNextFundingRate (a decimal fraction per funding window). An estimate refreshed on each accepted premium sample, not a real-time stream. A window that ends with too few accepted samples settles at the previous settled rate instead (0 for a market that has never settled one), so the settled rate can differ from this estimate. Null for spot pairs and margin pairs whose current window has no samples yet
9853
+ * @example 0.00012
9854
+ */
9855
+ estimatedNextFundingRate?: string | null;
9856
+ };
9857
+ /** @description One UTC-day bucket in a pair's 7-day snapshot. */
9858
+ ScreenerSnapshotPoint: {
9487
9859
  /**
9488
9860
  * @description UTC day boundary (ms since epoch)
9489
9861
  * @example 1744704000000
@@ -9500,7 +9872,7 @@ export interface components {
9500
9872
  */
9501
9873
  priceChangePercent?: string | null;
9502
9874
  /**
9503
- * @description Arithmetic mean of the valued open-interest notional observations (one per completed UTC minute) in this completed UTC day; published once at least 95% of its 1440 minutes (1368) carry a valued sample, null for spot pairs or below that coverage. Samples use gross open position size x latest trade price in quote units; a minute without a trade price is unvalued, never zero; known zero remains "0". No historical backfill.
9875
+ * @description Arithmetic mean of the valued gross open-interest notional observations (one per completed UTC minute) in this completed UTC day; published once at least 95% of its 1440 minutes (1368) carry a valued sample, null for spot pairs or below that coverage. Samples use gross open position size x latest trade price in quote units; a minute without a trade price is unvalued, never zero; known zero remains "0". No historical backfill.
9504
9876
  * @example 1172836500.00
9505
9877
  */
9506
9878
  openInterestNotionalAvg?: string | null;
@@ -9802,6 +10174,11 @@ export interface components {
9802
10174
  * @example 100.25
9803
10175
  */
9804
10176
  referencePrice?: string | null;
10177
+ /**
10178
+ * @description Structured code of the refusal behind rejectReason, the same code placing the order would return in the error envelope (e.g. MARGIN_MODE_CONFLICT when the margin account holds the pair in its other margin mode; INVALID_ORDER for the catch-all). Present for client-class refusals; absent on an accepted preview, and absent when the preview failed on a server-side fault (rejectReason is then a generic retry message).
10179
+ * @example MARGIN_MODE_CONFLICT
10180
+ */
10181
+ rejectCode?: string | null;
9805
10182
  };
9806
10183
  SimulateParentMarginOrderRiskRequest: {
9807
10184
  /** Format: uuid */
@@ -10988,7 +11365,7 @@ export interface components {
10988
11365
  */
10989
11366
  sessionPublicKey: string;
10990
11367
  /**
10991
- * @description Optional PitPass TraderCode captured at signup (e.g. from a `?ref=CODE` link). When a user verifies for the very first time with a valid code, a referral relationship is recorded atomically. Ignored for users who already exist, and silently ignored if the code is unknown — a bad code never blocks sign-in.
11368
+ * @description Optional TraderCode captured at signup (e.g. from a `?ref=CODE` link). When a user verifies for the very first time with a valid code, a referral relationship is recorded atomically. Ignored for users who already exist, and silently ignored if the code is unknown — a bad code never blocks sign-in.
10992
11369
  * @example 0x1234567890abcdef1234567890abcdef12345678
10993
11370
  */
10994
11371
  referralCode?: string | null;
@@ -11007,7 +11384,7 @@ export interface components {
11007
11384
  */
11008
11385
  isNewUser?: boolean | null;
11009
11386
  /**
11010
- * @description True when a PitPass referral relationship was recorded on this verify: a valid, non-self TraderCode presented on the wallet's first sign-in to THIS application resolved to a known referrer. Scoped like `is_new_user` (per `(wallet, application)`), so a wallet already registered on another application can still see this on its first sign-in to a new one. False for a returning user of this application, an absent or unknown code, or a self-referral. Confirms the referral landed for the signup success screen.
11387
+ * @description True when a TraderCodes referral relationship was recorded on this verify: a valid, non-self TraderCode presented on the wallet's first sign-in to THIS application resolved to a known referrer. Scoped like `is_new_user` (per `(wallet, application)`), so a wallet already registered on another application can still see this on its first sign-in to a new one. False for a returning user of this application, an absent or unknown code, or a self-referral. Confirms the referral landed for the signup success screen.
11011
11388
  * @example true
11012
11389
  */
11013
11390
  referralApplied?: boolean | null;
@@ -12189,9 +12566,10 @@ export interface operations {
12189
12566
  * - Non-empty: an opaque cursor from a previous response's
12190
12567
  * `nextPageToken`; results resume immediately after that position.
12191
12568
  *
12192
- * Every walk covers full trade history — hot and archived rows merged. The
12193
- * response carries no item count: this listing's table is too large to count
12194
- * behind a filter. Filters must match the request that produced the token.
12569
+ * Every walk covers full trade history — hot and archived rows merged. An
12570
+ * unfiltered response carries a bounded item count (`total`); a response
12571
+ * filtered by `trading_pair_id` carries none. Filters must match the request
12572
+ * that produced the token.
12195
12573
  */
12196
12574
  pageToken?: string;
12197
12575
  };
@@ -17008,6 +17386,80 @@ export interface operations {
17008
17386
  };
17009
17387
  };
17010
17388
  };
17389
+ list_twap_order_slices: {
17390
+ parameters: {
17391
+ query?: {
17392
+ /** @description Items per page (max 1000) */
17393
+ pageSize?: number;
17394
+ /** @description Sort direction for createdAt: ASC (oldest slice first) or DESC */
17395
+ orderBy?: "ASC" | "DESC";
17396
+ /**
17397
+ * @description Pagination cursor with two states:
17398
+ * - Omitted or empty string (""): start a cursor walk from the first
17399
+ * slice in `order_by` order.
17400
+ * - Non-empty: an opaque cursor from a previous response's
17401
+ * `next_page_token`; results resume immediately after that position.
17402
+ *
17403
+ * Pages are keyset seeks on `(createdAt, id)`. The TWAP order id and
17404
+ * `order_by` must match the request that produced the token; a token
17405
+ * replayed against a different parent or direction is rejected.
17406
+ */
17407
+ pageToken?: string;
17408
+ };
17409
+ header?: never;
17410
+ path: {
17411
+ twapOrderId: string;
17412
+ };
17413
+ cookie?: never;
17414
+ };
17415
+ requestBody?: never;
17416
+ responses: {
17417
+ /** @description OK */
17418
+ 200: {
17419
+ headers: {
17420
+ [name: string]: unknown;
17421
+ };
17422
+ content: {
17423
+ "application/json": components["schemas"]["ListTwapOrderSlicesResponse"];
17424
+ };
17425
+ };
17426
+ /** @description Invalid TWAP order ID format or query parameters */
17427
+ 400: {
17428
+ headers: {
17429
+ [name: string]: unknown;
17430
+ };
17431
+ content?: never;
17432
+ };
17433
+ /** @description Authentication required */
17434
+ 401: {
17435
+ headers: {
17436
+ [name: string]: unknown;
17437
+ };
17438
+ content?: never;
17439
+ };
17440
+ /** @description TWAP order not found */
17441
+ 404: {
17442
+ headers: {
17443
+ [name: string]: unknown;
17444
+ };
17445
+ content?: never;
17446
+ };
17447
+ /** @description Read rate limit exceeded — every authenticated read draws one request from the account's read budget; retry after the interval in details.retryAfter */
17448
+ 429: {
17449
+ headers: {
17450
+ [name: string]: unknown;
17451
+ };
17452
+ content?: never;
17453
+ };
17454
+ /** @description Internal server error */
17455
+ 500: {
17456
+ headers: {
17457
+ [name: string]: unknown;
17458
+ };
17459
+ content?: never;
17460
+ };
17461
+ };
17462
+ };
17011
17463
  get_twap_order_tca: {
17012
17464
  parameters: {
17013
17465
  query?: never;
@@ -17192,7 +17644,7 @@ export interface operations {
17192
17644
  };
17193
17645
  };
17194
17646
  };
17195
- check_trader_code_availability: {
17647
+ pitpass_check_trader_code_availability: {
17196
17648
  parameters: {
17197
17649
  query?: {
17198
17650
  code?: string;
@@ -17228,7 +17680,7 @@ export interface operations {
17228
17680
  };
17229
17681
  };
17230
17682
  };
17231
- get_my_trader_code: {
17683
+ pitpass_get_my_trader_code: {
17232
17684
  parameters: {
17233
17685
  query?: never;
17234
17686
  header?: never;
@@ -17269,7 +17721,7 @@ export interface operations {
17269
17721
  };
17270
17722
  };
17271
17723
  };
17272
- set_trader_code: {
17724
+ pitpass_set_trader_code: {
17273
17725
  parameters: {
17274
17726
  query?: never;
17275
17727
  header?: never;
@@ -17335,7 +17787,7 @@ export interface operations {
17335
17787
  };
17336
17788
  };
17337
17789
  };
17338
- clear_trader_code: {
17790
+ pitpass_clear_trader_code: {
17339
17791
  parameters: {
17340
17792
  query?: never;
17341
17793
  header?: never;
@@ -17383,7 +17835,7 @@ export interface operations {
17383
17835
  };
17384
17836
  };
17385
17837
  };
17386
- get_trader_code_info: {
17838
+ pitpass_get_trader_code_info: {
17387
17839
  parameters: {
17388
17840
  query?: never;
17389
17841
  header?: never;
@@ -17420,7 +17872,7 @@ export interface operations {
17420
17872
  };
17421
17873
  };
17422
17874
  };
17423
- get_my_referral_position: {
17875
+ pitpass_get_my_referral_position: {
17424
17876
  parameters: {
17425
17877
  query?: never;
17426
17878
  header?: never;
@@ -17461,7 +17913,7 @@ export interface operations {
17461
17913
  };
17462
17914
  };
17463
17915
  };
17464
- get_my_referral_downline: {
17916
+ pitpass_get_my_referral_downline: {
17465
17917
  parameters: {
17466
17918
  query?: {
17467
17919
  /** @description `earningsBySource` rows per page (max 500) */
@@ -17510,7 +17962,7 @@ export interface operations {
17510
17962
  };
17511
17963
  };
17512
17964
  };
17513
- get_my_referral_tree: {
17965
+ pitpass_get_my_referral_tree: {
17514
17966
  parameters: {
17515
17967
  query?: {
17516
17968
  parent?: string;
@@ -17574,7 +18026,7 @@ export interface operations {
17574
18026
  };
17575
18027
  };
17576
18028
  };
17577
- get_rewards_balance: {
18029
+ pitpass_get_rewards_balance: {
17578
18030
  parameters: {
17579
18031
  query?: never;
17580
18032
  header?: never;
@@ -17615,7 +18067,7 @@ export interface operations {
17615
18067
  };
17616
18068
  };
17617
18069
  };
17618
- transfer_rewards: {
18070
+ pitpass_transfer_rewards: {
17619
18071
  parameters: {
17620
18072
  query?: never;
17621
18073
  header?: never;
@@ -18170,6 +18622,488 @@ export interface operations {
18170
18622
  };
18171
18623
  };
18172
18624
  };
18625
+ check_trader_code_availability: {
18626
+ parameters: {
18627
+ query?: {
18628
+ code?: string;
18629
+ };
18630
+ header?: never;
18631
+ path?: never;
18632
+ cookie?: never;
18633
+ };
18634
+ requestBody?: never;
18635
+ responses: {
18636
+ /** @description OK */
18637
+ 200: {
18638
+ headers: {
18639
+ [name: string]: unknown;
18640
+ };
18641
+ content: {
18642
+ "application/json": components["schemas"]["CheckTraderCodeAvailabilityResponse"];
18643
+ };
18644
+ };
18645
+ /** @description Availability check rate-limit exceeded */
18646
+ 429: {
18647
+ headers: {
18648
+ [name: string]: unknown;
18649
+ };
18650
+ content?: never;
18651
+ };
18652
+ /** @description Internal server error */
18653
+ 500: {
18654
+ headers: {
18655
+ [name: string]: unknown;
18656
+ };
18657
+ content?: never;
18658
+ };
18659
+ };
18660
+ };
18661
+ get_my_trader_code: {
18662
+ parameters: {
18663
+ query?: never;
18664
+ header?: never;
18665
+ path?: never;
18666
+ cookie?: never;
18667
+ };
18668
+ requestBody?: never;
18669
+ responses: {
18670
+ /** @description OK */
18671
+ 200: {
18672
+ headers: {
18673
+ [name: string]: unknown;
18674
+ };
18675
+ content: {
18676
+ "application/json": components["schemas"]["TraderCodeResponse"];
18677
+ };
18678
+ };
18679
+ /** @description Authentication required */
18680
+ 401: {
18681
+ headers: {
18682
+ [name: string]: unknown;
18683
+ };
18684
+ content?: never;
18685
+ };
18686
+ /** @description Read rate limit exceeded — every authenticated read draws one request from the account's read budget; retry after the interval in details.retryAfter */
18687
+ 429: {
18688
+ headers: {
18689
+ [name: string]: unknown;
18690
+ };
18691
+ content?: never;
18692
+ };
18693
+ /** @description Internal server error */
18694
+ 500: {
18695
+ headers: {
18696
+ [name: string]: unknown;
18697
+ };
18698
+ content?: never;
18699
+ };
18700
+ };
18701
+ };
18702
+ set_trader_code: {
18703
+ parameters: {
18704
+ query?: never;
18705
+ header?: never;
18706
+ path?: never;
18707
+ cookie?: never;
18708
+ };
18709
+ requestBody: {
18710
+ content: {
18711
+ "application/json": components["schemas"]["SetTraderCodeRequest"];
18712
+ };
18713
+ };
18714
+ responses: {
18715
+ /** @description OK */
18716
+ 200: {
18717
+ headers: {
18718
+ [name: string]: unknown;
18719
+ };
18720
+ content: {
18721
+ "application/json": components["schemas"]["TraderCodeResponse"];
18722
+ };
18723
+ };
18724
+ /** @description Authentication required */
18725
+ 401: {
18726
+ headers: {
18727
+ [name: string]: unknown;
18728
+ };
18729
+ content?: never;
18730
+ };
18731
+ /** @description Custom trader codes are not enabled */
18732
+ 403: {
18733
+ headers: {
18734
+ [name: string]: unknown;
18735
+ };
18736
+ content?: never;
18737
+ };
18738
+ /** @description Handle is taken (case-insensitive) or cooling down */
18739
+ 409: {
18740
+ headers: {
18741
+ [name: string]: unknown;
18742
+ };
18743
+ content?: never;
18744
+ };
18745
+ /** @description Validation failed; body carries a reason code */
18746
+ 422: {
18747
+ headers: {
18748
+ [name: string]: unknown;
18749
+ };
18750
+ content?: never;
18751
+ };
18752
+ /** @description Edit rate-limit exceeded */
18753
+ 429: {
18754
+ headers: {
18755
+ [name: string]: unknown;
18756
+ };
18757
+ content?: never;
18758
+ };
18759
+ /** @description Internal server error */
18760
+ 500: {
18761
+ headers: {
18762
+ [name: string]: unknown;
18763
+ };
18764
+ content?: never;
18765
+ };
18766
+ };
18767
+ };
18768
+ clear_trader_code: {
18769
+ parameters: {
18770
+ query?: never;
18771
+ header?: never;
18772
+ path?: never;
18773
+ cookie?: never;
18774
+ };
18775
+ requestBody?: never;
18776
+ responses: {
18777
+ /** @description OK */
18778
+ 200: {
18779
+ headers: {
18780
+ [name: string]: unknown;
18781
+ };
18782
+ content: {
18783
+ "application/json": components["schemas"]["TraderCodeResponse"];
18784
+ };
18785
+ };
18786
+ /** @description Authentication required */
18787
+ 401: {
18788
+ headers: {
18789
+ [name: string]: unknown;
18790
+ };
18791
+ content?: never;
18792
+ };
18793
+ /** @description Custom trader codes are not enabled */
18794
+ 403: {
18795
+ headers: {
18796
+ [name: string]: unknown;
18797
+ };
18798
+ content?: never;
18799
+ };
18800
+ /** @description Edit rate-limit exceeded */
18801
+ 429: {
18802
+ headers: {
18803
+ [name: string]: unknown;
18804
+ };
18805
+ content?: never;
18806
+ };
18807
+ /** @description Internal server error */
18808
+ 500: {
18809
+ headers: {
18810
+ [name: string]: unknown;
18811
+ };
18812
+ content?: never;
18813
+ };
18814
+ };
18815
+ };
18816
+ get_trader_code_info: {
18817
+ parameters: {
18818
+ query?: never;
18819
+ header?: never;
18820
+ path: {
18821
+ /** @example 0x742d35cc6634c0532925a3b8d4060f31e2c3d8b5 */
18822
+ code: string;
18823
+ };
18824
+ cookie?: never;
18825
+ };
18826
+ requestBody?: never;
18827
+ responses: {
18828
+ /** @description OK */
18829
+ 200: {
18830
+ headers: {
18831
+ [name: string]: unknown;
18832
+ };
18833
+ content: {
18834
+ "application/json": components["schemas"]["GetTraderCodeInfoResponse"];
18835
+ };
18836
+ };
18837
+ /** @description Code not found */
18838
+ 404: {
18839
+ headers: {
18840
+ [name: string]: unknown;
18841
+ };
18842
+ content?: never;
18843
+ };
18844
+ /** @description Internal server error */
18845
+ 500: {
18846
+ headers: {
18847
+ [name: string]: unknown;
18848
+ };
18849
+ content?: never;
18850
+ };
18851
+ };
18852
+ };
18853
+ get_my_referral_position: {
18854
+ parameters: {
18855
+ query?: never;
18856
+ header?: never;
18857
+ path?: never;
18858
+ cookie?: never;
18859
+ };
18860
+ requestBody?: never;
18861
+ responses: {
18862
+ /** @description OK */
18863
+ 200: {
18864
+ headers: {
18865
+ [name: string]: unknown;
18866
+ };
18867
+ content: {
18868
+ "application/json": components["schemas"]["GetMyReferralPositionResponse"];
18869
+ };
18870
+ };
18871
+ /** @description Authentication required */
18872
+ 401: {
18873
+ headers: {
18874
+ [name: string]: unknown;
18875
+ };
18876
+ content?: never;
18877
+ };
18878
+ /** @description Read rate limit exceeded — every authenticated read draws one request from the account's read budget; retry after the interval in details.retryAfter */
18879
+ 429: {
18880
+ headers: {
18881
+ [name: string]: unknown;
18882
+ };
18883
+ content?: never;
18884
+ };
18885
+ /** @description Internal server error */
18886
+ 500: {
18887
+ headers: {
18888
+ [name: string]: unknown;
18889
+ };
18890
+ content?: never;
18891
+ };
18892
+ };
18893
+ };
18894
+ get_my_referral_downline: {
18895
+ parameters: {
18896
+ query?: {
18897
+ /** @description `earningsBySource` rows per page (max 500) */
18898
+ pageSize?: number;
18899
+ /**
18900
+ * @description Opaque cursor from a previous response's `nextPageToken`; omit or send an
18901
+ * empty string for the first page.
18902
+ */
18903
+ pageToken?: string;
18904
+ };
18905
+ header?: never;
18906
+ path?: never;
18907
+ cookie?: never;
18908
+ };
18909
+ requestBody?: never;
18910
+ responses: {
18911
+ /** @description OK */
18912
+ 200: {
18913
+ headers: {
18914
+ [name: string]: unknown;
18915
+ };
18916
+ content: {
18917
+ "application/json": components["schemas"]["GetMyReferralDownlineResponse"];
18918
+ };
18919
+ };
18920
+ /** @description Authentication required */
18921
+ 401: {
18922
+ headers: {
18923
+ [name: string]: unknown;
18924
+ };
18925
+ content?: never;
18926
+ };
18927
+ /** @description Read rate limit exceeded — every authenticated read draws one request from the account's read budget; retry after the interval in details.retryAfter */
18928
+ 429: {
18929
+ headers: {
18930
+ [name: string]: unknown;
18931
+ };
18932
+ content?: never;
18933
+ };
18934
+ /** @description Internal server error */
18935
+ 500: {
18936
+ headers: {
18937
+ [name: string]: unknown;
18938
+ };
18939
+ content?: never;
18940
+ };
18941
+ };
18942
+ };
18943
+ get_my_referral_tree: {
18944
+ parameters: {
18945
+ query?: {
18946
+ parent?: string;
18947
+ /** @description Nodes per page (max 200) */
18948
+ pageSize?: number;
18949
+ /**
18950
+ * @description Opaque cursor from a previous response's `nextPageToken`; omit or send an
18951
+ * empty string for the first page. Only valid with the same `parent`.
18952
+ */
18953
+ pageToken?: string;
18954
+ };
18955
+ header?: never;
18956
+ path?: never;
18957
+ cookie?: never;
18958
+ };
18959
+ requestBody?: never;
18960
+ responses: {
18961
+ /** @description OK */
18962
+ 200: {
18963
+ headers: {
18964
+ [name: string]: unknown;
18965
+ };
18966
+ content: {
18967
+ "application/json": components["schemas"]["GetMyReferralTreeResponse"];
18968
+ };
18969
+ };
18970
+ /** @description Invalid `parent` wallet address, `pageSize`, or `pageToken` */
18971
+ 400: {
18972
+ headers: {
18973
+ [name: string]: unknown;
18974
+ };
18975
+ content?: never;
18976
+ };
18977
+ /** @description Authentication required */
18978
+ 401: {
18979
+ headers: {
18980
+ [name: string]: unknown;
18981
+ };
18982
+ content?: never;
18983
+ };
18984
+ /** @description `parent` is not the caller or one of the caller's own expandable referees */
18985
+ 404: {
18986
+ headers: {
18987
+ [name: string]: unknown;
18988
+ };
18989
+ content?: never;
18990
+ };
18991
+ /** @description Read rate limit exceeded — every authenticated read draws one request from the account's read budget; retry after the interval in details.retryAfter */
18992
+ 429: {
18993
+ headers: {
18994
+ [name: string]: unknown;
18995
+ };
18996
+ content?: never;
18997
+ };
18998
+ /** @description Internal server error */
18999
+ 500: {
19000
+ headers: {
19001
+ [name: string]: unknown;
19002
+ };
19003
+ content?: never;
19004
+ };
19005
+ };
19006
+ };
19007
+ get_rewards_balance: {
19008
+ parameters: {
19009
+ query?: never;
19010
+ header?: never;
19011
+ path?: never;
19012
+ cookie?: never;
19013
+ };
19014
+ requestBody?: never;
19015
+ responses: {
19016
+ /** @description OK */
19017
+ 200: {
19018
+ headers: {
19019
+ [name: string]: unknown;
19020
+ };
19021
+ content: {
19022
+ "application/json": components["schemas"]["GetRewardsBalanceResponse"];
19023
+ };
19024
+ };
19025
+ /** @description Authentication required */
19026
+ 401: {
19027
+ headers: {
19028
+ [name: string]: unknown;
19029
+ };
19030
+ content?: never;
19031
+ };
19032
+ /** @description Read rate limit exceeded — every authenticated read draws one request from the account's read budget; retry after the interval in details.retryAfter */
19033
+ 429: {
19034
+ headers: {
19035
+ [name: string]: unknown;
19036
+ };
19037
+ content?: never;
19038
+ };
19039
+ /** @description Internal server error */
19040
+ 500: {
19041
+ headers: {
19042
+ [name: string]: unknown;
19043
+ };
19044
+ content?: never;
19045
+ };
19046
+ };
19047
+ };
19048
+ transfer_rewards: {
19049
+ parameters: {
19050
+ query?: never;
19051
+ header?: never;
19052
+ path?: never;
19053
+ cookie?: never;
19054
+ };
19055
+ requestBody: {
19056
+ content: {
19057
+ "application/json": components["schemas"]["TransferRewardsRequest"];
19058
+ };
19059
+ };
19060
+ responses: {
19061
+ /** @description OK */
19062
+ 200: {
19063
+ headers: {
19064
+ [name: string]: unknown;
19065
+ };
19066
+ content: {
19067
+ "application/json": components["schemas"]["TransferRewardsResponse"];
19068
+ };
19069
+ };
19070
+ /** @description Invalid token or amount */
19071
+ 400: {
19072
+ headers: {
19073
+ [name: string]: unknown;
19074
+ };
19075
+ content?: never;
19076
+ };
19077
+ /** @description Authentication required */
19078
+ 401: {
19079
+ headers: {
19080
+ [name: string]: unknown;
19081
+ };
19082
+ content?: never;
19083
+ };
19084
+ /** @description Insufficient rewards balance */
19085
+ 409: {
19086
+ headers: {
19087
+ [name: string]: unknown;
19088
+ };
19089
+ content?: never;
19090
+ };
19091
+ /** @description Movement rate limit exceeded — withdrawals, collateral transfers and reward transfers share a per-user budget; retry after the interval in details.retryAfter */
19092
+ 429: {
19093
+ headers: {
19094
+ [name: string]: unknown;
19095
+ };
19096
+ content?: never;
19097
+ };
19098
+ /** @description Internal server error */
19099
+ 500: {
19100
+ headers: {
19101
+ [name: string]: unknown;
19102
+ };
19103
+ content?: never;
19104
+ };
19105
+ };
19106
+ };
18173
19107
  get_trade_by_id: {
18174
19108
  parameters: {
18175
19109
  query?: never;