> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rhinestone.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Quote

> Computes a quote for a cross-chain 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.json post /quotes
openapi: 3.0.2
info:
  title: Rhinestone Orchestrator API
  version: 1.0.0
servers:
  - url: https://v1.orchestrator.rhinestone.dev
security: []
paths:
  /quotes:
    post:
      tags:
        - Quotes
      summary: Create Quote
      description: >-
        Computes a quote for a cross-chain intent: token transfers, target
        executions, and cost breakdown. Returns a pre-ranked `routes[]` with
        per-route `intentId` to pass to `POST /intents` for execution.
      parameters:
        - name: x-api-key
          in: header
          required: true
          schema:
            type: string
            description: Rhinestone API key
        - name: x-api-version
          in: header
          schema:
            type: string
            pattern: ^\d{4}-\d{2}\.[a-z0-9]+$
            description: >-
              API version (YYYY-MM.name). Will become required in a future
              release.
            example: 2026-01.alps
      requestBody:
        description: Body
        content:
          application/json:
            schema:
              type: object
              properties:
                destinationChainId:
                  type: string
                  pattern: ^eip155:\d+$
                  description: The ID of the target blockchain
                  example: eip155:42161
                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.
                        example: '1000000'
                      balance:
                        type: string
                        enum:
                          - spot
                          - perp
                        description: >-
                          HyperCore balance class for this token request —
                          'spot' or 'perp'. Optional; defaults to 'perp' when
                          destinationChainId is HyperCore. Rejected on every
                          other destination.
                        example: spot
                    required:
                      - tokenAddress
                  description: A list of token requested on the target chain
                account:
                  type: object
                  properties:
                    address:
                      type: string
                      description: Account address
                      example: '0x579d5631f76126991c00fb8fe5467fa9d49e5f6a'
                    accountType:
                      type: string
                      enum:
                        - 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.
                    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 chain ID. Max 10 ops per chain, max 5
                    chains. Object keyed by CAIP-2 chain identifier (e.g.
                    `eip155:42161`).
                  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:\d+$
                        description: >-
                          CAIP-2 chain identifier (`eip155:<chainId>` for EVM
                          chains)
                        example: eip155:42161
                    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
                              - XPL
                              - WXPL
                              - MockUSD
                              - 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
                                - XPL
                                - WXPL
                                - MockUSD
                                - TRX
                                - WTRX
                                - SOL
                                - WSOL
                      description: >-
                        Object keyed by CAIP-2 chain identifier (e.g.
                        `eip155:42161`).
                    chainTokenAmounts:
                      type: object
                      additionalProperties:
                        type: object
                        additionalProperties:
                          type: string
                          format: uint256
                    exclude:
                      type: object
                      properties:
                        chainIds:
                          type: array
                          items:
                            type: string
                            pattern: ^eip155:\d+$
                            description: >-
                              CAIP-2 chain identifier (`eip155:<chainId>` for
                              EVM chains)
                            example: eip155:42161
                        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
                                  - XPL
                                  - WXPL
                                  - MockUSD
                                  - 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
                                    - XPL
                                    - WXPL
                                    - MockUSD
                                    - TRX
                                    - WTRX
                                    - SOL
                                    - WSOL
                          description: >-
                            Object keyed by CAIP-2 chain identifier (e.g.
                            `eip155:42161`).
                  description: >-
                    Account access list specifying which 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:
                        - 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.
                    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
                      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
                    feeToken:
                      type: string
                      enum:
                        - ETH
                        - USDC
                        - WETH
                        - USDT
                        - USDT0
                        - BNB
                        - WBNB
                        - XDAI
                        - WXDAI
                        - POL
                        - WPOL
                        - MON
                        - WMON
                        - S
                        - WS
                        - HYPE
                        - WHYPE
                        - XPL
                        - WXPL
                        - MockUSD
                        - TRX
                        - WTRX
                        - SOL
                        - WSOL
                      description: Reserved for future use. No effect today.
                    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 chain ID, then
                        token address; amounts in the token's smallest unit.
                        Object keyed by CAIP-2 chain identifier (e.g.
                        `eip155:42161`).
                      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` balances both via a notional-
                        and time-weighted shadow fee.
                      example: best
                  description: Intent options
                  example:
                    settlementLayers:
                      include:
                        - ECO
                    sponsorSettings:
                      gas: true
                      bridgeFees: true
                      swapFees: true
                    feeToken: USDC
              required:
                - destinationChainId
                - tokenRequests
                - account
      responses:
        '200':
          description: '200'
          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: string
                                        pattern: ^eip155:\d+$
                                        description: >-
                                          CAIP-2 chain identifier
                                          (`eip155:<chainId>` for EVM chains)
                                        example: eip155:42161
                                      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:
                                      nullable: true
                                    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: string
                                      pattern: ^eip155:\d+$
                                      description: >-
                                        CAIP-2 chain identifier
                                        (`eip155:<chainId>` for EVM chains)
                                      example: eip155:42161
                                    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:
                                    nullable: true
                                  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: string
                                      pattern: ^eip155:\d+$
                                      description: >-
                                        CAIP-2 chain identifier
                                        (`eip155:<chainId>` for EVM chains)
                                      example: eip155:42161
                                    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:
                                    nullable: true
                                  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:\d+$
                                    description: Chain where this token leg settles
                                    example: eip155:42161
                                  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:\d+$
                                    description: Chain where this token leg settles
                                    example: eip155:42161
                                  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 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
                                  required:
                                    - gas
                                    - bridge
                                    - swap
                                  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. Object keyed by CAIP-2
                            chain identifier (e.g. `eip155:42161`).
                          example:
                            eip155:8453:
                              '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913':
                                type: approval
                                amount: '1000000'
                                spender: '0x000000000022d473030f116ddee9f6b43ac78ba3'
                        bridgeFill:
                          discriminator:
                            propertyName: type
                          oneOf:
                            - type: object
                              properties:
                                destinationChainId:
                                  type: string
                                  pattern: ^eip155:\d+$
                                  description: Destination chain ID for the bridge fill
                                  example: eip155:42161
                                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.
                                type:
                                  type: string
                                  enum:
                                    - OFT
                                  description: LayerZero OFT
                              required:
                                - destinationChainId
                                - type
                            - type: object
                              properties:
                                destinationChainId:
                                  type: string
                                  pattern: ^eip155:\d+$
                                  description: Destination chain ID for the bridge fill
                                  example: eip155:42161
                                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.
                                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
                                - type
                                - requestId
                            - type: object
                              properties:
                                destinationChainId:
                                  type: string
                                  pattern: ^eip155:\d+$
                                  description: Destination chain ID for the bridge fill
                                  example: eip155:42161
                                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.
                                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
                                - type
                                - depositAddress
                            - type: object
                              properties:
                                destinationChainId:
                                  type: string
                                  pattern: ^eip155:\d+$
                                  description: Destination chain ID for the bridge fill
                                  example: eip155:42161
                                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.
                                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
                                - type
                                - commitmentId
                            - type: object
                              properties:
                                destinationChainId:
                                  type: string
                                  pattern: ^eip155:\d+$
                                  description: Destination chain ID for the bridge fill
                                  example: eip155:42161
                                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.
                                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
                                - 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: '400'
          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:
                                nullable: true
                              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:
                            nullable: true
                        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
                          - 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
                description: Invalid request parameters
        '403':
          description: '403'
          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:
                                nullable: true
                              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:
                            nullable: true
                        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
                          - 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
                description: API key scope denied
        '500':
          description: '500'
          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:
                                nullable: true
                              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:
                            nullable: true
                        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
                          - 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
                description: Server error

````