@compass-labs/api-sdk 2.2.66 → 2.2.67-rc.0

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 (99) hide show
  1. package/README.md +4 -2
  2. package/codeSamples_typescript.yaml +6 -0
  3. package/dist/commonjs/funcs/tokenizedAssetsTokenizedAssetsBalances.d.ts +25 -0
  4. package/dist/commonjs/funcs/tokenizedAssetsTokenizedAssetsBalances.d.ts.map +1 -0
  5. package/dist/commonjs/funcs/tokenizedAssetsTokenizedAssetsBalances.js +130 -0
  6. package/dist/commonjs/funcs/tokenizedAssetsTokenizedAssetsBalances.js.map +1 -0
  7. package/dist/commonjs/lib/config.d.ts +2 -2
  8. package/dist/commonjs/lib/config.js +2 -2
  9. package/dist/commonjs/models/components/compassapibackendv2modelstokenizedassetsreadresponsepositionsposition.d.ts +5 -0
  10. package/dist/commonjs/models/components/compassapibackendv2modelstokenizedassetsreadresponsepositionsposition.d.ts.map +1 -1
  11. package/dist/commonjs/models/components/compassapibackendv2modelstokenizedassetsreadresponsepositionsposition.js +2 -0
  12. package/dist/commonjs/models/components/compassapibackendv2modelstokenizedassetsreadresponsepositionsposition.js.map +1 -1
  13. package/dist/commonjs/models/components/creditevent.d.ts +4 -4
  14. package/dist/commonjs/models/components/creditevent.d.ts.map +1 -1
  15. package/dist/commonjs/models/components/creditevent.js +4 -5
  16. package/dist/commonjs/models/components/creditevent.js.map +1 -1
  17. package/dist/commonjs/models/components/index.d.ts +2 -0
  18. package/dist/commonjs/models/components/index.d.ts.map +1 -1
  19. package/dist/commonjs/models/components/index.js +2 -0
  20. package/dist/commonjs/models/components/index.js.map +1 -1
  21. package/dist/commonjs/models/components/tokenizedassetsactivityevent.d.ts +79 -0
  22. package/dist/commonjs/models/components/tokenizedassetsactivityevent.d.ts.map +1 -0
  23. package/dist/commonjs/models/components/tokenizedassetsactivityevent.js +84 -0
  24. package/dist/commonjs/models/components/tokenizedassetsactivityevent.js.map +1 -0
  25. package/dist/commonjs/models/components/tokenizedassetsbalancesresponse.d.ts +36 -0
  26. package/dist/commonjs/models/components/tokenizedassetsbalancesresponse.d.ts.map +1 -0
  27. package/dist/commonjs/models/components/tokenizedassetsbalancesresponse.js +59 -0
  28. package/dist/commonjs/models/components/tokenizedassetsbalancesresponse.js.map +1 -0
  29. package/dist/commonjs/models/operations/index.d.ts +1 -0
  30. package/dist/commonjs/models/operations/index.d.ts.map +1 -1
  31. package/dist/commonjs/models/operations/index.js +1 -0
  32. package/dist/commonjs/models/operations/index.js.map +1 -1
  33. package/dist/commonjs/models/operations/v2tokenizedassetsbalances.d.ts +37 -0
  34. package/dist/commonjs/models/operations/v2tokenizedassetsbalances.d.ts.map +1 -0
  35. package/dist/commonjs/models/operations/v2tokenizedassetsbalances.js +62 -0
  36. package/dist/commonjs/models/operations/v2tokenizedassetsbalances.js.map +1 -0
  37. package/dist/commonjs/sdk/tokenizedassets.d.ts +13 -0
  38. package/dist/commonjs/sdk/tokenizedassets.d.ts.map +1 -1
  39. package/dist/commonjs/sdk/tokenizedassets.js +16 -0
  40. package/dist/commonjs/sdk/tokenizedassets.js.map +1 -1
  41. package/dist/esm/funcs/tokenizedAssetsTokenizedAssetsBalances.d.ts +25 -0
  42. package/dist/esm/funcs/tokenizedAssetsTokenizedAssetsBalances.d.ts.map +1 -0
  43. package/dist/esm/funcs/tokenizedAssetsTokenizedAssetsBalances.js +94 -0
  44. package/dist/esm/funcs/tokenizedAssetsTokenizedAssetsBalances.js.map +1 -0
  45. package/dist/esm/lib/config.d.ts +2 -2
  46. package/dist/esm/lib/config.js +2 -2
  47. package/dist/esm/models/components/compassapibackendv2modelstokenizedassetsreadresponsepositionsposition.d.ts +5 -0
  48. package/dist/esm/models/components/compassapibackendv2modelstokenizedassetsreadresponsepositionsposition.d.ts.map +1 -1
  49. package/dist/esm/models/components/compassapibackendv2modelstokenizedassetsreadresponsepositionsposition.js +2 -0
  50. package/dist/esm/models/components/compassapibackendv2modelstokenizedassetsreadresponsepositionsposition.js.map +1 -1
  51. package/dist/esm/models/components/creditevent.d.ts +4 -4
  52. package/dist/esm/models/components/creditevent.d.ts.map +1 -1
  53. package/dist/esm/models/components/creditevent.js +3 -4
  54. package/dist/esm/models/components/creditevent.js.map +1 -1
  55. package/dist/esm/models/components/index.d.ts +2 -0
  56. package/dist/esm/models/components/index.d.ts.map +1 -1
  57. package/dist/esm/models/components/index.js +2 -0
  58. package/dist/esm/models/components/index.js.map +1 -1
  59. package/dist/esm/models/components/tokenizedassetsactivityevent.d.ts +79 -0
  60. package/dist/esm/models/components/tokenizedassetsactivityevent.d.ts.map +1 -0
  61. package/dist/esm/models/components/tokenizedassetsactivityevent.js +47 -0
  62. package/dist/esm/models/components/tokenizedassetsactivityevent.js.map +1 -0
  63. package/dist/esm/models/components/tokenizedassetsbalancesresponse.d.ts +36 -0
  64. package/dist/esm/models/components/tokenizedassetsbalancesresponse.d.ts.map +1 -0
  65. package/dist/esm/models/components/tokenizedassetsbalancesresponse.js +22 -0
  66. package/dist/esm/models/components/tokenizedassetsbalancesresponse.js.map +1 -0
  67. package/dist/esm/models/operations/index.d.ts +1 -0
  68. package/dist/esm/models/operations/index.d.ts.map +1 -1
  69. package/dist/esm/models/operations/index.js +1 -0
  70. package/dist/esm/models/operations/index.js.map +1 -1
  71. package/dist/esm/models/operations/v2tokenizedassetsbalances.d.ts +37 -0
  72. package/dist/esm/models/operations/v2tokenizedassetsbalances.d.ts.map +1 -0
  73. package/dist/esm/models/operations/v2tokenizedassetsbalances.js +25 -0
  74. package/dist/esm/models/operations/v2tokenizedassetsbalances.js.map +1 -0
  75. package/dist/esm/sdk/tokenizedassets.d.ts +13 -0
  76. package/dist/esm/sdk/tokenizedassets.d.ts.map +1 -1
  77. package/dist/esm/sdk/tokenizedassets.js +16 -0
  78. package/dist/esm/sdk/tokenizedassets.js.map +1 -1
  79. package/docs/models/components/compassapibackendv2modelstokenizedassetsreadresponsepositionsposition.md +16 -14
  80. package/docs/models/components/creditevent.md +1 -1
  81. package/docs/models/components/{eventtype.md → crediteventeventtype.md} +3 -3
  82. package/docs/models/components/tokenizedassetsactivityevent.md +40 -0
  83. package/docs/models/components/tokenizedassetsactivityeventeventtype.md +17 -0
  84. package/docs/models/components/tokenizedassetsbalancesresponse.md +28 -0
  85. package/docs/models/operations/v2tokenizedassetsbalanceschain.md +17 -0
  86. package/docs/models/operations/v2tokenizedassetsbalancesrequest.md +18 -0
  87. package/docs/sdks/tokenizedassets/README.md +81 -0
  88. package/openapi_prepped_for_speakeasy.json +220 -0
  89. package/package.json +1 -1
  90. package/src/funcs/tokenizedAssetsTokenizedAssetsBalances.ts +184 -0
  91. package/src/lib/config.ts +2 -2
  92. package/src/models/components/compassapibackendv2modelstokenizedassetsreadresponsepositionsposition.ts +9 -0
  93. package/src/models/components/creditevent.ts +7 -6
  94. package/src/models/components/index.ts +2 -0
  95. package/src/models/components/tokenizedassetsactivityevent.ts +132 -0
  96. package/src/models/components/tokenizedassetsbalancesresponse.ts +70 -0
  97. package/src/models/operations/index.ts +1 -0
  98. package/src/models/operations/v2tokenizedassetsbalances.ts +65 -0
  99. package/src/sdk/tokenizedassets.ts +24 -0
@@ -0,0 +1,184 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { CompassApiSDKCore } from "../core.js";
6
+ import { encodeFormQuery } from "../lib/encodings.js";
7
+ import { matchStatusCode } from "../lib/http.js";
8
+ import * as M from "../lib/matchers.js";
9
+ import { compactMap } from "../lib/primitives.js";
10
+ import { safeParse } from "../lib/schemas.js";
11
+ import { RequestOptions } from "../lib/sdks.js";
12
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
13
+ import { pathToFunc } from "../lib/url.js";
14
+ import * as components from "../models/components/index.js";
15
+ import { CompassAPISDKError } from "../models/errors/compassapisdkerror.js";
16
+ import {
17
+ ConnectionError,
18
+ InvalidRequestError,
19
+ RequestAbortedError,
20
+ RequestTimeoutError,
21
+ UnexpectedClientError,
22
+ } from "../models/errors/httpclienterrors.js";
23
+ import * as errors from "../models/errors/index.js";
24
+ import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
25
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
26
+ import * as operations from "../models/operations/index.js";
27
+ import { APICall, APIPromise } from "../types/async.js";
28
+ import { Result } from "../types/fp.js";
29
+
30
+ /**
31
+ * Get tokenized-asset account balances + transfer history
32
+ *
33
+ * @remarks
34
+ * Get the full token ledger for a Tokenized Assets Account.
35
+ *
36
+ * Returns every token the account has transferred — current balances plus
37
+ * complete transfer history — keyed by symbol. Unlike `/positions` (current
38
+ * equity holdings, priced), this includes **USDC funding** movements and
39
+ * **fully-sold positions** (zero balance), making it the account's cash +
40
+ * activity ledger. Pass `chain=base` for Base holdings.
41
+ */
42
+ export function tokenizedAssetsTokenizedAssetsBalances(
43
+ client: CompassApiSDKCore,
44
+ request: operations.V2TokenizedAssetsBalancesRequest,
45
+ options?: RequestOptions,
46
+ ): APIPromise<
47
+ Result<
48
+ components.TokenizedAssetsBalancesResponse,
49
+ | errors.HTTPValidationError
50
+ | CompassAPISDKError
51
+ | ResponseValidationError
52
+ | ConnectionError
53
+ | RequestAbortedError
54
+ | RequestTimeoutError
55
+ | InvalidRequestError
56
+ | UnexpectedClientError
57
+ | SDKValidationError
58
+ >
59
+ > {
60
+ return new APIPromise($do(
61
+ client,
62
+ request,
63
+ options,
64
+ ));
65
+ }
66
+
67
+ async function $do(
68
+ client: CompassApiSDKCore,
69
+ request: operations.V2TokenizedAssetsBalancesRequest,
70
+ options?: RequestOptions,
71
+ ): Promise<
72
+ [
73
+ Result<
74
+ components.TokenizedAssetsBalancesResponse,
75
+ | errors.HTTPValidationError
76
+ | CompassAPISDKError
77
+ | ResponseValidationError
78
+ | ConnectionError
79
+ | RequestAbortedError
80
+ | RequestTimeoutError
81
+ | InvalidRequestError
82
+ | UnexpectedClientError
83
+ | SDKValidationError
84
+ >,
85
+ APICall,
86
+ ]
87
+ > {
88
+ const parsed = safeParse(
89
+ request,
90
+ (value) =>
91
+ operations.V2TokenizedAssetsBalancesRequest$outboundSchema.parse(value),
92
+ "Input validation failed",
93
+ );
94
+ if (!parsed.ok) {
95
+ return [parsed, { status: "invalid" }];
96
+ }
97
+ const payload = parsed.value;
98
+ const body = null;
99
+
100
+ const path = pathToFunc("/v2/tokenized_assets/balances")();
101
+
102
+ const query = encodeFormQuery({
103
+ "chain": payload.chain,
104
+ "owner": payload.owner,
105
+ });
106
+
107
+ const headers = new Headers(compactMap({
108
+ Accept: "application/json",
109
+ }));
110
+
111
+ const secConfig = await extractSecurity(client._options.apiKeyAuth);
112
+ const securityInput = secConfig == null ? {} : { apiKeyAuth: secConfig };
113
+ const requestSecurity = resolveGlobalSecurity(securityInput);
114
+
115
+ const context = {
116
+ options: client._options,
117
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
118
+ operationID: "v2_tokenized_assets_balances",
119
+ oAuth2Scopes: null,
120
+
121
+ resolvedSecurity: requestSecurity,
122
+
123
+ securitySource: client._options.apiKeyAuth,
124
+ retryConfig: options?.retries
125
+ || client._options.retryConfig
126
+ || { strategy: "none" },
127
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
128
+ };
129
+
130
+ const requestRes = client._createRequest(context, {
131
+ security: requestSecurity,
132
+ method: "GET",
133
+ baseURL: options?.serverURL,
134
+ path: path,
135
+ headers: headers,
136
+ query: query,
137
+ body: body,
138
+ userAgent: client._options.userAgent,
139
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
140
+ }, options);
141
+ if (!requestRes.ok) {
142
+ return [requestRes, { status: "invalid" }];
143
+ }
144
+ const req = requestRes.value;
145
+
146
+ const doResult = await client._do(req, {
147
+ context,
148
+ isErrorStatusCode: (statusCode: number) =>
149
+ matchStatusCode({ status: statusCode } as Response, ["4XX", "5XX"]),
150
+ retryConfig: context.retryConfig,
151
+ retryCodes: context.retryCodes,
152
+ });
153
+ if (!doResult.ok) {
154
+ return [doResult, { status: "request-error", request: req }];
155
+ }
156
+ const response = doResult.value;
157
+
158
+ const responseFields = {
159
+ HttpMeta: { Response: response, Request: req },
160
+ };
161
+
162
+ const [result] = await M.match<
163
+ components.TokenizedAssetsBalancesResponse,
164
+ | errors.HTTPValidationError
165
+ | CompassAPISDKError
166
+ | ResponseValidationError
167
+ | ConnectionError
168
+ | RequestAbortedError
169
+ | RequestTimeoutError
170
+ | InvalidRequestError
171
+ | UnexpectedClientError
172
+ | SDKValidationError
173
+ >(
174
+ M.json(200, components.TokenizedAssetsBalancesResponse$inboundSchema),
175
+ M.jsonErr(422, errors.HTTPValidationError$inboundSchema),
176
+ M.fail("4XX"),
177
+ M.fail("5XX"),
178
+ )(response, req, { extraFields: responseFields });
179
+ if (!result.ok) {
180
+ return [result, { status: "complete", request: req, response }];
181
+ }
182
+
183
+ return [result, { status: "complete", request: req, response }];
184
+ }
package/src/lib/config.ts CHANGED
@@ -62,7 +62,7 @@ export const SDK_METADATA = {
62
62
  language: "typescript",
63
63
  openapiDocVersion: "0.0.1",
64
64
  sdkVersion: "2.0.0",
65
- genVersion: "2.910.1",
65
+ genVersion: "2.911.0",
66
66
  userAgent:
67
- "speakeasy-sdk/typescript 2.0.0 2.910.1 0.0.1 @compass-labs/api-sdk",
67
+ "speakeasy-sdk/typescript 2.0.0 2.911.0 0.0.1 @compass-labs/api-sdk",
68
68
  } as const;
@@ -16,6 +16,10 @@ import {
16
16
  TokenizedAssetProvider,
17
17
  TokenizedAssetProvider$inboundSchema,
18
18
  } from "./tokenizedassetprovider.js";
19
+ import {
20
+ TokenizedAssetsActivityEvent,
21
+ TokenizedAssetsActivityEvent$inboundSchema,
22
+ } from "./tokenizedassetsactivityevent.js";
19
23
  import {
20
24
  TokenizedAssetsPnl,
21
25
  TokenizedAssetsPnl$inboundSchema,
@@ -80,6 +84,10 @@ export type CompassApiBackendV2ModelsTokenizedAssetsReadResponsePositionsPositio
80
84
  * Realized + unrealized PnL for this position, or `null` when it cannot be priced (no current price, or externally-funded inventory with no on-chain cost basis).
81
85
  */
82
86
  pnl?: TokenizedAssetsPnl | null | undefined;
87
+ /**
88
+ * Chronological activity for this position (buy / sell / transfer_in / transfer_out). Pure-USDC funding is excluded — it appears on the balances endpoint.
89
+ */
90
+ events?: Array<TokenizedAssetsActivityEvent> | undefined;
83
91
  };
84
92
 
85
93
  /** @internal */
@@ -101,6 +109,7 @@ export const CompassApiBackendV2ModelsTokenizedAssetsReadResponsePositionsPositi
101
109
  asset_class: TokenizedAssetClass$inboundSchema.optional(),
102
110
  chain: Chain$inboundSchema.optional(),
103
111
  pnl: z.nullable(TokenizedAssetsPnl$inboundSchema).optional(),
112
+ events: z.array(TokenizedAssetsActivityEvent$inboundSchema).optional(),
104
113
  }).transform((v) => {
105
114
  return remap$(v, {
106
115
  "underlying_ticker": "underlyingTicker",
@@ -12,7 +12,7 @@ import { SDKValidationError } from "../errors/sdkvalidationerror.js";
12
12
  /**
13
13
  * Type of credit event.
14
14
  */
15
- export const EventType = {
15
+ export const CreditEventEventType = {
16
16
  Supply: "supply",
17
17
  Withdraw: "withdraw",
18
18
  Borrow: "borrow",
@@ -24,7 +24,7 @@ export const EventType = {
24
24
  /**
25
25
  * Type of credit event.
26
26
  */
27
- export type EventType = ClosedEnum<typeof EventType>;
27
+ export type CreditEventEventType = ClosedEnum<typeof CreditEventEventType>;
28
28
 
29
29
  /**
30
30
  * A single historical event in a credit position.
@@ -33,7 +33,7 @@ export type CreditEvent = {
33
33
  /**
34
34
  * Type of credit event.
35
35
  */
36
- eventType: EventType;
36
+ eventType: CreditEventEventType;
37
37
  /**
38
38
  * Block number when the event occurred
39
39
  */
@@ -57,8 +57,9 @@ export type CreditEvent = {
57
57
  };
58
58
 
59
59
  /** @internal */
60
- export const EventType$inboundSchema: z.ZodNativeEnum<typeof EventType> = z
61
- .nativeEnum(EventType);
60
+ export const CreditEventEventType$inboundSchema: z.ZodNativeEnum<
61
+ typeof CreditEventEventType
62
+ > = z.nativeEnum(CreditEventEventType);
62
63
 
63
64
  /** @internal */
64
65
  export const CreditEvent$inboundSchema: z.ZodType<
@@ -66,7 +67,7 @@ export const CreditEvent$inboundSchema: z.ZodType<
66
67
  z.ZodTypeDef,
67
68
  unknown
68
69
  > = z.object({
69
- event_type: EventType$inboundSchema,
70
+ event_type: CreditEventEventType$inboundSchema,
70
71
  block_number: z.number().int(),
71
72
  block_timestamp: z.string().datetime({ offset: true }).transform(v =>
72
73
  new Date(v)
@@ -287,6 +287,8 @@ export * from "./tokenbalanceresponse.js";
287
287
  export * from "./tokenconfig.js";
288
288
  export * from "./tokenizedassetclass.js";
289
289
  export * from "./tokenizedassetprovider.js";
290
+ export * from "./tokenizedassetsactivityevent.js";
291
+ export * from "./tokenizedassetsbalancesresponse.js";
290
292
  export * from "./tokenizedassetsbuildorderrequest.js";
291
293
  export * from "./tokenizedassetsbuildorderresponse.js";
292
294
  export * from "./tokenizedassetscancelorderrequest.js";
@@ -0,0 +1,132 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v3";
6
+ import { remap as remap$ } from "../../lib/primitives.js";
7
+ import { safeParse } from "../../lib/schemas.js";
8
+ import { ClosedEnum } from "../../types/enums.js";
9
+ import { Result as SafeParseResult } from "../../types/fp.js";
10
+ import { SDKValidationError } from "../errors/sdkvalidationerror.js";
11
+
12
+ /**
13
+ * Kind of activity for this transaction.
14
+ */
15
+ export const TokenizedAssetsActivityEventEventType = {
16
+ Buy: "buy",
17
+ Sell: "sell",
18
+ TransferIn: "transfer_in",
19
+ TransferOut: "transfer_out",
20
+ } as const;
21
+ /**
22
+ * Kind of activity for this transaction.
23
+ */
24
+ export type TokenizedAssetsActivityEventEventType = ClosedEnum<
25
+ typeof TokenizedAssetsActivityEventEventType
26
+ >;
27
+
28
+ /**
29
+ * One classified activity event on a tokenized-asset position.
30
+ *
31
+ * @remarks
32
+ *
33
+ * Mirrors Earn's deposit/withdrawal event shape (generic ``input``/``output``
34
+ * legs) with an ``event_type`` discriminator, so buys, sells and transfers share
35
+ * one chronological feed. A ``buy`` has ``input`` = USDC paid and ``output`` =
36
+ * tokens received (``cost_per_unit`` = USDC/token); a ``sell`` is the reverse and
37
+ * carries ``realized_pnl``; a ``transfer_in``/``transfer_out`` carries only the
38
+ * token leg, so the opposite side is ``null``. All amounts are decimal strings.
39
+ * Pure-USDC funding movements are not position activity — they appear on the
40
+ * balances endpoint.
41
+ */
42
+ export type TokenizedAssetsActivityEvent = {
43
+ /**
44
+ * Kind of activity for this transaction.
45
+ */
46
+ eventType: TokenizedAssetsActivityEventEventType;
47
+ /**
48
+ * Block the transaction was mined in.
49
+ */
50
+ blockNumber: number;
51
+ /**
52
+ * Time the transaction was mined.
53
+ */
54
+ blockTimestamp: Date;
55
+ /**
56
+ * Transaction hash.
57
+ */
58
+ transactionHash: string;
59
+ /**
60
+ * Amount sent: USDC for a buy, tokens for a sell/transfer_out.
61
+ */
62
+ inputAmount?: string | null | undefined;
63
+ /**
64
+ * Symbol of the sent leg, or `null` for a transfer_in.
65
+ */
66
+ inputSymbol?: string | null | undefined;
67
+ /**
68
+ * Amount received: tokens for a buy/transfer_in, USDC for a sell.
69
+ */
70
+ outputAmount?: string | null | undefined;
71
+ /**
72
+ * Symbol of the received leg, or `null` for a transfer_out.
73
+ */
74
+ outputSymbol?: string | null | undefined;
75
+ /**
76
+ * Cost basis per token at buy time; `null` for non-buys.
77
+ */
78
+ costPerUnit?: string | null | undefined;
79
+ /**
80
+ * Realized profit/loss on a sell; `null` for non-sells.
81
+ */
82
+ realizedPnl?: string | null | undefined;
83
+ };
84
+
85
+ /** @internal */
86
+ export const TokenizedAssetsActivityEventEventType$inboundSchema:
87
+ z.ZodNativeEnum<typeof TokenizedAssetsActivityEventEventType> = z.nativeEnum(
88
+ TokenizedAssetsActivityEventEventType,
89
+ );
90
+
91
+ /** @internal */
92
+ export const TokenizedAssetsActivityEvent$inboundSchema: z.ZodType<
93
+ TokenizedAssetsActivityEvent,
94
+ z.ZodTypeDef,
95
+ unknown
96
+ > = z.object({
97
+ event_type: TokenizedAssetsActivityEventEventType$inboundSchema,
98
+ block_number: z.number().int(),
99
+ block_timestamp: z.string().datetime({ offset: true }).transform(v =>
100
+ new Date(v)
101
+ ),
102
+ transaction_hash: z.string(),
103
+ input_amount: z.nullable(z.string()).optional(),
104
+ input_symbol: z.nullable(z.string()).optional(),
105
+ output_amount: z.nullable(z.string()).optional(),
106
+ output_symbol: z.nullable(z.string()).optional(),
107
+ cost_per_unit: z.nullable(z.string()).optional(),
108
+ realized_pnl: z.nullable(z.string()).optional(),
109
+ }).transform((v) => {
110
+ return remap$(v, {
111
+ "event_type": "eventType",
112
+ "block_number": "blockNumber",
113
+ "block_timestamp": "blockTimestamp",
114
+ "transaction_hash": "transactionHash",
115
+ "input_amount": "inputAmount",
116
+ "input_symbol": "inputSymbol",
117
+ "output_amount": "outputAmount",
118
+ "output_symbol": "outputSymbol",
119
+ "cost_per_unit": "costPerUnit",
120
+ "realized_pnl": "realizedPnl",
121
+ });
122
+ });
123
+
124
+ export function tokenizedAssetsActivityEventFromJSON(
125
+ jsonString: string,
126
+ ): SafeParseResult<TokenizedAssetsActivityEvent, SDKValidationError> {
127
+ return safeParse(
128
+ jsonString,
129
+ (x) => TokenizedAssetsActivityEvent$inboundSchema.parse(JSON.parse(x)),
130
+ `Failed to parse 'TokenizedAssetsActivityEvent' from JSON`,
131
+ );
132
+ }
@@ -0,0 +1,70 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v3";
6
+ import { remap as remap$ } from "../../lib/primitives.js";
7
+ import { safeParse } from "../../lib/schemas.js";
8
+ import { Result as SafeParseResult } from "../../types/fp.js";
9
+ import { SDKValidationError } from "../errors/sdkvalidationerror.js";
10
+ import {
11
+ CompassApiBackendV2ModelsBalancesTokenBalance,
12
+ CompassApiBackendV2ModelsBalancesTokenBalance$inboundSchema,
13
+ } from "./compassapibackendv2modelsbalancestokenbalance.js";
14
+
15
+ /**
16
+ * Token balances and transfer history for a Tokenized Assets Account.
17
+ *
18
+ * @remarks
19
+ *
20
+ * Unlike `/positions` (current equity holdings only, priced), this surfaces
21
+ * every token the account has ever transferred — each with its full transfer
22
+ * history — including **USDC funding** movements and **fully-sold positions**
23
+ * (zero balance). It is the account's cash + activity ledger. Balances are keyed
24
+ * by token symbol, reusing the same `TokenBalance`/`TokenTransfer` shape as the
25
+ * earn and credit balances endpoints.
26
+ */
27
+ export type TokenizedAssetsBalancesResponse = {
28
+ /**
29
+ * The derived Tokenized Assets Account address.
30
+ */
31
+ tokenizedAssetsAccountAddress: string;
32
+ /**
33
+ * Token balances keyed by token symbol, including USDC cash and fully-sold positions (zero balance). Each carries its transfer history.
34
+ */
35
+ balances?:
36
+ | { [k: string]: CompassApiBackendV2ModelsBalancesTokenBalance }
37
+ | undefined;
38
+ /**
39
+ * Total USD value of all priced balances.
40
+ */
41
+ totalUsdValue?: string | null | undefined;
42
+ };
43
+
44
+ /** @internal */
45
+ export const TokenizedAssetsBalancesResponse$inboundSchema: z.ZodType<
46
+ TokenizedAssetsBalancesResponse,
47
+ z.ZodTypeDef,
48
+ unknown
49
+ > = z.object({
50
+ tokenized_assets_account_address: z.string(),
51
+ balances: z.record(
52
+ CompassApiBackendV2ModelsBalancesTokenBalance$inboundSchema,
53
+ ).optional(),
54
+ total_usd_value: z.nullable(z.string()).optional(),
55
+ }).transform((v) => {
56
+ return remap$(v, {
57
+ "tokenized_assets_account_address": "tokenizedAssetsAccountAddress",
58
+ "total_usd_value": "totalUsdValue",
59
+ });
60
+ });
61
+
62
+ export function tokenizedAssetsBalancesResponseFromJSON(
63
+ jsonString: string,
64
+ ): SafeParseResult<TokenizedAssetsBalancesResponse, SDKValidationError> {
65
+ return safeParse(
66
+ jsonString,
67
+ (x) => TokenizedAssetsBalancesResponse$inboundSchema.parse(JSON.parse(x)),
68
+ `Failed to parse 'TokenizedAssetsBalancesResponse' from JSON`,
69
+ );
70
+ }
@@ -54,6 +54,7 @@ export * from "./v2globalmarketsperpsactivity.js";
54
54
  export * from "./v2globalmarketsperpscandles.js";
55
55
  export * from "./v2globalmarketsperpsopportunities.js";
56
56
  export * from "./v2globalmarketsperpspositions.js";
57
+ export * from "./v2tokenizedassetsbalances.js";
57
58
  export * from "./v2tokenizedassetsmarkets.js";
58
59
  export * from "./v2tokenizedassetsmarketssymbol.js";
59
60
  export * from "./v2tokenizedassetsorderorderhash.js";
@@ -0,0 +1,65 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v3";
6
+ import { ClosedEnum } from "../../types/enums.js";
7
+
8
+ /**
9
+ * The chain to use.
10
+ */
11
+ export const V2TokenizedAssetsBalancesChain = {
12
+ Base: "base",
13
+ Ethereum: "ethereum",
14
+ Arbitrum: "arbitrum",
15
+ Hyperevm: "hyperevm",
16
+ Tempo: "tempo",
17
+ } as const;
18
+ /**
19
+ * The chain to use.
20
+ */
21
+ export type V2TokenizedAssetsBalancesChain = ClosedEnum<
22
+ typeof V2TokenizedAssetsBalancesChain
23
+ >;
24
+
25
+ export type V2TokenizedAssetsBalancesRequest = {
26
+ /**
27
+ * The address of the owner of the Tokenized Assets Account to read balances for. The account address is derived deterministically from this owner; balances are read from the derived account.
28
+ */
29
+ owner: string;
30
+ /**
31
+ * Network to read balances on (defaults to Ethereum). Equities exist on Ethereum only; RWA yield assets also exist on Base.
32
+ */
33
+ chain?: V2TokenizedAssetsBalancesChain | undefined;
34
+ };
35
+
36
+ /** @internal */
37
+ export const V2TokenizedAssetsBalancesChain$outboundSchema: z.ZodNativeEnum<
38
+ typeof V2TokenizedAssetsBalancesChain
39
+ > = z.nativeEnum(V2TokenizedAssetsBalancesChain);
40
+
41
+ /** @internal */
42
+ export type V2TokenizedAssetsBalancesRequest$Outbound = {
43
+ owner: string;
44
+ chain?: string | undefined;
45
+ };
46
+
47
+ /** @internal */
48
+ export const V2TokenizedAssetsBalancesRequest$outboundSchema: z.ZodType<
49
+ V2TokenizedAssetsBalancesRequest$Outbound,
50
+ z.ZodTypeDef,
51
+ V2TokenizedAssetsBalancesRequest
52
+ > = z.object({
53
+ owner: z.string(),
54
+ chain: V2TokenizedAssetsBalancesChain$outboundSchema.optional(),
55
+ });
56
+
57
+ export function v2TokenizedAssetsBalancesRequestToJSON(
58
+ v2TokenizedAssetsBalancesRequest: V2TokenizedAssetsBalancesRequest,
59
+ ): string {
60
+ return JSON.stringify(
61
+ V2TokenizedAssetsBalancesRequest$outboundSchema.parse(
62
+ v2TokenizedAssetsBalancesRequest,
63
+ ),
64
+ );
65
+ }
@@ -2,6 +2,7 @@
2
2
  * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
3
  */
4
4
 
5
+ import { tokenizedAssetsTokenizedAssetsBalances } from "../funcs/tokenizedAssetsTokenizedAssetsBalances.js";
5
6
  import { tokenizedAssetsTokenizedAssetsCreateAccount } from "../funcs/tokenizedAssetsTokenizedAssetsCreateAccount.js";
6
7
  import { tokenizedAssetsTokenizedAssetsMarkets } from "../funcs/tokenizedAssetsTokenizedAssetsMarkets.js";
7
8
  import { tokenizedAssetsTokenizedAssetsMarketsSymbol } from "../funcs/tokenizedAssetsTokenizedAssetsMarketsSymbol.js";
@@ -111,6 +112,29 @@ export class TokenizedAssets extends ClientSDK {
111
112
  ));
112
113
  }
113
114
 
115
+ /**
116
+ * Get tokenized-asset account balances + transfer history
117
+ *
118
+ * @remarks
119
+ * Get the full token ledger for a Tokenized Assets Account.
120
+ *
121
+ * Returns every token the account has transferred — current balances plus
122
+ * complete transfer history — keyed by symbol. Unlike `/positions` (current
123
+ * equity holdings, priced), this includes **USDC funding** movements and
124
+ * **fully-sold positions** (zero balance), making it the account's cash +
125
+ * activity ledger. Pass `chain=base` for Base holdings.
126
+ */
127
+ async tokenizedAssetsBalances(
128
+ request: operations.V2TokenizedAssetsBalancesRequest,
129
+ options?: RequestOptions,
130
+ ): Promise<components.TokenizedAssetsBalancesResponse> {
131
+ return unwrapAsync(tokenizedAssetsTokenizedAssetsBalances(
132
+ this,
133
+ request,
134
+ options,
135
+ ));
136
+ }
137
+
114
138
  /**
115
139
  * Get tokenized-equity order status (Ondo)
116
140
  *