@rhinestone/sdk 2.0.0-beta.4 → 2.0.0-beta.41

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 (114) hide show
  1. package/dist/src/accounts/error.d.ts +2 -9
  2. package/dist/src/accounts/error.d.ts.map +1 -1
  3. package/dist/src/accounts/error.js +5 -11
  4. package/dist/src/accounts/hca.d.ts +25 -0
  5. package/dist/src/accounts/hca.d.ts.map +1 -0
  6. package/dist/src/accounts/hca.js +148 -0
  7. package/dist/src/accounts/index.d.ts +23 -10
  8. package/dist/src/accounts/index.d.ts.map +1 -1
  9. package/dist/src/accounts/index.js +170 -79
  10. package/dist/src/accounts/kernel.d.ts +1 -2
  11. package/dist/src/accounts/kernel.d.ts.map +1 -1
  12. package/dist/src/accounts/kernel.js +1 -8
  13. package/dist/src/accounts/nexus.d.ts +3 -2
  14. package/dist/src/accounts/nexus.d.ts.map +1 -1
  15. package/dist/src/accounts/nexus.js +33 -8
  16. package/dist/src/accounts/safe.d.ts +1 -2
  17. package/dist/src/accounts/safe.d.ts.map +1 -1
  18. package/dist/src/accounts/safe.js +3 -9
  19. package/dist/src/accounts/signing/common.d.ts +10 -4
  20. package/dist/src/accounts/signing/common.d.ts.map +1 -1
  21. package/dist/src/accounts/signing/common.js +48 -46
  22. package/dist/src/accounts/signing/message.d.ts.map +1 -1
  23. package/dist/src/accounts/signing/message.js +1 -4
  24. package/dist/src/accounts/signing/typedData.d.ts.map +1 -1
  25. package/dist/src/accounts/signing/typedData.js +1 -4
  26. package/dist/src/accounts/startale.d.ts +1 -2
  27. package/dist/src/accounts/startale.d.ts.map +1 -1
  28. package/dist/src/accounts/startale.js +6 -9
  29. package/dist/src/actions/ecdsa.js +5 -5
  30. package/dist/src/actions/index.js +2 -2
  31. package/dist/src/actions/mfa.js +2 -2
  32. package/dist/src/actions/passkeys.js +2 -2
  33. package/dist/src/actions/smart-sessions.d.ts +29 -5
  34. package/dist/src/actions/smart-sessions.d.ts.map +1 -1
  35. package/dist/src/actions/smart-sessions.js +38 -10
  36. package/dist/src/errors/index.d.ts +6 -4
  37. package/dist/src/errors/index.d.ts.map +1 -1
  38. package/dist/src/errors/index.js +6 -6
  39. package/dist/src/execution/error.d.ts +42 -11
  40. package/dist/src/execution/error.d.ts.map +1 -1
  41. package/dist/src/execution/error.js +53 -15
  42. package/dist/src/execution/index.d.ts +18 -18
  43. package/dist/src/execution/index.d.ts.map +1 -1
  44. package/dist/src/execution/index.js +27 -42
  45. package/dist/src/execution/utils.d.ts +55 -14
  46. package/dist/src/execution/utils.d.ts.map +1 -1
  47. package/dist/src/execution/utils.js +629 -82
  48. package/dist/src/index.d.ts +270 -38
  49. package/dist/src/index.d.ts.map +1 -1
  50. package/dist/src/index.js +89 -116
  51. package/dist/src/jwt-server/jcs.d.ts +1 -1
  52. package/dist/src/jwt-server/jcs.js +4 -2
  53. package/dist/src/modules/index.d.ts.map +1 -1
  54. package/dist/src/modules/index.js +0 -5
  55. package/dist/src/modules/read.d.ts +3 -2
  56. package/dist/src/modules/read.d.ts.map +1 -1
  57. package/dist/src/modules/read.js +52 -4
  58. package/dist/src/modules/validators/core.d.ts +6 -6
  59. package/dist/src/modules/validators/core.d.ts.map +1 -1
  60. package/dist/src/modules/validators/core.js +42 -39
  61. package/dist/src/modules/validators/cross-chain-permits.d.ts +21 -0
  62. package/dist/src/modules/validators/cross-chain-permits.d.ts.map +1 -0
  63. package/dist/src/modules/validators/cross-chain-permits.js +111 -0
  64. package/dist/src/modules/validators/permissions.d.ts +1 -0
  65. package/dist/src/modules/validators/permissions.d.ts.map +1 -1
  66. package/dist/src/modules/validators/permissions.js +192 -18
  67. package/dist/src/modules/validators/policies/claim/arbiters.d.ts +22 -0
  68. package/dist/src/modules/validators/policies/claim/arbiters.d.ts.map +1 -0
  69. package/dist/src/modules/validators/policies/claim/arbiters.js +57 -0
  70. package/dist/src/modules/validators/smart-sessions.d.ts +38 -9
  71. package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
  72. package/dist/src/modules/validators/smart-sessions.js +509 -92
  73. package/dist/src/orchestrator/caip2.d.ts +16 -3
  74. package/dist/src/orchestrator/caip2.d.ts.map +1 -1
  75. package/dist/src/orchestrator/caip2.js +38 -6
  76. package/dist/src/orchestrator/client.d.ts +2 -1
  77. package/dist/src/orchestrator/client.d.ts.map +1 -1
  78. package/dist/src/orchestrator/client.js +50 -24
  79. package/dist/src/orchestrator/consts.d.ts +1 -1
  80. package/dist/src/orchestrator/consts.d.ts.map +1 -1
  81. package/dist/src/orchestrator/consts.js +1 -1
  82. package/dist/src/orchestrator/destinations.d.ts +24 -0
  83. package/dist/src/orchestrator/destinations.d.ts.map +1 -0
  84. package/dist/src/orchestrator/destinations.js +59 -0
  85. package/dist/src/orchestrator/error.d.ts +95 -5
  86. package/dist/src/orchestrator/error.d.ts.map +1 -1
  87. package/dist/src/orchestrator/error.js +260 -4
  88. package/dist/src/orchestrator/index.d.ts +7 -5
  89. package/dist/src/orchestrator/index.d.ts.map +1 -1
  90. package/dist/src/orchestrator/index.js +4 -3
  91. package/dist/src/orchestrator/registry.d.ts +2 -1
  92. package/dist/src/orchestrator/registry.d.ts.map +1 -1
  93. package/dist/src/orchestrator/registry.js +13 -0
  94. package/dist/src/orchestrator/types.d.ts +92 -29
  95. package/dist/src/orchestrator/types.d.ts.map +1 -1
  96. package/dist/src/orchestrator/types.js +1 -5
  97. package/dist/src/orchestrator/wire.d.ts +30 -0
  98. package/dist/src/orchestrator/wire.d.ts.map +1 -0
  99. package/dist/src/orchestrator/wire.gen.d.ts +4290 -0
  100. package/dist/src/orchestrator/wire.gen.d.ts.map +1 -0
  101. package/dist/src/orchestrator/wire.gen.js +1 -0
  102. package/dist/src/orchestrator/wire.js +1 -0
  103. package/dist/src/smart-sessions/index.d.ts +6 -0
  104. package/dist/src/smart-sessions/index.d.ts.map +1 -0
  105. package/dist/src/smart-sessions/index.js +7 -0
  106. package/dist/src/types.d.ts +299 -31
  107. package/dist/src/types.d.ts.map +1 -1
  108. package/dist/src/utils/index.d.ts +59 -0
  109. package/dist/src/utils/index.d.ts.map +1 -1
  110. package/dist/src/utils/index.js +59 -0
  111. package/package.json +5 -9
  112. package/dist/src/actions/recovery.d.ts +0 -33
  113. package/dist/src/actions/recovery.d.ts.map +0 -1
  114. package/dist/src/actions/recovery.js +0 -189
@@ -0,0 +1,4290 @@
1
+ /**
2
+ * Generated by `bun run generate:wire` from the orchestrator OpenAPI spec.
3
+ * Do not edit by hand — regenerate instead.
4
+ */
5
+ export interface paths {
6
+ "/chains": {
7
+ parameters: {
8
+ query?: never;
9
+ header?: never;
10
+ path?: never;
11
+ cookie?: never;
12
+ };
13
+ /**
14
+ * Supported chains and tokens
15
+ * @description Get supported chains and tokens with additional metadata
16
+ */
17
+ get: operations["listChains"];
18
+ put?: never;
19
+ post?: never;
20
+ delete?: never;
21
+ options?: never;
22
+ head?: never;
23
+ patch?: never;
24
+ trace?: never;
25
+ };
26
+ "/liquidity": {
27
+ parameters: {
28
+ query?: never;
29
+ header?: never;
30
+ path?: never;
31
+ cookie?: never;
32
+ };
33
+ /**
34
+ * Route liquidity limit
35
+ * @description Returns the largest known fillable amount for a single deposit on the given source→destination route. Relayer-market layers return exact capacity; bridge-backed layers return a conservative probed lower bound.
36
+ */
37
+ get: operations["listLiquidity"];
38
+ put?: never;
39
+ post?: never;
40
+ delete?: never;
41
+ options?: never;
42
+ head?: never;
43
+ patch?: never;
44
+ trace?: never;
45
+ };
46
+ "/intents/{id}": {
47
+ parameters: {
48
+ query?: never;
49
+ header?: never;
50
+ path?: never;
51
+ cookie?: never;
52
+ };
53
+ /**
54
+ * Get Intent
55
+ * @description Retrieves the status of an intent along with per-claim progress across chains.
56
+ */
57
+ get: operations["getIntent"];
58
+ put?: never;
59
+ post?: never;
60
+ delete?: never;
61
+ options?: never;
62
+ head?: never;
63
+ patch?: never;
64
+ trace?: never;
65
+ };
66
+ "/accounts/{accountAddress}/portfolio": {
67
+ parameters: {
68
+ query?: never;
69
+ header?: never;
70
+ path?: never;
71
+ cookie?: never;
72
+ };
73
+ /**
74
+ * Get Account Portfolio
75
+ * @description Retrieves the token balances across all supported chains for a user's abstracted account
76
+ */
77
+ get: operations["getPortfolio"];
78
+ put?: never;
79
+ post?: never;
80
+ delete?: never;
81
+ options?: never;
82
+ head?: never;
83
+ patch?: never;
84
+ trace?: never;
85
+ };
86
+ "/intents": {
87
+ parameters: {
88
+ query?: never;
89
+ header?: never;
90
+ path?: never;
91
+ cookie?: never;
92
+ };
93
+ /**
94
+ * List Intents
95
+ * @description Retrieves a paginated list of the authenticated client's intents, newest first.
96
+ */
97
+ get: operations["listIntents"];
98
+ put?: never;
99
+ /**
100
+ * Create Intent
101
+ * @description Submits a quoted intent for execution. Takes the `intentId` from `POST /quotes` (`routes[].intentId`) plus signatures (origin, destination, optionally target-execution) and optional EIP-7702 authorizations.
102
+ */
103
+ post: operations["createIntent"];
104
+ delete?: never;
105
+ options?: never;
106
+ head?: never;
107
+ patch?: never;
108
+ trace?: never;
109
+ };
110
+ "/intents/splits": {
111
+ parameters: {
112
+ query?: never;
113
+ header?: never;
114
+ path?: never;
115
+ cookie?: never;
116
+ };
117
+ get?: never;
118
+ put?: never;
119
+ /**
120
+ * Split Intent by Liquidity
121
+ * @description Splits token amounts into multiple intents based on available relayer liquidity. Each returned intent can be filled by a single relayer.
122
+ */
123
+ post: operations["getSplit"];
124
+ delete?: never;
125
+ options?: never;
126
+ head?: never;
127
+ patch?: never;
128
+ trace?: never;
129
+ };
130
+ "/quotes": {
131
+ parameters: {
132
+ query?: never;
133
+ header?: never;
134
+ path?: never;
135
+ cookie?: never;
136
+ };
137
+ get?: never;
138
+ put?: never;
139
+ /**
140
+ * Create Quote
141
+ * @description Computes a quote for an intent: token transfers, target executions, and cost breakdown. Returns a pre-ranked `routes[]` with per-route `intentId` to pass to `POST /intents` for execution.
142
+ */
143
+ post: operations["createQuote"];
144
+ delete?: never;
145
+ options?: never;
146
+ head?: never;
147
+ patch?: never;
148
+ trace?: never;
149
+ };
150
+ "/app-fees/balances": {
151
+ parameters: {
152
+ query?: never;
153
+ header?: never;
154
+ path?: never;
155
+ cookie?: never;
156
+ };
157
+ /**
158
+ * Get App-Fee Balances
159
+ * @description The authenticated project's withdrawable app-fee balance as a USD total, valued at collection time. `pendingUsd` is 0 until withdrawals land.
160
+ */
161
+ get: operations["getAppFeeBalances"];
162
+ put?: never;
163
+ post?: never;
164
+ delete?: never;
165
+ options?: never;
166
+ head?: never;
167
+ patch?: never;
168
+ trace?: never;
169
+ };
170
+ }
171
+ export type webhooks = Record<string, never>;
172
+ export interface components {
173
+ schemas: never;
174
+ responses: never;
175
+ parameters: never;
176
+ requestBodies: never;
177
+ headers: never;
178
+ pathItems: never;
179
+ }
180
+ export type $defs = Record<string, never>;
181
+ export interface operations {
182
+ listChains: {
183
+ parameters: {
184
+ query?: never;
185
+ header: {
186
+ /** @description API version. Required; pinned to this document. */
187
+ "x-api-version": "2026-04.blanc";
188
+ };
189
+ path?: never;
190
+ cookie?: never;
191
+ };
192
+ requestBody?: never;
193
+ responses: {
194
+ /** @description OK */
195
+ 200: {
196
+ headers: {
197
+ [name: string]: unknown;
198
+ };
199
+ content: {
200
+ "application/json": {
201
+ [key: string]: {
202
+ /**
203
+ * @description The name of the chain
204
+ * @example Arbitrum One
205
+ */
206
+ name: string;
207
+ testnet: boolean;
208
+ supportedTokens: "all" | {
209
+ symbol: string;
210
+ /** @description Token contract address (format depends on the chain) */
211
+ address: string;
212
+ decimals: number;
213
+ }[];
214
+ };
215
+ };
216
+ };
217
+ };
218
+ /** @description Validation error */
219
+ 400: {
220
+ headers: {
221
+ [name: string]: unknown;
222
+ };
223
+ content: {
224
+ "application/json": {
225
+ /** @enum {string} */
226
+ code: "VALIDATION_ERROR";
227
+ /**
228
+ * @description Human-readable error message
229
+ * @example Invalid input
230
+ */
231
+ message: string;
232
+ /** @description Per-field validation issues */
233
+ details?: {
234
+ /** @description Human-readable issue description */
235
+ message: string;
236
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
237
+ context?: {
238
+ [key: string]: unknown;
239
+ };
240
+ }[];
241
+ } | {
242
+ /** @enum {string} */
243
+ code: "SIMULATION_FAILED";
244
+ /**
245
+ * @description Human-readable error message
246
+ * @example Invalid input
247
+ */
248
+ message: string;
249
+ /** @description Classified on-chain simulation failure details */
250
+ details?: {
251
+ nonce?: string;
252
+ category: string;
253
+ errorSelector: string;
254
+ errorName: string;
255
+ errorArgs?: {
256
+ [key: string]: string;
257
+ };
258
+ retryable: boolean;
259
+ /** @enum {string} */
260
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
261
+ simulations?: unknown;
262
+ } & {
263
+ [key: string]: unknown;
264
+ };
265
+ } | {
266
+ /** @enum {string} */
267
+ code: "INSUFFICIENT_LIQUIDITY";
268
+ /**
269
+ * @description Human-readable error message
270
+ * @example Invalid input
271
+ */
272
+ message: string;
273
+ /** @description Fillable subset and unfillable remainder */
274
+ details?: {
275
+ /** @description Intents fillable with current liquidity */
276
+ availableIntents: {
277
+ [key: string]: string;
278
+ }[];
279
+ /** @description Token amounts that cannot be filled */
280
+ unfillable: {
281
+ [key: string]: string;
282
+ };
283
+ };
284
+ } | {
285
+ /** @enum {string} */
286
+ code: "KEY_SCOPE_DENIED";
287
+ /**
288
+ * @description Human-readable error message
289
+ * @example Invalid input
290
+ */
291
+ message: string;
292
+ /** @description Single-element list describing the failing scope */
293
+ details?: {
294
+ message: string;
295
+ context: {
296
+ /**
297
+ * @description Which scope rejected the request
298
+ * @enum {string}
299
+ */
300
+ scope: "allowMainnet" | "intents" | "deposits";
301
+ /** @description Minimum level the endpoint demands */
302
+ required: boolean | ("read" | "write");
303
+ /** @description Level resolved on the key */
304
+ actual: boolean | ("none" | "read" | "write");
305
+ };
306
+ }[];
307
+ } | {
308
+ /** @enum {string} */
309
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
310
+ /**
311
+ * @description Human-readable error message
312
+ * @example Invalid input
313
+ */
314
+ message: string;
315
+ };
316
+ };
317
+ };
318
+ };
319
+ };
320
+ listLiquidity: {
321
+ parameters: {
322
+ query: {
323
+ /** @description Source chain ID (CAIP-2) */
324
+ sourceChainId: string;
325
+ /** @description Source token address */
326
+ sourceToken: string;
327
+ /** @description Destination chain ID (CAIP-2) */
328
+ destinationChainId: string;
329
+ /** @description Destination token address (EVM 0x or non-EVM base58) */
330
+ destinationToken: string;
331
+ };
332
+ header: {
333
+ /** @description API version. Required; pinned to this document. */
334
+ "x-api-version": "2026-04.blanc";
335
+ /** @description API key. */
336
+ "x-api-key": string;
337
+ };
338
+ path?: never;
339
+ cookie?: never;
340
+ };
341
+ requestBody?: never;
342
+ responses: {
343
+ /** @description OK */
344
+ 200: {
345
+ headers: {
346
+ [name: string]: unknown;
347
+ };
348
+ content: {
349
+ "application/json": {
350
+ /**
351
+ * @description Destination token symbol
352
+ * @example USDC
353
+ */
354
+ symbol: string;
355
+ /**
356
+ * @description Destination token decimals
357
+ * @example 6
358
+ */
359
+ decimals: number;
360
+ /**
361
+ * @description True when an uncapped settlement layer (e.g. OFT) supports this route
362
+ * @example false
363
+ */
364
+ unlimited: boolean;
365
+ /**
366
+ * @description Largest known fillable amount for this token by a single relayer instance. Exact for relayer-market settlement layers (ACROSS, ECO); bridge-backed layers (Relay, NEAR, Rhino) return a conservative probed lower bound. Null when unlimited.
367
+ * @example 200000000000
368
+ */
369
+ maxAmount: string | null;
370
+ };
371
+ };
372
+ };
373
+ /** @description Validation error */
374
+ 400: {
375
+ headers: {
376
+ [name: string]: unknown;
377
+ };
378
+ content: {
379
+ "application/json": {
380
+ /** @enum {string} */
381
+ code: "VALIDATION_ERROR";
382
+ /**
383
+ * @description Human-readable error message
384
+ * @example Invalid input
385
+ */
386
+ message: string;
387
+ /** @description Per-field validation issues */
388
+ details?: {
389
+ /** @description Human-readable issue description */
390
+ message: string;
391
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
392
+ context?: {
393
+ [key: string]: unknown;
394
+ };
395
+ }[];
396
+ } | {
397
+ /** @enum {string} */
398
+ code: "SIMULATION_FAILED";
399
+ /**
400
+ * @description Human-readable error message
401
+ * @example Invalid input
402
+ */
403
+ message: string;
404
+ /** @description Classified on-chain simulation failure details */
405
+ details?: {
406
+ nonce?: string;
407
+ category: string;
408
+ errorSelector: string;
409
+ errorName: string;
410
+ errorArgs?: {
411
+ [key: string]: string;
412
+ };
413
+ retryable: boolean;
414
+ /** @enum {string} */
415
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
416
+ simulations?: unknown;
417
+ } & {
418
+ [key: string]: unknown;
419
+ };
420
+ } | {
421
+ /** @enum {string} */
422
+ code: "INSUFFICIENT_LIQUIDITY";
423
+ /**
424
+ * @description Human-readable error message
425
+ * @example Invalid input
426
+ */
427
+ message: string;
428
+ /** @description Fillable subset and unfillable remainder */
429
+ details?: {
430
+ /** @description Intents fillable with current liquidity */
431
+ availableIntents: {
432
+ [key: string]: string;
433
+ }[];
434
+ /** @description Token amounts that cannot be filled */
435
+ unfillable: {
436
+ [key: string]: string;
437
+ };
438
+ };
439
+ } | {
440
+ /** @enum {string} */
441
+ code: "KEY_SCOPE_DENIED";
442
+ /**
443
+ * @description Human-readable error message
444
+ * @example Invalid input
445
+ */
446
+ message: string;
447
+ /** @description Single-element list describing the failing scope */
448
+ details?: {
449
+ message: string;
450
+ context: {
451
+ /**
452
+ * @description Which scope rejected the request
453
+ * @enum {string}
454
+ */
455
+ scope: "allowMainnet" | "intents" | "deposits";
456
+ /** @description Minimum level the endpoint demands */
457
+ required: boolean | ("read" | "write");
458
+ /** @description Level resolved on the key */
459
+ actual: boolean | ("none" | "read" | "write");
460
+ };
461
+ }[];
462
+ } | {
463
+ /** @enum {string} */
464
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
465
+ /**
466
+ * @description Human-readable error message
467
+ * @example Invalid input
468
+ */
469
+ message: string;
470
+ };
471
+ };
472
+ };
473
+ /** @description API key scope denied */
474
+ 403: {
475
+ headers: {
476
+ [name: string]: unknown;
477
+ };
478
+ content: {
479
+ "application/json": {
480
+ /** @enum {string} */
481
+ code: "VALIDATION_ERROR";
482
+ /**
483
+ * @description Human-readable error message
484
+ * @example Invalid input
485
+ */
486
+ message: string;
487
+ /** @description Per-field validation issues */
488
+ details?: {
489
+ /** @description Human-readable issue description */
490
+ message: string;
491
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
492
+ context?: {
493
+ [key: string]: unknown;
494
+ };
495
+ }[];
496
+ } | {
497
+ /** @enum {string} */
498
+ code: "SIMULATION_FAILED";
499
+ /**
500
+ * @description Human-readable error message
501
+ * @example Invalid input
502
+ */
503
+ message: string;
504
+ /** @description Classified on-chain simulation failure details */
505
+ details?: {
506
+ nonce?: string;
507
+ category: string;
508
+ errorSelector: string;
509
+ errorName: string;
510
+ errorArgs?: {
511
+ [key: string]: string;
512
+ };
513
+ retryable: boolean;
514
+ /** @enum {string} */
515
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
516
+ simulations?: unknown;
517
+ } & {
518
+ [key: string]: unknown;
519
+ };
520
+ } | {
521
+ /** @enum {string} */
522
+ code: "INSUFFICIENT_LIQUIDITY";
523
+ /**
524
+ * @description Human-readable error message
525
+ * @example Invalid input
526
+ */
527
+ message: string;
528
+ /** @description Fillable subset and unfillable remainder */
529
+ details?: {
530
+ /** @description Intents fillable with current liquidity */
531
+ availableIntents: {
532
+ [key: string]: string;
533
+ }[];
534
+ /** @description Token amounts that cannot be filled */
535
+ unfillable: {
536
+ [key: string]: string;
537
+ };
538
+ };
539
+ } | {
540
+ /** @enum {string} */
541
+ code: "KEY_SCOPE_DENIED";
542
+ /**
543
+ * @description Human-readable error message
544
+ * @example Invalid input
545
+ */
546
+ message: string;
547
+ /** @description Single-element list describing the failing scope */
548
+ details?: {
549
+ message: string;
550
+ context: {
551
+ /**
552
+ * @description Which scope rejected the request
553
+ * @enum {string}
554
+ */
555
+ scope: "allowMainnet" | "intents" | "deposits";
556
+ /** @description Minimum level the endpoint demands */
557
+ required: boolean | ("read" | "write");
558
+ /** @description Level resolved on the key */
559
+ actual: boolean | ("none" | "read" | "write");
560
+ };
561
+ }[];
562
+ } | {
563
+ /** @enum {string} */
564
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
565
+ /**
566
+ * @description Human-readable error message
567
+ * @example Invalid input
568
+ */
569
+ message: string;
570
+ };
571
+ };
572
+ };
573
+ /** @description Server error */
574
+ 500: {
575
+ headers: {
576
+ [name: string]: unknown;
577
+ };
578
+ content: {
579
+ "application/json": {
580
+ /** @enum {string} */
581
+ code: "VALIDATION_ERROR";
582
+ /**
583
+ * @description Human-readable error message
584
+ * @example Invalid input
585
+ */
586
+ message: string;
587
+ /** @description Per-field validation issues */
588
+ details?: {
589
+ /** @description Human-readable issue description */
590
+ message: string;
591
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
592
+ context?: {
593
+ [key: string]: unknown;
594
+ };
595
+ }[];
596
+ } | {
597
+ /** @enum {string} */
598
+ code: "SIMULATION_FAILED";
599
+ /**
600
+ * @description Human-readable error message
601
+ * @example Invalid input
602
+ */
603
+ message: string;
604
+ /** @description Classified on-chain simulation failure details */
605
+ details?: {
606
+ nonce?: string;
607
+ category: string;
608
+ errorSelector: string;
609
+ errorName: string;
610
+ errorArgs?: {
611
+ [key: string]: string;
612
+ };
613
+ retryable: boolean;
614
+ /** @enum {string} */
615
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
616
+ simulations?: unknown;
617
+ } & {
618
+ [key: string]: unknown;
619
+ };
620
+ } | {
621
+ /** @enum {string} */
622
+ code: "INSUFFICIENT_LIQUIDITY";
623
+ /**
624
+ * @description Human-readable error message
625
+ * @example Invalid input
626
+ */
627
+ message: string;
628
+ /** @description Fillable subset and unfillable remainder */
629
+ details?: {
630
+ /** @description Intents fillable with current liquidity */
631
+ availableIntents: {
632
+ [key: string]: string;
633
+ }[];
634
+ /** @description Token amounts that cannot be filled */
635
+ unfillable: {
636
+ [key: string]: string;
637
+ };
638
+ };
639
+ } | {
640
+ /** @enum {string} */
641
+ code: "KEY_SCOPE_DENIED";
642
+ /**
643
+ * @description Human-readable error message
644
+ * @example Invalid input
645
+ */
646
+ message: string;
647
+ /** @description Single-element list describing the failing scope */
648
+ details?: {
649
+ message: string;
650
+ context: {
651
+ /**
652
+ * @description Which scope rejected the request
653
+ * @enum {string}
654
+ */
655
+ scope: "allowMainnet" | "intents" | "deposits";
656
+ /** @description Minimum level the endpoint demands */
657
+ required: boolean | ("read" | "write");
658
+ /** @description Level resolved on the key */
659
+ actual: boolean | ("none" | "read" | "write");
660
+ };
661
+ }[];
662
+ } | {
663
+ /** @enum {string} */
664
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
665
+ /**
666
+ * @description Human-readable error message
667
+ * @example Invalid input
668
+ */
669
+ message: string;
670
+ };
671
+ };
672
+ };
673
+ };
674
+ };
675
+ getIntent: {
676
+ parameters: {
677
+ query?: {
678
+ /** @description Whether to include intent operation details */
679
+ full?: boolean;
680
+ };
681
+ header: {
682
+ /** @description API version. Required; pinned to this document. */
683
+ "x-api-version": "2026-04.blanc";
684
+ /** @description API key. */
685
+ "x-api-key": string;
686
+ };
687
+ path: {
688
+ /** @description Unique identifier of the intent operation */
689
+ id: string;
690
+ };
691
+ cookie?: never;
692
+ };
693
+ requestBody?: never;
694
+ responses: {
695
+ /** @description OK */
696
+ 200: {
697
+ headers: {
698
+ [name: string]: unknown;
699
+ };
700
+ content: {
701
+ "application/json": {
702
+ /**
703
+ * @description Overall intent status: PENDING, COMPLETED, or FAILED
704
+ * @example COMPLETED
705
+ * @enum {string}
706
+ */
707
+ status: "PENDING" | "COMPLETED" | "FAILED";
708
+ /**
709
+ * @description Account address
710
+ * @example 0x3672e268a79bd4acc5ee646bdda652547c7a435c
711
+ */
712
+ accountAddress: string;
713
+ /** @description Operations grouped by chain. Each chain has one or more operations (e.g. CLAIM, FILL, BRIDGE_FILL). */
714
+ operations: {
715
+ /**
716
+ * @description Chain ID
717
+ * @example 10
718
+ */
719
+ chain: number;
720
+ /** @description Operations on this chain */
721
+ items: {
722
+ /**
723
+ * @description Operation type: CLAIM, FILL, or BRIDGE_FILL
724
+ * @example FILL
725
+ * @enum {string}
726
+ */
727
+ type: "CLAIM" | "FILL" | "BRIDGE_FILL";
728
+ /**
729
+ * @description Operation status
730
+ * @example COMPLETED
731
+ * @enum {string}
732
+ */
733
+ status: "PENDING" | "COMPLETED" | "FAILED";
734
+ /**
735
+ * @description Transaction hash (present when COMPLETED)
736
+ * @example 0xc1674f4671accbceec3f22c2c9cfa4f7aead7183f48df90c239e0d85d6c31e21
737
+ */
738
+ txHash?: string;
739
+ /**
740
+ * @description Block timestamp in unix seconds (present when COMPLETED)
741
+ * @example 1633493192
742
+ */
743
+ timestamp?: number;
744
+ }[];
745
+ }[];
746
+ /** @description Extended intent details, returned only when `full=true` */
747
+ details?: {
748
+ /**
749
+ * @description Intent id — pass to `GET /intents/:id`
750
+ * @example 12345678901234567890
751
+ */
752
+ id: string;
753
+ /**
754
+ * @description Intent nonce (hex)
755
+ * @example 0x000000000000000000000000000000000000000000000000ab54a98ceb1f0ad2
756
+ */
757
+ nonce: string;
758
+ /**
759
+ * @description Destination recipient account
760
+ * @example 0x3672e268a79bd4acc5ee646bdda652547c7a435c
761
+ */
762
+ recipient: string;
763
+ /**
764
+ * @description Intent creation time in unix seconds
765
+ * @example 1633493100
766
+ */
767
+ createdAt: number;
768
+ /**
769
+ * @description Time from creation to the latest leg landing, in ms. Null until any leg lands.
770
+ * @example 8100
771
+ */
772
+ latencyMs: number | null;
773
+ /**
774
+ * @description Settlement layer; null if the routing strategy is unrecognized
775
+ * @example ACROSS
776
+ * @enum {string|null}
777
+ */
778
+ settlementLayer: "INTENT_EXECUTOR" | "SAME_CHAIN" | "ACROSS" | "ECO" | "RELAY" | "OFT" | "NEAR" | "RHINO" | "CCTP" | null;
779
+ /** @description Source (claim) legs */
780
+ source: {
781
+ /**
782
+ * @description Chain ID
783
+ * @example 10
784
+ */
785
+ chain: number;
786
+ /** @description All tokens moved on this leg */
787
+ tokens: {
788
+ /**
789
+ * @description Token address
790
+ * @example 0x0b2c639c533813f4aa9d7837caf62653d097ff85
791
+ */
792
+ token: string;
793
+ /**
794
+ * @description Token amount in base units
795
+ * @example 1000000
796
+ */
797
+ amount: string;
798
+ }[];
799
+ /**
800
+ * @description Transaction hash (present once the leg lands)
801
+ * @example 0xc1674f4671accbceec3f22c2c9cfa4f7aead7183f48df90c239e0d85d6c31e21
802
+ */
803
+ txHash?: string;
804
+ /**
805
+ * @description Block timestamp in unix seconds (present once landed)
806
+ * @example 1633493192
807
+ */
808
+ timestamp?: number;
809
+ /**
810
+ * @description Leg status
811
+ * @example COMPLETED
812
+ * @enum {string}
813
+ */
814
+ status: "PENDING" | "COMPLETED" | "FAILED";
815
+ }[];
816
+ /** @description Destination (fill) leg; null before a fill is dispatched */
817
+ destination: {
818
+ /**
819
+ * @description Chain ID
820
+ * @example 10
821
+ */
822
+ chain: number;
823
+ /** @description All tokens moved on this leg */
824
+ tokens: {
825
+ /**
826
+ * @description Token address
827
+ * @example 0x0b2c639c533813f4aa9d7837caf62653d097ff85
828
+ */
829
+ token: string;
830
+ /**
831
+ * @description Token amount in base units
832
+ * @example 1000000
833
+ */
834
+ amount: string;
835
+ }[];
836
+ /**
837
+ * @description Transaction hash (present once the leg lands)
838
+ * @example 0xc1674f4671accbceec3f22c2c9cfa4f7aead7183f48df90c239e0d85d6c31e21
839
+ */
840
+ txHash?: string;
841
+ /**
842
+ * @description Block timestamp in unix seconds (present once landed)
843
+ * @example 1633493192
844
+ */
845
+ timestamp?: number;
846
+ /**
847
+ * @description Leg status
848
+ * @example COMPLETED
849
+ * @enum {string}
850
+ */
851
+ status: "PENDING" | "COMPLETED" | "FAILED";
852
+ } | null;
853
+ /** @description Calls the intent executes — preClaim ops on their origin chain and destination ops on the destination chain. The signed intended calls; no per-call result is recorded. Empty for token-only intents with no custom calls. */
854
+ executions: {
855
+ /**
856
+ * @description Chain ID the call executes on
857
+ * @example 8453
858
+ */
859
+ chain: number;
860
+ /**
861
+ * @description PRE_CLAIM runs on the origin chain before funds are claimed; DESTINATION runs on the destination chain after funds are delivered.
862
+ * @example DESTINATION
863
+ * @enum {string}
864
+ */
865
+ phase: "PRE_CLAIM" | "DESTINATION";
866
+ /**
867
+ * @description Call target address
868
+ * @example 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913
869
+ */
870
+ to: string;
871
+ /**
872
+ * @description Native value sent with the call, in wei (base units)
873
+ * @example 0
874
+ */
875
+ value: string;
876
+ /**
877
+ * @description Encoded calldata
878
+ * @example 0xa9059cbb000000000000000000000000579d5631f76126991c00fb8fe5467fa9d49e5f6a00000000000000000000000000000000000000000000000000000000000f4240
879
+ */
880
+ data: string;
881
+ }[];
882
+ /** @description Cost summary from the recorded fee sponsorship. Amounts are raw base units; omitted when no sponsorship row exists. */
883
+ cost: {
884
+ /**
885
+ * @description Whether gas/fees were sponsored for this intent
886
+ * @example true
887
+ */
888
+ sponsored: boolean;
889
+ /**
890
+ * @description Sponsored value in fee-token base units
891
+ * @example 210000
892
+ */
893
+ sponsoredValue?: string;
894
+ /**
895
+ * @description Protocol fee in fee-token base units
896
+ * @example 10000
897
+ */
898
+ protocolFee?: string;
899
+ };
900
+ };
901
+ };
902
+ };
903
+ };
904
+ /** @description Invalid intent ID */
905
+ 400: {
906
+ headers: {
907
+ [name: string]: unknown;
908
+ };
909
+ content: {
910
+ "application/json": {
911
+ /** @enum {string} */
912
+ code: "VALIDATION_ERROR";
913
+ /**
914
+ * @description Human-readable error message
915
+ * @example Invalid input
916
+ */
917
+ message: string;
918
+ /** @description Per-field validation issues */
919
+ details?: {
920
+ /** @description Human-readable issue description */
921
+ message: string;
922
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
923
+ context?: {
924
+ [key: string]: unknown;
925
+ };
926
+ }[];
927
+ } | {
928
+ /** @enum {string} */
929
+ code: "SIMULATION_FAILED";
930
+ /**
931
+ * @description Human-readable error message
932
+ * @example Invalid input
933
+ */
934
+ message: string;
935
+ /** @description Classified on-chain simulation failure details */
936
+ details?: {
937
+ nonce?: string;
938
+ category: string;
939
+ errorSelector: string;
940
+ errorName: string;
941
+ errorArgs?: {
942
+ [key: string]: string;
943
+ };
944
+ retryable: boolean;
945
+ /** @enum {string} */
946
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
947
+ simulations?: unknown;
948
+ } & {
949
+ [key: string]: unknown;
950
+ };
951
+ } | {
952
+ /** @enum {string} */
953
+ code: "INSUFFICIENT_LIQUIDITY";
954
+ /**
955
+ * @description Human-readable error message
956
+ * @example Invalid input
957
+ */
958
+ message: string;
959
+ /** @description Fillable subset and unfillable remainder */
960
+ details?: {
961
+ /** @description Intents fillable with current liquidity */
962
+ availableIntents: {
963
+ [key: string]: string;
964
+ }[];
965
+ /** @description Token amounts that cannot be filled */
966
+ unfillable: {
967
+ [key: string]: string;
968
+ };
969
+ };
970
+ } | {
971
+ /** @enum {string} */
972
+ code: "KEY_SCOPE_DENIED";
973
+ /**
974
+ * @description Human-readable error message
975
+ * @example Invalid input
976
+ */
977
+ message: string;
978
+ /** @description Single-element list describing the failing scope */
979
+ details?: {
980
+ message: string;
981
+ context: {
982
+ /**
983
+ * @description Which scope rejected the request
984
+ * @enum {string}
985
+ */
986
+ scope: "allowMainnet" | "intents" | "deposits";
987
+ /** @description Minimum level the endpoint demands */
988
+ required: boolean | ("read" | "write");
989
+ /** @description Level resolved on the key */
990
+ actual: boolean | ("none" | "read" | "write");
991
+ };
992
+ }[];
993
+ } | {
994
+ /** @enum {string} */
995
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
996
+ /**
997
+ * @description Human-readable error message
998
+ * @example Invalid input
999
+ */
1000
+ message: string;
1001
+ };
1002
+ };
1003
+ };
1004
+ /** @description API key scope denied */
1005
+ 403: {
1006
+ headers: {
1007
+ [name: string]: unknown;
1008
+ };
1009
+ content: {
1010
+ "application/json": {
1011
+ /** @enum {string} */
1012
+ code: "VALIDATION_ERROR";
1013
+ /**
1014
+ * @description Human-readable error message
1015
+ * @example Invalid input
1016
+ */
1017
+ message: string;
1018
+ /** @description Per-field validation issues */
1019
+ details?: {
1020
+ /** @description Human-readable issue description */
1021
+ message: string;
1022
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
1023
+ context?: {
1024
+ [key: string]: unknown;
1025
+ };
1026
+ }[];
1027
+ } | {
1028
+ /** @enum {string} */
1029
+ code: "SIMULATION_FAILED";
1030
+ /**
1031
+ * @description Human-readable error message
1032
+ * @example Invalid input
1033
+ */
1034
+ message: string;
1035
+ /** @description Classified on-chain simulation failure details */
1036
+ details?: {
1037
+ nonce?: string;
1038
+ category: string;
1039
+ errorSelector: string;
1040
+ errorName: string;
1041
+ errorArgs?: {
1042
+ [key: string]: string;
1043
+ };
1044
+ retryable: boolean;
1045
+ /** @enum {string} */
1046
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
1047
+ simulations?: unknown;
1048
+ } & {
1049
+ [key: string]: unknown;
1050
+ };
1051
+ } | {
1052
+ /** @enum {string} */
1053
+ code: "INSUFFICIENT_LIQUIDITY";
1054
+ /**
1055
+ * @description Human-readable error message
1056
+ * @example Invalid input
1057
+ */
1058
+ message: string;
1059
+ /** @description Fillable subset and unfillable remainder */
1060
+ details?: {
1061
+ /** @description Intents fillable with current liquidity */
1062
+ availableIntents: {
1063
+ [key: string]: string;
1064
+ }[];
1065
+ /** @description Token amounts that cannot be filled */
1066
+ unfillable: {
1067
+ [key: string]: string;
1068
+ };
1069
+ };
1070
+ } | {
1071
+ /** @enum {string} */
1072
+ code: "KEY_SCOPE_DENIED";
1073
+ /**
1074
+ * @description Human-readable error message
1075
+ * @example Invalid input
1076
+ */
1077
+ message: string;
1078
+ /** @description Single-element list describing the failing scope */
1079
+ details?: {
1080
+ message: string;
1081
+ context: {
1082
+ /**
1083
+ * @description Which scope rejected the request
1084
+ * @enum {string}
1085
+ */
1086
+ scope: "allowMainnet" | "intents" | "deposits";
1087
+ /** @description Minimum level the endpoint demands */
1088
+ required: boolean | ("read" | "write");
1089
+ /** @description Level resolved on the key */
1090
+ actual: boolean | ("none" | "read" | "write");
1091
+ };
1092
+ }[];
1093
+ } | {
1094
+ /** @enum {string} */
1095
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
1096
+ /**
1097
+ * @description Human-readable error message
1098
+ * @example Invalid input
1099
+ */
1100
+ message: string;
1101
+ };
1102
+ };
1103
+ };
1104
+ /** @description Intent ID not found */
1105
+ 404: {
1106
+ headers: {
1107
+ [name: string]: unknown;
1108
+ };
1109
+ content: {
1110
+ "application/json": {
1111
+ /** @enum {string} */
1112
+ code: "VALIDATION_ERROR";
1113
+ /**
1114
+ * @description Human-readable error message
1115
+ * @example Invalid input
1116
+ */
1117
+ message: string;
1118
+ /** @description Per-field validation issues */
1119
+ details?: {
1120
+ /** @description Human-readable issue description */
1121
+ message: string;
1122
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
1123
+ context?: {
1124
+ [key: string]: unknown;
1125
+ };
1126
+ }[];
1127
+ } | {
1128
+ /** @enum {string} */
1129
+ code: "SIMULATION_FAILED";
1130
+ /**
1131
+ * @description Human-readable error message
1132
+ * @example Invalid input
1133
+ */
1134
+ message: string;
1135
+ /** @description Classified on-chain simulation failure details */
1136
+ details?: {
1137
+ nonce?: string;
1138
+ category: string;
1139
+ errorSelector: string;
1140
+ errorName: string;
1141
+ errorArgs?: {
1142
+ [key: string]: string;
1143
+ };
1144
+ retryable: boolean;
1145
+ /** @enum {string} */
1146
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
1147
+ simulations?: unknown;
1148
+ } & {
1149
+ [key: string]: unknown;
1150
+ };
1151
+ } | {
1152
+ /** @enum {string} */
1153
+ code: "INSUFFICIENT_LIQUIDITY";
1154
+ /**
1155
+ * @description Human-readable error message
1156
+ * @example Invalid input
1157
+ */
1158
+ message: string;
1159
+ /** @description Fillable subset and unfillable remainder */
1160
+ details?: {
1161
+ /** @description Intents fillable with current liquidity */
1162
+ availableIntents: {
1163
+ [key: string]: string;
1164
+ }[];
1165
+ /** @description Token amounts that cannot be filled */
1166
+ unfillable: {
1167
+ [key: string]: string;
1168
+ };
1169
+ };
1170
+ } | {
1171
+ /** @enum {string} */
1172
+ code: "KEY_SCOPE_DENIED";
1173
+ /**
1174
+ * @description Human-readable error message
1175
+ * @example Invalid input
1176
+ */
1177
+ message: string;
1178
+ /** @description Single-element list describing the failing scope */
1179
+ details?: {
1180
+ message: string;
1181
+ context: {
1182
+ /**
1183
+ * @description Which scope rejected the request
1184
+ * @enum {string}
1185
+ */
1186
+ scope: "allowMainnet" | "intents" | "deposits";
1187
+ /** @description Minimum level the endpoint demands */
1188
+ required: boolean | ("read" | "write");
1189
+ /** @description Level resolved on the key */
1190
+ actual: boolean | ("none" | "read" | "write");
1191
+ };
1192
+ }[];
1193
+ } | {
1194
+ /** @enum {string} */
1195
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
1196
+ /**
1197
+ * @description Human-readable error message
1198
+ * @example Invalid input
1199
+ */
1200
+ message: string;
1201
+ };
1202
+ };
1203
+ };
1204
+ /** @description Server error */
1205
+ 500: {
1206
+ headers: {
1207
+ [name: string]: unknown;
1208
+ };
1209
+ content: {
1210
+ "application/json": {
1211
+ /** @enum {string} */
1212
+ code: "VALIDATION_ERROR";
1213
+ /**
1214
+ * @description Human-readable error message
1215
+ * @example Invalid input
1216
+ */
1217
+ message: string;
1218
+ /** @description Per-field validation issues */
1219
+ details?: {
1220
+ /** @description Human-readable issue description */
1221
+ message: string;
1222
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
1223
+ context?: {
1224
+ [key: string]: unknown;
1225
+ };
1226
+ }[];
1227
+ } | {
1228
+ /** @enum {string} */
1229
+ code: "SIMULATION_FAILED";
1230
+ /**
1231
+ * @description Human-readable error message
1232
+ * @example Invalid input
1233
+ */
1234
+ message: string;
1235
+ /** @description Classified on-chain simulation failure details */
1236
+ details?: {
1237
+ nonce?: string;
1238
+ category: string;
1239
+ errorSelector: string;
1240
+ errorName: string;
1241
+ errorArgs?: {
1242
+ [key: string]: string;
1243
+ };
1244
+ retryable: boolean;
1245
+ /** @enum {string} */
1246
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
1247
+ simulations?: unknown;
1248
+ } & {
1249
+ [key: string]: unknown;
1250
+ };
1251
+ } | {
1252
+ /** @enum {string} */
1253
+ code: "INSUFFICIENT_LIQUIDITY";
1254
+ /**
1255
+ * @description Human-readable error message
1256
+ * @example Invalid input
1257
+ */
1258
+ message: string;
1259
+ /** @description Fillable subset and unfillable remainder */
1260
+ details?: {
1261
+ /** @description Intents fillable with current liquidity */
1262
+ availableIntents: {
1263
+ [key: string]: string;
1264
+ }[];
1265
+ /** @description Token amounts that cannot be filled */
1266
+ unfillable: {
1267
+ [key: string]: string;
1268
+ };
1269
+ };
1270
+ } | {
1271
+ /** @enum {string} */
1272
+ code: "KEY_SCOPE_DENIED";
1273
+ /**
1274
+ * @description Human-readable error message
1275
+ * @example Invalid input
1276
+ */
1277
+ message: string;
1278
+ /** @description Single-element list describing the failing scope */
1279
+ details?: {
1280
+ message: string;
1281
+ context: {
1282
+ /**
1283
+ * @description Which scope rejected the request
1284
+ * @enum {string}
1285
+ */
1286
+ scope: "allowMainnet" | "intents" | "deposits";
1287
+ /** @description Minimum level the endpoint demands */
1288
+ required: boolean | ("read" | "write");
1289
+ /** @description Level resolved on the key */
1290
+ actual: boolean | ("none" | "read" | "write");
1291
+ };
1292
+ }[];
1293
+ } | {
1294
+ /** @enum {string} */
1295
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
1296
+ /**
1297
+ * @description Human-readable error message
1298
+ * @example Invalid input
1299
+ */
1300
+ message: string;
1301
+ };
1302
+ };
1303
+ };
1304
+ };
1305
+ };
1306
+ getPortfolio: {
1307
+ parameters: {
1308
+ query?: {
1309
+ chainIds?: string[] | string;
1310
+ tokens?: string[] | string;
1311
+ filterEmpty?: boolean;
1312
+ };
1313
+ header: {
1314
+ /** @description API version. Required; pinned to this document. */
1315
+ "x-api-version": "2026-04.blanc";
1316
+ /** @description API key. */
1317
+ "x-api-key": string;
1318
+ };
1319
+ path: {
1320
+ accountAddress: string;
1321
+ };
1322
+ cookie?: never;
1323
+ };
1324
+ requestBody?: never;
1325
+ responses: {
1326
+ /** @description OK */
1327
+ 200: {
1328
+ headers: {
1329
+ [name: string]: unknown;
1330
+ };
1331
+ content: {
1332
+ "application/json": {
1333
+ /** @description Array of token portfolio entries */
1334
+ portfolio: {
1335
+ /**
1336
+ * @description Short name (symbol) of the token
1337
+ * @example USDC
1338
+ */
1339
+ symbol: string;
1340
+ /** @description Array of token balances per chain */
1341
+ chains: {
1342
+ /**
1343
+ * @description Chain ID where the token balance exists (CAIP-2)
1344
+ * @example eip155:1
1345
+ */
1346
+ chainId: string;
1347
+ /**
1348
+ * @description Token contract address on this chain
1349
+ * @example 0xa0B86A33e6441B8C4505B8C4505b8C4505B8C450
1350
+ */
1351
+ address: string;
1352
+ /**
1353
+ * @description Decimal places for this token on this chain. Sourced per-chain because the same logical token can have different on-chain decimals across chains (e.g. USDC: 6 on Ethereum, 18 on BNB Smart Chain).
1354
+ * @example 6
1355
+ */
1356
+ decimals: number;
1357
+ /**
1358
+ * Format: uint256
1359
+ * @description Token balance on this chain in the token's smallest unit
1360
+ * @example 1000000
1361
+ */
1362
+ amount: string;
1363
+ }[];
1364
+ }[];
1365
+ };
1366
+ };
1367
+ };
1368
+ /** @description Invalid request parameters */
1369
+ 400: {
1370
+ headers: {
1371
+ [name: string]: unknown;
1372
+ };
1373
+ content: {
1374
+ "application/json": {
1375
+ /** @enum {string} */
1376
+ code: "VALIDATION_ERROR";
1377
+ /**
1378
+ * @description Human-readable error message
1379
+ * @example Invalid input
1380
+ */
1381
+ message: string;
1382
+ /** @description Per-field validation issues */
1383
+ details?: {
1384
+ /** @description Human-readable issue description */
1385
+ message: string;
1386
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
1387
+ context?: {
1388
+ [key: string]: unknown;
1389
+ };
1390
+ }[];
1391
+ } | {
1392
+ /** @enum {string} */
1393
+ code: "SIMULATION_FAILED";
1394
+ /**
1395
+ * @description Human-readable error message
1396
+ * @example Invalid input
1397
+ */
1398
+ message: string;
1399
+ /** @description Classified on-chain simulation failure details */
1400
+ details?: {
1401
+ nonce?: string;
1402
+ category: string;
1403
+ errorSelector: string;
1404
+ errorName: string;
1405
+ errorArgs?: {
1406
+ [key: string]: string;
1407
+ };
1408
+ retryable: boolean;
1409
+ /** @enum {string} */
1410
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
1411
+ simulations?: unknown;
1412
+ } & {
1413
+ [key: string]: unknown;
1414
+ };
1415
+ } | {
1416
+ /** @enum {string} */
1417
+ code: "INSUFFICIENT_LIQUIDITY";
1418
+ /**
1419
+ * @description Human-readable error message
1420
+ * @example Invalid input
1421
+ */
1422
+ message: string;
1423
+ /** @description Fillable subset and unfillable remainder */
1424
+ details?: {
1425
+ /** @description Intents fillable with current liquidity */
1426
+ availableIntents: {
1427
+ [key: string]: string;
1428
+ }[];
1429
+ /** @description Token amounts that cannot be filled */
1430
+ unfillable: {
1431
+ [key: string]: string;
1432
+ };
1433
+ };
1434
+ } | {
1435
+ /** @enum {string} */
1436
+ code: "KEY_SCOPE_DENIED";
1437
+ /**
1438
+ * @description Human-readable error message
1439
+ * @example Invalid input
1440
+ */
1441
+ message: string;
1442
+ /** @description Single-element list describing the failing scope */
1443
+ details?: {
1444
+ message: string;
1445
+ context: {
1446
+ /**
1447
+ * @description Which scope rejected the request
1448
+ * @enum {string}
1449
+ */
1450
+ scope: "allowMainnet" | "intents" | "deposits";
1451
+ /** @description Minimum level the endpoint demands */
1452
+ required: boolean | ("read" | "write");
1453
+ /** @description Level resolved on the key */
1454
+ actual: boolean | ("none" | "read" | "write");
1455
+ };
1456
+ }[];
1457
+ } | {
1458
+ /** @enum {string} */
1459
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
1460
+ /**
1461
+ * @description Human-readable error message
1462
+ * @example Invalid input
1463
+ */
1464
+ message: string;
1465
+ };
1466
+ };
1467
+ };
1468
+ /** @description API key scope denied */
1469
+ 403: {
1470
+ headers: {
1471
+ [name: string]: unknown;
1472
+ };
1473
+ content: {
1474
+ "application/json": {
1475
+ /** @enum {string} */
1476
+ code: "VALIDATION_ERROR";
1477
+ /**
1478
+ * @description Human-readable error message
1479
+ * @example Invalid input
1480
+ */
1481
+ message: string;
1482
+ /** @description Per-field validation issues */
1483
+ details?: {
1484
+ /** @description Human-readable issue description */
1485
+ message: string;
1486
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
1487
+ context?: {
1488
+ [key: string]: unknown;
1489
+ };
1490
+ }[];
1491
+ } | {
1492
+ /** @enum {string} */
1493
+ code: "SIMULATION_FAILED";
1494
+ /**
1495
+ * @description Human-readable error message
1496
+ * @example Invalid input
1497
+ */
1498
+ message: string;
1499
+ /** @description Classified on-chain simulation failure details */
1500
+ details?: {
1501
+ nonce?: string;
1502
+ category: string;
1503
+ errorSelector: string;
1504
+ errorName: string;
1505
+ errorArgs?: {
1506
+ [key: string]: string;
1507
+ };
1508
+ retryable: boolean;
1509
+ /** @enum {string} */
1510
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
1511
+ simulations?: unknown;
1512
+ } & {
1513
+ [key: string]: unknown;
1514
+ };
1515
+ } | {
1516
+ /** @enum {string} */
1517
+ code: "INSUFFICIENT_LIQUIDITY";
1518
+ /**
1519
+ * @description Human-readable error message
1520
+ * @example Invalid input
1521
+ */
1522
+ message: string;
1523
+ /** @description Fillable subset and unfillable remainder */
1524
+ details?: {
1525
+ /** @description Intents fillable with current liquidity */
1526
+ availableIntents: {
1527
+ [key: string]: string;
1528
+ }[];
1529
+ /** @description Token amounts that cannot be filled */
1530
+ unfillable: {
1531
+ [key: string]: string;
1532
+ };
1533
+ };
1534
+ } | {
1535
+ /** @enum {string} */
1536
+ code: "KEY_SCOPE_DENIED";
1537
+ /**
1538
+ * @description Human-readable error message
1539
+ * @example Invalid input
1540
+ */
1541
+ message: string;
1542
+ /** @description Single-element list describing the failing scope */
1543
+ details?: {
1544
+ message: string;
1545
+ context: {
1546
+ /**
1547
+ * @description Which scope rejected the request
1548
+ * @enum {string}
1549
+ */
1550
+ scope: "allowMainnet" | "intents" | "deposits";
1551
+ /** @description Minimum level the endpoint demands */
1552
+ required: boolean | ("read" | "write");
1553
+ /** @description Level resolved on the key */
1554
+ actual: boolean | ("none" | "read" | "write");
1555
+ };
1556
+ }[];
1557
+ } | {
1558
+ /** @enum {string} */
1559
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
1560
+ /**
1561
+ * @description Human-readable error message
1562
+ * @example Invalid input
1563
+ */
1564
+ message: string;
1565
+ };
1566
+ };
1567
+ };
1568
+ /** @description Server error */
1569
+ 500: {
1570
+ headers: {
1571
+ [name: string]: unknown;
1572
+ };
1573
+ content: {
1574
+ "application/json": {
1575
+ /** @enum {string} */
1576
+ code: "VALIDATION_ERROR";
1577
+ /**
1578
+ * @description Human-readable error message
1579
+ * @example Invalid input
1580
+ */
1581
+ message: string;
1582
+ /** @description Per-field validation issues */
1583
+ details?: {
1584
+ /** @description Human-readable issue description */
1585
+ message: string;
1586
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
1587
+ context?: {
1588
+ [key: string]: unknown;
1589
+ };
1590
+ }[];
1591
+ } | {
1592
+ /** @enum {string} */
1593
+ code: "SIMULATION_FAILED";
1594
+ /**
1595
+ * @description Human-readable error message
1596
+ * @example Invalid input
1597
+ */
1598
+ message: string;
1599
+ /** @description Classified on-chain simulation failure details */
1600
+ details?: {
1601
+ nonce?: string;
1602
+ category: string;
1603
+ errorSelector: string;
1604
+ errorName: string;
1605
+ errorArgs?: {
1606
+ [key: string]: string;
1607
+ };
1608
+ retryable: boolean;
1609
+ /** @enum {string} */
1610
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
1611
+ simulations?: unknown;
1612
+ } & {
1613
+ [key: string]: unknown;
1614
+ };
1615
+ } | {
1616
+ /** @enum {string} */
1617
+ code: "INSUFFICIENT_LIQUIDITY";
1618
+ /**
1619
+ * @description Human-readable error message
1620
+ * @example Invalid input
1621
+ */
1622
+ message: string;
1623
+ /** @description Fillable subset and unfillable remainder */
1624
+ details?: {
1625
+ /** @description Intents fillable with current liquidity */
1626
+ availableIntents: {
1627
+ [key: string]: string;
1628
+ }[];
1629
+ /** @description Token amounts that cannot be filled */
1630
+ unfillable: {
1631
+ [key: string]: string;
1632
+ };
1633
+ };
1634
+ } | {
1635
+ /** @enum {string} */
1636
+ code: "KEY_SCOPE_DENIED";
1637
+ /**
1638
+ * @description Human-readable error message
1639
+ * @example Invalid input
1640
+ */
1641
+ message: string;
1642
+ /** @description Single-element list describing the failing scope */
1643
+ details?: {
1644
+ message: string;
1645
+ context: {
1646
+ /**
1647
+ * @description Which scope rejected the request
1648
+ * @enum {string}
1649
+ */
1650
+ scope: "allowMainnet" | "intents" | "deposits";
1651
+ /** @description Minimum level the endpoint demands */
1652
+ required: boolean | ("read" | "write");
1653
+ /** @description Level resolved on the key */
1654
+ actual: boolean | ("none" | "read" | "write");
1655
+ };
1656
+ }[];
1657
+ } | {
1658
+ /** @enum {string} */
1659
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
1660
+ /**
1661
+ * @description Human-readable error message
1662
+ * @example Invalid input
1663
+ */
1664
+ message: string;
1665
+ };
1666
+ };
1667
+ };
1668
+ };
1669
+ };
1670
+ listIntents: {
1671
+ parameters: {
1672
+ query?: {
1673
+ /** @description Opaque cursor from a previous response (`pagination.nextCursor`). Omit for the first page. */
1674
+ cursor?: string;
1675
+ /** @description Max items per page (max 100) */
1676
+ limit?: number;
1677
+ };
1678
+ header: {
1679
+ /** @description API version. Required; pinned to this document. */
1680
+ "x-api-version": "2026-04.blanc";
1681
+ /** @description API key. */
1682
+ "x-api-key": string;
1683
+ };
1684
+ path?: never;
1685
+ cookie?: never;
1686
+ };
1687
+ requestBody?: never;
1688
+ responses: {
1689
+ /** @description OK */
1690
+ 200: {
1691
+ headers: {
1692
+ [name: string]: unknown;
1693
+ };
1694
+ content: {
1695
+ "application/json": {
1696
+ /** @description Intents on this page, newest first */
1697
+ data: {
1698
+ /**
1699
+ * @description Intent id — pass to `GET /intents/:id`
1700
+ * @example 12345678901234567890
1701
+ */
1702
+ id: string;
1703
+ /**
1704
+ * @description Overall intent status
1705
+ * @example COMPLETED
1706
+ * @enum {string}
1707
+ */
1708
+ status: "PENDING" | "COMPLETED" | "FAILED";
1709
+ /**
1710
+ * @description Source chain IDs — one per distinct chain the intent spends on
1711
+ * @example [
1712
+ * 1,
1713
+ * 8453
1714
+ * ]
1715
+ */
1716
+ fromChains: number[];
1717
+ /**
1718
+ * @description Destination chain ID
1719
+ * @example 10
1720
+ */
1721
+ toChain?: number;
1722
+ /**
1723
+ * @description Intent value token. The token delivered on the destination chain, or the spent token for same-chain intents (which have no persisted delivery).
1724
+ * @example 0x0b2c639c533813f4aa9d7837caf62653d097ff85
1725
+ */
1726
+ token?: string;
1727
+ /**
1728
+ * @description Intent value in base units — delivered on the destination chain, or spent for same-chain intents (which have no persisted delivery; for same-chain swaps this is the input, not the received amount).
1729
+ * @example 1000000
1730
+ */
1731
+ amount?: string;
1732
+ /**
1733
+ * @description Account that submitted the intent
1734
+ * @example 0x3672e268a79bd4acc5ee646bdda652547c7a435c
1735
+ */
1736
+ account: string;
1737
+ /**
1738
+ * @description Intent creation time in unix seconds
1739
+ * @example 1633493100
1740
+ */
1741
+ createdAt: number;
1742
+ }[];
1743
+ /** @description Keyset pagination metadata */
1744
+ pagination: {
1745
+ /**
1746
+ * @description Pass as `cursor` to fetch the next page; null when no more results.
1747
+ * @example 1024
1748
+ */
1749
+ nextCursor: string | null;
1750
+ /** @example true */
1751
+ hasNextPage: boolean;
1752
+ };
1753
+ };
1754
+ };
1755
+ };
1756
+ /** @description Validation error */
1757
+ 400: {
1758
+ headers: {
1759
+ [name: string]: unknown;
1760
+ };
1761
+ content: {
1762
+ "application/json": {
1763
+ /** @enum {string} */
1764
+ code: "VALIDATION_ERROR";
1765
+ /**
1766
+ * @description Human-readable error message
1767
+ * @example Invalid input
1768
+ */
1769
+ message: string;
1770
+ /** @description Per-field validation issues */
1771
+ details?: {
1772
+ /** @description Human-readable issue description */
1773
+ message: string;
1774
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
1775
+ context?: {
1776
+ [key: string]: unknown;
1777
+ };
1778
+ }[];
1779
+ } | {
1780
+ /** @enum {string} */
1781
+ code: "SIMULATION_FAILED";
1782
+ /**
1783
+ * @description Human-readable error message
1784
+ * @example Invalid input
1785
+ */
1786
+ message: string;
1787
+ /** @description Classified on-chain simulation failure details */
1788
+ details?: {
1789
+ nonce?: string;
1790
+ category: string;
1791
+ errorSelector: string;
1792
+ errorName: string;
1793
+ errorArgs?: {
1794
+ [key: string]: string;
1795
+ };
1796
+ retryable: boolean;
1797
+ /** @enum {string} */
1798
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
1799
+ simulations?: unknown;
1800
+ } & {
1801
+ [key: string]: unknown;
1802
+ };
1803
+ } | {
1804
+ /** @enum {string} */
1805
+ code: "INSUFFICIENT_LIQUIDITY";
1806
+ /**
1807
+ * @description Human-readable error message
1808
+ * @example Invalid input
1809
+ */
1810
+ message: string;
1811
+ /** @description Fillable subset and unfillable remainder */
1812
+ details?: {
1813
+ /** @description Intents fillable with current liquidity */
1814
+ availableIntents: {
1815
+ [key: string]: string;
1816
+ }[];
1817
+ /** @description Token amounts that cannot be filled */
1818
+ unfillable: {
1819
+ [key: string]: string;
1820
+ };
1821
+ };
1822
+ } | {
1823
+ /** @enum {string} */
1824
+ code: "KEY_SCOPE_DENIED";
1825
+ /**
1826
+ * @description Human-readable error message
1827
+ * @example Invalid input
1828
+ */
1829
+ message: string;
1830
+ /** @description Single-element list describing the failing scope */
1831
+ details?: {
1832
+ message: string;
1833
+ context: {
1834
+ /**
1835
+ * @description Which scope rejected the request
1836
+ * @enum {string}
1837
+ */
1838
+ scope: "allowMainnet" | "intents" | "deposits";
1839
+ /** @description Minimum level the endpoint demands */
1840
+ required: boolean | ("read" | "write");
1841
+ /** @description Level resolved on the key */
1842
+ actual: boolean | ("none" | "read" | "write");
1843
+ };
1844
+ }[];
1845
+ } | {
1846
+ /** @enum {string} */
1847
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
1848
+ /**
1849
+ * @description Human-readable error message
1850
+ * @example Invalid input
1851
+ */
1852
+ message: string;
1853
+ };
1854
+ };
1855
+ };
1856
+ /** @description API key scope denied */
1857
+ 403: {
1858
+ headers: {
1859
+ [name: string]: unknown;
1860
+ };
1861
+ content: {
1862
+ "application/json": {
1863
+ /** @enum {string} */
1864
+ code: "VALIDATION_ERROR";
1865
+ /**
1866
+ * @description Human-readable error message
1867
+ * @example Invalid input
1868
+ */
1869
+ message: string;
1870
+ /** @description Per-field validation issues */
1871
+ details?: {
1872
+ /** @description Human-readable issue description */
1873
+ message: string;
1874
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
1875
+ context?: {
1876
+ [key: string]: unknown;
1877
+ };
1878
+ }[];
1879
+ } | {
1880
+ /** @enum {string} */
1881
+ code: "SIMULATION_FAILED";
1882
+ /**
1883
+ * @description Human-readable error message
1884
+ * @example Invalid input
1885
+ */
1886
+ message: string;
1887
+ /** @description Classified on-chain simulation failure details */
1888
+ details?: {
1889
+ nonce?: string;
1890
+ category: string;
1891
+ errorSelector: string;
1892
+ errorName: string;
1893
+ errorArgs?: {
1894
+ [key: string]: string;
1895
+ };
1896
+ retryable: boolean;
1897
+ /** @enum {string} */
1898
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
1899
+ simulations?: unknown;
1900
+ } & {
1901
+ [key: string]: unknown;
1902
+ };
1903
+ } | {
1904
+ /** @enum {string} */
1905
+ code: "INSUFFICIENT_LIQUIDITY";
1906
+ /**
1907
+ * @description Human-readable error message
1908
+ * @example Invalid input
1909
+ */
1910
+ message: string;
1911
+ /** @description Fillable subset and unfillable remainder */
1912
+ details?: {
1913
+ /** @description Intents fillable with current liquidity */
1914
+ availableIntents: {
1915
+ [key: string]: string;
1916
+ }[];
1917
+ /** @description Token amounts that cannot be filled */
1918
+ unfillable: {
1919
+ [key: string]: string;
1920
+ };
1921
+ };
1922
+ } | {
1923
+ /** @enum {string} */
1924
+ code: "KEY_SCOPE_DENIED";
1925
+ /**
1926
+ * @description Human-readable error message
1927
+ * @example Invalid input
1928
+ */
1929
+ message: string;
1930
+ /** @description Single-element list describing the failing scope */
1931
+ details?: {
1932
+ message: string;
1933
+ context: {
1934
+ /**
1935
+ * @description Which scope rejected the request
1936
+ * @enum {string}
1937
+ */
1938
+ scope: "allowMainnet" | "intents" | "deposits";
1939
+ /** @description Minimum level the endpoint demands */
1940
+ required: boolean | ("read" | "write");
1941
+ /** @description Level resolved on the key */
1942
+ actual: boolean | ("none" | "read" | "write");
1943
+ };
1944
+ }[];
1945
+ } | {
1946
+ /** @enum {string} */
1947
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
1948
+ /**
1949
+ * @description Human-readable error message
1950
+ * @example Invalid input
1951
+ */
1952
+ message: string;
1953
+ };
1954
+ };
1955
+ };
1956
+ /** @description Server error */
1957
+ 500: {
1958
+ headers: {
1959
+ [name: string]: unknown;
1960
+ };
1961
+ content: {
1962
+ "application/json": {
1963
+ /** @enum {string} */
1964
+ code: "VALIDATION_ERROR";
1965
+ /**
1966
+ * @description Human-readable error message
1967
+ * @example Invalid input
1968
+ */
1969
+ message: string;
1970
+ /** @description Per-field validation issues */
1971
+ details?: {
1972
+ /** @description Human-readable issue description */
1973
+ message: string;
1974
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
1975
+ context?: {
1976
+ [key: string]: unknown;
1977
+ };
1978
+ }[];
1979
+ } | {
1980
+ /** @enum {string} */
1981
+ code: "SIMULATION_FAILED";
1982
+ /**
1983
+ * @description Human-readable error message
1984
+ * @example Invalid input
1985
+ */
1986
+ message: string;
1987
+ /** @description Classified on-chain simulation failure details */
1988
+ details?: {
1989
+ nonce?: string;
1990
+ category: string;
1991
+ errorSelector: string;
1992
+ errorName: string;
1993
+ errorArgs?: {
1994
+ [key: string]: string;
1995
+ };
1996
+ retryable: boolean;
1997
+ /** @enum {string} */
1998
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
1999
+ simulations?: unknown;
2000
+ } & {
2001
+ [key: string]: unknown;
2002
+ };
2003
+ } | {
2004
+ /** @enum {string} */
2005
+ code: "INSUFFICIENT_LIQUIDITY";
2006
+ /**
2007
+ * @description Human-readable error message
2008
+ * @example Invalid input
2009
+ */
2010
+ message: string;
2011
+ /** @description Fillable subset and unfillable remainder */
2012
+ details?: {
2013
+ /** @description Intents fillable with current liquidity */
2014
+ availableIntents: {
2015
+ [key: string]: string;
2016
+ }[];
2017
+ /** @description Token amounts that cannot be filled */
2018
+ unfillable: {
2019
+ [key: string]: string;
2020
+ };
2021
+ };
2022
+ } | {
2023
+ /** @enum {string} */
2024
+ code: "KEY_SCOPE_DENIED";
2025
+ /**
2026
+ * @description Human-readable error message
2027
+ * @example Invalid input
2028
+ */
2029
+ message: string;
2030
+ /** @description Single-element list describing the failing scope */
2031
+ details?: {
2032
+ message: string;
2033
+ context: {
2034
+ /**
2035
+ * @description Which scope rejected the request
2036
+ * @enum {string}
2037
+ */
2038
+ scope: "allowMainnet" | "intents" | "deposits";
2039
+ /** @description Minimum level the endpoint demands */
2040
+ required: boolean | ("read" | "write");
2041
+ /** @description Level resolved on the key */
2042
+ actual: boolean | ("none" | "read" | "write");
2043
+ };
2044
+ }[];
2045
+ } | {
2046
+ /** @enum {string} */
2047
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
2048
+ /**
2049
+ * @description Human-readable error message
2050
+ * @example Invalid input
2051
+ */
2052
+ message: string;
2053
+ };
2054
+ };
2055
+ };
2056
+ };
2057
+ };
2058
+ createIntent: {
2059
+ parameters: {
2060
+ query?: never;
2061
+ header: {
2062
+ /** @description API version. Required; pinned to this document. */
2063
+ "x-api-version": "2026-04.blanc";
2064
+ /** @description API key. */
2065
+ "x-api-key": string;
2066
+ };
2067
+ path?: never;
2068
+ cookie?: never;
2069
+ };
2070
+ requestBody: {
2071
+ content: {
2072
+ "application/json": {
2073
+ /** @description Identifier of the intent returned by `POST /quotes` (as `routes[].intentId`). */
2074
+ intentId: string;
2075
+ signatures: {
2076
+ /**
2077
+ * @description Origin (source chain) signatures
2078
+ * @example [
2079
+ * "0x...",
2080
+ * "0x..."
2081
+ * ]
2082
+ */
2083
+ origin: (string | {
2084
+ preClaimSig: string;
2085
+ notarizedClaimSig: string;
2086
+ })[];
2087
+ /**
2088
+ * @description Destination (target chain) signature
2089
+ * @example 0x...
2090
+ */
2091
+ destination: string;
2092
+ /**
2093
+ * @description Target execution signature (smart sessions only; omit for EOA)
2094
+ * @example 0x...
2095
+ */
2096
+ targetExecution?: string;
2097
+ };
2098
+ authorizations?: {
2099
+ /** @description EIP-7702 authorizations signed by the sponsor account. Each entry `chainId` is a CAIP-2 string (e.g. `eip155:8453`); the `0` any-chain sentinel is sent as a number. */
2100
+ sponsor?: {
2101
+ /**
2102
+ * @description Chain ID for EIP-7702 delegation, 0 means it can be applied to any chain
2103
+ * @example 8453
2104
+ */
2105
+ chainId: number;
2106
+ /**
2107
+ * @description Address of the delegate for EIP-7702 delegation
2108
+ * @example 0x579d5631f76126991c00fb8fe5467fa9d49e5f6a
2109
+ */
2110
+ address: string;
2111
+ /**
2112
+ * @description Nonce for EIP-7702 delegation
2113
+ * @example 0
2114
+ */
2115
+ nonce: number;
2116
+ /**
2117
+ * @description Y parity for EIP-7702 delegation
2118
+ * @example 27
2119
+ */
2120
+ yParity: number;
2121
+ /**
2122
+ * @description R value for EIP-7702 delegation
2123
+ * @example 0x...
2124
+ */
2125
+ r: string;
2126
+ /**
2127
+ * @description S value for EIP-7702 delegation
2128
+ * @example 0x...
2129
+ */
2130
+ s: string;
2131
+ }[];
2132
+ /** @description EIP-7702 authorizations signed by the recipient account. Each entry `chainId` is a CAIP-2 string (e.g. `eip155:8453`); the `0` any-chain sentinel is sent as a number. */
2133
+ recipient?: {
2134
+ /**
2135
+ * @description Chain ID for EIP-7702 delegation, 0 means it can be applied to any chain
2136
+ * @example 8453
2137
+ */
2138
+ chainId: number;
2139
+ /**
2140
+ * @description Address of the delegate for EIP-7702 delegation
2141
+ * @example 0x579d5631f76126991c00fb8fe5467fa9d49e5f6a
2142
+ */
2143
+ address: string;
2144
+ /**
2145
+ * @description Nonce for EIP-7702 delegation
2146
+ * @example 0
2147
+ */
2148
+ nonce: number;
2149
+ /**
2150
+ * @description Y parity for EIP-7702 delegation
2151
+ * @example 27
2152
+ */
2153
+ yParity: number;
2154
+ /**
2155
+ * @description R value for EIP-7702 delegation
2156
+ * @example 0x...
2157
+ */
2158
+ r: string;
2159
+ /**
2160
+ * @description S value for EIP-7702 delegation
2161
+ * @example 0x...
2162
+ */
2163
+ s: string;
2164
+ }[];
2165
+ };
2166
+ };
2167
+ };
2168
+ };
2169
+ responses: {
2170
+ /** @description OK */
2171
+ 201: {
2172
+ headers: {
2173
+ [name: string]: unknown;
2174
+ };
2175
+ content: {
2176
+ "application/json": {
2177
+ intentId: string;
2178
+ };
2179
+ };
2180
+ };
2181
+ /** @description Validation error */
2182
+ 400: {
2183
+ headers: {
2184
+ [name: string]: unknown;
2185
+ };
2186
+ content: {
2187
+ "application/json": {
2188
+ /** @enum {string} */
2189
+ code: "VALIDATION_ERROR";
2190
+ /**
2191
+ * @description Human-readable error message
2192
+ * @example Invalid input
2193
+ */
2194
+ message: string;
2195
+ /** @description Per-field validation issues */
2196
+ details?: {
2197
+ /** @description Human-readable issue description */
2198
+ message: string;
2199
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
2200
+ context?: {
2201
+ [key: string]: unknown;
2202
+ };
2203
+ }[];
2204
+ } | {
2205
+ /** @enum {string} */
2206
+ code: "SIMULATION_FAILED";
2207
+ /**
2208
+ * @description Human-readable error message
2209
+ * @example Invalid input
2210
+ */
2211
+ message: string;
2212
+ /** @description Classified on-chain simulation failure details */
2213
+ details?: {
2214
+ nonce?: string;
2215
+ category: string;
2216
+ errorSelector: string;
2217
+ errorName: string;
2218
+ errorArgs?: {
2219
+ [key: string]: string;
2220
+ };
2221
+ retryable: boolean;
2222
+ /** @enum {string} */
2223
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
2224
+ simulations?: unknown;
2225
+ } & {
2226
+ [key: string]: unknown;
2227
+ };
2228
+ } | {
2229
+ /** @enum {string} */
2230
+ code: "INSUFFICIENT_LIQUIDITY";
2231
+ /**
2232
+ * @description Human-readable error message
2233
+ * @example Invalid input
2234
+ */
2235
+ message: string;
2236
+ /** @description Fillable subset and unfillable remainder */
2237
+ details?: {
2238
+ /** @description Intents fillable with current liquidity */
2239
+ availableIntents: {
2240
+ [key: string]: string;
2241
+ }[];
2242
+ /** @description Token amounts that cannot be filled */
2243
+ unfillable: {
2244
+ [key: string]: string;
2245
+ };
2246
+ };
2247
+ } | {
2248
+ /** @enum {string} */
2249
+ code: "KEY_SCOPE_DENIED";
2250
+ /**
2251
+ * @description Human-readable error message
2252
+ * @example Invalid input
2253
+ */
2254
+ message: string;
2255
+ /** @description Single-element list describing the failing scope */
2256
+ details?: {
2257
+ message: string;
2258
+ context: {
2259
+ /**
2260
+ * @description Which scope rejected the request
2261
+ * @enum {string}
2262
+ */
2263
+ scope: "allowMainnet" | "intents" | "deposits";
2264
+ /** @description Minimum level the endpoint demands */
2265
+ required: boolean | ("read" | "write");
2266
+ /** @description Level resolved on the key */
2267
+ actual: boolean | ("none" | "read" | "write");
2268
+ };
2269
+ }[];
2270
+ } | {
2271
+ /** @enum {string} */
2272
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
2273
+ /**
2274
+ * @description Human-readable error message
2275
+ * @example Invalid input
2276
+ */
2277
+ message: string;
2278
+ };
2279
+ };
2280
+ };
2281
+ /** @description API key scope denied */
2282
+ 403: {
2283
+ headers: {
2284
+ [name: string]: unknown;
2285
+ };
2286
+ content: {
2287
+ "application/json": {
2288
+ /** @enum {string} */
2289
+ code: "VALIDATION_ERROR";
2290
+ /**
2291
+ * @description Human-readable error message
2292
+ * @example Invalid input
2293
+ */
2294
+ message: string;
2295
+ /** @description Per-field validation issues */
2296
+ details?: {
2297
+ /** @description Human-readable issue description */
2298
+ message: string;
2299
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
2300
+ context?: {
2301
+ [key: string]: unknown;
2302
+ };
2303
+ }[];
2304
+ } | {
2305
+ /** @enum {string} */
2306
+ code: "SIMULATION_FAILED";
2307
+ /**
2308
+ * @description Human-readable error message
2309
+ * @example Invalid input
2310
+ */
2311
+ message: string;
2312
+ /** @description Classified on-chain simulation failure details */
2313
+ details?: {
2314
+ nonce?: string;
2315
+ category: string;
2316
+ errorSelector: string;
2317
+ errorName: string;
2318
+ errorArgs?: {
2319
+ [key: string]: string;
2320
+ };
2321
+ retryable: boolean;
2322
+ /** @enum {string} */
2323
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
2324
+ simulations?: unknown;
2325
+ } & {
2326
+ [key: string]: unknown;
2327
+ };
2328
+ } | {
2329
+ /** @enum {string} */
2330
+ code: "INSUFFICIENT_LIQUIDITY";
2331
+ /**
2332
+ * @description Human-readable error message
2333
+ * @example Invalid input
2334
+ */
2335
+ message: string;
2336
+ /** @description Fillable subset and unfillable remainder */
2337
+ details?: {
2338
+ /** @description Intents fillable with current liquidity */
2339
+ availableIntents: {
2340
+ [key: string]: string;
2341
+ }[];
2342
+ /** @description Token amounts that cannot be filled */
2343
+ unfillable: {
2344
+ [key: string]: string;
2345
+ };
2346
+ };
2347
+ } | {
2348
+ /** @enum {string} */
2349
+ code: "KEY_SCOPE_DENIED";
2350
+ /**
2351
+ * @description Human-readable error message
2352
+ * @example Invalid input
2353
+ */
2354
+ message: string;
2355
+ /** @description Single-element list describing the failing scope */
2356
+ details?: {
2357
+ message: string;
2358
+ context: {
2359
+ /**
2360
+ * @description Which scope rejected the request
2361
+ * @enum {string}
2362
+ */
2363
+ scope: "allowMainnet" | "intents" | "deposits";
2364
+ /** @description Minimum level the endpoint demands */
2365
+ required: boolean | ("read" | "write");
2366
+ /** @description Level resolved on the key */
2367
+ actual: boolean | ("none" | "read" | "write");
2368
+ };
2369
+ }[];
2370
+ } | {
2371
+ /** @enum {string} */
2372
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
2373
+ /**
2374
+ * @description Human-readable error message
2375
+ * @example Invalid input
2376
+ */
2377
+ message: string;
2378
+ };
2379
+ };
2380
+ };
2381
+ /** @description The quoted intent has expired or was already submitted. Request a new route to retry. */
2382
+ 404: {
2383
+ headers: {
2384
+ [name: string]: unknown;
2385
+ };
2386
+ content: {
2387
+ "application/json": {
2388
+ /** @enum {string} */
2389
+ code: "VALIDATION_ERROR";
2390
+ /**
2391
+ * @description Human-readable error message
2392
+ * @example Invalid input
2393
+ */
2394
+ message: string;
2395
+ /** @description Per-field validation issues */
2396
+ details?: {
2397
+ /** @description Human-readable issue description */
2398
+ message: string;
2399
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
2400
+ context?: {
2401
+ [key: string]: unknown;
2402
+ };
2403
+ }[];
2404
+ } | {
2405
+ /** @enum {string} */
2406
+ code: "SIMULATION_FAILED";
2407
+ /**
2408
+ * @description Human-readable error message
2409
+ * @example Invalid input
2410
+ */
2411
+ message: string;
2412
+ /** @description Classified on-chain simulation failure details */
2413
+ details?: {
2414
+ nonce?: string;
2415
+ category: string;
2416
+ errorSelector: string;
2417
+ errorName: string;
2418
+ errorArgs?: {
2419
+ [key: string]: string;
2420
+ };
2421
+ retryable: boolean;
2422
+ /** @enum {string} */
2423
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
2424
+ simulations?: unknown;
2425
+ } & {
2426
+ [key: string]: unknown;
2427
+ };
2428
+ } | {
2429
+ /** @enum {string} */
2430
+ code: "INSUFFICIENT_LIQUIDITY";
2431
+ /**
2432
+ * @description Human-readable error message
2433
+ * @example Invalid input
2434
+ */
2435
+ message: string;
2436
+ /** @description Fillable subset and unfillable remainder */
2437
+ details?: {
2438
+ /** @description Intents fillable with current liquidity */
2439
+ availableIntents: {
2440
+ [key: string]: string;
2441
+ }[];
2442
+ /** @description Token amounts that cannot be filled */
2443
+ unfillable: {
2444
+ [key: string]: string;
2445
+ };
2446
+ };
2447
+ } | {
2448
+ /** @enum {string} */
2449
+ code: "KEY_SCOPE_DENIED";
2450
+ /**
2451
+ * @description Human-readable error message
2452
+ * @example Invalid input
2453
+ */
2454
+ message: string;
2455
+ /** @description Single-element list describing the failing scope */
2456
+ details?: {
2457
+ message: string;
2458
+ context: {
2459
+ /**
2460
+ * @description Which scope rejected the request
2461
+ * @enum {string}
2462
+ */
2463
+ scope: "allowMainnet" | "intents" | "deposits";
2464
+ /** @description Minimum level the endpoint demands */
2465
+ required: boolean | ("read" | "write");
2466
+ /** @description Level resolved on the key */
2467
+ actual: boolean | ("none" | "read" | "write");
2468
+ };
2469
+ }[];
2470
+ } | {
2471
+ /** @enum {string} */
2472
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
2473
+ /**
2474
+ * @description Human-readable error message
2475
+ * @example Invalid input
2476
+ */
2477
+ message: string;
2478
+ };
2479
+ };
2480
+ };
2481
+ /** @description Server error */
2482
+ 500: {
2483
+ headers: {
2484
+ [name: string]: unknown;
2485
+ };
2486
+ content: {
2487
+ "application/json": {
2488
+ /** @enum {string} */
2489
+ code: "VALIDATION_ERROR";
2490
+ /**
2491
+ * @description Human-readable error message
2492
+ * @example Invalid input
2493
+ */
2494
+ message: string;
2495
+ /** @description Per-field validation issues */
2496
+ details?: {
2497
+ /** @description Human-readable issue description */
2498
+ message: string;
2499
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
2500
+ context?: {
2501
+ [key: string]: unknown;
2502
+ };
2503
+ }[];
2504
+ } | {
2505
+ /** @enum {string} */
2506
+ code: "SIMULATION_FAILED";
2507
+ /**
2508
+ * @description Human-readable error message
2509
+ * @example Invalid input
2510
+ */
2511
+ message: string;
2512
+ /** @description Classified on-chain simulation failure details */
2513
+ details?: {
2514
+ nonce?: string;
2515
+ category: string;
2516
+ errorSelector: string;
2517
+ errorName: string;
2518
+ errorArgs?: {
2519
+ [key: string]: string;
2520
+ };
2521
+ retryable: boolean;
2522
+ /** @enum {string} */
2523
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
2524
+ simulations?: unknown;
2525
+ } & {
2526
+ [key: string]: unknown;
2527
+ };
2528
+ } | {
2529
+ /** @enum {string} */
2530
+ code: "INSUFFICIENT_LIQUIDITY";
2531
+ /**
2532
+ * @description Human-readable error message
2533
+ * @example Invalid input
2534
+ */
2535
+ message: string;
2536
+ /** @description Fillable subset and unfillable remainder */
2537
+ details?: {
2538
+ /** @description Intents fillable with current liquidity */
2539
+ availableIntents: {
2540
+ [key: string]: string;
2541
+ }[];
2542
+ /** @description Token amounts that cannot be filled */
2543
+ unfillable: {
2544
+ [key: string]: string;
2545
+ };
2546
+ };
2547
+ } | {
2548
+ /** @enum {string} */
2549
+ code: "KEY_SCOPE_DENIED";
2550
+ /**
2551
+ * @description Human-readable error message
2552
+ * @example Invalid input
2553
+ */
2554
+ message: string;
2555
+ /** @description Single-element list describing the failing scope */
2556
+ details?: {
2557
+ message: string;
2558
+ context: {
2559
+ /**
2560
+ * @description Which scope rejected the request
2561
+ * @enum {string}
2562
+ */
2563
+ scope: "allowMainnet" | "intents" | "deposits";
2564
+ /** @description Minimum level the endpoint demands */
2565
+ required: boolean | ("read" | "write");
2566
+ /** @description Level resolved on the key */
2567
+ actual: boolean | ("none" | "read" | "write");
2568
+ };
2569
+ }[];
2570
+ } | {
2571
+ /** @enum {string} */
2572
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
2573
+ /**
2574
+ * @description Human-readable error message
2575
+ * @example Invalid input
2576
+ */
2577
+ message: string;
2578
+ };
2579
+ };
2580
+ };
2581
+ };
2582
+ };
2583
+ getSplit: {
2584
+ parameters: {
2585
+ query?: never;
2586
+ header: {
2587
+ /** @description API version. Required; pinned to this document. */
2588
+ "x-api-version": "2026-04.blanc";
2589
+ /** @description API key. */
2590
+ "x-api-key": string;
2591
+ };
2592
+ path?: never;
2593
+ cookie?: never;
2594
+ };
2595
+ requestBody: {
2596
+ content: {
2597
+ "application/json": {
2598
+ /**
2599
+ * @description The chain ID the intents settle on (CAIP-2)
2600
+ * @example eip155:42161
2601
+ */
2602
+ chainId: string;
2603
+ /**
2604
+ * @description Map of token addresses to amounts
2605
+ * @example {
2606
+ * "0xaf88d065e77c8cc2239327c5edb3a432268e5831": "5000000000000"
2607
+ * }
2608
+ */
2609
+ tokens: {
2610
+ [key: string]: string;
2611
+ };
2612
+ /**
2613
+ * @description Which settlement layers the orchestrator may use. `{ include: [...] }` (allow-list) or `{ exclude: [...] }` (deny-list, inverted against the orchestrator's live layer set); a bare array means `include`. Internal modes (`SAME_CHAIN`, `INTENT_EXECUTOR`) are not selectable. Default unset = all layers eligible.
2614
+ * @example {
2615
+ * "exclude": [
2616
+ * "RELAY"
2617
+ * ]
2618
+ * }
2619
+ */
2620
+ settlementLayers?: ("ACROSS" | "ECO" | "RELAY" | "OFT" | "NEAR" | "RHINO" | "CCTP")[] | {
2621
+ include: ("ACROSS" | "ECO" | "RELAY" | "OFT" | "NEAR" | "RHINO" | "CCTP")[];
2622
+ } | {
2623
+ exclude: ("ACROSS" | "ECO" | "RELAY" | "OFT" | "NEAR" | "RHINO" | "CCTP")[];
2624
+ };
2625
+ };
2626
+ };
2627
+ };
2628
+ responses: {
2629
+ /** @description OK */
2630
+ 200: {
2631
+ headers: {
2632
+ [name: string]: unknown;
2633
+ };
2634
+ content: {
2635
+ "application/json": {
2636
+ /**
2637
+ * @description Array of intents, each mapping token addresses to amounts that can be filled by a single relayer
2638
+ * @example [
2639
+ * {
2640
+ * "0xaf88d065e77c8cc2239327c5edb3a432268e5831": "2400000000000"
2641
+ * },
2642
+ * {
2643
+ * "0xaf88d065e77c8cc2239327c5edb3a432268e5831": "1700000000000"
2644
+ * },
2645
+ * {
2646
+ * "0xaf88d065e77c8cc2239327c5edb3a432268e5831": "900000000000"
2647
+ * }
2648
+ * ]
2649
+ */
2650
+ intents: {
2651
+ [key: string]: string;
2652
+ }[];
2653
+ };
2654
+ };
2655
+ };
2656
+ /** @description Invalid request parameters */
2657
+ 400: {
2658
+ headers: {
2659
+ [name: string]: unknown;
2660
+ };
2661
+ content: {
2662
+ "application/json": {
2663
+ /** @enum {string} */
2664
+ code: "VALIDATION_ERROR";
2665
+ /**
2666
+ * @description Human-readable error message
2667
+ * @example Invalid input
2668
+ */
2669
+ message: string;
2670
+ /** @description Per-field validation issues */
2671
+ details?: {
2672
+ /** @description Human-readable issue description */
2673
+ message: string;
2674
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
2675
+ context?: {
2676
+ [key: string]: unknown;
2677
+ };
2678
+ }[];
2679
+ } | {
2680
+ /** @enum {string} */
2681
+ code: "SIMULATION_FAILED";
2682
+ /**
2683
+ * @description Human-readable error message
2684
+ * @example Invalid input
2685
+ */
2686
+ message: string;
2687
+ /** @description Classified on-chain simulation failure details */
2688
+ details?: {
2689
+ nonce?: string;
2690
+ category: string;
2691
+ errorSelector: string;
2692
+ errorName: string;
2693
+ errorArgs?: {
2694
+ [key: string]: string;
2695
+ };
2696
+ retryable: boolean;
2697
+ /** @enum {string} */
2698
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
2699
+ simulations?: unknown;
2700
+ } & {
2701
+ [key: string]: unknown;
2702
+ };
2703
+ } | {
2704
+ /** @enum {string} */
2705
+ code: "INSUFFICIENT_LIQUIDITY";
2706
+ /**
2707
+ * @description Human-readable error message
2708
+ * @example Invalid input
2709
+ */
2710
+ message: string;
2711
+ /** @description Fillable subset and unfillable remainder */
2712
+ details?: {
2713
+ /** @description Intents fillable with current liquidity */
2714
+ availableIntents: {
2715
+ [key: string]: string;
2716
+ }[];
2717
+ /** @description Token amounts that cannot be filled */
2718
+ unfillable: {
2719
+ [key: string]: string;
2720
+ };
2721
+ };
2722
+ } | {
2723
+ /** @enum {string} */
2724
+ code: "KEY_SCOPE_DENIED";
2725
+ /**
2726
+ * @description Human-readable error message
2727
+ * @example Invalid input
2728
+ */
2729
+ message: string;
2730
+ /** @description Single-element list describing the failing scope */
2731
+ details?: {
2732
+ message: string;
2733
+ context: {
2734
+ /**
2735
+ * @description Which scope rejected the request
2736
+ * @enum {string}
2737
+ */
2738
+ scope: "allowMainnet" | "intents" | "deposits";
2739
+ /** @description Minimum level the endpoint demands */
2740
+ required: boolean | ("read" | "write");
2741
+ /** @description Level resolved on the key */
2742
+ actual: boolean | ("none" | "read" | "write");
2743
+ };
2744
+ }[];
2745
+ } | {
2746
+ /** @enum {string} */
2747
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
2748
+ /**
2749
+ * @description Human-readable error message
2750
+ * @example Invalid input
2751
+ */
2752
+ message: string;
2753
+ };
2754
+ };
2755
+ };
2756
+ /** @description API key scope denied */
2757
+ 403: {
2758
+ headers: {
2759
+ [name: string]: unknown;
2760
+ };
2761
+ content: {
2762
+ "application/json": {
2763
+ /** @enum {string} */
2764
+ code: "VALIDATION_ERROR";
2765
+ /**
2766
+ * @description Human-readable error message
2767
+ * @example Invalid input
2768
+ */
2769
+ message: string;
2770
+ /** @description Per-field validation issues */
2771
+ details?: {
2772
+ /** @description Human-readable issue description */
2773
+ message: string;
2774
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
2775
+ context?: {
2776
+ [key: string]: unknown;
2777
+ };
2778
+ }[];
2779
+ } | {
2780
+ /** @enum {string} */
2781
+ code: "SIMULATION_FAILED";
2782
+ /**
2783
+ * @description Human-readable error message
2784
+ * @example Invalid input
2785
+ */
2786
+ message: string;
2787
+ /** @description Classified on-chain simulation failure details */
2788
+ details?: {
2789
+ nonce?: string;
2790
+ category: string;
2791
+ errorSelector: string;
2792
+ errorName: string;
2793
+ errorArgs?: {
2794
+ [key: string]: string;
2795
+ };
2796
+ retryable: boolean;
2797
+ /** @enum {string} */
2798
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
2799
+ simulations?: unknown;
2800
+ } & {
2801
+ [key: string]: unknown;
2802
+ };
2803
+ } | {
2804
+ /** @enum {string} */
2805
+ code: "INSUFFICIENT_LIQUIDITY";
2806
+ /**
2807
+ * @description Human-readable error message
2808
+ * @example Invalid input
2809
+ */
2810
+ message: string;
2811
+ /** @description Fillable subset and unfillable remainder */
2812
+ details?: {
2813
+ /** @description Intents fillable with current liquidity */
2814
+ availableIntents: {
2815
+ [key: string]: string;
2816
+ }[];
2817
+ /** @description Token amounts that cannot be filled */
2818
+ unfillable: {
2819
+ [key: string]: string;
2820
+ };
2821
+ };
2822
+ } | {
2823
+ /** @enum {string} */
2824
+ code: "KEY_SCOPE_DENIED";
2825
+ /**
2826
+ * @description Human-readable error message
2827
+ * @example Invalid input
2828
+ */
2829
+ message: string;
2830
+ /** @description Single-element list describing the failing scope */
2831
+ details?: {
2832
+ message: string;
2833
+ context: {
2834
+ /**
2835
+ * @description Which scope rejected the request
2836
+ * @enum {string}
2837
+ */
2838
+ scope: "allowMainnet" | "intents" | "deposits";
2839
+ /** @description Minimum level the endpoint demands */
2840
+ required: boolean | ("read" | "write");
2841
+ /** @description Level resolved on the key */
2842
+ actual: boolean | ("none" | "read" | "write");
2843
+ };
2844
+ }[];
2845
+ } | {
2846
+ /** @enum {string} */
2847
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
2848
+ /**
2849
+ * @description Human-readable error message
2850
+ * @example Invalid input
2851
+ */
2852
+ message: string;
2853
+ };
2854
+ };
2855
+ };
2856
+ /** @description Insufficient liquidity to fill the full amount. Partial splits returned. */
2857
+ 422: {
2858
+ headers: {
2859
+ [name: string]: unknown;
2860
+ };
2861
+ content: {
2862
+ "application/json": {
2863
+ /** @enum {string} */
2864
+ code: "INSUFFICIENT_LIQUIDITY";
2865
+ /**
2866
+ * @description Human-readable error message
2867
+ * @example Invalid input
2868
+ */
2869
+ message: string;
2870
+ /** @description Fillable subset and unfillable remainder */
2871
+ details?: {
2872
+ /** @description Intents fillable with current liquidity */
2873
+ availableIntents: {
2874
+ [key: string]: string;
2875
+ }[];
2876
+ /** @description Token amounts that cannot be filled */
2877
+ unfillable: {
2878
+ [key: string]: string;
2879
+ };
2880
+ };
2881
+ };
2882
+ };
2883
+ };
2884
+ /** @description Server error */
2885
+ 500: {
2886
+ headers: {
2887
+ [name: string]: unknown;
2888
+ };
2889
+ content: {
2890
+ "application/json": {
2891
+ /** @enum {string} */
2892
+ code: "VALIDATION_ERROR";
2893
+ /**
2894
+ * @description Human-readable error message
2895
+ * @example Invalid input
2896
+ */
2897
+ message: string;
2898
+ /** @description Per-field validation issues */
2899
+ details?: {
2900
+ /** @description Human-readable issue description */
2901
+ message: string;
2902
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
2903
+ context?: {
2904
+ [key: string]: unknown;
2905
+ };
2906
+ }[];
2907
+ } | {
2908
+ /** @enum {string} */
2909
+ code: "SIMULATION_FAILED";
2910
+ /**
2911
+ * @description Human-readable error message
2912
+ * @example Invalid input
2913
+ */
2914
+ message: string;
2915
+ /** @description Classified on-chain simulation failure details */
2916
+ details?: {
2917
+ nonce?: string;
2918
+ category: string;
2919
+ errorSelector: string;
2920
+ errorName: string;
2921
+ errorArgs?: {
2922
+ [key: string]: string;
2923
+ };
2924
+ retryable: boolean;
2925
+ /** @enum {string} */
2926
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
2927
+ simulations?: unknown;
2928
+ } & {
2929
+ [key: string]: unknown;
2930
+ };
2931
+ } | {
2932
+ /** @enum {string} */
2933
+ code: "INSUFFICIENT_LIQUIDITY";
2934
+ /**
2935
+ * @description Human-readable error message
2936
+ * @example Invalid input
2937
+ */
2938
+ message: string;
2939
+ /** @description Fillable subset and unfillable remainder */
2940
+ details?: {
2941
+ /** @description Intents fillable with current liquidity */
2942
+ availableIntents: {
2943
+ [key: string]: string;
2944
+ }[];
2945
+ /** @description Token amounts that cannot be filled */
2946
+ unfillable: {
2947
+ [key: string]: string;
2948
+ };
2949
+ };
2950
+ } | {
2951
+ /** @enum {string} */
2952
+ code: "KEY_SCOPE_DENIED";
2953
+ /**
2954
+ * @description Human-readable error message
2955
+ * @example Invalid input
2956
+ */
2957
+ message: string;
2958
+ /** @description Single-element list describing the failing scope */
2959
+ details?: {
2960
+ message: string;
2961
+ context: {
2962
+ /**
2963
+ * @description Which scope rejected the request
2964
+ * @enum {string}
2965
+ */
2966
+ scope: "allowMainnet" | "intents" | "deposits";
2967
+ /** @description Minimum level the endpoint demands */
2968
+ required: boolean | ("read" | "write");
2969
+ /** @description Level resolved on the key */
2970
+ actual: boolean | ("none" | "read" | "write");
2971
+ };
2972
+ }[];
2973
+ } | {
2974
+ /** @enum {string} */
2975
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
2976
+ /**
2977
+ * @description Human-readable error message
2978
+ * @example Invalid input
2979
+ */
2980
+ message: string;
2981
+ };
2982
+ };
2983
+ };
2984
+ };
2985
+ };
2986
+ createQuote: {
2987
+ parameters: {
2988
+ query?: never;
2989
+ header: {
2990
+ /** @description API version. Required; pinned to this document. */
2991
+ "x-api-version": "2026-04.blanc";
2992
+ /** @description API key. */
2993
+ "x-api-key": string;
2994
+ };
2995
+ path?: never;
2996
+ cookie?: never;
2997
+ };
2998
+ requestBody: {
2999
+ content: {
3000
+ "application/json": {
3001
+ /**
3002
+ * @description CAIP-2 chain identifier of the destination chain (EVM `eip155:<id>`, or non-EVM `solana:…`/`tron:…`)
3003
+ * @example eip155:8453
3004
+ */
3005
+ destinationChainId: string;
3006
+ /** @description A list of token requested on the target chain */
3007
+ tokenRequests: {
3008
+ /**
3009
+ * @description The address of the requested token. Format depends on destination chain — 0x-hex for EVM, base58 SPL mint for Solana, T-address for Tron.
3010
+ * @example 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
3011
+ */
3012
+ tokenAddress: string;
3013
+ /**
3014
+ * Format: uint256
3015
+ * @description The amount of the requested token (in the smallest unit). Omit for max-out.
3016
+ * @example 1000000
3017
+ */
3018
+ amount?: string;
3019
+ /**
3020
+ * @description HyperCore balance class for this token request — 'spot' or 'perp'. Optional; defaults to 'perp' when destinationChainId is HyperCore. Rejected on every other destination.
3021
+ * @example spot
3022
+ * @enum {string}
3023
+ */
3024
+ balance?: "spot" | "perp";
3025
+ }[];
3026
+ /** @description Account details */
3027
+ account: {
3028
+ /**
3029
+ * @description Account address
3030
+ * @example 0x579d5631f76126991c00fb8fe5467fa9d49e5f6a
3031
+ */
3032
+ address: string;
3033
+ /**
3034
+ * @description Account type. Blanc clients should use `ERC7579`; the legacy `smartAccount` value is equivalent and accepted for alps wire compatibility, and gets rewritten to `ERC7579` by the `alpsAccountType` versioning change before Zod validation.
3035
+ * @enum {string}
3036
+ */
3037
+ accountType?: "smartAccount" | "GENERIC" | "EOA" | "ERC7579";
3038
+ /** @description Setup operations for the smart account. Only used if the account is not deployed */
3039
+ setupOps?: {
3040
+ /**
3041
+ * @description Account deployment factory address
3042
+ * @example 0x579d5631f76126991c00fb8fe5467fa9d49e5f6a
3043
+ */
3044
+ to: string;
3045
+ /**
3046
+ * @description Account deployment data
3047
+ * @example 0x...
3048
+ */
3049
+ data: string;
3050
+ }[];
3051
+ /** @description Per-chain stub signatures used only during gas estimation. Required for smart-session flows where the real signature length depends on session policy — the orchestrator needs a same-shape placeholder to simulate the verification cost. Keys are chain IDs as decimal strings; `"0"` is a cross-chain fallback applied when no chain-specific entry matches. */
3052
+ mockSignatures?: {
3053
+ [key: string]: string;
3054
+ };
3055
+ /** @description Deprecated. Must be omitted; use `mockSignatures` (keyed by chain id) instead. */
3056
+ mockSignature?: unknown;
3057
+ /** @description Per-chain specific map to delegated contract address for 7702 delegations. Use `0` to indicate cross-chain delegation */
3058
+ delegations?: {
3059
+ [key: string]: {
3060
+ /** @description address of contract to which delegation on behalf of sponsor will be assumed for given chain ID */
3061
+ contract: string;
3062
+ };
3063
+ };
3064
+ };
3065
+ /** @description Execution calls on the target chain. */
3066
+ destinationExecutions?: {
3067
+ /**
3068
+ * @description Target contract address for execution
3069
+ * @example 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
3070
+ */
3071
+ to: string;
3072
+ /**
3073
+ * Format: uint256
3074
+ * @description Amount of ETH (in wei) sent in the execution
3075
+ * @example 0
3076
+ */
3077
+ value: string;
3078
+ /**
3079
+ * @description Encoded function call data
3080
+ * @example 0xa9059cbb000000000000000000000000579d5631f76126991c00fb8fe5467fa9d49e5f6a00000000000000000000000000000000000000000000000000000000000f4240
3081
+ */
3082
+ data: string;
3083
+ }[];
3084
+ /**
3085
+ * @description Execution calls to perform before the claim on each origin chain, keyed by chain ID. Max 10 ops per chain, max 5 chains.
3086
+ * @example {
3087
+ * "8453": [
3088
+ * {
3089
+ * "to": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
3090
+ * "value": "0",
3091
+ * "data": "0x"
3092
+ * }
3093
+ * ]
3094
+ * }
3095
+ */
3096
+ preClaimExecutions?: {
3097
+ [key: string]: {
3098
+ /**
3099
+ * @description Target contract address for execution
3100
+ * @example 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
3101
+ */
3102
+ to: string;
3103
+ /**
3104
+ * Format: uint256
3105
+ * @description Amount of ETH (in wei) sent in the execution
3106
+ * @example 0
3107
+ */
3108
+ value: string;
3109
+ /**
3110
+ * @description Encoded function call data
3111
+ * @example 0xa9059cbb000000000000000000000000579d5631f76126991c00fb8fe5467fa9d49e5f6a00000000000000000000000000000000000000000000000000000000000f4240
3112
+ */
3113
+ data: string;
3114
+ }[];
3115
+ };
3116
+ /**
3117
+ * Format: uint256
3118
+ * @description The gas limit for the target chain executions
3119
+ * @example 100000
3120
+ */
3121
+ destinationGasLimit?: string;
3122
+ /** @description Account access list specifying which chains and tokens an account may access */
3123
+ accountAccessList?: {
3124
+ chainIds?: number[];
3125
+ tokens?: (string | ("ETH" | "USDC" | "WETH" | "USDT" | "USDT0" | "BNB" | "WBNB" | "XDAI" | "WXDAI" | "POL" | "WPOL" | "MON" | "WMON" | "S" | "WS" | "HYPE" | "WHYPE" | "USDG" | "XPL" | "WXPL" | "MockUSD" | "TRX" | "WTRX" | "SOL" | "WSOL"))[];
3126
+ chainTokens?: {
3127
+ [key: string]: (string | ("ETH" | "USDC" | "WETH" | "USDT" | "USDT0" | "BNB" | "WBNB" | "XDAI" | "WXDAI" | "POL" | "WPOL" | "MON" | "WMON" | "S" | "WS" | "HYPE" | "WHYPE" | "USDG" | "XPL" | "WXPL" | "MockUSD" | "TRX" | "WTRX" | "SOL" | "WSOL"))[];
3128
+ };
3129
+ chainTokenAmounts?: {
3130
+ [key: string]: {
3131
+ [key: string]: string;
3132
+ };
3133
+ };
3134
+ exclude?: {
3135
+ chainIds?: number[];
3136
+ tokens?: (string | ("ETH" | "USDC" | "WETH" | "USDT" | "USDT0" | "BNB" | "WBNB" | "XDAI" | "WXDAI" | "POL" | "WPOL" | "MON" | "WMON" | "S" | "WS" | "HYPE" | "WHYPE" | "USDG" | "XPL" | "WXPL" | "MockUSD" | "TRX" | "WTRX" | "SOL" | "WSOL"))[];
3137
+ chainTokens?: {
3138
+ [key: string]: (string | ("ETH" | "USDC" | "WETH" | "USDT" | "USDT0" | "BNB" | "WBNB" | "XDAI" | "WXDAI" | "POL" | "WPOL" | "MON" | "WMON" | "S" | "WS" | "HYPE" | "WHYPE" | "USDG" | "XPL" | "WXPL" | "MockUSD" | "TRX" | "WTRX" | "SOL" | "WSOL"))[];
3139
+ };
3140
+ };
3141
+ };
3142
+ recipient?: {
3143
+ /**
3144
+ * @description Recipient address. Format depends on destination chain — 0x-hex for EVM destinations, base58 for Solana, T-address for Tron.
3145
+ * @example 0x579d5631f76126991c00fb8fe5467fa9d49e5f6a
3146
+ */
3147
+ address: string;
3148
+ /**
3149
+ * @description Account type. Blanc clients should use `ERC7579`; the legacy `smartAccount` value is equivalent and accepted for alps wire compatibility, and gets rewritten to `ERC7579` by the `alpsAccountType` versioning change before Zod validation.
3150
+ * @enum {string}
3151
+ */
3152
+ accountType?: "smartAccount" | "GENERIC" | "EOA" | "ERC7579";
3153
+ /** @description Setup operations for the smart account. Only used if the account is not deployed */
3154
+ setupOps?: {
3155
+ /**
3156
+ * @description Account deployment factory address
3157
+ * @example 0x579d5631f76126991c00fb8fe5467fa9d49e5f6a
3158
+ */
3159
+ to: string;
3160
+ /**
3161
+ * @description Account deployment data
3162
+ * @example 0x...
3163
+ */
3164
+ data: string;
3165
+ }[];
3166
+ /** @description Per-chain stub signatures used only during gas estimation. Required for smart-session flows where the real signature length depends on session policy — the orchestrator needs a same-shape placeholder to simulate the verification cost. Keys are chain IDs as decimal strings; `"0"` is a cross-chain fallback applied when no chain-specific entry matches. */
3167
+ mockSignatures?: {
3168
+ [key: string]: string;
3169
+ };
3170
+ /** @description Deprecated. Must be omitted; use `mockSignatures` (keyed by chain id) instead. */
3171
+ mockSignature?: unknown;
3172
+ /** @description Per-chain specific map to delegated contract address for 7702 delegations. Use `0` to indicate cross-chain delegation */
3173
+ delegations?: {
3174
+ [key: string]: {
3175
+ /** @description address of contract to which delegation on behalf of sponsor will be assumed for given chain ID */
3176
+ contract: string;
3177
+ };
3178
+ };
3179
+ };
3180
+ /**
3181
+ * @description Intent options
3182
+ * @example {
3183
+ * "settlementLayers": {
3184
+ * "include": [
3185
+ * "ECO"
3186
+ * ]
3187
+ * },
3188
+ * "sponsorSettings": {
3189
+ * "gas": true,
3190
+ * "bridgeFees": true,
3191
+ * "swapFees": true
3192
+ * },
3193
+ * "feeToken": "USDC"
3194
+ * }
3195
+ */
3196
+ options?: {
3197
+ /**
3198
+ * @description Which settlement layers the orchestrator may use. `{ include: [...] }` (allow-list) or `{ exclude: [...] }` (deny-list, inverted against the orchestrator's live layer set); a bare array means `include`. Internal modes (`SAME_CHAIN`, `INTENT_EXECUTOR`) are not selectable. Default unset = all layers eligible.
3199
+ * @example {
3200
+ * "exclude": [
3201
+ * "RELAY"
3202
+ * ]
3203
+ * }
3204
+ */
3205
+ settlementLayers?: ("ACROSS" | "ECO" | "RELAY" | "OFT" | "NEAR" | "RHINO" | "CCTP")[] | {
3206
+ include: ("ACROSS" | "ECO" | "RELAY" | "OFT" | "NEAR" | "RHINO" | "CCTP")[];
3207
+ } | {
3208
+ exclude: ("ACROSS" | "ECO" | "RELAY" | "OFT" | "NEAR" | "RHINO" | "CCTP")[];
3209
+ };
3210
+ /**
3211
+ * @description Sponsor settings for the intent
3212
+ * @example {
3213
+ * "gas": true,
3214
+ * "bridgeFees": true,
3215
+ * "swapFees": true
3216
+ * }
3217
+ */
3218
+ sponsorSettings?: {
3219
+ /**
3220
+ * @description Whether to sponsor gas for the intent
3221
+ * @default false
3222
+ * @example true
3223
+ */
3224
+ gas?: boolean;
3225
+ /**
3226
+ * @description Whether to sponsor bridge fees for the intent
3227
+ * @default false
3228
+ */
3229
+ bridgeFees?: boolean;
3230
+ /**
3231
+ * @description Whether to sponsor swap fees for the intent
3232
+ * @default false
3233
+ */
3234
+ swapFees?: boolean;
3235
+ };
3236
+ /**
3237
+ * @description How the user's intent signature will be verified onchain. `ECDSA` for plain EOA signatures; `ERC1271_EMISSARY` for smart-account signatures verified via TheCompact emissary delegation. The orchestrator picks a default based on `account.accountType` — only set this if you need to override.
3238
+ * @example 3
3239
+ * @enum {string}
3240
+ */
3241
+ signatureMode?: "EMISSARY" | "ERC1271" | "EMISSARY_ERC1271" | "ERC1271_EMISSARY" | "EMISSARY_EXECUTION" | "EMISSARY_EXECUTION_ERC1271" | "ERC1271_EMISSARY_EXECUTION" | 0 | 1 | 2 | 3 | 4 | 5 | 6;
3242
+ /**
3243
+ * @description Reserved for future use. No effect today.
3244
+ * @enum {string}
3245
+ */
3246
+ feeToken?: "ETH" | "USDC" | "WETH" | "USDT" | "USDT0" | "BNB" | "WBNB" | "XDAI" | "WXDAI" | "POL" | "WPOL" | "MON" | "WMON" | "S" | "WS" | "HYPE" | "WHYPE" | "USDG" | "XPL" | "WXPL" | "MockUSD" | "TRX" | "WTRX" | "SOL" | "WSOL";
3247
+ appFees?: {
3248
+ /**
3249
+ * @description App fee rate in basis points of the input value (0–10000 = 0–100%).
3250
+ * @example 25
3251
+ */
3252
+ feeBps: number;
3253
+ };
3254
+ /**
3255
+ * @description Tokens that will be received by EOA executions. These will be swept to the recipient account.
3256
+ * @example [
3257
+ * "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
3258
+ * ]
3259
+ */
3260
+ executionTokensReceived?: string[];
3261
+ /**
3262
+ * @description Additional balances the quote should treat as available, beyond what is currently on the account. Use this to get a preliminary quote against funds you can produce by the time you submit — e.g. liquidity in a DeFi vault you will withdraw, an in-flight CEX deposit, or a parallel transfer from another wallet. Keyed by chain ID, then token address; amounts in the token's smallest unit.
3263
+ * @example {
3264
+ * "42161": {
3265
+ * "0xaf88d065e77c8cC2239327C5EDb3A432268e5831": "500000000"
3266
+ * }
3267
+ * }
3268
+ */
3269
+ auxiliaryFunds?: {
3270
+ [key: string]: {
3271
+ [key: string]: string;
3272
+ };
3273
+ };
3274
+ /**
3275
+ * @description How to rank candidate plans. `cheapest` minimizes direct USD cost. `fastest` minimizes estimated fill time (with cost tiebreaker). `best` balances both via a notional- and time-weighted shadow fee.
3276
+ * @example best
3277
+ * @enum {string}
3278
+ */
3279
+ selectionStrategy?: "cheapest" | "fastest" | "best";
3280
+ };
3281
+ };
3282
+ };
3283
+ };
3284
+ responses: {
3285
+ /** @description OK */
3286
+ 200: {
3287
+ headers: {
3288
+ [name: string]: unknown;
3289
+ };
3290
+ content: {
3291
+ "application/json": {
3292
+ /** @description Route candidates ranked by the orchestrator's internal scoring (cheaper + faster wins). The first entry is the recommended route — most clients should submit it without inspecting the rest. */
3293
+ routes: {
3294
+ /** @description Server-stored intent identifier. Pass back to `POST /intents` to submit. */
3295
+ intentId: string;
3296
+ /**
3297
+ * @description Quote expiry timestamp (Unix seconds). After this point, assume the quote is dead and re-quote.
3298
+ * @example 1733493192
3299
+ */
3300
+ expiresAt: number;
3301
+ /** @description Estimated fill time for the route */
3302
+ estimatedFillTime: {
3303
+ /**
3304
+ * @description Typical end-to-end fill time for this route in seconds. Directional, not guaranteed.
3305
+ * @example 3
3306
+ */
3307
+ seconds: number;
3308
+ };
3309
+ /**
3310
+ * @description Settlement layer selected for this route
3311
+ * @example RELAY
3312
+ * @enum {string}
3313
+ */
3314
+ settlementLayer: "INTENT_EXECUTOR" | "SAME_CHAIN" | "ACROSS" | "ECO" | "RELAY" | "OFT" | "NEAR" | "RHINO" | "CCTP";
3315
+ /** @description EIP-712 sign payloads the client submits back on `POST /intents` */
3316
+ signData: {
3317
+ /** @description Typed data payloads for the origin legs, in submission order. Sign each entry and submit the signatures in matching order via `signatures.origin`. */
3318
+ origin: {
3319
+ /** @description EIP-712 domain separator fields */
3320
+ domain: {
3321
+ name?: string;
3322
+ version?: string;
3323
+ chainId?: number;
3324
+ verifyingContract?: string;
3325
+ salt?: string;
3326
+ };
3327
+ /** @description EIP-712 type definitions keyed by type name */
3328
+ types: {
3329
+ [key: string]: {
3330
+ name: string;
3331
+ type: string;
3332
+ }[];
3333
+ };
3334
+ /**
3335
+ * @description Name of the top-level type to sign
3336
+ * @example PermitBatchWitnessTransferFrom
3337
+ */
3338
+ primaryType: string;
3339
+ /** @description Message values keyed by field name. uint256 fields are encoded as decimal strings on the wire and re-coerced to bigint client-side before signing. */
3340
+ message: {
3341
+ [key: string]: unknown;
3342
+ };
3343
+ }[];
3344
+ /** @description Typed data for the destination leg */
3345
+ destination: {
3346
+ /** @description EIP-712 domain separator fields */
3347
+ domain: {
3348
+ name?: string;
3349
+ version?: string;
3350
+ chainId?: number;
3351
+ verifyingContract?: string;
3352
+ salt?: string;
3353
+ };
3354
+ /** @description EIP-712 type definitions keyed by type name */
3355
+ types: {
3356
+ [key: string]: {
3357
+ name: string;
3358
+ type: string;
3359
+ }[];
3360
+ };
3361
+ /**
3362
+ * @description Name of the top-level type to sign
3363
+ * @example PermitBatchWitnessTransferFrom
3364
+ */
3365
+ primaryType: string;
3366
+ /** @description Message values keyed by field name. uint256 fields are encoded as decimal strings on the wire and re-coerced to bigint client-side before signing. */
3367
+ message: {
3368
+ [key: string]: unknown;
3369
+ };
3370
+ };
3371
+ /** @description Typed data for the target execution, smart sessions only. Omitted for EOA accounts. */
3372
+ targetExecution?: {
3373
+ /** @description EIP-712 domain separator fields */
3374
+ domain: {
3375
+ name?: string;
3376
+ version?: string;
3377
+ chainId?: number;
3378
+ verifyingContract?: string;
3379
+ salt?: string;
3380
+ };
3381
+ /** @description EIP-712 type definitions keyed by type name */
3382
+ types: {
3383
+ [key: string]: {
3384
+ name: string;
3385
+ type: string;
3386
+ }[];
3387
+ };
3388
+ /**
3389
+ * @description Name of the top-level type to sign
3390
+ * @example PermitBatchWitnessTransferFrom
3391
+ */
3392
+ primaryType: string;
3393
+ /** @description Message values keyed by field name. uint256 fields are encoded as decimal strings on the wire and re-coerced to bigint client-side before signing. */
3394
+ message: {
3395
+ [key: string]: unknown;
3396
+ };
3397
+ };
3398
+ };
3399
+ /** @description Route cost: inputs, outputs, and fee breakdown */
3400
+ cost: {
3401
+ /** @description Tokens debited from the user, coalesced by (chainId, tokenAddress) */
3402
+ input: {
3403
+ /**
3404
+ * @description Chain where this token leg settles
3405
+ * @example eip155:8453
3406
+ */
3407
+ chainId: string;
3408
+ /**
3409
+ * @description ERC-20 contract address for this token
3410
+ * @example 0xaf88d065e77c8cc2239327c5edb3a432268e5831
3411
+ */
3412
+ tokenAddress: string;
3413
+ /**
3414
+ * @description Token symbol. `null` when the internal token registry has no entry for this address.
3415
+ * @example USDC
3416
+ */
3417
+ symbol: string | null;
3418
+ /**
3419
+ * @description Token decimals. `null` when the internal token registry has no entry for this address.
3420
+ * @example 6
3421
+ */
3422
+ decimals: number | null;
3423
+ /** @description Unit price in USD. `null` when the price oracle has no data for this token. */
3424
+ price: {
3425
+ /**
3426
+ * @description Unit price in USD
3427
+ * @example 1
3428
+ */
3429
+ usd: number;
3430
+ } | null;
3431
+ /**
3432
+ * Format: uint256
3433
+ * @description Token amount in the token's smallest unit
3434
+ * @example 1050000
3435
+ */
3436
+ amount: string;
3437
+ }[];
3438
+ /** @description Tokens delivered to the recipient, coalesced by (chainId, tokenAddress) */
3439
+ output: {
3440
+ /**
3441
+ * @description Chain where this token leg settles (CAIP-2, any namespace)
3442
+ * @example eip155:8453
3443
+ */
3444
+ chainId: string;
3445
+ /**
3446
+ * @description Contract address of the delivered token (EVM 0x or non-EVM base58)
3447
+ * @example 0xaf88d065e77c8cc2239327c5edb3a432268e5831
3448
+ */
3449
+ tokenAddress: string;
3450
+ /**
3451
+ * @description Token symbol. `null` when the internal token registry has no entry for this address.
3452
+ * @example USDC
3453
+ */
3454
+ symbol: string | null;
3455
+ /**
3456
+ * @description Token decimals. `null` when the internal token registry has no entry for this address.
3457
+ * @example 6
3458
+ */
3459
+ decimals: number | null;
3460
+ /** @description Unit price in USD. `null` when the price oracle has no data for this token. */
3461
+ price: {
3462
+ /**
3463
+ * @description Unit price in USD
3464
+ * @example 1
3465
+ */
3466
+ usd: number;
3467
+ } | null;
3468
+ /**
3469
+ * Format: uint256
3470
+ * @description Token amount in the token's smallest unit
3471
+ * @example 1050000
3472
+ */
3473
+ amount: string;
3474
+ }[];
3475
+ /** @description Aggregate route fees with per-category breakdown */
3476
+ fees: {
3477
+ /** @description Full route cost in USD, regardless of who pays. Equal to `sum(breakdown.*.usd)` modulo rounding. */
3478
+ total: {
3479
+ /**
3480
+ * @description USD-denominated value
3481
+ * @example 0.029
3482
+ */
3483
+ usd: number;
3484
+ };
3485
+ /** @description Per-category fee breakdown */
3486
+ breakdown: {
3487
+ /** @description Aggregate gas cost (destination fill, swap execution, origin gas) */
3488
+ gas: {
3489
+ /**
3490
+ * @description Total cost of this category in USD, regardless of who pays.
3491
+ * @example 0.029
3492
+ */
3493
+ usd: number;
3494
+ /**
3495
+ * @description True when a sponsor absorbs some or all of this category. The user-vs-sponsor split is not surfaced.
3496
+ * @example false
3497
+ */
3498
+ sponsored: boolean;
3499
+ };
3500
+ /** @description Aggregate settlement-layer bridge cost */
3501
+ bridge: {
3502
+ /**
3503
+ * @description Total cost of this category in USD, regardless of who pays.
3504
+ * @example 0.029
3505
+ */
3506
+ usd: number;
3507
+ /**
3508
+ * @description True when a sponsor absorbs some or all of this category. The user-vs-sponsor split is not surfaced.
3509
+ * @example false
3510
+ */
3511
+ sponsored: boolean;
3512
+ };
3513
+ /** @description Aggregate solver swap commission */
3514
+ swap: {
3515
+ /**
3516
+ * @description Total cost of this category in USD, regardless of who pays.
3517
+ * @example 0.029
3518
+ */
3519
+ usd: number;
3520
+ /**
3521
+ * @description True when a sponsor absorbs some or all of this category. The user-vs-sponsor split is not surfaced.
3522
+ * @example false
3523
+ */
3524
+ sponsored: boolean;
3525
+ };
3526
+ /** @description Aggregate integrator app fee */
3527
+ app: {
3528
+ /**
3529
+ * @description Total cost of this category in USD, regardless of who pays.
3530
+ * @example 0.029
3531
+ */
3532
+ usd: number;
3533
+ /**
3534
+ * @description True when a sponsor absorbs some or all of this category. The user-vs-sponsor split is not surfaced.
3535
+ * @example false
3536
+ */
3537
+ sponsored: boolean;
3538
+ };
3539
+ };
3540
+ };
3541
+ };
3542
+ /**
3543
+ * @description Pre-flight token operations the user must perform before submitting this route (approvals, wrapping). Emitted for EOA accounts only — smart accounts handle these internally.
3544
+ * @example {
3545
+ * "8453": {
3546
+ * "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913": {
3547
+ * "type": "approval",
3548
+ * "amount": "1000000",
3549
+ * "spender": "0x000000000022d473030f116ddee9f6b43ac78ba3"
3550
+ * }
3551
+ * }
3552
+ * }
3553
+ */
3554
+ tokenRequirements?: {
3555
+ [key: string]: {
3556
+ [key: string]: {
3557
+ /**
3558
+ * @description Discriminator: `approval` means the user must ERC-20 approve `spender` for at least `amount` before submission.
3559
+ * @enum {string}
3560
+ */
3561
+ type: "approval";
3562
+ /**
3563
+ * Format: uint256
3564
+ * @description Minimum required allowance, in the token's smallest unit.
3565
+ */
3566
+ amount: string;
3567
+ /** @description Always the canonical Permit2 contract on this chain. The EOA approves Permit2; the settlement contract pulls funds via Permit2 at claim time. */
3568
+ spender: string;
3569
+ } | {
3570
+ /**
3571
+ * @description Discriminator: `wrap` means the user must wrap native ETH into the chain's WETH-equivalent before submission.
3572
+ * @enum {string}
3573
+ */
3574
+ type: "wrap";
3575
+ /**
3576
+ * Format: uint256
3577
+ * @description Minimum amount to wrap, in wei.
3578
+ */
3579
+ amount: string;
3580
+ };
3581
+ };
3582
+ };
3583
+ /** @description Provider handle for resolving the destination-chain delivery transaction when settlement hands off to a third-party bridge (RHINO, RELAY, NEAR, CCTP, OFT). Absent when the orchestrator settles end-to-end (e.g. ACROSS, ECO). */
3584
+ bridgeFill?: {
3585
+ /** @description Destination chain ID for the bridge fill */
3586
+ destinationChainId: number;
3587
+ /** @description Optional bridge-specific fill deadline duration, in seconds. Preserved on stored quote reload so checksum validation uses the same bridgeFill payload that was signed at quote time. */
3588
+ fillExpirationPeriod?: number;
3589
+ /** @description Fill-tracker watch window, in seconds. The orchestrator owns this timeout; the fill-tracker reads it here to decide when a bridge fill has timed out. */
3590
+ fillStatusTimeout: number;
3591
+ /**
3592
+ * @description LayerZero OFT
3593
+ * @enum {string}
3594
+ */
3595
+ type: "OFT";
3596
+ } | {
3597
+ /** @description Destination chain ID for the bridge fill */
3598
+ destinationChainId: number;
3599
+ /** @description Optional bridge-specific fill deadline duration, in seconds. Preserved on stored quote reload so checksum validation uses the same bridgeFill payload that was signed at quote time. */
3600
+ fillExpirationPeriod?: number;
3601
+ /** @description Fill-tracker watch window, in seconds. The orchestrator owns this timeout; the fill-tracker reads it here to decide when a bridge fill has timed out. */
3602
+ fillStatusTimeout: number;
3603
+ /**
3604
+ * @description Relay.link
3605
+ * @enum {string}
3606
+ */
3607
+ type: "RELAY";
3608
+ /** @description Relay.link request ID. Use against Relay.link's status API to track the destination-chain fill. */
3609
+ requestId: string;
3610
+ } | {
3611
+ /** @description Destination chain ID for the bridge fill */
3612
+ destinationChainId: number;
3613
+ /** @description Optional bridge-specific fill deadline duration, in seconds. Preserved on stored quote reload so checksum validation uses the same bridgeFill payload that was signed at quote time. */
3614
+ fillExpirationPeriod?: number;
3615
+ /** @description Fill-tracker watch window, in seconds. The orchestrator owns this timeout; the fill-tracker reads it here to decide when a bridge fill has timed out. */
3616
+ fillStatusTimeout: number;
3617
+ /**
3618
+ * @description NEAR Intents
3619
+ * @enum {string}
3620
+ */
3621
+ type: "NEAR";
3622
+ /** @description NEAR Intents deposit address. Track fill status via the NEAR Intents status API keyed on this address. */
3623
+ depositAddress: string;
3624
+ } | {
3625
+ /** @description Destination chain ID for the bridge fill */
3626
+ destinationChainId: number;
3627
+ /** @description Optional bridge-specific fill deadline duration, in seconds. Preserved on stored quote reload so checksum validation uses the same bridgeFill payload that was signed at quote time. */
3628
+ fillExpirationPeriod?: number;
3629
+ /** @description Fill-tracker watch window, in seconds. The orchestrator owns this timeout; the fill-tracker reads it here to decide when a bridge fill has timed out. */
3630
+ fillStatusTimeout: number;
3631
+ /**
3632
+ * @description Rhino.fi
3633
+ * @enum {string}
3634
+ */
3635
+ type: "RHINO";
3636
+ /** @description Rhino.fi commitment ID. Use against Rhino.fi's status API to track the destination-chain fill. */
3637
+ commitmentId: string;
3638
+ } | {
3639
+ /** @description Destination chain ID for the bridge fill */
3640
+ destinationChainId: number;
3641
+ /** @description Optional bridge-specific fill deadline duration, in seconds. Preserved on stored quote reload so checksum validation uses the same bridgeFill payload that was signed at quote time. */
3642
+ fillExpirationPeriod?: number;
3643
+ /** @description Fill-tracker watch window, in seconds. The orchestrator owns this timeout; the fill-tracker reads it here to decide when a bridge fill has timed out. */
3644
+ fillStatusTimeout: number;
3645
+ /**
3646
+ * @description Circle CCTP
3647
+ * @enum {string}
3648
+ */
3649
+ type: "CCTP";
3650
+ /** @description Circle CCTP source domain ID — needed to fetch the attestation for the burn message on the source chain. */
3651
+ sourceDomainId: number;
3652
+ /** @description Circle CCTP destination domain ID. */
3653
+ destinationDomainId: number;
3654
+ };
3655
+ }[];
3656
+ };
3657
+ };
3658
+ };
3659
+ /** @description Invalid request parameters */
3660
+ 400: {
3661
+ headers: {
3662
+ [name: string]: unknown;
3663
+ };
3664
+ content: {
3665
+ "application/json": {
3666
+ /** @enum {string} */
3667
+ code: "VALIDATION_ERROR";
3668
+ /**
3669
+ * @description Human-readable error message
3670
+ * @example Invalid input
3671
+ */
3672
+ message: string;
3673
+ /** @description Per-field validation issues */
3674
+ details?: {
3675
+ /** @description Human-readable issue description */
3676
+ message: string;
3677
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
3678
+ context?: {
3679
+ [key: string]: unknown;
3680
+ };
3681
+ }[];
3682
+ } | {
3683
+ /** @enum {string} */
3684
+ code: "SIMULATION_FAILED";
3685
+ /**
3686
+ * @description Human-readable error message
3687
+ * @example Invalid input
3688
+ */
3689
+ message: string;
3690
+ /** @description Classified on-chain simulation failure details */
3691
+ details?: {
3692
+ nonce?: string;
3693
+ category: string;
3694
+ errorSelector: string;
3695
+ errorName: string;
3696
+ errorArgs?: {
3697
+ [key: string]: string;
3698
+ };
3699
+ retryable: boolean;
3700
+ /** @enum {string} */
3701
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
3702
+ simulations?: unknown;
3703
+ } & {
3704
+ [key: string]: unknown;
3705
+ };
3706
+ } | {
3707
+ /** @enum {string} */
3708
+ code: "INSUFFICIENT_LIQUIDITY";
3709
+ /**
3710
+ * @description Human-readable error message
3711
+ * @example Invalid input
3712
+ */
3713
+ message: string;
3714
+ /** @description Fillable subset and unfillable remainder */
3715
+ details?: {
3716
+ /** @description Intents fillable with current liquidity */
3717
+ availableIntents: {
3718
+ [key: string]: string;
3719
+ }[];
3720
+ /** @description Token amounts that cannot be filled */
3721
+ unfillable: {
3722
+ [key: string]: string;
3723
+ };
3724
+ };
3725
+ } | {
3726
+ /** @enum {string} */
3727
+ code: "KEY_SCOPE_DENIED";
3728
+ /**
3729
+ * @description Human-readable error message
3730
+ * @example Invalid input
3731
+ */
3732
+ message: string;
3733
+ /** @description Single-element list describing the failing scope */
3734
+ details?: {
3735
+ message: string;
3736
+ context: {
3737
+ /**
3738
+ * @description Which scope rejected the request
3739
+ * @enum {string}
3740
+ */
3741
+ scope: "allowMainnet" | "intents" | "deposits";
3742
+ /** @description Minimum level the endpoint demands */
3743
+ required: boolean | ("read" | "write");
3744
+ /** @description Level resolved on the key */
3745
+ actual: boolean | ("none" | "read" | "write");
3746
+ };
3747
+ }[];
3748
+ } | {
3749
+ /** @enum {string} */
3750
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
3751
+ /**
3752
+ * @description Human-readable error message
3753
+ * @example Invalid input
3754
+ */
3755
+ message: string;
3756
+ };
3757
+ };
3758
+ };
3759
+ /** @description API key scope denied */
3760
+ 403: {
3761
+ headers: {
3762
+ [name: string]: unknown;
3763
+ };
3764
+ content: {
3765
+ "application/json": {
3766
+ /** @enum {string} */
3767
+ code: "VALIDATION_ERROR";
3768
+ /**
3769
+ * @description Human-readable error message
3770
+ * @example Invalid input
3771
+ */
3772
+ message: string;
3773
+ /** @description Per-field validation issues */
3774
+ details?: {
3775
+ /** @description Human-readable issue description */
3776
+ message: string;
3777
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
3778
+ context?: {
3779
+ [key: string]: unknown;
3780
+ };
3781
+ }[];
3782
+ } | {
3783
+ /** @enum {string} */
3784
+ code: "SIMULATION_FAILED";
3785
+ /**
3786
+ * @description Human-readable error message
3787
+ * @example Invalid input
3788
+ */
3789
+ message: string;
3790
+ /** @description Classified on-chain simulation failure details */
3791
+ details?: {
3792
+ nonce?: string;
3793
+ category: string;
3794
+ errorSelector: string;
3795
+ errorName: string;
3796
+ errorArgs?: {
3797
+ [key: string]: string;
3798
+ };
3799
+ retryable: boolean;
3800
+ /** @enum {string} */
3801
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
3802
+ simulations?: unknown;
3803
+ } & {
3804
+ [key: string]: unknown;
3805
+ };
3806
+ } | {
3807
+ /** @enum {string} */
3808
+ code: "INSUFFICIENT_LIQUIDITY";
3809
+ /**
3810
+ * @description Human-readable error message
3811
+ * @example Invalid input
3812
+ */
3813
+ message: string;
3814
+ /** @description Fillable subset and unfillable remainder */
3815
+ details?: {
3816
+ /** @description Intents fillable with current liquidity */
3817
+ availableIntents: {
3818
+ [key: string]: string;
3819
+ }[];
3820
+ /** @description Token amounts that cannot be filled */
3821
+ unfillable: {
3822
+ [key: string]: string;
3823
+ };
3824
+ };
3825
+ } | {
3826
+ /** @enum {string} */
3827
+ code: "KEY_SCOPE_DENIED";
3828
+ /**
3829
+ * @description Human-readable error message
3830
+ * @example Invalid input
3831
+ */
3832
+ message: string;
3833
+ /** @description Single-element list describing the failing scope */
3834
+ details?: {
3835
+ message: string;
3836
+ context: {
3837
+ /**
3838
+ * @description Which scope rejected the request
3839
+ * @enum {string}
3840
+ */
3841
+ scope: "allowMainnet" | "intents" | "deposits";
3842
+ /** @description Minimum level the endpoint demands */
3843
+ required: boolean | ("read" | "write");
3844
+ /** @description Level resolved on the key */
3845
+ actual: boolean | ("none" | "read" | "write");
3846
+ };
3847
+ }[];
3848
+ } | {
3849
+ /** @enum {string} */
3850
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
3851
+ /**
3852
+ * @description Human-readable error message
3853
+ * @example Invalid input
3854
+ */
3855
+ message: string;
3856
+ };
3857
+ };
3858
+ };
3859
+ /** @description Server error */
3860
+ 500: {
3861
+ headers: {
3862
+ [name: string]: unknown;
3863
+ };
3864
+ content: {
3865
+ "application/json": {
3866
+ /** @enum {string} */
3867
+ code: "VALIDATION_ERROR";
3868
+ /**
3869
+ * @description Human-readable error message
3870
+ * @example Invalid input
3871
+ */
3872
+ message: string;
3873
+ /** @description Per-field validation issues */
3874
+ details?: {
3875
+ /** @description Human-readable issue description */
3876
+ message: string;
3877
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
3878
+ context?: {
3879
+ [key: string]: unknown;
3880
+ };
3881
+ }[];
3882
+ } | {
3883
+ /** @enum {string} */
3884
+ code: "SIMULATION_FAILED";
3885
+ /**
3886
+ * @description Human-readable error message
3887
+ * @example Invalid input
3888
+ */
3889
+ message: string;
3890
+ /** @description Classified on-chain simulation failure details */
3891
+ details?: {
3892
+ nonce?: string;
3893
+ category: string;
3894
+ errorSelector: string;
3895
+ errorName: string;
3896
+ errorArgs?: {
3897
+ [key: string]: string;
3898
+ };
3899
+ retryable: boolean;
3900
+ /** @enum {string} */
3901
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
3902
+ simulations?: unknown;
3903
+ } & {
3904
+ [key: string]: unknown;
3905
+ };
3906
+ } | {
3907
+ /** @enum {string} */
3908
+ code: "INSUFFICIENT_LIQUIDITY";
3909
+ /**
3910
+ * @description Human-readable error message
3911
+ * @example Invalid input
3912
+ */
3913
+ message: string;
3914
+ /** @description Fillable subset and unfillable remainder */
3915
+ details?: {
3916
+ /** @description Intents fillable with current liquidity */
3917
+ availableIntents: {
3918
+ [key: string]: string;
3919
+ }[];
3920
+ /** @description Token amounts that cannot be filled */
3921
+ unfillable: {
3922
+ [key: string]: string;
3923
+ };
3924
+ };
3925
+ } | {
3926
+ /** @enum {string} */
3927
+ code: "KEY_SCOPE_DENIED";
3928
+ /**
3929
+ * @description Human-readable error message
3930
+ * @example Invalid input
3931
+ */
3932
+ message: string;
3933
+ /** @description Single-element list describing the failing scope */
3934
+ details?: {
3935
+ message: string;
3936
+ context: {
3937
+ /**
3938
+ * @description Which scope rejected the request
3939
+ * @enum {string}
3940
+ */
3941
+ scope: "allowMainnet" | "intents" | "deposits";
3942
+ /** @description Minimum level the endpoint demands */
3943
+ required: boolean | ("read" | "write");
3944
+ /** @description Level resolved on the key */
3945
+ actual: boolean | ("none" | "read" | "write");
3946
+ };
3947
+ }[];
3948
+ } | {
3949
+ /** @enum {string} */
3950
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
3951
+ /**
3952
+ * @description Human-readable error message
3953
+ * @example Invalid input
3954
+ */
3955
+ message: string;
3956
+ };
3957
+ };
3958
+ };
3959
+ };
3960
+ };
3961
+ getAppFeeBalances: {
3962
+ parameters: {
3963
+ query?: never;
3964
+ header: {
3965
+ /** @description API version. Required; pinned to this document. */
3966
+ "x-api-version": "2026-04.blanc";
3967
+ /** @description API key. */
3968
+ "x-api-key": string;
3969
+ };
3970
+ path?: never;
3971
+ cookie?: never;
3972
+ };
3973
+ requestBody?: never;
3974
+ responses: {
3975
+ /** @description OK */
3976
+ 200: {
3977
+ headers: {
3978
+ [name: string]: unknown;
3979
+ };
3980
+ content: {
3981
+ "application/json": {
3982
+ withdrawableUsd: number;
3983
+ pendingUsd: number;
3984
+ };
3985
+ };
3986
+ };
3987
+ /** @description Validation error */
3988
+ 400: {
3989
+ headers: {
3990
+ [name: string]: unknown;
3991
+ };
3992
+ content: {
3993
+ "application/json": {
3994
+ /** @enum {string} */
3995
+ code: "VALIDATION_ERROR";
3996
+ /**
3997
+ * @description Human-readable error message
3998
+ * @example Invalid input
3999
+ */
4000
+ message: string;
4001
+ /** @description Per-field validation issues */
4002
+ details?: {
4003
+ /** @description Human-readable issue description */
4004
+ message: string;
4005
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
4006
+ context?: {
4007
+ [key: string]: unknown;
4008
+ };
4009
+ }[];
4010
+ } | {
4011
+ /** @enum {string} */
4012
+ code: "SIMULATION_FAILED";
4013
+ /**
4014
+ * @description Human-readable error message
4015
+ * @example Invalid input
4016
+ */
4017
+ message: string;
4018
+ /** @description Classified on-chain simulation failure details */
4019
+ details?: {
4020
+ nonce?: string;
4021
+ category: string;
4022
+ errorSelector: string;
4023
+ errorName: string;
4024
+ errorArgs?: {
4025
+ [key: string]: string;
4026
+ };
4027
+ retryable: boolean;
4028
+ /** @enum {string} */
4029
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
4030
+ simulations?: unknown;
4031
+ } & {
4032
+ [key: string]: unknown;
4033
+ };
4034
+ } | {
4035
+ /** @enum {string} */
4036
+ code: "INSUFFICIENT_LIQUIDITY";
4037
+ /**
4038
+ * @description Human-readable error message
4039
+ * @example Invalid input
4040
+ */
4041
+ message: string;
4042
+ /** @description Fillable subset and unfillable remainder */
4043
+ details?: {
4044
+ /** @description Intents fillable with current liquidity */
4045
+ availableIntents: {
4046
+ [key: string]: string;
4047
+ }[];
4048
+ /** @description Token amounts that cannot be filled */
4049
+ unfillable: {
4050
+ [key: string]: string;
4051
+ };
4052
+ };
4053
+ } | {
4054
+ /** @enum {string} */
4055
+ code: "KEY_SCOPE_DENIED";
4056
+ /**
4057
+ * @description Human-readable error message
4058
+ * @example Invalid input
4059
+ */
4060
+ message: string;
4061
+ /** @description Single-element list describing the failing scope */
4062
+ details?: {
4063
+ message: string;
4064
+ context: {
4065
+ /**
4066
+ * @description Which scope rejected the request
4067
+ * @enum {string}
4068
+ */
4069
+ scope: "allowMainnet" | "intents" | "deposits";
4070
+ /** @description Minimum level the endpoint demands */
4071
+ required: boolean | ("read" | "write");
4072
+ /** @description Level resolved on the key */
4073
+ actual: boolean | ("none" | "read" | "write");
4074
+ };
4075
+ }[];
4076
+ } | {
4077
+ /** @enum {string} */
4078
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
4079
+ /**
4080
+ * @description Human-readable error message
4081
+ * @example Invalid input
4082
+ */
4083
+ message: string;
4084
+ };
4085
+ };
4086
+ };
4087
+ /** @description Missing or invalid API key */
4088
+ 401: {
4089
+ headers: {
4090
+ [name: string]: unknown;
4091
+ };
4092
+ content: {
4093
+ "application/json": {
4094
+ /** @enum {string} */
4095
+ code: "VALIDATION_ERROR";
4096
+ /**
4097
+ * @description Human-readable error message
4098
+ * @example Invalid input
4099
+ */
4100
+ message: string;
4101
+ /** @description Per-field validation issues */
4102
+ details?: {
4103
+ /** @description Human-readable issue description */
4104
+ message: string;
4105
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
4106
+ context?: {
4107
+ [key: string]: unknown;
4108
+ };
4109
+ }[];
4110
+ } | {
4111
+ /** @enum {string} */
4112
+ code: "SIMULATION_FAILED";
4113
+ /**
4114
+ * @description Human-readable error message
4115
+ * @example Invalid input
4116
+ */
4117
+ message: string;
4118
+ /** @description Classified on-chain simulation failure details */
4119
+ details?: {
4120
+ nonce?: string;
4121
+ category: string;
4122
+ errorSelector: string;
4123
+ errorName: string;
4124
+ errorArgs?: {
4125
+ [key: string]: string;
4126
+ };
4127
+ retryable: boolean;
4128
+ /** @enum {string} */
4129
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
4130
+ simulations?: unknown;
4131
+ } & {
4132
+ [key: string]: unknown;
4133
+ };
4134
+ } | {
4135
+ /** @enum {string} */
4136
+ code: "INSUFFICIENT_LIQUIDITY";
4137
+ /**
4138
+ * @description Human-readable error message
4139
+ * @example Invalid input
4140
+ */
4141
+ message: string;
4142
+ /** @description Fillable subset and unfillable remainder */
4143
+ details?: {
4144
+ /** @description Intents fillable with current liquidity */
4145
+ availableIntents: {
4146
+ [key: string]: string;
4147
+ }[];
4148
+ /** @description Token amounts that cannot be filled */
4149
+ unfillable: {
4150
+ [key: string]: string;
4151
+ };
4152
+ };
4153
+ } | {
4154
+ /** @enum {string} */
4155
+ code: "KEY_SCOPE_DENIED";
4156
+ /**
4157
+ * @description Human-readable error message
4158
+ * @example Invalid input
4159
+ */
4160
+ message: string;
4161
+ /** @description Single-element list describing the failing scope */
4162
+ details?: {
4163
+ message: string;
4164
+ context: {
4165
+ /**
4166
+ * @description Which scope rejected the request
4167
+ * @enum {string}
4168
+ */
4169
+ scope: "allowMainnet" | "intents" | "deposits";
4170
+ /** @description Minimum level the endpoint demands */
4171
+ required: boolean | ("read" | "write");
4172
+ /** @description Level resolved on the key */
4173
+ actual: boolean | ("none" | "read" | "write");
4174
+ };
4175
+ }[];
4176
+ } | {
4177
+ /** @enum {string} */
4178
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
4179
+ /**
4180
+ * @description Human-readable error message
4181
+ * @example Invalid input
4182
+ */
4183
+ message: string;
4184
+ };
4185
+ };
4186
+ };
4187
+ /** @description Server error */
4188
+ 500: {
4189
+ headers: {
4190
+ [name: string]: unknown;
4191
+ };
4192
+ content: {
4193
+ "application/json": {
4194
+ /** @enum {string} */
4195
+ code: "VALIDATION_ERROR";
4196
+ /**
4197
+ * @description Human-readable error message
4198
+ * @example Invalid input
4199
+ */
4200
+ message: string;
4201
+ /** @description Per-field validation issues */
4202
+ details?: {
4203
+ /** @description Human-readable issue description */
4204
+ message: string;
4205
+ /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */
4206
+ context?: {
4207
+ [key: string]: unknown;
4208
+ };
4209
+ }[];
4210
+ } | {
4211
+ /** @enum {string} */
4212
+ code: "SIMULATION_FAILED";
4213
+ /**
4214
+ * @description Human-readable error message
4215
+ * @example Invalid input
4216
+ */
4217
+ message: string;
4218
+ /** @description Classified on-chain simulation failure details */
4219
+ details?: {
4220
+ nonce?: string;
4221
+ category: string;
4222
+ errorSelector: string;
4223
+ errorName: string;
4224
+ errorArgs?: {
4225
+ [key: string]: string;
4226
+ };
4227
+ retryable: boolean;
4228
+ /** @enum {string} */
4229
+ retryHint?: "RE_PREPARE" | "RETRY_LATER";
4230
+ simulations?: unknown;
4231
+ } & {
4232
+ [key: string]: unknown;
4233
+ };
4234
+ } | {
4235
+ /** @enum {string} */
4236
+ code: "INSUFFICIENT_LIQUIDITY";
4237
+ /**
4238
+ * @description Human-readable error message
4239
+ * @example Invalid input
4240
+ */
4241
+ message: string;
4242
+ /** @description Fillable subset and unfillable remainder */
4243
+ details?: {
4244
+ /** @description Intents fillable with current liquidity */
4245
+ availableIntents: {
4246
+ [key: string]: string;
4247
+ }[];
4248
+ /** @description Token amounts that cannot be filled */
4249
+ unfillable: {
4250
+ [key: string]: string;
4251
+ };
4252
+ };
4253
+ } | {
4254
+ /** @enum {string} */
4255
+ code: "KEY_SCOPE_DENIED";
4256
+ /**
4257
+ * @description Human-readable error message
4258
+ * @example Invalid input
4259
+ */
4260
+ message: string;
4261
+ /** @description Single-element list describing the failing scope */
4262
+ details?: {
4263
+ message: string;
4264
+ context: {
4265
+ /**
4266
+ * @description Which scope rejected the request
4267
+ * @enum {string}
4268
+ */
4269
+ scope: "allowMainnet" | "intents" | "deposits";
4270
+ /** @description Minimum level the endpoint demands */
4271
+ required: boolean | ("read" | "write");
4272
+ /** @description Level resolved on the key */
4273
+ actual: boolean | ("none" | "read" | "write");
4274
+ };
4275
+ }[];
4276
+ } | {
4277
+ /** @enum {string} */
4278
+ code: "NOT_FOUND" | "UNAUTHORIZED" | "FORBIDDEN" | "CONFLICT" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "SETTLEMENT_QUOTE_ERROR" | "SETTLEMENT_EXECUTION_ERROR" | "EXTERNAL_SERVICE_TIMEOUT" | "RELAYER_MARKET_UNAVAILABLE" | "INTERNAL_ERROR";
4279
+ /**
4280
+ * @description Human-readable error message
4281
+ * @example Invalid input
4282
+ */
4283
+ message: string;
4284
+ };
4285
+ };
4286
+ };
4287
+ };
4288
+ };
4289
+ }
4290
+ //# sourceMappingURL=wire.gen.d.ts.map