> ## Documentation Index
> Fetch the complete documentation index at: https://rhinestone-fix-widget-proxy-permit-routes.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Quote

> 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.



## OpenAPI

````yaml https://raw.githubusercontent.com/rhinestonewtf/openapi/refs/heads/main/orchestrator/blanc.json post /quotes
openapi: 3.0.0
info:
  title: Rhinestone Orchestrator API
  version: 2026-04.blanc
servers:
  - url: https://v1.orchestrator.rhinestone.dev
security: []
paths:
  /quotes:
    post:
      tags:
        - Quotes
      summary: 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.
      operationId: createQuote
      parameters:
        - name: x-api-version
          in: header
          required: true
          schema:
            type: string
            enum:
              - 2026-04.blanc
          description: API version. Required; pinned to this document.
        - name: x-api-key
          in: header
          required: true
          schema:
            type: string
          description: API key.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                destinationChainId:
                  type: string
                  pattern: ^(eip155|solana|tron|hypercore):[-_a-zA-Z0-9]{1,32}$
                  description: >-
                    CAIP-2 chain identifier of the destination chain (EVM
                    `eip155:<id>`, or non-EVM `solana:…`/`tron:…`)
                  example: eip155:8453
                tokenRequests:
                  type: array
                  items:
                    type: object
                    properties:
                      tokenAddress:
                        type: string
                        minLength: 1
                        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'
                      amount:
                        type: string
                        format: uint256
                        description: >-
                          The amount of the requested token (in the smallest
                          unit). Omit for max-out. IMPORTANT: for a self-send
                          with no `destinationExecutions`, any balance of this
                          token already held on the destination chain is
                          CREDITED against the request, so this behaves as a
                          target final balance and an already-satisfied request
                          delivers nothing. The credit only applies when that
                          destination balance is in scope as a source — pinning
                          `sourceAssets` or `sourceChains` away from the
                          destination chain excludes it, and then this amount is
                          delivered in full on top of whatever is already there.
                          Same-chain intents always have the destination balance
                          in scope, so they always credit.
                        example: '1000000'
                      balance:
                        readOnly: true
                    required:
                      - tokenAddress
                  description: >-
                    A list of tokens requested on the target chain. Note
                    `amount` may be credited against a balance already held on
                    the destination chain — see the field for exactly when.
                account:
                  type: object
                  properties:
                    address:
                      type: string
                      description: Account address
                      example: '0x579d5631f76126991c00fb8fe5467fa9d49e5f6a'
                    accountType:
                      type: string
                      enum:
                        - smartAccount
                        - GENERIC
                        - EOA
                        - ERC7579
                      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.
                    setupOps:
                      type: array
                      items:
                        type: object
                        properties:
                          to:
                            type: string
                            description: Account deployment factory address
                            example: '0x579d5631f76126991c00fb8fe5467fa9d49e5f6a'
                          data:
                            type: string
                            pattern: ^0x[a-fA-F0-9]*$
                            description: Account deployment data
                            example: 0x...
                        required:
                          - to
                          - data
                      description: >-
                        Setup operations for the smart account. Only used if the
                        account is not deployed
                    mockSignatures:
                      type: object
                      additionalProperties:
                        type: string
                        pattern: ^0x[a-fA-F0-9]*$
                      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.
                    mockSignature:
                      description: >-
                        Deprecated. Must be omitted; use `mockSignatures` (keyed
                        by chain id) instead.
                    delegations:
                      type: object
                      additionalProperties:
                        type: object
                        properties:
                          contract:
                            type: string
                            description: >-
                              address of contract to which delegation on behalf
                              of sponsor will be assumed for given chain ID
                        required:
                          - contract
                      description: >-
                        Per-chain specific map to delegated contract address for
                        7702 delegations. Use `0` to indicate cross-chain
                        delegation
                  required:
                    - address
                  description: Account details
                destinationExecutions:
                  type: array
                  items:
                    type: object
                    properties:
                      to:
                        type: string
                        description: Target contract address for execution
                        example: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
                      value:
                        type: string
                        format: uint256
                        description: Amount of ETH (in wei) sent in the execution
                        example: '0'
                      data:
                        type: string
                        pattern: ^0x[a-fA-F0-9]*$
                        description: Encoded function call data
                        example: >-
                          0xa9059cbb000000000000000000000000579d5631f76126991c00fb8fe5467fa9d49e5f6a00000000000000000000000000000000000000000000000000000000000f4240
                    required:
                      - to
                      - value
                      - data
                  description: Execution calls on the target chain.
                preClaimExecutions:
                  type: object
                  additionalProperties:
                    type: array
                    items:
                      type: object
                      properties:
                        to:
                          type: string
                          description: Target contract address for execution
                          example: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
                        value:
                          type: string
                          format: uint256
                          description: Amount of ETH (in wei) sent in the execution
                          example: '0'
                        data:
                          type: string
                          pattern: ^0x[a-fA-F0-9]*$
                          description: Encoded function call data
                          example: >-
                            0xa9059cbb000000000000000000000000579d5631f76126991c00fb8fe5467fa9d49e5f6a00000000000000000000000000000000000000000000000000000000000f4240
                      required:
                        - to
                        - value
                        - data
                    maxItems: 10
                  description: >-
                    Execution calls to perform before the claim on each origin
                    chain, keyed by CAIP-2 chain ID. Max 10 ops per chain, max 5
                    chains.
                  example:
                    eip155:8453:
                      - to: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
                        value: '0'
                        data: 0x
                destinationGasLimit:
                  type: string
                  format: uint256
                  description: The gas limit for the target chain executions
                  example: '100000'
                accountAccessList:
                  type: object
                  properties:
                    chainIds:
                      type: array
                      items:
                        type: string
                        pattern: ^(eip155|solana|tron|hypercore):[-_a-zA-Z0-9]{1,32}$
                        description: >-
                          CAIP-2 chain identifier (e.g. `eip155:8453`,
                          `solana:…`, `tron:…`, or a HyperCore delivery venue
                          `hypercore:spot` / `hypercore:perp`)
                        example: eip155:8453
                    tokens:
                      type: array
                      items:
                        oneOf:
                          - type: string
                          - type: string
                            enum:
                              - ETH
                              - USDC
                              - WETH
                              - USDT
                              - USDT0
                              - BNB
                              - WBNB
                              - XDAI
                              - WXDAI
                              - POL
                              - WPOL
                              - MON
                              - WMON
                              - S
                              - WS
                              - HYPE
                              - WHYPE
                              - USDG
                              - XPL
                              - WXPL
                              - AVAX
                              - WAVAX
                              - MockUSD
                              - ensUSDC
                              - TRX
                              - WTRX
                              - SOL
                              - WSOL
                    chainTokens:
                      type: object
                      additionalProperties:
                        type: array
                        items:
                          oneOf:
                            - type: string
                            - type: string
                              enum:
                                - ETH
                                - USDC
                                - WETH
                                - USDT
                                - USDT0
                                - BNB
                                - WBNB
                                - XDAI
                                - WXDAI
                                - POL
                                - WPOL
                                - MON
                                - WMON
                                - S
                                - WS
                                - HYPE
                                - WHYPE
                                - USDG
                                - XPL
                                - WXPL
                                - AVAX
                                - WAVAX
                                - MockUSD
                                - ensUSDC
                                - TRX
                                - WTRX
                                - SOL
                                - WSOL
                      description: Tokens keyed by CAIP-2 chain ID.
                      example:
                        eip155:8453:
                          - USDC
                    chainTokenAmounts:
                      type: object
                      additionalProperties:
                        type: object
                        additionalProperties:
                          type: string
                          format: uint256
                      description: >-
                        Per-token maximum input amounts keyed by CAIP-2 chain
                        ID.
                      example:
                        eip155:8453:
                          USDC: '1000000'
                    exclude:
                      type: object
                      properties:
                        chainIds:
                          type: array
                          items:
                            type: string
                            pattern: >-
                              ^(eip155|solana|tron|hypercore):[-_a-zA-Z0-9]{1,32}$
                            description: >-
                              CAIP-2 chain identifier (e.g. `eip155:8453`,
                              `solana:…`, `tron:…`, or a HyperCore delivery
                              venue `hypercore:spot` / `hypercore:perp`)
                            example: eip155:8453
                        tokens:
                          type: array
                          items:
                            oneOf:
                              - type: string
                              - type: string
                                enum:
                                  - ETH
                                  - USDC
                                  - WETH
                                  - USDT
                                  - USDT0
                                  - BNB
                                  - WBNB
                                  - XDAI
                                  - WXDAI
                                  - POL
                                  - WPOL
                                  - MON
                                  - WMON
                                  - S
                                  - WS
                                  - HYPE
                                  - WHYPE
                                  - USDG
                                  - XPL
                                  - WXPL
                                  - AVAX
                                  - WAVAX
                                  - MockUSD
                                  - ensUSDC
                                  - TRX
                                  - WTRX
                                  - SOL
                                  - WSOL
                        chainTokens:
                          type: object
                          additionalProperties:
                            type: array
                            items:
                              oneOf:
                                - type: string
                                - type: string
                                  enum:
                                    - ETH
                                    - USDC
                                    - WETH
                                    - USDT
                                    - USDT0
                                    - BNB
                                    - WBNB
                                    - XDAI
                                    - WXDAI
                                    - POL
                                    - WPOL
                                    - MON
                                    - WMON
                                    - S
                                    - WS
                                    - HYPE
                                    - WHYPE
                                    - USDG
                                    - XPL
                                    - WXPL
                                    - AVAX
                                    - WAVAX
                                    - MockUSD
                                    - ensUSDC
                                    - TRX
                                    - WTRX
                                    - SOL
                                    - WSOL
                          description: Tokens keyed by CAIP-2 chain ID.
                          example:
                            eip155:8453:
                              - USDC
                  description: >-
                    Account access list specifying which CAIP-2 chains and
                    tokens an account may access
                recipient:
                  type: object
                  properties:
                    address:
                      type: string
                      minLength: 1
                      description: >-
                        Recipient address. Format depends on destination chain —
                        0x-hex for EVM destinations, base58 for Solana,
                        T-address for Tron.
                      example: '0x579d5631f76126991c00fb8fe5467fa9d49e5f6a'
                    accountType:
                      type: string
                      enum:
                        - smartAccount
                        - GENERIC
                        - EOA
                        - ERC7579
                      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.
                    setupOps:
                      type: array
                      items:
                        type: object
                        properties:
                          to:
                            type: string
                            description: Account deployment factory address
                            example: '0x579d5631f76126991c00fb8fe5467fa9d49e5f6a'
                          data:
                            type: string
                            pattern: ^0x[a-fA-F0-9]*$
                            description: Account deployment data
                            example: 0x...
                        required:
                          - to
                          - data
                      description: >-
                        Setup operations for the smart account. Only used if the
                        account is not deployed
                    mockSignatures:
                      type: object
                      additionalProperties:
                        type: string
                        pattern: ^0x[a-fA-F0-9]*$
                      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.
                    mockSignature:
                      description: >-
                        Deprecated. Must be omitted; use `mockSignatures` (keyed
                        by chain id) instead.
                    delegations:
                      type: object
                      additionalProperties:
                        type: object
                        properties:
                          contract:
                            type: string
                            description: >-
                              address of contract to which delegation on behalf
                              of sponsor will be assumed for given chain ID
                        required:
                          - contract
                      description: >-
                        Per-chain specific map to delegated contract address for
                        7702 delegations. Use `0` to indicate cross-chain
                        delegation
                  required:
                    - address
                options:
                  type: object
                  properties:
                    settlementLayers:
                      oneOf:
                        - type: array
                          items:
                            type: string
                            enum:
                              - ACROSS
                              - ECO
                              - RELAY
                              - OFT
                              - NEAR
                              - RHINO
                              - CCTP
                        - type: object
                          properties:
                            include:
                              type: array
                              items:
                                type: string
                                enum:
                                  - ACROSS
                                  - ECO
                                  - RELAY
                                  - OFT
                                  - NEAR
                                  - RHINO
                                  - CCTP
                          required:
                            - include
                          additionalProperties: false
                        - type: object
                          properties:
                            exclude:
                              type: array
                              items:
                                type: string
                                enum:
                                  - ACROSS
                                  - ECO
                                  - RELAY
                                  - OFT
                                  - NEAR
                                  - RHINO
                                  - CCTP
                          required:
                            - exclude
                          additionalProperties: false
                      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
                    sponsorSettings:
                      type: object
                      properties:
                        gas:
                          default: false
                          type: boolean
                          description: Whether to sponsor gas for the intent
                          example: true
                        bridgeFees:
                          default: false
                          type: boolean
                          description: Whether to sponsor bridge fees for the intent
                        swapFees:
                          default: false
                          type: boolean
                          description: Whether to sponsor swap fees for the intent
                        protocolFees:
                          default: false
                          type: 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.
                      description: Sponsor settings for the intent
                      example:
                        gas: true
                        bridgeFees: true
                        swapFees: true
                    signatureMode:
                      type: string
                      enum:
                        - EMISSARY
                        - ERC1271
                        - EMISSARY_ERC1271
                        - ERC1271_EMISSARY
                        - EMISSARY_EXECUTION
                        - EMISSARY_EXECUTION_ERC1271
                        - ERC1271_EMISSARY_EXECUTION
                        - 0
                        - 1
                        - 2
                        - 3
                        - 4
                        - 5
                        - 6
                      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
                    appFees:
                      type: object
                      properties:
                        feeBps:
                          type: integer
                          minimum: 0
                          maximum: 10000
                          description: >-
                            App fee rate in basis points (0–10000 = 0–100%). The
                            base is the USD value of the intent, and which value
                            depends on the intent shape: for a fixed-output
                            intent it is the requested destination target(s),
                            summed across `tokenRequests`; for a max-out intent
                            it is the spendable source balance; for a
                            destination-swap intent it is the swap input. Note
                            the fixed-output base is the full requested target,
                            not the delta over any balance already held.
                          example: 25
                      required:
                        - feeBps
                    protocolFees:
                      type: object
                      properties:
                        feeBps:
                          type: integer
                          minimum: 0
                          maximum: 10000
                          description: >-
                            Rhinestone protocol fee rate in basis points
                            (0–10000 = 0–100%), on the same base as
                            `appFees.feeBps` — see that field. 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
                      required:
                        - feeBps
                    executionTokensReceived:
                      type: array
                      items:
                        type: string
                      description: >-
                        Tokens that will be received by EOA executions. These
                        will be swept to the recipient account.
                      example:
                        - '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
                    auxiliaryFunds:
                      type: object
                      additionalProperties:
                        type: object
                        additionalProperties:
                          type: string
                          format: uint256
                      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 CAIP-2 chain ID,
                        then token address; amounts in the token's smallest
                        unit.
                      example:
                        eip155:42161:
                          '0xaf88d065e77c8cC2239327C5EDb3A432268e5831': '500000000'
                    selectionStrategy:
                      type: string
                      enum:
                        - cheapest
                        - fastest
                        - best
                      description: >-
                        How to rank candidate plans. `cheapest` minimizes direct
                        USD cost. `fastest` minimizes estimated fill time (with
                        cost tiebreaker). `best` minimizes total USD given up:
                        delivered-output forgone versus the best candidate, plus
                        cost, plus the cost of waiting. Waiting is charged both
                        in proportion to notional (0.8 bps per minute, modelling
                        price risk on funds in flight) and as a flat $0.10 per
                        minute independent of size, so small intents are ranked
                        mostly on speed and large ones mostly on price. The two
                        are equal at $1,250 of notional.
                      example: best
                    customDeadline:
                      type: integer
                      minimum: 0
                      exclusiveMinimum: true
                      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
                  description: Intent options
                  example:
                    settlementLayers:
                      include:
                        - ECO
                    sponsorSettings:
                      gas: true
                      bridgeFees: true
                      swapFees: true
              required:
                - destinationChainId
                - tokenRequests
                - account
              description: >-
                Quote request. Chain ids are CAIP-2 strings (e.g. `eip155:8453`,
                `solana:…`, `tron:…`); bare numeric ids are rejected.
              example:
                destinationChainId: eip155:8453
                tokenRequests:
                  - tokenAddress: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913'
                    amount: '1000000'
                account:
                  address: '0x579d5631f76126991c00fb8fe5467fa9d49e5f6a'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  routes:
                    type: array
                    items:
                      type: object
                      properties:
                        intentId:
                          type: string
                          pattern: ^\d+$
                          description: >-
                            Server-stored intent identifier. Pass back to `POST
                            /intents` to submit.
                        expiresAt:
                          type: integer
                          minimum: 0
                          description: >-
                            Quote expiry timestamp (Unix seconds). After this
                            point, assume the quote is dead and re-quote.
                          example: 1733493192
                        estimatedFillTime:
                          type: object
                          properties:
                            seconds:
                              type: number
                              description: >-
                                Typical end-to-end fill time for this route in
                                seconds. Directional, not guaranteed.
                              example: 3
                          required:
                            - seconds
                          description: Estimated fill time for the route
                        settlementLayer:
                          type: string
                          enum:
                            - INTENT_EXECUTOR
                            - SAME_CHAIN
                            - ACROSS
                            - ECO
                            - RELAY
                            - OFT
                            - NEAR
                            - RHINO
                            - CCTP
                          description: Settlement layer selected for this route
                          example: RELAY
                        signData:
                          type: object
                          properties:
                            origin:
                              type: array
                              items:
                                type: object
                                properties:
                                  domain:
                                    type: object
                                    properties:
                                      name:
                                        type: string
                                      version:
                                        type: string
                                      chainId:
                                        type: number
                                      verifyingContract:
                                        type: string
                                      salt:
                                        type: string
                                    description: EIP-712 domain separator fields
                                  types:
                                    type: object
                                    additionalProperties:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          name:
                                            type: string
                                          type:
                                            type: string
                                        required:
                                          - name
                                          - type
                                    description: >-
                                      EIP-712 type definitions keyed by type
                                      name
                                  primaryType:
                                    type: string
                                    description: Name of the top-level type to sign
                                    example: PermitBatchWitnessTransferFrom
                                  message:
                                    type: object
                                    additionalProperties: {}
                                    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.
                                required:
                                  - domain
                                  - types
                                  - primaryType
                                  - message
                                description: >-
                                  EIP-712 typed data definition ready for
                                  `signTypedData`
                              description: >-
                                Typed data payloads for the origin legs, in
                                submission order. Sign each entry and submit the
                                signatures in matching order via
                                `signatures.origin`.
                            destination:
                              type: object
                              properties:
                                domain:
                                  type: object
                                  properties:
                                    name:
                                      type: string
                                    version:
                                      type: string
                                    chainId:
                                      type: number
                                    verifyingContract:
                                      type: string
                                    salt:
                                      type: string
                                  description: EIP-712 domain separator fields
                                types:
                                  type: object
                                  additionalProperties:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        name:
                                          type: string
                                        type:
                                          type: string
                                      required:
                                        - name
                                        - type
                                  description: EIP-712 type definitions keyed by type name
                                primaryType:
                                  type: string
                                  description: Name of the top-level type to sign
                                  example: PermitBatchWitnessTransferFrom
                                message:
                                  type: object
                                  additionalProperties: {}
                                  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.
                              required:
                                - domain
                                - types
                                - primaryType
                                - message
                              description: Typed data for the destination leg
                            targetExecution:
                              type: object
                              properties:
                                domain:
                                  type: object
                                  properties:
                                    name:
                                      type: string
                                    version:
                                      type: string
                                    chainId:
                                      type: number
                                    verifyingContract:
                                      type: string
                                    salt:
                                      type: string
                                  description: EIP-712 domain separator fields
                                types:
                                  type: object
                                  additionalProperties:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        name:
                                          type: string
                                        type:
                                          type: string
                                      required:
                                        - name
                                        - type
                                  description: EIP-712 type definitions keyed by type name
                                primaryType:
                                  type: string
                                  description: Name of the top-level type to sign
                                  example: PermitBatchWitnessTransferFrom
                                message:
                                  type: object
                                  additionalProperties: {}
                                  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.
                              required:
                                - domain
                                - types
                                - primaryType
                                - message
                              description: >-
                                Typed data for the target execution, smart
                                sessions only. Omitted for EOA accounts.
                          required:
                            - origin
                            - destination
                          description: >-
                            EIP-712 sign payloads the client submits back on
                            `POST /intents`
                        cost:
                          type: object
                          properties:
                            input:
                              type: array
                              items:
                                type: object
                                properties:
                                  chainId:
                                    type: string
                                    pattern: ^eip155:[0-9]{1,32}$
                                    description: Chain where this token leg settles
                                    example: eip155:8453
                                  tokenAddress:
                                    type: string
                                    description: ERC-20 contract address for this token
                                    example: '0xaf88d065e77c8cc2239327c5edb3a432268e5831'
                                  symbol:
                                    type: string
                                    nullable: true
                                    description: >-
                                      Token symbol. `null` when the internal
                                      token registry has no entry for this
                                      address.
                                    example: USDC
                                  decimals:
                                    type: integer
                                    nullable: true
                                    description: >-
                                      Token decimals. `null` when the internal
                                      token registry has no entry for this
                                      address.
                                    example: 6
                                  price:
                                    type: object
                                    properties:
                                      usd:
                                        type: number
                                        description: Unit price in USD
                                        example: 1
                                    required:
                                      - usd
                                    nullable: true
                                    description: >-
                                      Unit price in USD. `null` when the price
                                      oracle has no data for this token.
                                  amount:
                                    type: string
                                    format: uint256
                                    description: Token amount in the token's smallest unit
                                    example: '1050000'
                                required:
                                  - chainId
                                  - tokenAddress
                                  - symbol
                                  - decimals
                                  - price
                                  - amount
                                description: >-
                                  A single (chain, token) leg with amount,
                                  price, and metadata
                              description: >-
                                Tokens debited from the user, coalesced by
                                (chainId, tokenAddress)
                            output:
                              type: array
                              items:
                                type: object
                                properties:
                                  chainId:
                                    type: string
                                    pattern: >-
                                      ^(eip155|solana|tron|hypercore):[-_a-zA-Z0-9]{1,32}$
                                    description: >-
                                      Chain where this token leg settles
                                      (CAIP-2, any namespace)
                                    example: eip155:8453
                                  tokenAddress:
                                    type: string
                                    minLength: 1
                                    description: >-
                                      Contract address of the delivered token
                                      (EVM 0x or non-EVM base58)
                                    example: '0xaf88d065e77c8cc2239327c5edb3a432268e5831'
                                  symbol:
                                    type: string
                                    nullable: true
                                    description: >-
                                      Token symbol. `null` when the internal
                                      token registry has no entry for this
                                      address.
                                    example: USDC
                                  decimals:
                                    type: integer
                                    nullable: true
                                    description: >-
                                      Token decimals. `null` when the internal
                                      token registry has no entry for this
                                      address.
                                    example: 6
                                  price:
                                    type: object
                                    properties:
                                      usd:
                                        type: number
                                        description: Unit price in USD
                                        example: 1
                                    required:
                                      - usd
                                    nullable: true
                                    description: >-
                                      Unit price in USD. `null` when the price
                                      oracle has no data for this token.
                                  amount:
                                    type: string
                                    format: uint256
                                    description: Token amount in the token's smallest unit
                                    example: '1050000'
                                required:
                                  - chainId
                                  - tokenAddress
                                  - symbol
                                  - decimals
                                  - price
                                  - amount
                                description: >-
                                  A single (chain, token) leg with amount,
                                  price, and metadata
                              description: >-
                                Tokens delivered to the recipient, coalesced by
                                (chainId, tokenAddress)
                            fees:
                              type: object
                              properties:
                                total:
                                  type: object
                                  properties:
                                    usd:
                                      type: number
                                      description: USD-denominated value
                                      example: 0.029
                                  required:
                                    - usd
                                  description: >-
                                    Full route cost in USD, regardless of who
                                    pays. Equal to `sum(breakdown.*.usd)` modulo
                                    rounding.
                                breakdown:
                                  type: object
                                  properties:
                                    gas:
                                      type: object
                                      properties:
                                        usd:
                                          type: number
                                          description: >-
                                            Total cost of this category in USD,
                                            regardless of who pays.
                                          example: 0.029
                                        sponsored:
                                          type: boolean
                                          description: >-
                                            True when a sponsor absorbs some or all
                                            of this category. The user-vs-sponsor
                                            split is not surfaced.
                                          example: false
                                      required:
                                        - usd
                                        - sponsored
                                      description: >-
                                        Aggregate gas cost (destination fill,
                                        swap execution, origin gas)
                                    bridge:
                                      type: object
                                      properties:
                                        usd:
                                          type: number
                                          description: >-
                                            Total cost of this category in USD,
                                            regardless of who pays.
                                          example: 0.029
                                        sponsored:
                                          type: boolean
                                          description: >-
                                            True when a sponsor absorbs some or all
                                            of this category. The user-vs-sponsor
                                            split is not surfaced.
                                          example: false
                                      required:
                                        - usd
                                        - sponsored
                                      description: Aggregate settlement-layer bridge cost
                                    swap:
                                      type: object
                                      properties:
                                        usd:
                                          type: number
                                          description: >-
                                            Total cost of this category in USD,
                                            regardless of who pays.
                                          example: 0.029
                                        sponsored:
                                          type: boolean
                                          description: >-
                                            True when a sponsor absorbs some or all
                                            of this category. The user-vs-sponsor
                                            split is not surfaced.
                                          example: false
                                      required:
                                        - usd
                                        - sponsored
                                      description: Aggregate solver swap commission
                                    app:
                                      type: object
                                      properties:
                                        usd:
                                          type: number
                                          description: >-
                                            Total cost of this category in USD,
                                            regardless of who pays.
                                          example: 0.029
                                        sponsored:
                                          type: boolean
                                          description: >-
                                            True when a sponsor absorbs some or all
                                            of this category. The user-vs-sponsor
                                            split is not surfaced.
                                          example: false
                                      required:
                                        - usd
                                        - sponsored
                                      description: Aggregate integrator app fee
                                    protocol:
                                      type: object
                                      properties:
                                        usd:
                                          type: number
                                          description: >-
                                            Total cost of this category in USD,
                                            regardless of who pays.
                                          example: 0.029
                                        sponsored:
                                          type: boolean
                                          description: >-
                                            True when a sponsor absorbs some or all
                                            of this category. The user-vs-sponsor
                                            split is not surfaced.
                                          example: false
                                      required:
                                        - usd
                                        - sponsored
                                      description: >-
                                        Rhinestone protocol fee
                                        (`options.protocolFees`). `sponsored:
                                        true` when the integrator sponsorship
                                        balance pays it instead of the user.
                                    sponsorSurcharge:
                                      type: object
                                      properties:
                                        usd:
                                          type: number
                                          description: >-
                                            Total cost of this category in USD,
                                            regardless of who pays.
                                          example: 0.029
                                        sponsored:
                                          type: boolean
                                          description: >-
                                            True when a sponsor absorbs some or all
                                            of this category. The user-vs-sponsor
                                            split is not surfaced.
                                          example: false
                                      required:
                                        - usd
                                        - sponsored
                                      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.
                                  required:
                                    - gas
                                    - bridge
                                    - swap
                                    - app
                                    - protocol
                                    - sponsorSurcharge
                                  description: Per-category fee breakdown
                              required:
                                - total
                                - breakdown
                              description: Aggregate route fees with per-category breakdown
                          required:
                            - input
                            - output
                            - fees
                          description: 'Route cost: inputs, outputs, and fee breakdown'
                        tokenRequirements:
                          type: object
                          additionalProperties:
                            type: object
                            additionalProperties:
                              oneOf:
                                - type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - approval
                                      description: >-
                                        Discriminator: `approval` means the user
                                        must ERC-20 approve `spender` for at
                                        least `amount` before submission.
                                    amount:
                                      type: string
                                      format: uint256
                                      description: >-
                                        Minimum required allowance, in the
                                        token's smallest unit.
                                    spender:
                                      type: string
                                      description: >-
                                        Always the canonical Permit2 contract on
                                        this chain. The EOA approves Permit2;
                                        the settlement contract pulls funds via
                                        Permit2 at claim time.
                                  required:
                                    - type
                                    - amount
                                    - spender
                                - type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - wrap
                                      description: >-
                                        Discriminator: `wrap` means the user
                                        must wrap native ETH into the chain's
                                        WETH-equivalent before submission.
                                    amount:
                                      type: string
                                      format: uint256
                                      description: Minimum amount to wrap, in wei.
                                  required:
                                    - type
                                    - amount
                          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'
                        bridgeFill:
                          discriminator:
                            propertyName: type
                          oneOf:
                            - type: object
                              properties:
                                destinationChainId:
                                  type: number
                                  description: Destination chain ID for the bridge fill
                                fillExpirationPeriod:
                                  type: integer
                                  minimum: 0
                                  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.
                                fillStatusTimeout:
                                  type: integer
                                  minimum: 0
                                  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.
                                type:
                                  type: string
                                  enum:
                                    - OFT
                                  description: LayerZero OFT
                              required:
                                - destinationChainId
                                - fillStatusTimeout
                                - type
                            - type: object
                              properties:
                                destinationChainId:
                                  type: number
                                  description: Destination chain ID for the bridge fill
                                fillExpirationPeriod:
                                  type: integer
                                  minimum: 0
                                  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.
                                fillStatusTimeout:
                                  type: integer
                                  minimum: 0
                                  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.
                                type:
                                  type: string
                                  enum:
                                    - RELAY
                                  description: Relay.link
                                requestId:
                                  type: string
                                  description: >-
                                    Relay.link request ID. Use against
                                    Relay.link's status API to track the
                                    destination-chain fill.
                              required:
                                - destinationChainId
                                - fillStatusTimeout
                                - type
                                - requestId
                            - type: object
                              properties:
                                destinationChainId:
                                  type: number
                                  description: Destination chain ID for the bridge fill
                                fillExpirationPeriod:
                                  type: integer
                                  minimum: 0
                                  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.
                                fillStatusTimeout:
                                  type: integer
                                  minimum: 0
                                  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.
                                type:
                                  type: string
                                  enum:
                                    - NEAR
                                  description: NEAR Intents
                                depositAddress:
                                  type: string
                                  description: >-
                                    NEAR Intents deposit address. Track fill
                                    status via the NEAR Intents status API keyed
                                    on this address.
                              required:
                                - destinationChainId
                                - fillStatusTimeout
                                - type
                                - depositAddress
                            - type: object
                              properties:
                                destinationChainId:
                                  type: number
                                  description: Destination chain ID for the bridge fill
                                fillExpirationPeriod:
                                  type: integer
                                  minimum: 0
                                  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.
                                fillStatusTimeout:
                                  type: integer
                                  minimum: 0
                                  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.
                                type:
                                  type: string
                                  enum:
                                    - RHINO
                                  description: Rhino.fi
                                commitmentId:
                                  type: string
                                  description: >-
                                    Rhino.fi commitment ID. Use against
                                    Rhino.fi's status API to track the
                                    destination-chain fill.
                              required:
                                - destinationChainId
                                - fillStatusTimeout
                                - type
                                - commitmentId
                            - type: object
                              properties:
                                destinationChainId:
                                  type: number
                                  description: Destination chain ID for the bridge fill
                                fillExpirationPeriod:
                                  type: integer
                                  minimum: 0
                                  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.
                                fillStatusTimeout:
                                  type: integer
                                  minimum: 0
                                  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.
                                type:
                                  type: string
                                  enum:
                                    - CCTP
                                  description: Circle CCTP
                                sourceDomainId:
                                  type: number
                                  description: >-
                                    Circle CCTP source domain ID — needed to
                                    fetch the attestation for the burn message
                                    on the source chain.
                                destinationDomainId:
                                  type: number
                                  description: Circle CCTP destination domain ID.
                              required:
                                - destinationChainId
                                - fillStatusTimeout
                                - type
                                - sourceDomainId
                                - destinationDomainId
                          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).
                      required:
                        - intentId
                        - expiresAt
                        - estimatedFillTime
                        - settlementLayer
                        - signData
                        - cost
                      description: A single ranked route candidate
                    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.
                required:
                  - routes
                description: Response body for `POST /quotes` on the blanc API version
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                discriminator:
                  propertyName: code
                oneOf:
                  - type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - VALIDATION_ERROR
                      message:
                        type: string
                        description: Human-readable error message
                        example: Invalid input
                      details:
                        type: array
                        items:
                          type: object
                          properties:
                            message:
                              type: string
                              description: Human-readable issue description
                            context:
                              type: object
                              additionalProperties: {}
                              description: >-
                                Structured issue context (e.g. `{ path:
                                "body.accountAddress" }`)
                          required:
                            - message
                        description: Per-field validation issues
                    required:
                      - code
                      - message
                  - type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - SIMULATION_FAILED
                      message:
                        type: string
                        description: Human-readable error message
                        example: Invalid input
                      details:
                        type: object
                        properties:
                          nonce:
                            type: string
                          category:
                            type: string
                          errorSelector:
                            type: string
                          errorName:
                            type: string
                          errorArgs:
                            type: object
                            additionalProperties:
                              type: string
                          retryable:
                            type: boolean
                          retryHint:
                            type: string
                            enum:
                              - RE_PREPARE
                              - RETRY_LATER
                          simulations: {}
                        required:
                          - category
                          - errorSelector
                          - errorName
                          - retryable
                        additionalProperties: true
                        description: Classified on-chain simulation failure details
                    required:
                      - code
                      - message
                  - type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - INSUFFICIENT_LIQUIDITY
                      message:
                        type: string
                        description: Human-readable error message
                        example: Invalid input
                      details:
                        type: object
                        properties:
                          availableIntents:
                            type: array
                            items:
                              type: object
                              additionalProperties:
                                type: string
                            description: Intents fillable with current liquidity
                          unfillable:
                            type: object
                            additionalProperties:
                              type: string
                            description: Token amounts that cannot be filled
                        required:
                          - availableIntents
                          - unfillable
                        description: Fillable subset and unfillable remainder
                    required:
                      - code
                      - message
                  - type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - KEY_SCOPE_DENIED
                      message:
                        type: string
                        description: Human-readable error message
                        example: Invalid input
                      details:
                        type: array
                        items:
                          type: object
                          properties:
                            message:
                              type: string
                            context:
                              type: object
                              properties:
                                scope:
                                  type: string
                                  enum:
                                    - allowMainnet
                                    - intents
                                    - deposits
                                  description: Which scope rejected the request
                                required:
                                  oneOf:
                                    - type: boolean
                                    - type: string
                                      enum:
                                        - read
                                        - write
                                  description: Minimum level the endpoint demands
                                actual:
                                  oneOf:
                                    - type: boolean
                                    - type: string
                                      enum:
                                        - none
                                        - read
                                        - write
                                  description: Level resolved on the key
                              required:
                                - scope
                                - required
                                - actual
                          required:
                            - message
                            - context
                        description: Single-element list describing the failing scope
                    required:
                      - code
                      - message
                  - type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - NOT_FOUND
                          - UNAUTHORIZED
                          - FORBIDDEN
                          - CONFLICT
                          - WITHDRAWAL_IN_PROGRESS
                          - UNPROCESSABLE_CONTENT
                          - TOO_MANY_REQUESTS
                          - SETTLEMENT_QUOTE_ERROR
                          - SETTLEMENT_EXECUTION_ERROR
                          - EXTERNAL_SERVICE_TIMEOUT
                          - RELAYER_MARKET_UNAVAILABLE
                          - INTERNAL_ERROR
                      message:
                        type: string
                        description: Human-readable error message
                        example: Invalid input
                    required:
                      - code
                      - message
        '403':
          description: API key scope denied
          content:
            application/json:
              schema:
                discriminator:
                  propertyName: code
                oneOf:
                  - type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - VALIDATION_ERROR
                      message:
                        type: string
                        description: Human-readable error message
                        example: Invalid input
                      details:
                        type: array
                        items:
                          type: object
                          properties:
                            message:
                              type: string
                              description: Human-readable issue description
                            context:
                              type: object
                              additionalProperties: {}
                              description: >-
                                Structured issue context (e.g. `{ path:
                                "body.accountAddress" }`)
                          required:
                            - message
                        description: Per-field validation issues
                    required:
                      - code
                      - message
                  - type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - SIMULATION_FAILED
                      message:
                        type: string
                        description: Human-readable error message
                        example: Invalid input
                      details:
                        type: object
                        properties:
                          nonce:
                            type: string
                          category:
                            type: string
                          errorSelector:
                            type: string
                          errorName:
                            type: string
                          errorArgs:
                            type: object
                            additionalProperties:
                              type: string
                          retryable:
                            type: boolean
                          retryHint:
                            type: string
                            enum:
                              - RE_PREPARE
                              - RETRY_LATER
                          simulations: {}
                        required:
                          - category
                          - errorSelector
                          - errorName
                          - retryable
                        additionalProperties: true
                        description: Classified on-chain simulation failure details
                    required:
                      - code
                      - message
                  - type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - INSUFFICIENT_LIQUIDITY
                      message:
                        type: string
                        description: Human-readable error message
                        example: Invalid input
                      details:
                        type: object
                        properties:
                          availableIntents:
                            type: array
                            items:
                              type: object
                              additionalProperties:
                                type: string
                            description: Intents fillable with current liquidity
                          unfillable:
                            type: object
                            additionalProperties:
                              type: string
                            description: Token amounts that cannot be filled
                        required:
                          - availableIntents
                          - unfillable
                        description: Fillable subset and unfillable remainder
                    required:
                      - code
                      - message
                  - type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - KEY_SCOPE_DENIED
                      message:
                        type: string
                        description: Human-readable error message
                        example: Invalid input
                      details:
                        type: array
                        items:
                          type: object
                          properties:
                            message:
                              type: string
                            context:
                              type: object
                              properties:
                                scope:
                                  type: string
                                  enum:
                                    - allowMainnet
                                    - intents
                                    - deposits
                                  description: Which scope rejected the request
                                required:
                                  oneOf:
                                    - type: boolean
                                    - type: string
                                      enum:
                                        - read
                                        - write
                                  description: Minimum level the endpoint demands
                                actual:
                                  oneOf:
                                    - type: boolean
                                    - type: string
                                      enum:
                                        - none
                                        - read
                                        - write
                                  description: Level resolved on the key
                              required:
                                - scope
                                - required
                                - actual
                          required:
                            - message
                            - context
                        description: Single-element list describing the failing scope
                    required:
                      - code
                      - message
                  - type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - NOT_FOUND
                          - UNAUTHORIZED
                          - FORBIDDEN
                          - CONFLICT
                          - WITHDRAWAL_IN_PROGRESS
                          - UNPROCESSABLE_CONTENT
                          - TOO_MANY_REQUESTS
                          - SETTLEMENT_QUOTE_ERROR
                          - SETTLEMENT_EXECUTION_ERROR
                          - EXTERNAL_SERVICE_TIMEOUT
                          - RELAYER_MARKET_UNAVAILABLE
                          - INTERNAL_ERROR
                      message:
                        type: string
                        description: Human-readable error message
                        example: Invalid input
                    required:
                      - code
                      - message
        '500':
          description: Server error
          content:
            application/json:
              schema:
                discriminator:
                  propertyName: code
                oneOf:
                  - type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - VALIDATION_ERROR
                      message:
                        type: string
                        description: Human-readable error message
                        example: Invalid input
                      details:
                        type: array
                        items:
                          type: object
                          properties:
                            message:
                              type: string
                              description: Human-readable issue description
                            context:
                              type: object
                              additionalProperties: {}
                              description: >-
                                Structured issue context (e.g. `{ path:
                                "body.accountAddress" }`)
                          required:
                            - message
                        description: Per-field validation issues
                    required:
                      - code
                      - message
                  - type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - SIMULATION_FAILED
                      message:
                        type: string
                        description: Human-readable error message
                        example: Invalid input
                      details:
                        type: object
                        properties:
                          nonce:
                            type: string
                          category:
                            type: string
                          errorSelector:
                            type: string
                          errorName:
                            type: string
                          errorArgs:
                            type: object
                            additionalProperties:
                              type: string
                          retryable:
                            type: boolean
                          retryHint:
                            type: string
                            enum:
                              - RE_PREPARE
                              - RETRY_LATER
                          simulations: {}
                        required:
                          - category
                          - errorSelector
                          - errorName
                          - retryable
                        additionalProperties: true
                        description: Classified on-chain simulation failure details
                    required:
                      - code
                      - message
                  - type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - INSUFFICIENT_LIQUIDITY
                      message:
                        type: string
                        description: Human-readable error message
                        example: Invalid input
                      details:
                        type: object
                        properties:
                          availableIntents:
                            type: array
                            items:
                              type: object
                              additionalProperties:
                                type: string
                            description: Intents fillable with current liquidity
                          unfillable:
                            type: object
                            additionalProperties:
                              type: string
                            description: Token amounts that cannot be filled
                        required:
                          - availableIntents
                          - unfillable
                        description: Fillable subset and unfillable remainder
                    required:
                      - code
                      - message
                  - type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - KEY_SCOPE_DENIED
                      message:
                        type: string
                        description: Human-readable error message
                        example: Invalid input
                      details:
                        type: array
                        items:
                          type: object
                          properties:
                            message:
                              type: string
                            context:
                              type: object
                              properties:
                                scope:
                                  type: string
                                  enum:
                                    - allowMainnet
                                    - intents
                                    - deposits
                                  description: Which scope rejected the request
                                required:
                                  oneOf:
                                    - type: boolean
                                    - type: string
                                      enum:
                                        - read
                                        - write
                                  description: Minimum level the endpoint demands
                                actual:
                                  oneOf:
                                    - type: boolean
                                    - type: string
                                      enum:
                                        - none
                                        - read
                                        - write
                                  description: Level resolved on the key
                              required:
                                - scope
                                - required
                                - actual
                          required:
                            - message
                            - context
                        description: Single-element list describing the failing scope
                    required:
                      - code
                      - message
                  - type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - NOT_FOUND
                          - UNAUTHORIZED
                          - FORBIDDEN
                          - CONFLICT
                          - WITHDRAWAL_IN_PROGRESS
                          - UNPROCESSABLE_CONTENT
                          - TOO_MANY_REQUESTS
                          - SETTLEMENT_QUOTE_ERROR
                          - SETTLEMENT_EXECUTION_ERROR
                          - EXTERNAL_SERVICE_TIMEOUT
                          - RELAYER_MARKET_UNAVAILABLE
                          - INTERNAL_ERROR
                      message:
                        type: string
                        description: Human-readable error message
                        example: Invalid input
                    required:
                      - code
                      - message

````