@totalis/hip4-client 0.77.0 → 0.79.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,57 @@
3
3
  `@totalis/hip4-client` follows [semantic versioning](https://semver.org).
4
4
  The contract version the generated types come from is `sdkVersion` in `./version`.
5
5
 
6
+ ## 0.79.1
7
+
8
+ ### Changed
9
+
10
+ - `grantVaultAgent` answers `503 CONTRACT_UNAVAILABLE` on a vault whose
11
+ generation has no `setAgent`, instead of relaying a grant that never lands.
12
+
13
+ ## 0.79.0
14
+
15
+ ### Added
16
+
17
+ - Follow settings (`followTrader`, `listFollows`) take `mode` per product: `COPY`
18
+ or `COUNTER`. A counter of a single buys the outcome's other side, priced
19
+ against 1 less the trader's price and sized from what the trader spent; a
20
+ counter of a Combo flips every leg and takes the best quote paying more than
21
+ its net stake (TT-2628). Contract `207.0.0-copy-modes`.
22
+ - `counter_exit_floor_bps` on Combo settings: the least a counter Combo cashes
23
+ out for when the trader cashes out: what the follower receives, net of the
24
+ vault's profit fee, in basis points of what they staked, 0 to 100000, 10000
25
+ (never below the stake) when left out. Below it, the cash-out is skipped and
26
+ the ticket held to settlement. Core refuses any value but 10000.
27
+ - `new_positions_only` on core settings: copy a buy only when it opens the
28
+ trader's position. Combos refuse `true`.
29
+ - Copy journal rows (`listCopyTrades`, `listComboCopies`) answer `mode`; their
30
+ `side` and `legs` are now the account's own, flipped for a counter.
31
+
32
+ ### Changed
33
+
34
+ - `slippage_bps` (max worst entry) allows up to 5000 (50%), from 2000. Writes
35
+ that leave out `mode`, `new_positions_only` and `counter_exit_floor_bps` keep
36
+ meaning `COPY`, every buy copied and a 10000 floor.
37
+ - `createDeposit`'s 0.10 USDC floor covers a Privy external login wallet as
38
+ well as an embedded one; any other wallet still moves at least 1 USDC.
39
+
40
+ ## 0.78.0
41
+
42
+ ### Added
43
+
44
+ - `listComboFeed` (`GET /v1/feed/combos`): every Combo opened by a trader
45
+ whose profile is public, newest first, each with the trader's `username`,
46
+ `avatar_seed` and `picture_url`, paged with `cursor` and `limit` (TT-2615).
47
+ Contract `206.0.0-public-trader-reads`.
48
+ - `listTraderPositions` answers `singles` on its first page: the HIP-4 outcome
49
+ sides the trader holds on HyperCore, each with `shares`, `average_price` and
50
+ `opened_at`, or null while they cannot be known.
51
+
52
+ ### Changed
53
+
54
+ - `getTrader`, `listTraderTrades`, `listTraderPositions` and `getTraderPnl`
55
+ answer signed out too.
56
+
6
57
  ## 0.77.0
7
58
 
8
59
  `openPosition` chooses its quote last and moves on to the next quote when an
@@ -39,6 +39,7 @@ export type paths = {
39
39
  readonly "/v1/traders/{username}/trades": Pick<SharedPaths["/v1/traders/{username}/trades"], "parameters" | "get">;
40
40
  readonly "/v1/traders/{username}/positions": Pick<SharedPaths["/v1/traders/{username}/positions"], "parameters" | "get">;
41
41
  readonly "/v1/traders/{username}/pnl": Pick<SharedPaths["/v1/traders/{username}/pnl"], "parameters" | "get">;
42
+ readonly "/v1/feed/combos": Pick<SharedPaths["/v1/feed/combos"], "parameters" | "get">;
42
43
  readonly "/v1/me/follows": Pick<SharedPaths["/v1/me/follows"], "parameters" | "get">;
43
44
  readonly "/v1/me/follows/{username}": Pick<SharedPaths["/v1/me/follows/{username}"], "parameters" | "put" | "delete">;
44
45
  readonly "/v1/me/copy-settings": Pick<SharedPaths["/v1/me/copy-settings"], "parameters" | "get" | "put">;
@@ -103,4 +104,4 @@ export type paths = {
103
104
  readonly "/v1/makers/{maker_id}/exposure": Pick<SharedPaths["/v1/makers/{maker_id}/exposure"], "parameters" | "get">;
104
105
  readonly "/v1/makers/{maker_id}/performance": Pick<SharedPaths["/v1/makers/{maker_id}/performance"], "parameters" | "get">;
105
106
  };
106
- export type operations = Pick<SharedOperations, "abandonCoreExit" | "acceptQuote" | "activeCoreExits" | "admitOwnMaker" | "admitPartnerWallet" | "bindEmbeddedWallet" | "cancelRfq" | "confirmComboCopyAgent" | "confirmCoreCopyAgent" | "createCashout" | "createComment" | "createCoreExit" | "createDeposit" | "createRfq" | "createRunOffClaim" | "createWalletChallenge" | "createWalletSession" | "createWithdrawal" | "deleteComment" | "editComment" | "endWalletSession" | "followTrader" | "getAcceptance" | "getAccountActivity" | "getAccountPnl" | "getAccountPosition" | "getBalances" | "getCopyAgents" | "getCopyBudget" | "getCopySettings" | "getCopySummary" | "getCoreExit" | "getDeployment" | "getHypercoreBalance" | "getHypercorePortfolio" | "getHypercoreSettlementCredits" | "getIdentity" | "getMakerActivity" | "getMakerCapital" | "getMakerExposure" | "getMakerPerformance" | "getMakerPosition" | "getMakerQuotes" | "getMakerTelemetry" | "getMakerVaultFundingTransaction" | "getMakerWithdrawal" | "getMarket" | "getMarketDataConfig" | "getMarketDefinitions" | "getMarketHistory" | "getMarketRecurringRound" | "getMarketReferenceCloses" | "getMarketScoreTimeline" | "getMarketStats" | "getOperation" | "getOwnMaker" | "getPartnerReport" | "getPerpMarks" | "getProfitLeaderboard" | "getQuestion" | "getQuestionRecurringRound" | "getQuestionScoreTimeline" | "getRfq" | "getSeries" | "getSuggestedCombo" | "getTaxonomy" | "getTrader" | "getTraderPnl" | "getUsernameAvailability" | "getVaultAgents" | "getVolumeLeaderboard" | "getWithdrawal" | "grantComboCopyAgent" | "grantVaultAgent" | "likeComment" | "listAccountActivity" | "listAccountPositions" | "listComboCopies" | "listCommentReplies" | "listComments" | "listControlledMakers" | "listCopiedFills" | "listCopyTrades" | "listDiscovery" | "listFollows" | "listMakerActivity" | "listMakerPositions" | "listMakerQuoteHistory" | "listMarkets" | "listOperations" | "listQuotes" | "listTraderPositions" | "listTraderTrades" | "reactComment" | "recordAcquisition" | "refreshPicture" | "requestComboCopyAgent" | "requestCoreCopyAgent" | "revokeComboCopyAgent" | "searchCatalog" | "setAvatar" | "setCopyAllocation" | "setCopySettings" | "setPublicProfile" | "setUsername" | "stream" | "streamMarkets" | "switchOffComboCopyAgent" | "switchOffCoreCopyAgent" | "unfollowTrader" | "unlikeComment" | "unreactComment">;
107
+ export type operations = Pick<SharedOperations, "abandonCoreExit" | "acceptQuote" | "activeCoreExits" | "admitOwnMaker" | "admitPartnerWallet" | "bindEmbeddedWallet" | "cancelRfq" | "confirmComboCopyAgent" | "confirmCoreCopyAgent" | "createCashout" | "createComment" | "createCoreExit" | "createDeposit" | "createRfq" | "createRunOffClaim" | "createWalletChallenge" | "createWalletSession" | "createWithdrawal" | "deleteComment" | "editComment" | "endWalletSession" | "followTrader" | "getAcceptance" | "getAccountActivity" | "getAccountPnl" | "getAccountPosition" | "getBalances" | "getCopyAgents" | "getCopyBudget" | "getCopySettings" | "getCopySummary" | "getCoreExit" | "getDeployment" | "getHypercoreBalance" | "getHypercorePortfolio" | "getHypercoreSettlementCredits" | "getIdentity" | "getMakerActivity" | "getMakerCapital" | "getMakerExposure" | "getMakerPerformance" | "getMakerPosition" | "getMakerQuotes" | "getMakerTelemetry" | "getMakerVaultFundingTransaction" | "getMakerWithdrawal" | "getMarket" | "getMarketDataConfig" | "getMarketDefinitions" | "getMarketHistory" | "getMarketRecurringRound" | "getMarketReferenceCloses" | "getMarketScoreTimeline" | "getMarketStats" | "getOperation" | "getOwnMaker" | "getPartnerReport" | "getPerpMarks" | "getProfitLeaderboard" | "getQuestion" | "getQuestionRecurringRound" | "getQuestionScoreTimeline" | "getRfq" | "getSeries" | "getSuggestedCombo" | "getTaxonomy" | "getTrader" | "getTraderPnl" | "getUsernameAvailability" | "getVaultAgents" | "getVolumeLeaderboard" | "getWithdrawal" | "grantComboCopyAgent" | "grantVaultAgent" | "likeComment" | "listAccountActivity" | "listAccountPositions" | "listComboCopies" | "listComboFeed" | "listCommentReplies" | "listComments" | "listControlledMakers" | "listCopiedFills" | "listCopyTrades" | "listDiscovery" | "listFollows" | "listMakerActivity" | "listMakerPositions" | "listMakerQuoteHistory" | "listMarkets" | "listOperations" | "listQuotes" | "listTraderPositions" | "listTraderTrades" | "reactComment" | "recordAcquisition" | "refreshPicture" | "requestComboCopyAgent" | "requestCoreCopyAgent" | "revokeComboCopyAgent" | "searchCatalog" | "setAvatar" | "setCopyAllocation" | "setCopySettings" | "setPublicProfile" | "setUsername" | "stream" | "streamMarkets" | "switchOffComboCopyAgent" | "switchOffCoreCopyAgent" | "unfollowTrader" | "unlikeComment" | "unreactComment">;
@@ -407,25 +407,26 @@ export declare const operationErrors: {
407
407
  readonly getSeries: readonly ["INVALID_REQUEST", "NOT_FOUND", "MARKET_DATA_UNAVAILABLE", "INVALID_QUERY"];
408
408
  readonly getSuggestedCombo: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "DEPENDENCY_STALE", "RATE_LIMITED", "INVALID_QUERY"];
409
409
  readonly getTaxonomy: readonly ["INVALID_QUERY", "MARKET_DATA_UNAVAILABLE", "UNSUPPORTED_BROWSE_CONTRACT", "BROWSE_UNAVAILABLE"];
410
- readonly getTrader: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "INVALID_QUERY", "ORIGIN_REQUIRED", "NOT_FOUND", "SOURCE_UNAVAILABLE", "CONTRACT_UNAVAILABLE"];
411
- readonly getTraderPnl: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "INVALID_QUERY", "ORIGIN_REQUIRED", "NOT_FOUND", "SOURCE_UNAVAILABLE", "CONTRACT_UNAVAILABLE"];
410
+ readonly getTrader: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "INVALID_QUERY", "NOT_FOUND", "SOURCE_UNAVAILABLE"];
411
+ readonly getTraderPnl: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "INVALID_QUERY", "NOT_FOUND", "SOURCE_UNAVAILABLE", "CONTRACT_UNAVAILABLE"];
412
412
  readonly getUsernameAvailability: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "DEPENDENCY_STALE", "RATE_LIMITED", "INVALID_QUERY", "IDENTITY_NOT_FOUND", "ORIGIN_REQUIRED"];
413
413
  readonly getVaultAgents: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "ORIGIN_REQUIRED", "IDENTITY_NOT_FOUND", "INVALID_QUERY", "DEPENDENCY_STALE"];
414
414
  readonly getVolumeLeaderboard: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "DEPENDENCY_STALE", "RATE_LIMITED", "INVALID_QUERY", "CONTRACT_UNAVAILABLE"];
415
415
  readonly getWithdrawal: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "DEPENDENCY_STALE", "RATE_LIMITED", "INVALID_REQUEST", "NOT_FOUND"];
416
416
  readonly grantComboCopyAgent: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "ORIGIN_REQUIRED", "IDENTITY_NOT_FOUND", "CONTRACT_UNAVAILABLE", "NOT_FOUND", "INVALID_REQUEST", "FINANCIAL_ACTIONS_DISABLED", "DEPENDENCY_STALE", "INVALID_IDEMPOTENCY_KEY", "IDEMPOTENCY_KEY_REUSED"];
417
- readonly grantVaultAgent: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "ORIGIN_REQUIRED", "IDENTITY_NOT_FOUND", "INVALID_REQUEST", "FINANCIAL_ACTIONS_DISABLED", "DEPENDENCY_STALE", "INVALID_IDEMPOTENCY_KEY", "IDEMPOTENCY_KEY_REUSED"];
417
+ readonly grantVaultAgent: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "ORIGIN_REQUIRED", "IDENTITY_NOT_FOUND", "CONTRACT_UNAVAILABLE", "INVALID_REQUEST", "FINANCIAL_ACTIONS_DISABLED", "DEPENDENCY_STALE", "INVALID_IDEMPOTENCY_KEY", "IDEMPOTENCY_KEY_REUSED"];
418
418
  readonly likeComment: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "DEPENDENCY_STALE", "RATE_LIMITED", "ORIGIN_REQUIRED", "IDENTITY_NOT_FOUND", "NOT_FOUND", "INVALID_IDEMPOTENCY_KEY"];
419
419
  readonly listAccountActivity: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "DEPENDENCY_STALE", "RATE_LIMITED", "INVALID_QUERY", "ORIGIN_REQUIRED", "NOT_FOUND", "SOURCE_UNAVAILABLE", "CONTRACT_UNAVAILABLE", "CURSOR_EXPIRED"];
420
420
  readonly listAccountPositions: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "DEPENDENCY_STALE", "RATE_LIMITED", "INVALID_QUERY", "ORIGIN_REQUIRED", "NOT_FOUND", "SOURCE_UNAVAILABLE", "CONTRACT_UNAVAILABLE", "CURSOR_EXPIRED"];
421
421
  readonly listComboCopies: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "ORIGIN_REQUIRED", "IDENTITY_NOT_FOUND", "INVALID_QUERY", "CONTRACT_UNAVAILABLE"];
422
+ readonly listComboFeed: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "INVALID_QUERY", "SOURCE_UNAVAILABLE"];
422
423
  readonly listCommentReplies: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "DEPENDENCY_STALE", "RATE_LIMITED", "INVALID_QUERY", "INVALID_CURSOR", "NOT_FOUND"];
423
424
  readonly listComments: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "DEPENDENCY_STALE", "RATE_LIMITED", "INVALID_QUERY", "INVALID_CURSOR", "SOURCE_UNAVAILABLE", "MARKET_DATA_UNAVAILABLE"];
424
425
  readonly listControlledMakers: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "DEPENDENCY_STALE", "RATE_LIMITED", "ORIGIN_REQUIRED", "INVALID_QUERY", "INVALID_CURSOR"];
425
426
  readonly listCopiedFills: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "ORIGIN_REQUIRED", "IDENTITY_NOT_FOUND", "INVALID_QUERY", "CONTRACT_UNAVAILABLE"];
426
427
  readonly listCopyTrades: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "ORIGIN_REQUIRED", "IDENTITY_NOT_FOUND", "INVALID_QUERY", "CONTRACT_UNAVAILABLE"];
427
428
  readonly listDiscovery: readonly ["INVALID_QUERY", "INVALID_CURSOR", "STALE_CURSOR", "MARKET_DATA_UNAVAILABLE", "UNSUPPORTED_BROWSE_CONTRACT", "BROWSE_UNAVAILABLE"];
428
- readonly listFollows: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "ORIGIN_REQUIRED", "IDENTITY_NOT_FOUND", "INVALID_QUERY", "CONTRACT_UNAVAILABLE"];
429
+ readonly listFollows: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "ORIGIN_REQUIRED", "IDENTITY_NOT_FOUND", "INVALID_QUERY"];
429
430
  readonly listMakerAcceptances: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "DEPENDENCY_STALE", "RATE_LIMITED", "INVALID_QUERY", "INVALID_CURSOR", "NOT_FOUND"];
430
431
  readonly listMakerActivity: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "DEPENDENCY_STALE", "RATE_LIMITED", "INVALID_QUERY", "ORIGIN_REQUIRED", "NOT_FOUND", "SOURCE_UNAVAILABLE", "CONTRACT_UNAVAILABLE", "CURSOR_EXPIRED"];
431
432
  readonly listMakerApiKeys: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "DEPENDENCY_STALE", "RATE_LIMITED", "INVALID_REQUEST", "NOT_FOUND"];
@@ -437,8 +438,8 @@ export declare const operationErrors: {
437
438
  readonly listPersonalApiKeys: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "DEPENDENCY_STALE", "RATE_LIMITED", "INVALID_REQUEST", "NOT_FOUND"];
438
439
  readonly listQuotes: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "DEPENDENCY_STALE", "RATE_LIMITED", "INVALID_REQUEST", "NOT_FOUND"];
439
440
  readonly listRfqs: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "DEPENDENCY_STALE", "RATE_LIMITED", "INVALID_QUERY", "INVALID_CURSOR"];
440
- readonly listTraderPositions: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "INVALID_QUERY", "ORIGIN_REQUIRED", "NOT_FOUND", "SOURCE_UNAVAILABLE", "CONTRACT_UNAVAILABLE"];
441
- readonly listTraderTrades: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "INVALID_QUERY", "ORIGIN_REQUIRED", "NOT_FOUND", "SOURCE_UNAVAILABLE", "CONTRACT_UNAVAILABLE"];
441
+ readonly listTraderPositions: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "INVALID_QUERY", "NOT_FOUND", "SOURCE_UNAVAILABLE"];
442
+ readonly listTraderTrades: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "INVALID_QUERY", "NOT_FOUND", "SOURCE_UNAVAILABLE"];
442
443
  readonly live: readonly [];
443
444
  readonly publishMakerTelemetry: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "DEPENDENCY_STALE", "RATE_LIMITED", "INVALID_QUERY", "NOT_FOUND", "CONTRACT_UNAVAILABLE", "TELEMETRY_CONFLICT", "INVALID_REQUEST"];
444
445
  readonly reactComment: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "DEPENDENCY_STALE", "RATE_LIMITED", "ORIGIN_REQUIRED", "IDENTITY_NOT_FOUND", "NOT_FOUND", "INVALID_IDEMPOTENCY_KEY"];
@@ -460,14 +461,14 @@ export declare const operationErrors: {
460
461
  readonly setAvatar: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "DEPENDENCY_STALE", "RATE_LIMITED", "INVALID_REQUEST", "INVALID_IDEMPOTENCY_KEY", "IDEMPOTENCY_KEY_REUSED", "IDENTITY_NOT_FOUND", "ORIGIN_REQUIRED"];
461
462
  readonly setCopyAllocation: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "ORIGIN_REQUIRED", "IDENTITY_NOT_FOUND", "DEPENDENCY_STALE", "INVALID_REQUEST", "INVALID_IDEMPOTENCY_KEY", "IDEMPOTENCY_KEY_REUSED", "CONTRACT_UNAVAILABLE"];
462
463
  readonly setCopySettings: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "ORIGIN_REQUIRED", "IDENTITY_NOT_FOUND", "INVALID_REQUEST", "INVALID_IDEMPOTENCY_KEY", "IDEMPOTENCY_KEY_REUSED", "CONTRACT_UNAVAILABLE"];
463
- readonly setPublicProfile: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "INVALID_REQUEST", "INVALID_IDEMPOTENCY_KEY", "IDEMPOTENCY_KEY_REUSED", "IDENTITY_NOT_FOUND", "USERNAME_REQUIRED", "ORIGIN_REQUIRED", "CONTRACT_UNAVAILABLE"];
464
+ readonly setPublicProfile: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "INVALID_REQUEST", "INVALID_IDEMPOTENCY_KEY", "IDEMPOTENCY_KEY_REUSED", "IDENTITY_NOT_FOUND", "USERNAME_REQUIRED", "ORIGIN_REQUIRED"];
464
465
  readonly setUsername: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "DEPENDENCY_STALE", "RATE_LIMITED", "INVALID_REQUEST", "INVALID_IDEMPOTENCY_KEY", "IDEMPOTENCY_KEY_REUSED", "IDENTITY_NOT_FOUND", "USERNAME_NOT_ALLOWED", "USERNAME_TAKEN", "ORIGIN_REQUIRED"];
465
466
  readonly stream: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "DEPENDENCY_STALE", "RATE_LIMITED", "SUBPROTOCOL_REQUIRED", "CONNECTION_LIMIT", "CONNECTION_DRAIN", "INVALID_REQUEST", "NOT_FOUND", "ORIGIN_REQUIRED"];
466
467
  readonly streamMarkets: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "DEPENDENCY_STALE", "RATE_LIMITED", "SUBPROTOCOL_REQUIRED", "CONNECTION_LIMIT", "CONNECTION_DRAIN", "ORIGIN_NOT_ALLOWED", "INVALID_QUERY"];
467
468
  readonly submitMakerSelfFundedTransaction: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "DEPENDENCY_STALE", "RATE_LIMITED", "INVALID_REQUEST", "INVALID_IDEMPOTENCY_KEY", "IDEMPOTENCY_KEY_REUSED", "STATE_CONFLICT", "FINANCIAL_ACTIONS_DISABLED", "INVALID_SIGNATURE", "CONTRACT_SIGNATURE_OVERLOADED", "NOT_FOUND"];
468
469
  readonly switchOffComboCopyAgent: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "ORIGIN_REQUIRED", "IDENTITY_NOT_FOUND", "CONTRACT_UNAVAILABLE", "INVALID_IDEMPOTENCY_KEY", "IDEMPOTENCY_KEY_REUSED"];
469
470
  readonly switchOffCoreCopyAgent: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "ORIGIN_REQUIRED", "IDENTITY_NOT_FOUND", "CONTRACT_UNAVAILABLE", "INVALID_IDEMPOTENCY_KEY", "IDEMPOTENCY_KEY_REUSED"];
470
- readonly unfollowTrader: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "ORIGIN_REQUIRED", "IDENTITY_NOT_FOUND", "INVALID_IDEMPOTENCY_KEY", "INVALID_REQUEST", "IDEMPOTENCY_KEY_REUSED", "CONTRACT_UNAVAILABLE"];
471
+ readonly unfollowTrader: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "RATE_LIMITED", "ORIGIN_REQUIRED", "IDENTITY_NOT_FOUND", "INVALID_IDEMPOTENCY_KEY", "INVALID_REQUEST", "IDEMPOTENCY_KEY_REUSED"];
471
472
  readonly unlikeComment: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "DEPENDENCY_STALE", "RATE_LIMITED", "ORIGIN_REQUIRED", "IDENTITY_NOT_FOUND", "NOT_FOUND", "INVALID_IDEMPOTENCY_KEY"];
472
473
  readonly unreactComment: readonly ["UNAUTHENTICATED", "FORBIDDEN", "AUTHORIZATION_UNAVAILABLE", "DEPENDENCY_STALE", "RATE_LIMITED", "ORIGIN_REQUIRED", "IDENTITY_NOT_FOUND", "NOT_FOUND", "INVALID_IDEMPOTENCY_KEY"];
473
474
  };
@@ -1171,10 +1171,8 @@ export const operationErrors = {
1171
1171
  "AUTHORIZATION_UNAVAILABLE",
1172
1172
  "RATE_LIMITED",
1173
1173
  "INVALID_QUERY",
1174
- "ORIGIN_REQUIRED",
1175
1174
  "NOT_FOUND",
1176
- "SOURCE_UNAVAILABLE",
1177
- "CONTRACT_UNAVAILABLE"
1175
+ "SOURCE_UNAVAILABLE"
1178
1176
  ],
1179
1177
  "getTraderPnl": [
1180
1178
  "UNAUTHENTICATED",
@@ -1182,7 +1180,6 @@ export const operationErrors = {
1182
1180
  "AUTHORIZATION_UNAVAILABLE",
1183
1181
  "RATE_LIMITED",
1184
1182
  "INVALID_QUERY",
1185
- "ORIGIN_REQUIRED",
1186
1183
  "NOT_FOUND",
1187
1184
  "SOURCE_UNAVAILABLE",
1188
1185
  "CONTRACT_UNAVAILABLE"
@@ -1247,6 +1244,7 @@ export const operationErrors = {
1247
1244
  "RATE_LIMITED",
1248
1245
  "ORIGIN_REQUIRED",
1249
1246
  "IDENTITY_NOT_FOUND",
1247
+ "CONTRACT_UNAVAILABLE",
1250
1248
  "INVALID_REQUEST",
1251
1249
  "FINANCIAL_ACTIONS_DISABLED",
1252
1250
  "DEPENDENCY_STALE",
@@ -1300,6 +1298,14 @@ export const operationErrors = {
1300
1298
  "INVALID_QUERY",
1301
1299
  "CONTRACT_UNAVAILABLE"
1302
1300
  ],
1301
+ "listComboFeed": [
1302
+ "UNAUTHENTICATED",
1303
+ "FORBIDDEN",
1304
+ "AUTHORIZATION_UNAVAILABLE",
1305
+ "RATE_LIMITED",
1306
+ "INVALID_QUERY",
1307
+ "SOURCE_UNAVAILABLE"
1308
+ ],
1303
1309
  "listCommentReplies": [
1304
1310
  "UNAUTHENTICATED",
1305
1311
  "FORBIDDEN",
@@ -1366,8 +1372,7 @@ export const operationErrors = {
1366
1372
  "RATE_LIMITED",
1367
1373
  "ORIGIN_REQUIRED",
1368
1374
  "IDENTITY_NOT_FOUND",
1369
- "INVALID_QUERY",
1370
- "CONTRACT_UNAVAILABLE"
1375
+ "INVALID_QUERY"
1371
1376
  ],
1372
1377
  "listMakerAcceptances": [
1373
1378
  "UNAUTHENTICATED",
@@ -1483,10 +1488,8 @@ export const operationErrors = {
1483
1488
  "AUTHORIZATION_UNAVAILABLE",
1484
1489
  "RATE_LIMITED",
1485
1490
  "INVALID_QUERY",
1486
- "ORIGIN_REQUIRED",
1487
1491
  "NOT_FOUND",
1488
- "SOURCE_UNAVAILABLE",
1489
- "CONTRACT_UNAVAILABLE"
1492
+ "SOURCE_UNAVAILABLE"
1490
1493
  ],
1491
1494
  "listTraderTrades": [
1492
1495
  "UNAUTHENTICATED",
@@ -1494,10 +1497,8 @@ export const operationErrors = {
1494
1497
  "AUTHORIZATION_UNAVAILABLE",
1495
1498
  "RATE_LIMITED",
1496
1499
  "INVALID_QUERY",
1497
- "ORIGIN_REQUIRED",
1498
1500
  "NOT_FOUND",
1499
- "SOURCE_UNAVAILABLE",
1500
- "CONTRACT_UNAVAILABLE"
1501
+ "SOURCE_UNAVAILABLE"
1501
1502
  ],
1502
1503
  "live": [],
1503
1504
  "publishMakerTelemetry": [
@@ -1728,8 +1729,7 @@ export const operationErrors = {
1728
1729
  "IDEMPOTENCY_KEY_REUSED",
1729
1730
  "IDENTITY_NOT_FOUND",
1730
1731
  "USERNAME_REQUIRED",
1731
- "ORIGIN_REQUIRED",
1732
- "CONTRACT_UNAVAILABLE"
1732
+ "ORIGIN_REQUIRED"
1733
1733
  ],
1734
1734
  "setUsername": [
1735
1735
  "UNAUTHENTICATED",
@@ -1816,8 +1816,7 @@ export const operationErrors = {
1816
1816
  "IDENTITY_NOT_FOUND",
1817
1817
  "INVALID_IDEMPOTENCY_KEY",
1818
1818
  "INVALID_REQUEST",
1819
- "IDEMPOTENCY_KEY_REUSED",
1820
- "CONTRACT_UNAVAILABLE"
1819
+ "IDEMPOTENCY_KEY_REUSED"
1821
1820
  ],
1822
1821
  "unlikeComment": [
1823
1822
  "UNAUTHENTICATED",
@@ -725,7 +725,7 @@ export type paths = {
725
725
  readonly get?: never;
726
726
  /**
727
727
  * Turn the public trader profile on or off
728
- * @description Turns the authenticated account's public trader profile on (public: true) or off. It starts on, and an account without a username can turn it off before picking one; nothing names the profile until then. While it is on, any signed-in participant reads GET /v1/traders/{username}: the username, avatar, account wallet, volume, trades, open Combos and P&L, and the leaderboards mark the account public_profile. Its HyperCore fills and tickets are public on chain anyway; what turning it on discloses is that the wallet belongs to the username. Turning it on needs a username (409 USERNAME_REQUIRED); public_since keeps the first time it went on until it is turned off. Call it after POST /v1/me/embedded-wallet; before that it is 404 IDENTITY_NOT_FOUND. Asking for the current state again returns 204, so a retry is safe. Idempotency-Keys order these requests: the other state under the account's newest key, or under an older key, is 409 IDEMPOTENCY_KEY_REUSED, so a delayed retry never undoes a newer request. A key stamped more than 5 minutes ahead of server time is 400 INVALID_REQUEST.
728
+ * @description Turns the authenticated account's public trader profile on (public: true) or off. It starts on, and an account without a username can turn it off before picking one; nothing names the profile until then. While it is on, anyone, signed in or not, reads GET /v1/traders/{username}: the username, avatar, account wallet, volume, trades, open Combos and singles and P&L, and GET /v1/feed/combos lists the Combos it opens, and the leaderboards mark the account public_profile. Its HyperCore fills and tickets are public on chain anyway; what turning it on discloses is that the wallet belongs to the username. Turning it on needs a username (409 USERNAME_REQUIRED); public_since keeps the first time it went on until it is turned off. Call it after POST /v1/me/embedded-wallet; before that it is 404 IDENTITY_NOT_FOUND. Asking for the current state again returns 204, so a retry is safe. Idempotency-Keys order these requests: the other state under the account's newest key, or under an older key, is 409 IDEMPOTENCY_KEY_REUSED, so a delayed retry never undoes a newer request. A key stamped more than 5 minutes ahead of server time is 400 INVALID_REQUEST.
729
729
  */
730
730
  readonly put: operations["setPublicProfile"];
731
731
  readonly post?: never;
@@ -744,7 +744,7 @@ export type paths = {
744
744
  };
745
745
  /**
746
746
  * Get a public trader profile
747
- * @description A trader's public profile, while they have turned it on with PUT /v1/me/public-profile: their username, avatar, the account wallet they trade from, which clients read HyperCore holdings for from Hyperliquid, their follower count, whether the reader follows them, and their all-time volume, counted as GET /v1/leaderboard/volume counts it. Only a signed-in participant session reads it: anonymous calls and API keys are refused. A username with no public profile, whether private, unknown or held by an account that is not ACTIVE, is 404 NOT_FOUND.
747
+ * @description A trader's public profile, while they have turned it on with PUT /v1/me/public-profile: their username, avatar, the account wallet they trade from, which clients read HyperCore holdings for from Hyperliquid, their follower count, whether the reader follows them, and their all-time volume, counted as GET /v1/leaderboard/volume counts it. Anyone reads it, signed out or with any credential, from any origin; a supplied credential must still authenticate. A signed-out answer is the same for everyone and is cached for 30 seconds. A username with no public profile, whether private, unknown or held by an account that is not ACTIVE, is 404 NOT_FOUND, signed in or not.
748
748
  */
749
749
  readonly get: operations["getTrader"];
750
750
  readonly put?: never;
@@ -764,7 +764,7 @@ export type paths = {
764
764
  };
765
765
  /**
766
766
  * List a public trader's trades
767
- * @description A public trader's trades, newest first: each HyperCore fill GET /v1/leaderboard/volume counts as theirs (on their Totalis embedded wallet, or an order the app placed on another linked wallet), each Combo ticket a wallet of theirs opened, when it did (a ticket passed to them on is not their entry), and each sold back from a wallet of theirs, when it was. Poll the first page for new trades; ids are stable. The cursor never expires. Only a signed-in participant session reads it: anonymous calls and API keys are refused. A username with no public profile, whether private, unknown or held by an account that is not ACTIVE, is 404 NOT_FOUND.
767
+ * @description A public trader's trades, newest first: each HyperCore fill GET /v1/leaderboard/volume counts as theirs (on their Totalis embedded wallet, or an order the app placed on another linked wallet), each Combo ticket a wallet of theirs opened, when it did (a ticket passed to them on is not their entry), and each sold back from a wallet of theirs, when it was. Poll the first page for new trades; ids are stable. The cursor never expires. Anyone reads it, signed out or with any credential, from any origin; a supplied credential must still authenticate. A signed-out answer is the same for everyone and is cached for 30 seconds. A username with no public profile, whether private, unknown or held by an account that is not ACTIVE, is 404 NOT_FOUND, signed in or not.
768
768
  */
769
769
  readonly get: operations["listTraderTrades"];
770
770
  readonly put?: never;
@@ -783,8 +783,8 @@ export type paths = {
783
783
  readonly cookie?: never;
784
784
  };
785
785
  /**
786
- * List a public trader's open Combos
787
- * @description A public trader's open Combo tickets, newest first by opening, including tickets passed to them. Their HyperCore holdings are on Hyperliquid: read them for the profile's account wallet. Only a signed-in participant session reads it: anonymous calls and API keys are refused. A username with no public profile, whether private, unknown or held by an account that is not ACTIVE, is 404 NOT_FOUND.
786
+ * List a public trader's open Combos and singles
787
+ * @description A public trader's open Combo tickets, newest first by opening, including tickets passed to them, and on the first page (no cursor) their singles: the HIP-4 outcome sides their account wallet holds on HyperCore, replayed from its whole fill history in the account index. singles is null while that history cannot prove them: off Mainnet, while the index is behind or missing history, after an outcome token moved by transfer, or while the read fails. A later page leaves singles out. Anyone reads it, signed out or with any credential, from any origin; a supplied credential must still authenticate. A signed-out answer is the same for everyone and is cached for 30 seconds. A username with no public profile, whether private, unknown or held by an account that is not ACTIVE, is 404 NOT_FOUND, signed in or not.
788
788
  */
789
789
  readonly get: operations["listTraderPositions"];
790
790
  readonly put?: never;
@@ -804,7 +804,7 @@ export type paths = {
804
804
  };
805
805
  /**
806
806
  * Get a public trader's P&L series
807
- * @description A public trader's cumulative trading P&L over one range: what GET /v1/me/pnl shows them for their account wallet. Only a signed-in participant session reads it: anonymous calls and API keys are refused. A username with no public profile, whether private, unknown or held by an account that is not ACTIVE, is 404 NOT_FOUND.
807
+ * @description A public trader's cumulative trading P&L over one range: what GET /v1/me/pnl shows them for their account wallet. Anyone reads it, signed out or with any credential, from any origin; a supplied credential must still authenticate. A signed-out answer is the same for everyone and is cached for 30 seconds. A username with no public profile, whether private, unknown or held by an account that is not ACTIVE, is 404 NOT_FOUND, signed in or not.
808
808
  */
809
809
  readonly get: operations["getTraderPnl"];
810
810
  readonly put?: never;
@@ -815,6 +815,26 @@ export type paths = {
815
815
  readonly patch?: never;
816
816
  readonly trace?: never;
817
817
  };
818
+ readonly "/v1/feed/combos": {
819
+ readonly parameters: {
820
+ readonly query?: never;
821
+ readonly header?: never;
822
+ readonly path?: never;
823
+ readonly cookie?: never;
824
+ };
825
+ /**
826
+ * List the Combos public traders opened
827
+ * @description Every Combo ticket opened by a trader whose profile is public (PUT /v1/me/public-profile), newest first by opening, a page at a time, with the trader's username and avatar. A ticket counts for the participant whose linked wallet opened it, whoever holds it now; a profile turned off leaves the feed, and one turned on brings its Combos back. A page reads a bounded run of tickets, so it may hold fewer than limit, even none, while has_more is true. Poll the first page for new Combos; the cursor never expires. Anyone reads it, signed out or with any credential, from any origin; a supplied credential must still authenticate. A signed-out answer is the same for everyone and is cached for 30 seconds.
828
+ */
829
+ readonly get: operations["listComboFeed"];
830
+ readonly put?: never;
831
+ readonly post?: never;
832
+ readonly delete?: never;
833
+ readonly options?: never;
834
+ readonly head?: never;
835
+ readonly patch?: never;
836
+ readonly trace?: never;
837
+ };
818
838
  readonly "/v1/me/follows": {
819
839
  readonly parameters: {
820
840
  readonly query?: never;
@@ -845,7 +865,7 @@ export type paths = {
845
865
  readonly get?: never;
846
866
  /**
847
867
  * Follow a trader or set a follow's copy settings
848
- * @description Follows the trader whose public profile has this username, and answers the follow's copy settings. A follow alone copies nothing: it puts the trader's trades in the account's feed. Send {} to follow: a new follow takes the defaults (automatic copying off, FIXED 10 USDC a trade up to 100 USDC, 5 open positions, 100 bps slippage, exits mirrored) and an existing one keeps its settings. Send both core and combos to replace the follow's settings, following first if needed. Automatic copying also needs the product's copy agent, and stops while the account is paused (PUT /v1/me/copy-settings) or the trader's profile is off. Idempotency-Keys order every write to a follow, unfollows included: a request under a key no newer than the follow's latest succeeds only if the follow is already as it asks (followed, with these settings if it sends any), so a retry is safe; anything else is 409 IDEMPOTENCY_KEY_REUSED, so a delayed retry never undoes a newer follow, settings change or unfollow. A key stamped more than 5 minutes ahead of server time is 400 INVALID_REQUEST. A username with no public profile is 404 NOT_FOUND; the account's own username is 422 FOLLOW_SELF; a 101st follow is 422 FOLLOW_LIMIT_REACHED.
868
+ * @description Follows the trader whose public profile has this username, and answers the follow's copy settings. A follow alone copies nothing: it puts the trader's trades in the account's feed. Send {} to follow: a new follow takes the defaults (automatic copying off, FIXED 10 USDC a trade up to 100 USDC, 5 open positions, 100 bps slippage, exits mirrored) and an existing one keeps its settings. Send both core and combos to replace the follow's settings, following first if needed. Automatic copying also needs the product's copy agent, and stops while the account is paused (PUT /v1/me/copy-settings) or the trader's profile is off. Idempotency-Keys order every write to a follow, unfollows included: a request under a key no newer than the follow's latest succeeds only if the follow is already as it asks (followed, with these settings if it sends any), so a retry is safe; anything else is 409 IDEMPOTENCY_KEY_REUSED, so a delayed retry never undoes a newer follow, settings change or unfollow. A key stamped more than 5 minutes ahead of server time is 400 INVALID_REQUEST. A username with no public profile is 404 NOT_FOUND; the account's own username is 422 FOLLOW_SELF; a 101st follow is 422 FOLLOW_LIMIT_REACHED. Where copy trading is not available, a plain follow ({}) still works but a body with copy settings is 503 CONTRACT_UNAVAILABLE.
849
869
  */
850
870
  readonly put: operations["followTrader"];
851
871
  readonly post?: never;
@@ -1046,7 +1066,7 @@ export type paths = {
1046
1066
  readonly put?: never;
1047
1067
  /**
1048
1068
  * Relay the account's grant or revoke of a device's vault agent
1049
- * @description Relays the account's EIP-712 signature over AgentGrant(account, agent, valid_until, nonce) to setAgent; Totalis pays the gas. agent is a key one of the account's devices holds, so it can sign the account's named Combo accepts, cash-outs and Exits to its own wallet or Core spot without a wallet prompt. valid_until is unix seconds, in the future and at most 180 days away (the vault's limit); 0 revokes at once. nonce must exceed the agent's last grant (GET /v1/me/vault-agents), so a client uses the current unix time. Only the account's own signature (or its ERC-1271 verdict) grants. 403 FORBIDDEN for a copy agent, whose grants go through /v1/me/copy-agents. While financial actions run off only a revoke is relayed. A retry with the same Idempotency-Key returns the same operation.
1069
+ * @description Relays the account's EIP-712 signature over AgentGrant(account, agent, valid_until, nonce) to setAgent; Totalis pays the gas. agent is a key one of the account's devices holds, so it can sign the account's named Combo accepts, cash-outs and Exits to its own wallet or Core spot without a wallet prompt. valid_until is unix seconds, in the future and at most 180 days away (the vault's limit); 0 revokes at once. nonce must exceed the agent's last grant (GET /v1/me/vault-agents), so a client uses the current unix time. Only the account's own signature (or its ERC-1271 verdict) grants. 403 FORBIDDEN for a copy agent, whose grants go through /v1/me/copy-agents. While financial actions run off only a revoke is relayed. 503 CONTRACT_UNAVAILABLE when the vault has no setAgent. A retry with the same Idempotency-Key returns the same operation.
1050
1070
  */
1051
1071
  readonly post: operations["grantVaultAgent"];
1052
1072
  readonly delete?: never;
@@ -2503,10 +2523,19 @@ export type components = {
2503
2523
  readonly max_per_trade: components["schemas"]["$defs-Amount"];
2504
2524
  /** @description Most positions copied from this trader open at once. */
2505
2525
  readonly max_open: number;
2506
- /** @description Worst price a copy accepts against the trader's, in basis points; a copy outside it is skipped. */
2526
+ /** @description Max worst entry: the worst price a copy accepts against the trader's, in basis points, 0 to 5000 (50%); a copy outside it is skipped. A COUNTER of a Combo has no band from the trader, whose price says nothing of the flipped Combo's: it takes the best quote paying more than its net stake. */
2507
2527
  readonly slippage_bps: number;
2508
2528
  /** @description Copy the trader's reductions and cash-outs too. */
2509
2529
  readonly mirror_exits: boolean;
2530
+ /**
2531
+ * @description COPY takes the trader's side. COUNTER takes the other side: a single buys the outcome's other side, priced against 1 less the trader's price and sized from what the trader spent; a Combo flips every leg, so it pays only if every one of the trader's legs loses. A counter mirrors the trader's exits as a copy does: a single's sells are priced against 1 less the trader's price, and a Combo's cash-out at no less than counter_exit_floor_bps of what the follower staked, as the trader's cash-out prices their ticket, not the flipped one. After a change of mode, buys in a market are not copied while copies of it are held on the other side. Left out of a write, COPY.
2532
+ * @enum {unknown}
2533
+ */
2534
+ readonly mode?: "COPY" | "COUNTER";
2535
+ /** @description Copy a buy only when it opens the trader's position, never one adding to it. Core only: every Combo opens a new position, so combos refuses true. Left out of a write, false. */
2536
+ readonly new_positions_only?: boolean;
2537
+ /** @description The least a COUNTER Combo cashes out for when the trader cashes out: what the follower receives, after the vault's profit fee on a sell-back, in basis points of what they staked, fee included, 0 to 100000: 10000 never sells for less than the stake, 8000 accepts up to a 20% loss, 0 takes the best quote at any price. With none at or above it, the cash-out is skipped and the ticket held to settlement. Combos only: listed on combos, never on core, and core refuses any value but 10000. Left out of a write, 10000. */
2538
+ readonly counter_exit_floor_bps?: number;
2510
2539
  };
2511
2540
  readonly FollowSettingsFields: {
2512
2541
  /** @description How the follow copies HyperCore orders. */
@@ -2663,6 +2692,35 @@ export type components = {
2663
2692
  };
2664
2693
  /** TraderCombo */
2665
2694
  readonly TraderCombo: components["schemas"]["TraderComboFields"];
2695
+ /**
2696
+ * TraderSingle
2697
+ * @description A HIP-4 outcome side a trader's account wallet holds on HyperCore.
2698
+ */
2699
+ readonly TraderSingle: {
2700
+ /** @description HIP-4 outcome ID held, as a decimal string. */
2701
+ readonly outcome_id: components["schemas"]["UInt32String"];
2702
+ /** @description Outcome side held. */
2703
+ readonly side: components["schemas"]["Side"];
2704
+ /** @description Shares held, an exact decimal string with no trailing zeros. */
2705
+ readonly shares: string;
2706
+ /** @description What each held share cost on average in USDC, fees included: buys add their cost and a sale removes its shares' share of it. Rounded half away from zero to 6 decimals, no trailing zeros. Absent when the holding's fills brought cash in rather than paid it out. */
2707
+ readonly average_price?: string;
2708
+ /** @description HyperCore block time of the fill that last opened the holding from none. */
2709
+ readonly opened_at: components["schemas"]["$defs-Timestamp"];
2710
+ };
2711
+ /**
2712
+ * ComboFeedItem
2713
+ * @description A Combo a public trader opened.
2714
+ */
2715
+ readonly ComboFeedItem: {
2716
+ readonly username: components["schemas"]["Username"];
2717
+ /** @description The seed clients draw the trader's generated avatar from, as for GET /v1/traders/{username}. */
2718
+ readonly avatar_seed: components["schemas"]["AvatarSeed"];
2719
+ /** @description The trader's X picture, shown in place of the generated avatar; absent when there is none. */
2720
+ readonly picture_url?: components["schemas"]["XPictureUrl"];
2721
+ /** @description HyperEVM block time of the ticket's opening. */
2722
+ readonly opened_at: components["schemas"]["$defs-Timestamp"];
2723
+ } & components["schemas"]["TraderComboFields"];
2666
2724
  /** @description One live, unsigned quote on an RFQ, told apart by `kind`. List quotes, the account snapshot's quotes and `QUOTE_CREATED` carry the same item. */
2667
2725
  readonly Quote: components["schemas"]["EntryQuote"] | components["schemas"]["SellBackQuote"] | components["schemas"]["TransferQuote"];
2668
2726
  /** @description A maker's offer to open a position on an entry RFQ. */
@@ -7755,7 +7813,8 @@ export interface operations {
7755
7813
  /** @description The profile */
7756
7814
  readonly 200: {
7757
7815
  headers: {
7758
- readonly "Cache-Control"?: "no-store";
7816
+ /** @description public, max-age=30 for a signed-out read, which the edge may share; no-store for one with a credential. */
7817
+ readonly "Cache-Control"?: "public, max-age=30" | "no-store";
7759
7818
  readonly [name: string]: unknown;
7760
7819
  };
7761
7820
  content: {
@@ -7820,7 +7879,8 @@ export interface operations {
7820
7879
  /** @description A page of trades */
7821
7880
  readonly 200: {
7822
7881
  headers: {
7823
- readonly "Cache-Control"?: "no-store";
7882
+ /** @description public, max-age=30 for a signed-out read, which the edge may share; no-store for one with a credential. */
7883
+ readonly "Cache-Control"?: "public, max-age=30" | "no-store";
7824
7884
  readonly [name: string]: unknown;
7825
7885
  };
7826
7886
  content: {
@@ -7895,7 +7955,8 @@ export interface operations {
7895
7955
  /** @description A page of open Combos */
7896
7956
  readonly 200: {
7897
7957
  headers: {
7898
- readonly "Cache-Control"?: "no-store";
7958
+ /** @description public, max-age=30 for a signed-out read, which the edge may share; no-store for one with a credential. */
7959
+ readonly "Cache-Control"?: "public, max-age=30" | "no-store";
7899
7960
  readonly [name: string]: unknown;
7900
7961
  };
7901
7962
  content: {
@@ -7907,6 +7968,8 @@ export interface operations {
7907
7968
  } & components["schemas"]["TraderComboFields"])[];
7908
7969
  readonly next_cursor: components["schemas"]["NextCursor"];
7909
7970
  readonly has_more: boolean;
7971
+ /** @description The trader's open singles, newest opened first; null when they cannot be known. Only on the first page. */
7972
+ readonly singles?: null | readonly components["schemas"]["TraderSingle"][];
7910
7973
  };
7911
7974
  };
7912
7975
  };
@@ -7936,7 +7999,8 @@ export interface operations {
7936
7999
  /** @description The trader's P&L series */
7937
8000
  readonly 200: {
7938
8001
  headers: {
7939
- readonly "Cache-Control"?: "no-store";
8002
+ /** @description public, max-age=30 for a signed-out read, which the edge may share; no-store for one with a credential. */
8003
+ readonly "Cache-Control"?: "public, max-age=30" | "no-store";
7940
8004
  readonly [name: string]: unknown;
7941
8005
  };
7942
8006
  content: {
@@ -7951,6 +8015,49 @@ export interface operations {
7951
8015
  readonly 503: components["responses"]["Unavailable"];
7952
8016
  };
7953
8017
  };
8018
+ readonly listComboFeed: {
8019
+ readonly parameters: {
8020
+ readonly query?: {
8021
+ /**
8022
+ * @description Omit for the first page; then send the previous response's next_cursor unchanged.
8023
+ * @example eyJ2IjoxLCJzIjoiMTIzNDUifQ
8024
+ */
8025
+ readonly cursor?: components["parameters"]["Cursor"];
8026
+ /**
8027
+ * @description Maximum items per page, 1 to 200, default 50. A page may hold fewer, even none, while has_more is true.
8028
+ * @example 50
8029
+ */
8030
+ readonly limit?: components["parameters"]["Limit"];
8031
+ };
8032
+ readonly header?: never;
8033
+ readonly path?: never;
8034
+ readonly cookie?: never;
8035
+ };
8036
+ readonly requestBody?: never;
8037
+ readonly responses: {
8038
+ /** @description A page of public traders' Combos */
8039
+ readonly 200: {
8040
+ headers: {
8041
+ /** @description public, max-age=30 for a signed-out read, which the edge may share; no-store for one with a credential. */
8042
+ readonly "Cache-Control"?: "public, max-age=30" | "no-store";
8043
+ readonly [name: string]: unknown;
8044
+ };
8045
+ content: {
8046
+ readonly "application/json": {
8047
+ /** @description Combos, newest first by opening. */
8048
+ readonly items: readonly components["schemas"]["ComboFeedItem"][];
8049
+ readonly next_cursor: components["schemas"]["NextCursor"];
8050
+ readonly has_more: boolean;
8051
+ };
8052
+ };
8053
+ };
8054
+ readonly 400: components["responses"]["Error"];
8055
+ readonly 401: components["responses"]["Error"];
8056
+ readonly 403: components["responses"]["Error"];
8057
+ readonly 429: components["responses"]["RateLimited"];
8058
+ readonly 503: components["responses"]["Unavailable"];
8059
+ };
8060
+ };
7954
8061
  readonly listFollows: {
7955
8062
  readonly parameters: {
7956
8063
  readonly query?: never;
@@ -8168,13 +8275,18 @@ export interface operations {
8168
8275
  readonly decided_at?: components["schemas"]["$defs-Timestamp"];
8169
8276
  /** @description HIP-4 outcome ID, as a decimal string. */
8170
8277
  readonly outcome_id: components["schemas"]["UInt32String"];
8171
- /** @description Outcome side. */
8278
+ /** @description The side the account traded: the trader's, or its other side for a COUNTER. */
8172
8279
  readonly side: components["schemas"]["Side"];
8173
8280
  /**
8174
- * @description ENTRY: the trader bought, and the copy buys. REDUCE: the trader sold part of their holding, and the copy sells that fraction of the account's copied shares. CLOSE and EXIT: the trader sold all of it, and the copy sells all copied shares.
8281
+ * @description ENTRY: the trader bought, and the copy buys, or for a COUNTER buys the other side. REDUCE: the trader sold part of their holding, and the copy sells that fraction of the account's copied shares. CLOSE and EXIT: the trader sold all of it, and the copy sells all copied shares.
8175
8282
  * @enum {string}
8176
8283
  */
8177
8284
  readonly kind: "ENTRY" | "REDUCE" | "CLOSE" | "EXIT";
8285
+ /**
8286
+ * @description Whether this copied the trader's trade or took its other side.
8287
+ * @enum {unknown}
8288
+ */
8289
+ readonly mode: "COPY" | "COUNTER";
8178
8290
  /**
8179
8291
  * CopyLeaderTrade
8180
8292
  * @description The trader's trade, all of its fills together.
@@ -8256,11 +8368,16 @@ export interface operations {
8256
8368
  /** @description When the copy reached its outcome; absent while PENDING. */
8257
8369
  readonly decided_at?: components["schemas"]["$defs-Timestamp"];
8258
8370
  /**
8259
- * @description ENTRY: the trader opened a Combo, and the copy opens the same legs at the account's stake. EXIT: the trader cashed theirs out, and the copy cashes out the account's copy.
8371
+ * @description ENTRY: the trader opened a Combo, and the copy opens the same legs, or for a COUNTER each leg's other side, at the account's stake. EXIT: the trader cashed theirs out, and the copy cashes out the account's copy.
8260
8372
  * @enum {string}
8261
8373
  */
8262
8374
  readonly kind: "ENTRY" | "EXIT";
8263
- /** @description The Combo's legs. */
8375
+ /**
8376
+ * @description Whether this copied the trader's trade or took its other side.
8377
+ * @enum {unknown}
8378
+ */
8379
+ readonly mode: "COPY" | "COUNTER";
8380
+ /** @description The legs the account's copy takes: the trader's, each on its other side for a COUNTER. */
8264
8381
  readonly legs: readonly components["schemas"]["TraderLeg"][];
8265
8382
  /**
8266
8383
  * ComboCopyLeaderTrade
@@ -10686,7 +10803,7 @@ export interface operations {
10686
10803
  readonly "application/json": components["schemas"]["DepositAccepted"];
10687
10804
  };
10688
10805
  };
10689
- /** @description A deposit moves at least 0.10 USDC from a Totalis embedded wallet and 1 USDC from any other, and a wallet that controls a maker cannot deposit (`INVALID_REQUEST`). */
10806
+ /** @description A deposit moves at least 0.10 USDC from a Privy login wallet, embedded or external, and 1 USDC from any other, and a wallet that controls a maker cannot deposit (`INVALID_REQUEST`). */
10690
10807
  readonly 400: components["responses"]["Error"];
10691
10808
  readonly 401: components["responses"]["Error"];
10692
10809
  /** @description Wallet sessions and Totalis app sessions only: an API key cannot deposit. */
@@ -1,5 +1,5 @@
1
- export declare const sdkVersion = "205.0.0-device-vault-agents";
2
- export declare const openapiSha256 = "93141e0bf50949fc37ebceef7c64555eb50a70f69c71c89c8fdc12780e0dd168";
1
+ export declare const sdkVersion = "207.0.0-copy-modes";
2
+ export declare const openapiSha256 = "3d418204ef35fc0569a5d38291b6a894e4d88e0de24e26e379d218e72d636765";
3
3
  export declare const realtimeSha256 = "1cac740e108e84ad1979f6ccc71089efd840404cb72d1612a86edc02769637e3";
4
4
  export declare const jsonSchemaSha256: {
5
5
  readonly "account.schema.json": "5106e2d53abef190990eff113f6692dd27df5848439cf5a80a42c11e89f2bef6";
@@ -18,7 +18,7 @@ export declare const jsonSchemaSha256: {
18
18
  readonly "realtime.schema.json": "1cac740e108e84ad1979f6ccc71089efd840404cb72d1612a86edc02769637e3";
19
19
  };
20
20
  export declare const operations: {
21
- readonly client: readonly ["abandonCoreExit", "acceptQuote", "activeCoreExits", "admitOwnMaker", "admitPartnerWallet", "bindEmbeddedWallet", "cancelRfq", "confirmComboCopyAgent", "confirmCoreCopyAgent", "createCashout", "createComment", "createCoreExit", "createDeposit", "createRfq", "createRunOffClaim", "createWalletChallenge", "createWalletSession", "createWithdrawal", "deleteComment", "editComment", "endWalletSession", "followTrader", "getAcceptance", "getAccountActivity", "getAccountPnl", "getAccountPosition", "getBalances", "getCopyAgents", "getCopyBudget", "getCopySettings", "getCopySummary", "getCoreExit", "getDeployment", "getHypercoreBalance", "getHypercorePortfolio", "getHypercoreSettlementCredits", "getIdentity", "getMakerActivity", "getMakerCapital", "getMakerExposure", "getMakerPerformance", "getMakerPosition", "getMakerQuotes", "getMakerTelemetry", "getMakerVaultFundingTransaction", "getMakerWithdrawal", "getMarket", "getMarketDataConfig", "getMarketDefinitions", "getMarketHistory", "getMarketRecurringRound", "getMarketReferenceCloses", "getMarketScoreTimeline", "getMarketStats", "getOperation", "getOwnMaker", "getPartnerReport", "getPerpMarks", "getProfitLeaderboard", "getQuestion", "getQuestionRecurringRound", "getQuestionScoreTimeline", "getRfq", "getSeries", "getSuggestedCombo", "getTaxonomy", "getTrader", "getTraderPnl", "getUsernameAvailability", "getVaultAgents", "getVolumeLeaderboard", "getWithdrawal", "grantComboCopyAgent", "grantVaultAgent", "likeComment", "listAccountActivity", "listAccountPositions", "listComboCopies", "listCommentReplies", "listComments", "listControlledMakers", "listCopiedFills", "listCopyTrades", "listDiscovery", "listFollows", "listMakerActivity", "listMakerPositions", "listMakerQuoteHistory", "listMarkets", "listOperations", "listQuotes", "listTraderPositions", "listTraderTrades", "reactComment", "recordAcquisition", "refreshPicture", "requestComboCopyAgent", "requestCoreCopyAgent", "revokeComboCopyAgent", "searchCatalog", "setAvatar", "setCopyAllocation", "setCopySettings", "setPublicProfile", "setUsername", "stream", "streamMarkets", "switchOffComboCopyAgent", "switchOffCoreCopyAgent", "unfollowTrader", "unlikeComment", "unreactComment"];
21
+ readonly client: readonly ["abandonCoreExit", "acceptQuote", "activeCoreExits", "admitOwnMaker", "admitPartnerWallet", "bindEmbeddedWallet", "cancelRfq", "confirmComboCopyAgent", "confirmCoreCopyAgent", "createCashout", "createComment", "createCoreExit", "createDeposit", "createRfq", "createRunOffClaim", "createWalletChallenge", "createWalletSession", "createWithdrawal", "deleteComment", "editComment", "endWalletSession", "followTrader", "getAcceptance", "getAccountActivity", "getAccountPnl", "getAccountPosition", "getBalances", "getCopyAgents", "getCopyBudget", "getCopySettings", "getCopySummary", "getCoreExit", "getDeployment", "getHypercoreBalance", "getHypercorePortfolio", "getHypercoreSettlementCredits", "getIdentity", "getMakerActivity", "getMakerCapital", "getMakerExposure", "getMakerPerformance", "getMakerPosition", "getMakerQuotes", "getMakerTelemetry", "getMakerVaultFundingTransaction", "getMakerWithdrawal", "getMarket", "getMarketDataConfig", "getMarketDefinitions", "getMarketHistory", "getMarketRecurringRound", "getMarketReferenceCloses", "getMarketScoreTimeline", "getMarketStats", "getOperation", "getOwnMaker", "getPartnerReport", "getPerpMarks", "getProfitLeaderboard", "getQuestion", "getQuestionRecurringRound", "getQuestionScoreTimeline", "getRfq", "getSeries", "getSuggestedCombo", "getTaxonomy", "getTrader", "getTraderPnl", "getUsernameAvailability", "getVaultAgents", "getVolumeLeaderboard", "getWithdrawal", "grantComboCopyAgent", "grantVaultAgent", "likeComment", "listAccountActivity", "listAccountPositions", "listComboCopies", "listComboFeed", "listCommentReplies", "listComments", "listControlledMakers", "listCopiedFills", "listCopyTrades", "listDiscovery", "listFollows", "listMakerActivity", "listMakerPositions", "listMakerQuoteHistory", "listMarkets", "listOperations", "listQuotes", "listTraderPositions", "listTraderTrades", "reactComment", "recordAcquisition", "refreshPicture", "requestComboCopyAgent", "requestCoreCopyAgent", "revokeComboCopyAgent", "searchCatalog", "setAvatar", "setCopyAllocation", "setCopySettings", "setPublicProfile", "setUsername", "stream", "streamMarkets", "switchOffComboCopyAgent", "switchOffCoreCopyAgent", "unfollowTrader", "unlikeComment", "unreactComment"];
22
22
  readonly maker: readonly ["cancelQuote", "confirmQuote", "createCollateralReduction", "createQuote", "getAccountActivity", "getAccountPosition", "getCollateralReduction", "getDeployment", "getMakerActivity", "getMakerCapital", "getMakerExposure", "getMakerPerformance", "getMakerPosition", "getMakerQuotes", "getMakerTelemetry", "getMakerTelemetryPublication", "getMakerVaultFundingTransaction", "getMakerWithdrawal", "getMarket", "getMarketHistory", "getMarketRecurringRound", "getMarketReferenceCloses", "getOperation", "getQuestion", "getQuestionRecurringRound", "getRfq", "getSeries", "getTaxonomy", "listAccountActivity", "listAccountPositions", "listDiscovery", "listMakerAcceptances", "listMakerActivity", "listMakerPositions", "listMakerQuoteHistory", "listMarkets", "listOperations", "listRfqs", "publishMakerTelemetry", "releaseQuoteLease", "renewQuoteLease", "searchCatalog", "stream", "submitMakerSelfFundedTransaction"];
23
23
  readonly operator: readonly ["live", "ready"];
24
24
  };
@@ -1,6 +1,6 @@
1
1
  // Generated by scripts/generate.mjs; do not edit.
2
- export const sdkVersion = "205.0.0-device-vault-agents";
3
- export const openapiSha256 = "93141e0bf50949fc37ebceef7c64555eb50a70f69c71c89c8fdc12780e0dd168";
2
+ export const sdkVersion = "207.0.0-copy-modes";
3
+ export const openapiSha256 = "3d418204ef35fc0569a5d38291b6a894e4d88e0de24e26e379d218e72d636765";
4
4
  export const realtimeSha256 = "1cac740e108e84ad1979f6ccc71089efd840404cb72d1612a86edc02769637e3";
5
5
  export const jsonSchemaSha256 = {
6
6
  "account.schema.json": "5106e2d53abef190990eff113f6692dd27df5848439cf5a80a42c11e89f2bef6",
@@ -98,6 +98,7 @@ export const operations = {
98
98
  "listAccountActivity",
99
99
  "listAccountPositions",
100
100
  "listComboCopies",
101
+ "listComboFeed",
101
102
  "listCommentReplies",
102
103
  "listComments",
103
104
  "listControlledMakers",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@totalis/hip4-client",
3
- "version": "0.77.0",
3
+ "version": "0.79.1",
4
4
  "description": "Totalis HIP-4 SDK: typed HTTP clients, signer-agnostic typed data, a retrying request layer, pagination, a realtime stream and taker/maker flows",
5
5
  "type": "module",
6
6
  "files": [