@rhinestone/sdk 2.0.0-beta.34 → 2.0.0-beta.36

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