/** * Generated by `bun run generate:wire` from the orchestrator OpenAPI spec. * Do not edit by hand — regenerate instead. */ export interface paths { '/chains': { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Supported chains and tokens * @description Get supported chains and tokens with additional metadata */ get: operations['listChains']; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; '/liquidity': { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Route liquidity limit * @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. */ get: operations['listLiquidity']; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; '/intents/{id}': { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get Intent * @description Retrieves the status of an intent along with per-claim progress across chains. */ get: operations['getIntent']; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; '/accounts/{accountAddress}/portfolio': { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get Account Portfolio * @description Retrieves the token balances across all supported chains for a user's abstracted account */ get: operations['getPortfolio']; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; '/intents': { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List Intents * @description Retrieves a paginated list of the authenticated client's intents, newest first. */ get: operations['listIntents']; put?: never; /** * Create Intent * @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. */ post: operations['createIntent']; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; '/intents/splits': { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Split Intent by Liquidity * @description Splits token amounts into multiple intents based on available relayer liquidity. Each returned intent can be filled by a single relayer. */ post: operations['getSplit']; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; '/quotes': { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Create Quote * @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. */ post: operations['createQuote']; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; '/quotes/estimate': { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Create Indicative Quote * @description Computes an indicative (non-binding) quote: ranked route estimates with per-route cost breakdown and fill time. Unlike `POST /quotes`, it returns no `intentId`, `signData`, or `expiresAt` — it cannot be submitted to `POST /intents`. Use it for pre-quote UX (price previews, route discovery) without persisting an intent. */ post: operations['createQuoteEstimate']; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; '/app-fees/balances': { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get App-Fee Balances * @description The authenticated project's withdrawable app-fee balance as a USD total, valued at collection time. `pendingUsd` is 0 until withdrawals land. */ get: operations['getAppFeeBalances']; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; '/app-fees/withdrawals': { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * List App-Fee Withdrawals * @description The authenticated project's app-fee withdrawals (newest first) with each withdrawal's status and USD value paid out. */ get: operations['listAppFeeWithdrawals']; put?: never; /** * Create App-Fee Withdrawal * @description Withdraw the authenticated project's full app-fee balance to a whitelisted stablecoin on the chosen chain, paid to the project's registered payout address. */ post: operations['createAppFeeWithdrawal']; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; '/app-fees/withdrawals/{nonce}': { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Get App-Fee Withdrawal * @description A single app-fee withdrawal owned by the authenticated project, with its status and USD value paid out. */ get: operations['getAppFeeWithdrawal']; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; } export type webhooks = Record; export interface components { schemas: never; responses: never; parameters: never; requestBodies: never; headers: never; pathItems: never; } export type $defs = Record; export interface operations { listChains: { parameters: { query?: never; header: { /** @description API version. Required; pinned to this document. */ 'x-api-version': '2026-04.blanc'; }; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { 'application/json': { [key: string]: { /** * @description The name of the chain * @example Arbitrum One */ name: string; testnet: boolean; supportedTokens: 'all' | { symbol: string; /** @description Token contract address (format depends on the chain) */ address: string; decimals: number; }[]; /** @description The wrapped-native token (e.g. WETH) for the chain. Lets clients resolve the wrapped-native address without bundling a token registry. */ wrappedNativeToken: { symbol: string; /** @description Token contract address (format depends on the chain) */ address: string; decimals: number; }; }; }; }; }; /** @description Validation error */ 400: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; }; }; listLiquidity: { parameters: { query: { /** @description Source chain ID (CAIP-2) */ sourceChainId: string; /** @description Source token address */ sourceToken: string; /** @description Destination chain ID (CAIP-2) */ destinationChainId: string; /** @description Destination token address (EVM 0x or non-EVM base58) */ destinationToken: string; }; header: { /** @description API version. Required; pinned to this document. */ 'x-api-version': '2026-04.blanc'; /** @description API key. */ 'x-api-key': string; }; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** * @description Destination token symbol * @example USDC */ symbol: string; /** * @description Destination token decimals * @example 6 */ decimals: number; /** * @description True when an uncapped settlement layer (e.g. OFT) supports this route * @example false */ unlimited: boolean; /** * @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. * @example 200000000000 */ maxAmount: string | null; }; }; }; /** @description Validation error */ 400: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description API key scope denied */ 403: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description Server error */ 500: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; }; }; getIntent: { parameters: { query?: { /** @description Whether to include intent operation details */ full?: boolean; }; header: { /** @description API version. Required; pinned to this document. */ 'x-api-version': '2026-04.blanc'; /** @description API key. */ 'x-api-key': string; }; path: { /** @description Unique identifier of the intent operation */ id: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** * @description Overall intent status: PENDING, COMPLETED, or FAILED * @example COMPLETED * @enum {string} */ status: 'PENDING' | 'COMPLETED' | 'FAILED'; /** * @description Account address * @example 0x3672e268a79bd4acc5ee646bdda652547c7a435c */ accountAddress: string; /** @description Operations grouped by chain. Each chain has one or more operations (e.g. CLAIM, FILL, BRIDGE_FILL). */ operations: { /** * @description Chain ID * @example 10 */ chain: number; /** @description Operations on this chain */ items: { /** * @description Operation type: CLAIM, FILL, or BRIDGE_FILL * @example FILL * @enum {string} */ type: 'CLAIM' | 'FILL' | 'BRIDGE_FILL'; /** * @description Operation status * @example COMPLETED * @enum {string} */ status: 'PENDING' | 'COMPLETED' | 'FAILED'; /** * @description Transaction hash (present when COMPLETED) * @example 0xc1674f4671accbceec3f22c2c9cfa4f7aead7183f48df90c239e0d85d6c31e21 */ txHash?: string; /** * @description Block timestamp in unix seconds (present when COMPLETED) * @example 1633493192 */ timestamp?: number; }[]; }[]; /** @description Extended intent details, returned only when `full=true` */ details?: { /** * @description Intent id — pass to `GET /intents/:id` * @example 12345678901234567890 */ id: string; /** * @description Intent nonce (hex) * @example 0x000000000000000000000000000000000000000000000000ab54a98ceb1f0ad2 */ nonce: string; /** * @description Destination recipient account * @example 0x3672e268a79bd4acc5ee646bdda652547c7a435c */ recipient: string; /** * @description Intent creation time in unix seconds * @example 1633493100 */ createdAt: number; /** * @description Time from creation to the latest leg landing, in ms. Null until any leg lands. * @example 8100 */ latencyMs: number | null; /** * @description Settlement layer; null if the routing strategy is unrecognized * @example ACROSS * @enum {string|null} */ settlementLayer: 'INTENT_EXECUTOR' | 'SAME_CHAIN' | 'ACROSS' | 'ECO' | 'RELAY' | 'OFT' | 'NEAR' | 'RHINO' | 'CCTP' | null; /** @description Source (claim) legs */ source: { /** * @description Chain ID * @example 10 */ chain: number; /** @description All tokens moved on this leg */ tokens: { /** * @description Token address * @example 0x0b2c639c533813f4aa9d7837caf62653d097ff85 */ token: string; /** * @description Token amount in base units * @example 1000000 */ amount: string; }[]; /** * @description Transaction hash (present once the leg lands) * @example 0xc1674f4671accbceec3f22c2c9cfa4f7aead7183f48df90c239e0d85d6c31e21 */ txHash?: string; /** * @description Block timestamp in unix seconds (present once landed) * @example 1633493192 */ timestamp?: number; /** * @description Leg status * @example COMPLETED * @enum {string} */ status: 'PENDING' | 'COMPLETED' | 'FAILED'; }[]; /** @description Destination (fill) leg; null before a fill is dispatched */ destination: { /** * @description Chain ID * @example 10 */ chain: number; /** @description All tokens moved on this leg */ tokens: { /** * @description Token address * @example 0x0b2c639c533813f4aa9d7837caf62653d097ff85 */ token: string; /** * @description Token amount in base units * @example 1000000 */ amount: string; }[]; /** * @description Transaction hash (present once the leg lands) * @example 0xc1674f4671accbceec3f22c2c9cfa4f7aead7183f48df90c239e0d85d6c31e21 */ txHash?: string; /** * @description Block timestamp in unix seconds (present once landed) * @example 1633493192 */ timestamp?: number; /** * @description Leg status * @example COMPLETED * @enum {string} */ status: 'PENDING' | 'COMPLETED' | 'FAILED'; } | null; /** @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. */ executions: { /** * @description Chain ID the call executes on * @example 8453 */ chain: number; /** * @description PRE_CLAIM runs on the origin chain before funds are claimed; DESTINATION runs on the destination chain after funds are delivered. * @example DESTINATION * @enum {string} */ phase: 'PRE_CLAIM' | 'DESTINATION'; /** * @description Call target address * @example 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 */ to: string; /** * @description Native value sent with the call, in wei (base units) * @example 0 */ value: string; /** * @description Encoded calldata * @example 0xa9059cbb000000000000000000000000579d5631f76126991c00fb8fe5467fa9d49e5f6a00000000000000000000000000000000000000000000000000000000000f4240 */ data: string; }[]; /** @description Cost summary from the recorded fee sponsorship. Amounts are raw base units; omitted when no sponsorship row exists. */ cost: { /** * @description Whether gas/fees were sponsored for this intent * @example true */ sponsored: boolean; /** * @description Sponsored value in fee-token base units * @example 210000 */ sponsoredValue?: string; /** * @description Protocol fee in fee-token base units * @example 10000 */ protocolFee?: string; }; }; }; }; }; /** @description Invalid intent ID */ 400: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description API key scope denied */ 403: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description Intent ID not found */ 404: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description Server error */ 500: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; }; }; getPortfolio: { parameters: { query?: { chainIds?: string[] | string; tokens?: string[] | string; filterEmpty?: boolean; }; header: { /** @description API version. Required; pinned to this document. */ 'x-api-version': '2026-04.blanc'; /** @description API key. */ 'x-api-key': string; }; path: { accountAddress: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @description Array of token portfolio entries */ portfolio: { /** * @description Short name (symbol) of the token * @example USDC */ symbol: string; /** @description Array of token balances per chain */ chains: { /** * @description Chain ID where the token balance exists (CAIP-2) * @example eip155:1 */ chainId: string; /** * @description Token contract address on this chain * @example 0xa0B86A33e6441B8C4505B8C4505b8C4505B8C450 */ address: string; /** * @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). * @example 6 */ decimals: number; /** * Format: uint256 * @description Token balance on this chain in the token's smallest unit * @example 1000000 */ amount: string; }[]; }[]; }; }; }; /** @description Invalid request parameters */ 400: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description API key scope denied */ 403: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description Server error */ 500: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; }; }; listIntents: { parameters: { query?: { /** @description Opaque cursor from a previous response (`pagination.nextCursor`). Omit for the first page. */ cursor?: string; /** @description Max items per page (max 100) */ limit?: number; }; header: { /** @description API version. Required; pinned to this document. */ 'x-api-version': '2026-04.blanc'; /** @description API key. */ 'x-api-key': string; }; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @description Intents on this page, newest first */ data: { /** * @description Intent id — pass to `GET /intents/:id` * @example 12345678901234567890 */ id: string; /** * @description Overall intent status * @example COMPLETED * @enum {string} */ status: 'PENDING' | 'COMPLETED' | 'FAILED'; /** * @description Source chain IDs — one per distinct chain the intent spends on * @example [ * 1, * 8453 * ] */ fromChains: number[]; /** * @description Destination chain ID * @example 10 */ toChain?: number; /** * @description Intent value token. The token delivered on the destination chain, or the spent token for same-chain intents (which have no persisted delivery). * @example 0x0b2c639c533813f4aa9d7837caf62653d097ff85 */ token?: string; /** * @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). * @example 1000000 */ amount?: string; /** * @description Account that submitted the intent * @example 0x3672e268a79bd4acc5ee646bdda652547c7a435c */ account: string; /** * @description Intent creation time in unix seconds * @example 1633493100 */ createdAt: number; }[]; /** @description Keyset pagination metadata */ pagination: { /** * @description Pass as `cursor` to fetch the next page; null when no more results. * @example 1024 */ nextCursor: string | null; /** @example true */ hasNextPage: boolean; }; }; }; }; /** @description Validation error */ 400: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description API key scope denied */ 403: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description Server error */ 500: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; }; }; createIntent: { parameters: { query?: never; header: { /** @description API version. Required; pinned to this document. */ 'x-api-version': '2026-04.blanc'; /** @description API key. */ 'x-api-key': string; }; path?: never; cookie?: never; }; requestBody: { content: { 'application/json': { /** @description Identifier of the intent returned by `POST /quotes` (as `routes[].intentId`). */ intentId: string; signatures: { /** * @description Origin (source chain) signatures * @example [ * "0x...", * "0x..." * ] */ origin: (string | { preClaimSig: string; notarizedClaimSig: string; })[]; /** * @description Destination (target chain) signature * @example 0x... */ destination: string; /** * @description Target execution signature (smart sessions only; omit for EOA) * @example 0x... */ targetExecution?: string; }; authorizations?: { /** @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. */ sponsor?: { /** * @description Chain ID for EIP-7702 delegation, 0 means it can be applied to any chain * @example 8453 */ chainId: number; /** * @description Address of the delegate for EIP-7702 delegation * @example 0x579d5631f76126991c00fb8fe5467fa9d49e5f6a */ address: string; /** * @description Nonce for EIP-7702 delegation * @example 0 */ nonce: number; /** * @description Y parity for EIP-7702 delegation * @example 27 */ yParity: number; /** * @description R value for EIP-7702 delegation * @example 0x... */ r: string; /** * @description S value for EIP-7702 delegation * @example 0x... */ s: string; }[]; /** @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. */ recipient?: { /** * @description Chain ID for EIP-7702 delegation, 0 means it can be applied to any chain * @example 8453 */ chainId: number; /** * @description Address of the delegate for EIP-7702 delegation * @example 0x579d5631f76126991c00fb8fe5467fa9d49e5f6a */ address: string; /** * @description Nonce for EIP-7702 delegation * @example 0 */ nonce: number; /** * @description Y parity for EIP-7702 delegation * @example 27 */ yParity: number; /** * @description R value for EIP-7702 delegation * @example 0x... */ r: string; /** * @description S value for EIP-7702 delegation * @example 0x... */ s: string; }[]; }; }; }; }; responses: { /** @description OK */ 201: { headers: { [name: string]: unknown; }; content: { 'application/json': { intentId: string; }; }; }; /** @description Validation error */ 400: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description API key scope denied */ 403: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description The quoted intent has expired or was already submitted. Request a new route to retry. */ 404: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description Server error */ 500: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; }; }; getSplit: { parameters: { query?: never; header: { /** @description API version. Required; pinned to this document. */ 'x-api-version': '2026-04.blanc'; /** @description API key. */ 'x-api-key': string; }; path?: never; cookie?: never; }; requestBody: { content: { 'application/json': { /** * @description The chain ID the intents settle on (CAIP-2) * @example eip155:42161 */ chainId: string; /** * @description Map of token addresses to amounts * @example { * "0xaf88d065e77c8cc2239327c5edb3a432268e5831": "5000000000000" * } */ tokens: { [key: string]: string; }; /** * @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. * @example { * "exclude": [ * "RELAY" * ] * } */ settlementLayers?: ('ACROSS' | 'ECO' | 'RELAY' | 'OFT' | 'NEAR' | 'RHINO' | 'CCTP')[] | { include: ('ACROSS' | 'ECO' | 'RELAY' | 'OFT' | 'NEAR' | 'RHINO' | 'CCTP')[]; } | { exclude: ('ACROSS' | 'ECO' | 'RELAY' | 'OFT' | 'NEAR' | 'RHINO' | 'CCTP')[]; }; }; }; }; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** * @description Array of intents, each mapping token addresses to amounts that can be filled by a single relayer * @example [ * { * "0xaf88d065e77c8cc2239327c5edb3a432268e5831": "2400000000000" * }, * { * "0xaf88d065e77c8cc2239327c5edb3a432268e5831": "1700000000000" * }, * { * "0xaf88d065e77c8cc2239327c5edb3a432268e5831": "900000000000" * } * ] */ intents: { [key: string]: string; }[]; }; }; }; /** @description Invalid request parameters */ 400: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description API key scope denied */ 403: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description Insufficient liquidity to fill the full amount. Partial splits returned. */ 422: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; }; }; }; /** @description Server error */ 500: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; }; }; createQuote: { parameters: { query?: never; header: { /** @description API version. Required; pinned to this document. */ 'x-api-version': '2026-04.blanc'; /** @description API key. */ 'x-api-key': string; }; path?: never; cookie?: never; }; requestBody: { content: { 'application/json': { /** * @description CAIP-2 chain identifier of the destination chain (EVM `eip155:`, or non-EVM `solana:…`/`tron:…`) * @example eip155:8453 */ destinationChainId: string; /** @description A list of token requested on the target chain */ tokenRequests: { /** * @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. * @example 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 */ tokenAddress: string; /** * Format: uint256 * @description The amount of the requested token (in the smallest unit). Omit for max-out. * @example 1000000 */ amount?: string; /** * @description HyperCore balance class for this token request — 'spot' or 'perp'. Optional; defaults to 'perp' when destinationChainId is HyperCore. Rejected on every other destination. * @example spot * @enum {string} */ balance?: 'spot' | 'perp'; }[]; /** @description Account details */ account: { /** * @description Account address * @example 0x579d5631f76126991c00fb8fe5467fa9d49e5f6a */ address: string; /** * @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. * @enum {string} */ accountType?: 'smartAccount' | 'GENERIC' | 'EOA' | 'ERC7579'; /** @description Setup operations for the smart account. Only used if the account is not deployed */ setupOps?: { /** * @description Account deployment factory address * @example 0x579d5631f76126991c00fb8fe5467fa9d49e5f6a */ to: string; /** * @description Account deployment data * @example 0x... */ data: string; }[]; /** @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. */ mockSignatures?: { [key: string]: string; }; /** @description Deprecated. Must be omitted; use `mockSignatures` (keyed by chain id) instead. */ mockSignature?: unknown; /** @description Per-chain specific map to delegated contract address for 7702 delegations. Use `0` to indicate cross-chain delegation */ delegations?: { [key: string]: { /** @description address of contract to which delegation on behalf of sponsor will be assumed for given chain ID */ contract: string; }; }; }; /** @description Execution calls on the target chain. */ destinationExecutions?: { /** * @description Target contract address for execution * @example 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 */ to: string; /** * Format: uint256 * @description Amount of ETH (in wei) sent in the execution * @example 0 */ value: string; /** * @description Encoded function call data * @example 0xa9059cbb000000000000000000000000579d5631f76126991c00fb8fe5467fa9d49e5f6a00000000000000000000000000000000000000000000000000000000000f4240 */ data: string; }[]; /** * @description Execution calls to perform before the claim on each origin chain, keyed by chain ID. Max 10 ops per chain, max 5 chains. * @example { * "8453": [ * { * "to": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", * "value": "0", * "data": "0x" * } * ] * } */ preClaimExecutions?: { [key: string]: { /** * @description Target contract address for execution * @example 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 */ to: string; /** * Format: uint256 * @description Amount of ETH (in wei) sent in the execution * @example 0 */ value: string; /** * @description Encoded function call data * @example 0xa9059cbb000000000000000000000000579d5631f76126991c00fb8fe5467fa9d49e5f6a00000000000000000000000000000000000000000000000000000000000f4240 */ data: string; }[]; }; /** * Format: uint256 * @description The gas limit for the target chain executions * @example 100000 */ destinationGasLimit?: string; /** @description Account access list specifying which chains and tokens an account may access */ accountAccessList?: { chainIds?: number[]; tokens?: (string | ('ETH' | 'USDC' | 'WETH' | 'USDT' | 'USDT0' | 'BNB' | 'WBNB' | 'XDAI' | 'WXDAI' | 'POL' | 'WPOL' | 'MON' | 'WMON' | 'S' | 'WS' | 'HYPE' | 'WHYPE' | 'USDG' | 'XPL' | 'WXPL' | 'AVAX' | 'WAVAX' | 'MockUSD' | 'TRX' | 'WTRX' | 'SOL' | 'WSOL'))[]; chainTokens?: { [key: string]: (string | ('ETH' | 'USDC' | 'WETH' | 'USDT' | 'USDT0' | 'BNB' | 'WBNB' | 'XDAI' | 'WXDAI' | 'POL' | 'WPOL' | 'MON' | 'WMON' | 'S' | 'WS' | 'HYPE' | 'WHYPE' | 'USDG' | 'XPL' | 'WXPL' | 'AVAX' | 'WAVAX' | 'MockUSD' | 'TRX' | 'WTRX' | 'SOL' | 'WSOL'))[]; }; chainTokenAmounts?: { [key: string]: { [key: string]: string; }; }; exclude?: { chainIds?: number[]; tokens?: (string | ('ETH' | 'USDC' | 'WETH' | 'USDT' | 'USDT0' | 'BNB' | 'WBNB' | 'XDAI' | 'WXDAI' | 'POL' | 'WPOL' | 'MON' | 'WMON' | 'S' | 'WS' | 'HYPE' | 'WHYPE' | 'USDG' | 'XPL' | 'WXPL' | 'AVAX' | 'WAVAX' | 'MockUSD' | 'TRX' | 'WTRX' | 'SOL' | 'WSOL'))[]; chainTokens?: { [key: string]: (string | ('ETH' | 'USDC' | 'WETH' | 'USDT' | 'USDT0' | 'BNB' | 'WBNB' | 'XDAI' | 'WXDAI' | 'POL' | 'WPOL' | 'MON' | 'WMON' | 'S' | 'WS' | 'HYPE' | 'WHYPE' | 'USDG' | 'XPL' | 'WXPL' | 'AVAX' | 'WAVAX' | 'MockUSD' | 'TRX' | 'WTRX' | 'SOL' | 'WSOL'))[]; }; }; }; recipient?: { /** * @description Recipient address. Format depends on destination chain — 0x-hex for EVM destinations, base58 for Solana, T-address for Tron. * @example 0x579d5631f76126991c00fb8fe5467fa9d49e5f6a */ address: string; /** * @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. * @enum {string} */ accountType?: 'smartAccount' | 'GENERIC' | 'EOA' | 'ERC7579'; /** @description Setup operations for the smart account. Only used if the account is not deployed */ setupOps?: { /** * @description Account deployment factory address * @example 0x579d5631f76126991c00fb8fe5467fa9d49e5f6a */ to: string; /** * @description Account deployment data * @example 0x... */ data: string; }[]; /** @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. */ mockSignatures?: { [key: string]: string; }; /** @description Deprecated. Must be omitted; use `mockSignatures` (keyed by chain id) instead. */ mockSignature?: unknown; /** @description Per-chain specific map to delegated contract address for 7702 delegations. Use `0` to indicate cross-chain delegation */ delegations?: { [key: string]: { /** @description address of contract to which delegation on behalf of sponsor will be assumed for given chain ID */ contract: string; }; }; }; /** * @description Intent options * @example { * "settlementLayers": { * "include": [ * "ECO" * ] * }, * "sponsorSettings": { * "gas": true, * "bridgeFees": true, * "swapFees": true * }, * "feeToken": "USDC" * } */ options?: { /** * @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. * @example { * "exclude": [ * "RELAY" * ] * } */ settlementLayers?: ('ACROSS' | 'ECO' | 'RELAY' | 'OFT' | 'NEAR' | 'RHINO' | 'CCTP')[] | { include: ('ACROSS' | 'ECO' | 'RELAY' | 'OFT' | 'NEAR' | 'RHINO' | 'CCTP')[]; } | { exclude: ('ACROSS' | 'ECO' | 'RELAY' | 'OFT' | 'NEAR' | 'RHINO' | 'CCTP')[]; }; /** * @description Sponsor settings for the intent * @example { * "gas": true, * "bridgeFees": true, * "swapFees": true * } */ sponsorSettings?: { /** * @description Whether to sponsor gas for the intent * @default false * @example true */ gas?: boolean; /** * @description Whether to sponsor bridge fees for the intent * @default false */ bridgeFees?: boolean; /** * @description Whether to sponsor swap fees for the intent * @default false */ swapFees?: boolean; /** * @description Whether to sponsor the Rhinestone protocol fee (`options.protocolFees`) for the intent. When `true`, the fee is charged to the integrator's sponsorship balance instead of carved from the user, without the sponsorship surcharge. * @default false */ protocolFees?: boolean; }; /** * @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. * @example 3 * @enum {string} */ signatureMode?: 'EMISSARY' | 'ERC1271' | 'EMISSARY_ERC1271' | 'ERC1271_EMISSARY' | 'EMISSARY_EXECUTION' | 'EMISSARY_EXECUTION_ERC1271' | 'ERC1271_EMISSARY_EXECUTION' | 0 | 1 | 2 | 3 | 4 | 5 | 6; /** * @description Reserved for future use. No effect today. * @enum {string} */ feeToken?: 'ETH' | 'USDC' | 'WETH' | 'USDT' | 'USDT0' | 'BNB' | 'WBNB' | 'XDAI' | 'WXDAI' | 'POL' | 'WPOL' | 'MON' | 'WMON' | 'S' | 'WS' | 'HYPE' | 'WHYPE' | 'USDG' | 'XPL' | 'WXPL' | 'AVAX' | 'WAVAX' | 'MockUSD' | 'TRX' | 'WTRX' | 'SOL' | 'WSOL'; appFees?: { /** * @description App fee rate in basis points of the input value (0–10000 = 0–100%). * @example 25 */ feeBps: number; }; protocolFees?: { /** * @description Rhinestone protocol fee rate in basis points of the input value (0–10000 = 0–100%). Collected alongside the app fee in one batched transfer and always accrues to Rhinestone; sponsor it via `sponsorSettings.protocolFees` to charge the integrator balance instead of the user. * @example 35 */ feeBps: number; }; /** * @description Tokens that will be received by EOA executions. These will be swept to the recipient account. * @example [ * "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" * ] */ executionTokensReceived?: string[]; /** * @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. * @example { * "42161": { * "0xaf88d065e77c8cC2239327C5EDb3A432268e5831": "500000000" * } * } */ auxiliaryFunds?: { [key: string]: { [key: string]: string; }; }; /** * @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. * @example best * @enum {string} */ selectionStrategy?: 'cheapest' | 'fastest' | 'best'; /** * @description Absolute unix timestamp (seconds) overriding the on-chain fill deadline. **TOKENLESS intents only.** If the intent resolves to any other route (cross-chain or same-chain), the request is **rejected** with `INVALID_CUSTOM_DEADLINE` (422) rather than silently ignoring the override. Must be between `now + 120s` and `now + 86400s`. The bundle claim/nonce expiry and the response `expiresAt` track this value automatically. * @example 1893456000 */ customDeadline?: number; }; }; }; }; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @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. */ routes: { /** @description Server-stored intent identifier. Pass back to `POST /intents` to submit. */ intentId: string; /** * @description Quote expiry timestamp (Unix seconds). After this point, assume the quote is dead and re-quote. * @example 1733493192 */ expiresAt: number; /** @description Estimated fill time for the route */ estimatedFillTime: { /** * @description Typical end-to-end fill time for this route in seconds. Directional, not guaranteed. * @example 3 */ seconds: number; }; /** * @description Settlement layer selected for this route * @example RELAY * @enum {string} */ settlementLayer: 'INTENT_EXECUTOR' | 'SAME_CHAIN' | 'ACROSS' | 'ECO' | 'RELAY' | 'OFT' | 'NEAR' | 'RHINO' | 'CCTP'; /** @description EIP-712 sign payloads the client submits back on `POST /intents` */ signData: { /** @description Typed data payloads for the origin legs, in submission order. Sign each entry and submit the signatures in matching order via `signatures.origin`. */ origin: { /** @description EIP-712 domain separator fields */ domain: { name?: string; version?: string; chainId?: number; verifyingContract?: string; salt?: string; }; /** @description EIP-712 type definitions keyed by type name */ types: { [key: string]: { name: string; type: string; }[]; }; /** * @description Name of the top-level type to sign * @example PermitBatchWitnessTransferFrom */ primaryType: string; /** @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. */ message: { [key: string]: unknown; }; }[]; /** @description Typed data for the destination leg */ destination: { /** @description EIP-712 domain separator fields */ domain: { name?: string; version?: string; chainId?: number; verifyingContract?: string; salt?: string; }; /** @description EIP-712 type definitions keyed by type name */ types: { [key: string]: { name: string; type: string; }[]; }; /** * @description Name of the top-level type to sign * @example PermitBatchWitnessTransferFrom */ primaryType: string; /** @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. */ message: { [key: string]: unknown; }; }; /** @description Typed data for the target execution, smart sessions only. Omitted for EOA accounts. */ targetExecution?: { /** @description EIP-712 domain separator fields */ domain: { name?: string; version?: string; chainId?: number; verifyingContract?: string; salt?: string; }; /** @description EIP-712 type definitions keyed by type name */ types: { [key: string]: { name: string; type: string; }[]; }; /** * @description Name of the top-level type to sign * @example PermitBatchWitnessTransferFrom */ primaryType: string; /** @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. */ message: { [key: string]: unknown; }; }; }; /** @description Route cost: inputs, outputs, and fee breakdown */ cost: { /** @description Tokens debited from the user, coalesced by (chainId, tokenAddress) */ input: { /** * @description Chain where this token leg settles * @example eip155:8453 */ chainId: string; /** * @description ERC-20 contract address for this token * @example 0xaf88d065e77c8cc2239327c5edb3a432268e5831 */ tokenAddress: string; /** * @description Token symbol. `null` when the internal token registry has no entry for this address. * @example USDC */ symbol: string | null; /** * @description Token decimals. `null` when the internal token registry has no entry for this address. * @example 6 */ decimals: number | null; /** @description Unit price in USD. `null` when the price oracle has no data for this token. */ price: { /** * @description Unit price in USD * @example 1 */ usd: number; } | null; /** * Format: uint256 * @description Token amount in the token's smallest unit * @example 1050000 */ amount: string; }[]; /** @description Tokens delivered to the recipient, coalesced by (chainId, tokenAddress) */ output: { /** * @description Chain where this token leg settles (CAIP-2, any namespace) * @example eip155:8453 */ chainId: string; /** * @description Contract address of the delivered token (EVM 0x or non-EVM base58) * @example 0xaf88d065e77c8cc2239327c5edb3a432268e5831 */ tokenAddress: string; /** * @description Token symbol. `null` when the internal token registry has no entry for this address. * @example USDC */ symbol: string | null; /** * @description Token decimals. `null` when the internal token registry has no entry for this address. * @example 6 */ decimals: number | null; /** @description Unit price in USD. `null` when the price oracle has no data for this token. */ price: { /** * @description Unit price in USD * @example 1 */ usd: number; } | null; /** * Format: uint256 * @description Token amount in the token's smallest unit * @example 1050000 */ amount: string; }[]; /** @description Aggregate route fees with per-category breakdown */ fees: { /** @description Full route cost in USD, regardless of who pays. Equal to `sum(breakdown.*.usd)` modulo rounding. */ total: { /** * @description USD-denominated value * @example 0.029 */ usd: number; }; /** @description Per-category fee breakdown */ breakdown: { /** @description Aggregate gas cost (destination fill, swap execution, origin gas) */ gas: { /** * @description Total cost of this category in USD, regardless of who pays. * @example 0.029 */ usd: number; /** * @description True when a sponsor absorbs some or all of this category. The user-vs-sponsor split is not surfaced. * @example false */ sponsored: boolean; }; /** @description Aggregate settlement-layer bridge cost */ bridge: { /** * @description Total cost of this category in USD, regardless of who pays. * @example 0.029 */ usd: number; /** * @description True when a sponsor absorbs some or all of this category. The user-vs-sponsor split is not surfaced. * @example false */ sponsored: boolean; }; /** @description Aggregate solver swap commission */ swap: { /** * @description Total cost of this category in USD, regardless of who pays. * @example 0.029 */ usd: number; /** * @description True when a sponsor absorbs some or all of this category. The user-vs-sponsor split is not surfaced. * @example false */ sponsored: boolean; }; /** @description Aggregate integrator app fee */ app: { /** * @description Total cost of this category in USD, regardless of who pays. * @example 0.029 */ usd: number; /** * @description True when a sponsor absorbs some or all of this category. The user-vs-sponsor split is not surfaced. * @example false */ sponsored: boolean; }; /** @description Rhinestone protocol fee (`options.protocolFees`). `sponsored: true` when the integrator sponsorship balance pays it instead of the user. */ protocol: { /** * @description Total cost of this category in USD, regardless of who pays. * @example 0.029 */ usd: number; /** * @description True when a sponsor absorbs some or all of this category. The user-vs-sponsor split is not surfaced. * @example false */ sponsored: boolean; }; /** @description Rhinestone's surcharge on the sponsored relayer coverage, charged to the sponsor. 0 when the intent is not sponsored. Pure surcharge — a sponsored protocol fee is shown on `protocol`, never here. */ sponsorSurcharge: { /** * @description Total cost of this category in USD, regardless of who pays. * @example 0.029 */ usd: number; /** * @description True when a sponsor absorbs some or all of this category. The user-vs-sponsor split is not surfaced. * @example false */ sponsored: boolean; }; }; }; }; /** * @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. * @example { * "8453": { * "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913": { * "type": "approval", * "amount": "1000000", * "spender": "0x000000000022d473030f116ddee9f6b43ac78ba3" * } * } * } */ tokenRequirements?: { [key: string]: { [key: string]: { /** * @description Discriminator: `approval` means the user must ERC-20 approve `spender` for at least `amount` before submission. * @enum {string} */ type: 'approval'; /** * Format: uint256 * @description Minimum required allowance, in the token's smallest unit. */ amount: string; /** @description Always the canonical Permit2 contract on this chain. The EOA approves Permit2; the settlement contract pulls funds via Permit2 at claim time. */ spender: string; } | { /** * @description Discriminator: `wrap` means the user must wrap native ETH into the chain's WETH-equivalent before submission. * @enum {string} */ type: 'wrap'; /** * Format: uint256 * @description Minimum amount to wrap, in wei. */ amount: string; }; }; }; /** @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). */ bridgeFill?: { /** @description Destination chain ID for the bridge fill */ destinationChainId: number; /** @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. */ fillExpirationPeriod?: number; /** @description Fill-tracker watch window, in seconds. The orchestrator owns this timeout; the fill-tracker reads it here to decide when a bridge fill has timed out. */ fillStatusTimeout: number; /** * @description LayerZero OFT * @enum {string} */ type: 'OFT'; } | { /** @description Destination chain ID for the bridge fill */ destinationChainId: number; /** @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. */ fillExpirationPeriod?: number; /** @description Fill-tracker watch window, in seconds. The orchestrator owns this timeout; the fill-tracker reads it here to decide when a bridge fill has timed out. */ fillStatusTimeout: number; /** * @description Relay.link * @enum {string} */ type: 'RELAY'; /** @description Relay.link request ID. Use against Relay.link's status API to track the destination-chain fill. */ requestId: string; } | { /** @description Destination chain ID for the bridge fill */ destinationChainId: number; /** @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. */ fillExpirationPeriod?: number; /** @description Fill-tracker watch window, in seconds. The orchestrator owns this timeout; the fill-tracker reads it here to decide when a bridge fill has timed out. */ fillStatusTimeout: number; /** * @description NEAR Intents * @enum {string} */ type: 'NEAR'; /** @description NEAR Intents deposit address. Track fill status via the NEAR Intents status API keyed on this address. */ depositAddress: string; } | { /** @description Destination chain ID for the bridge fill */ destinationChainId: number; /** @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. */ fillExpirationPeriod?: number; /** @description Fill-tracker watch window, in seconds. The orchestrator owns this timeout; the fill-tracker reads it here to decide when a bridge fill has timed out. */ fillStatusTimeout: number; /** * @description Rhino.fi * @enum {string} */ type: 'RHINO'; /** @description Rhino.fi commitment ID. Use against Rhino.fi's status API to track the destination-chain fill. */ commitmentId: string; } | { /** @description Destination chain ID for the bridge fill */ destinationChainId: number; /** @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. */ fillExpirationPeriod?: number; /** @description Fill-tracker watch window, in seconds. The orchestrator owns this timeout; the fill-tracker reads it here to decide when a bridge fill has timed out. */ fillStatusTimeout: number; /** * @description Circle CCTP * @enum {string} */ type: 'CCTP'; /** @description Circle CCTP source domain ID — needed to fetch the attestation for the burn message on the source chain. */ sourceDomainId: number; /** @description Circle CCTP destination domain ID. */ destinationDomainId: number; }; }[]; }; }; }; /** @description Invalid request parameters */ 400: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description API key scope denied */ 403: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description Server error */ 500: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; }; }; createQuoteEstimate: { parameters: { query?: never; header: { /** @description API version. Required; pinned to this document. */ 'x-api-version': '2026-04.blanc'; /** @description API key. */ 'x-api-key': string; }; path?: never; cookie?: never; }; requestBody: { content: { 'application/json': { /** * @description `exactIn` fixes the deposited `amountIn` and estimates the delivered output; `exactOut` fixes the desired `amountOut` and estimates the required input. * @example exactIn * @enum {string} */ direction: 'exactIn' | 'exactOut'; /** * @description Source chain id (CAIP-2, eip155) * @example eip155:8453 */ sourceChainId: string; /** * @description Source token address * @example 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 */ sourceToken: string; /** * @description Destination chain id (CAIP-2), matching the destinations `POST /quotes` accepts: EVM (`eip155:*`), the virtual `hypercore:mainnet`, or non-EVM `solana:…` / `tron:…`. * @example eip155:42161 */ destinationChainId: string; /** * @description Destination token address — EVM `0x…`, Solana base58 mint, or Tron T-address. * @example 0xaf88d065e77c8cc2239327c5edb3a432268e5831 */ destinationToken: string; /** * Format: uint256 * @description Deposited amount in the source token's smallest unit. Required for (and only valid with) `direction: exactIn`. * @example 1000000 */ amountIn?: string; /** * Format: uint256 * @description Desired delivered amount in the destination token's smallest unit. Required for (and only valid with) `direction: exactOut`. * @example 1000000 */ amountOut?: string; /** * @description Account the route would execute against. Settlement layers filter on account type, so declaring it yields an estimate that matches what `POST /quotes` would plan. Defaults to `EOA` — the more restrictive of the two — so an undeclared caller is never shown smart-account-only routes. * @example SMART_ACCOUNT * @enum {string} */ accountType?: 'EOA' | 'SMART_ACCOUNT'; /** * @description Whether the smart account is already deployed on the source chain. An undeployed account pays one-time setup gas, so declaring it avoids over-charging repeat users. Defaults to undeployed (charges setup) for a smart account when omitted — the conservative direction. Ignored for EOAs. * @example true */ accountDeployed?: boolean; /** @description Optional estimate tuning knobs */ options?: { /** * @description Which settlement layers the estimate may rank. `{ include: [...] }` (allow-list) or `{ exclude: [...] }` (deny-list). Default unset = all layers eligible. * @example { * "exclude": [ * "RELAY" * ] * } */ settlementLayers?: { include: ('ACROSS' | 'ECO' | 'RELAY' | 'OFT' | 'NEAR' | 'RHINO' | 'CCTP')[]; } | { exclude: ('ACROSS' | 'ECO' | 'RELAY' | 'OFT' | 'NEAR' | 'RHINO' | 'CCTP')[]; }; /** * @description Which fee categories to treat as sponsored. Sponsored categories are absorbed by the sponsor and do not reduce the delivered amount. * @example { * "gas": true, * "bridgeFees": true, * "swapFees": false * } */ sponsorSettings?: { /** * @description Whether to sponsor gas for the intent * @default false * @example true */ gas?: boolean; /** * @description Whether to sponsor bridge fees for the intent * @default false */ bridgeFees?: boolean; /** * @description Whether to sponsor swap fees for the intent * @default false */ swapFees?: boolean; /** * @description Whether to sponsor the Rhinestone protocol fee (`options.protocolFees`) for the intent. When `true`, the fee is charged to the integrator's sponsorship balance instead of carved from the user, without the sponsorship surcharge. * @default false */ protocolFees?: boolean; }; /** * @description How to rank candidate routes. `cheapest` minimizes USD cost, `fastest` minimizes fill time, `best` balances delivered output and speed. * @example best * @enum {string} */ selectionStrategy?: 'cheapest' | 'fastest' | 'best'; /** @description Integrator app fee applied to the estimate */ appFees?: { /** * @description App fee rate in basis points of the input value (0–10000 = 0–100%). * @example 25 */ feeBps: number; }; /** @description Rhinestone protocol fee applied to the estimate */ protocolFees?: { /** * @description Rhinestone protocol fee rate in basis points of the input value (0–10000 = 0–100%). Carved from the user unless `sponsorSettings.protocolFees` is set. * @example 5 */ feeBps: number; }; }; }; }; }; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @description Indicative route estimates, best-first. Empty when no route is available. */ routes: { /** * @description Settlement layer this estimate is for * @example ACROSS * @enum {string} */ settlementLayer: 'INTENT_EXECUTOR' | 'SAME_CHAIN' | 'ACROSS' | 'ECO' | 'RELAY' | 'OFT' | 'NEAR' | 'RHINO' | 'CCTP'; /** * @description `exact` for formula-priced layers; `approximated` for solver-market layers estimated from a typical-fee table. * @example exact * @enum {string} */ accuracy: 'exact' | 'approximated'; /** * @description `over_capacity` when the delivered notional exceeds the known liquidity ceiling for this route; such routes rank below fillable ones. * @example ok * @enum {string} */ status: 'ok' | 'over_capacity'; /** @description A single (chain, token) leg with amount, price, and metadata */ input: { /** * @description Chain where this token leg settles * @example eip155:8453 */ chainId: string; /** * @description ERC-20 contract address for this token * @example 0xaf88d065e77c8cc2239327c5edb3a432268e5831 */ tokenAddress: string; /** * @description Token symbol. `null` when the internal token registry has no entry for this address. * @example USDC */ symbol: string | null; /** * @description Token decimals. `null` when the internal token registry has no entry for this address. * @example 6 */ decimals: number | null; /** @description Unit price in USD. `null` when the price oracle has no data for this token. */ price: { /** * @description Unit price in USD * @example 1 */ usd: number; } | null; /** * Format: uint256 * @description Token amount in the token's smallest unit * @example 1050000 */ amount: string; }; /** @description A single (chain, token) leg with amount, price, and metadata */ output: { /** * @description Chain where this token leg settles (CAIP-2, any namespace) * @example eip155:8453 */ chainId: string; /** * @description Contract address of the delivered token (EVM 0x or non-EVM base58) * @example 0xaf88d065e77c8cc2239327c5edb3a432268e5831 */ tokenAddress: string; /** * @description Token symbol. `null` when the internal token registry has no entry for this address. * @example USDC */ symbol: string | null; /** * @description Token decimals. `null` when the internal token registry has no entry for this address. * @example 6 */ decimals: number | null; /** @description Unit price in USD. `null` when the price oracle has no data for this token. */ price: { /** * @description Unit price in USD * @example 1 */ usd: number; } | null; /** * Format: uint256 * @description Token amount in the token's smallest unit * @example 1050000 */ amount: string; }; /** @description Aggregate route fees with per-category breakdown */ fees: { /** @description Full route cost in USD, regardless of who pays. Equal to `sum(breakdown.*.usd)` modulo rounding. */ total: { /** * @description USD-denominated value * @example 0.029 */ usd: number; }; /** @description Per-category fee breakdown */ breakdown: { /** @description Aggregate gas cost (destination fill, swap execution, origin gas) */ gas: { /** * @description Total cost of this category in USD, regardless of who pays. * @example 0.029 */ usd: number; /** * @description True when a sponsor absorbs some or all of this category. The user-vs-sponsor split is not surfaced. * @example false */ sponsored: boolean; }; /** @description Aggregate settlement-layer bridge cost */ bridge: { /** * @description Total cost of this category in USD, regardless of who pays. * @example 0.029 */ usd: number; /** * @description True when a sponsor absorbs some or all of this category. The user-vs-sponsor split is not surfaced. * @example false */ sponsored: boolean; }; /** @description Aggregate solver swap commission */ swap: { /** * @description Total cost of this category in USD, regardless of who pays. * @example 0.029 */ usd: number; /** * @description True when a sponsor absorbs some or all of this category. The user-vs-sponsor split is not surfaced. * @example false */ sponsored: boolean; }; /** @description Aggregate integrator app fee */ app: { /** * @description Total cost of this category in USD, regardless of who pays. * @example 0.029 */ usd: number; /** * @description True when a sponsor absorbs some or all of this category. The user-vs-sponsor split is not surfaced. * @example false */ sponsored: boolean; }; /** @description Rhinestone protocol fee (`options.protocolFees`). `sponsored: true` when the integrator sponsorship balance pays it instead of the user. */ protocol: { /** * @description Total cost of this category in USD, regardless of who pays. * @example 0.029 */ usd: number; /** * @description True when a sponsor absorbs some or all of this category. The user-vs-sponsor split is not surfaced. * @example false */ sponsored: boolean; }; /** @description Rhinestone's surcharge on the sponsored relayer coverage, charged to the sponsor. 0 when the intent is not sponsored. Pure surcharge — a sponsored protocol fee is shown on `protocol`, never here. */ sponsorSurcharge: { /** * @description Total cost of this category in USD, regardless of who pays. * @example 0.029 */ usd: number; /** * @description True when a sponsor absorbs some or all of this category. The user-vs-sponsor split is not surfaced. * @example false */ sponsored: boolean; }; }; }; /** @description Estimated fill time for the route */ estimatedFillTime: { /** * @description Typical end-to-end fill time for this route in seconds. Directional, not guaranteed. * @example 3 */ seconds: number; }; }[]; /** * @description Set when `routes` is empty and there is a single explanatory reason. * @enum {string} */ unavailableReason?: 'unsupported_token' | 'no_route_support' | 'no_price' | 'below_minimum'; }; }; }; /** @description Invalid request parameters */ 400: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description API key scope denied */ 403: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description Server error */ 500: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; }; }; getAppFeeBalances: { parameters: { query?: never; header: { /** @description API version. Required; pinned to this document. */ 'x-api-version': '2026-04.blanc'; /** @description API key. */ 'x-api-key': string; }; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { 'application/json': { withdrawableUsd: number; pendingUsd: number; }; }; }; /** @description Validation error */ 400: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description Missing or invalid API key */ 401: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description Server error */ 500: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; }; }; listAppFeeWithdrawals: { parameters: { query?: never; header: { /** @description API version. Required; pinned to this document. */ 'x-api-version': '2026-04.blanc'; /** @description API key. */ 'x-api-key': string; }; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { 'application/json': { withdrawals: { requestNonce: string; /** @enum {string} */ status: 'PENDING' | 'COMPLETED' | 'FAILED'; payoutUsd: number; targetChainId: number; targetToken: string; targetAmount: string; payoutAddress: string; txHash: string | null; createdAt: string; }[]; }; }; }; /** @description Validation error */ 400: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description Missing or invalid API key */ 401: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description API key scope denied */ 403: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description Server error */ 500: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; }; }; createAppFeeWithdrawal: { parameters: { query?: never; header: { /** @description API version. Required; pinned to this document. */ 'x-api-version': '2026-04.blanc'; /** @description API key. */ 'x-api-key': string; }; path?: never; cookie?: never; }; requestBody: { content: { 'application/json': { targetChainId: number; targetToken: string; }; }; }; responses: { /** @description OK */ 202: { headers: { [name: string]: unknown; }; content: { 'application/json': { requestNonce: string; }; }; }; /** @description No payout address, nothing to withdraw, or invalid target */ 400: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description Missing or invalid API key */ 401: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description A withdrawal is in progress or failed delivery is awaiting finalization */ 409: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description Server error */ 500: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; }; }; getAppFeeWithdrawal: { parameters: { query?: never; header: { /** @description API version. Required; pinned to this document. */ 'x-api-version': '2026-04.blanc'; /** @description API key. */ 'x-api-key': string; }; path: { nonce: string; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { 'application/json': { requestNonce: string; /** @enum {string} */ status: 'PENDING' | 'COMPLETED' | 'FAILED'; payoutUsd: number; targetChainId: number; targetToken: string; targetAmount: string; payoutAddress: string; txHash: string | null; createdAt: string; }; }; }; /** @description Validation error */ 400: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description Missing or invalid API key */ 401: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description API key scope denied */ 403: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description Withdrawal not found */ 404: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; /** @description Server error */ 500: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ code: 'VALIDATION_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Per-field validation issues */ details?: { /** @description Human-readable issue description */ message: string; /** @description Structured issue context (e.g. `{ path: "body.accountAddress" }`) */ context?: { [key: string]: unknown; }; }[]; } | { /** @enum {string} */ code: 'SIMULATION_FAILED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Classified on-chain simulation failure details */ details?: { nonce?: string; category: string; errorSelector: string; errorName: string; errorArgs?: { [key: string]: string; }; retryable: boolean; /** @enum {string} */ retryHint?: 'RE_PREPARE' | 'RETRY_LATER'; simulations?: unknown; } & { [key: string]: unknown; }; } | { /** @enum {string} */ code: 'INSUFFICIENT_LIQUIDITY'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Fillable subset and unfillable remainder */ details?: { /** @description Intents fillable with current liquidity */ availableIntents: { [key: string]: string; }[]; /** @description Token amounts that cannot be filled */ unfillable: { [key: string]: string; }; }; } | { /** @enum {string} */ code: 'KEY_SCOPE_DENIED'; /** * @description Human-readable error message * @example Invalid input */ message: string; /** @description Single-element list describing the failing scope */ details?: { message: string; context: { /** * @description Which scope rejected the request * @enum {string} */ scope: 'allowMainnet' | 'intents' | 'deposits'; /** @description Minimum level the endpoint demands */ required: boolean | ('read' | 'write'); /** @description Level resolved on the key */ actual: boolean | ('none' | 'read' | 'write'); }; }[]; } | { /** @enum {string} */ code: 'NOT_FOUND' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'CONFLICT' | 'WITHDRAWAL_IN_PROGRESS' | 'WITHDRAWAL_FINALIZATION_PENDING' | 'UNPROCESSABLE_CONTENT' | 'TOO_MANY_REQUESTS' | 'SETTLEMENT_QUOTE_ERROR' | 'SETTLEMENT_EXECUTION_ERROR' | 'EXTERNAL_SERVICE_TIMEOUT' | 'RELAYER_MARKET_UNAVAILABLE' | 'INTERNAL_ERROR'; /** * @description Human-readable error message * @example Invalid input */ message: string; }; }; }; }; }; } //# sourceMappingURL=wire.gen.d.ts.map