Eco

Eco Quotes V3 API

The Quotes V3 API from Eco — 9 operation(s) for quotes v3.

OpenAPI Specification

eco-quotes-v3-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Eco Routes Quotes V1 Quotes V3 API
  description: Eco Routes API documentation
  version: '1.0'
  contact: {}
servers:
- url: https://quotes.eco.com
  description: Production
- url: https://quotes-preprod.eco.com
  description: Preproduction
- url: https://quotes.staging.eco.com
  description: Staging
- url: http://localhost:3000
  description: Local
tags:
- name: Quotes V3
paths:
  /api/v3/intents/intentStatus:
    post:
      operationId: IntentsController_getIntentStatus
      summary: Get Intent Status
      description: 'Query the current status of a cross-chain intent transaction. Provide one of: intentHash, intentCreatedHash, or fulfillmentHash to track the intent''s progress through the execution lifecycle.'
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IntentStatusRequestV3DTO'
      responses:
        '200':
          description: Successfully retrieved intent status and transaction details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntentStatusResponseV3DTO'
      tags:
      - Quotes V3
  /api/v3/intents/status:
    post:
      operationId: IntentsController_getIntentStatusArray
      summary: Get Intent Status Array
      description: 'Query the status of multiple intents created in the same transaction. Returns an array of intent statuses ordered by creation event log index. Provide one of: intentHash, intentCreatedHash, or fulfillmentHash. Limited to 100 results.'
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IntentStatusRequestV3DTO'
      responses:
        '200':
          description: Successfully retrieved array of intent statuses ordered by log index
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntentStatusArrayResponseV3DTO'
        '404':
          description: No intents found matching the search criteria
      tags:
      - Quotes V3
  /api/v3/intents/intentsByAddress:
    post:
      operationId: IntentsController_getIntentsByAddress
      summary: Get Intents By Address
      description: Query intents by creator/funder addresses across EVM, Solana, and Tron chains. Supports pagination and date range filtering. At least one address array must be provided.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IntentsByAddressRequestV3DTO'
      responses:
        '200':
          description: Successfully retrieved intents for the provided addresses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntentsResponseV3DTO'
      tags:
      - Quotes V3
  /api/v3/intents/intentByHash:
    post:
      operationId: IntentsController_getIntentByHash
      summary: Get Intent Activity By Hash
      description: Lookup an intent by its hash and return full activity details including lifecycle events (fulfillment, refund). Searches across EVM, Solana, and Tron chains.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IntentByHashRequestV3DTO'
      responses:
        '200':
          description: Successfully retrieved intent activity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntentByHashResponseV3DTO'
      tags:
      - Quotes V3
  /api/v3/intents/refundableIntents:
    post:
      operationId: IntentsController_getRefundableIntents
      summary: Get Refundable Intents
      description: Query refundable intents (expired without fulfillment or refund) by creator/funder addresses across EVM, Solana, and Tron chains. At least one address array must be provided.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefundableIntentsRequestV3DTO'
      responses:
        '200':
          description: Successfully retrieved refundable intents for the provided addresses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntentsResponseV3DTO'
      tags:
      - Quotes V3
  /api/v3/quotes/exactOut:
    post:
      operationId: QuotesV3Controller_getQuotes
      summary: Get Exact Out Quotes
      description: Retrieve exact out quotes from solvers for a cross-chain token swap. Returns detailed pricing, fees, contract addresses, and estimated fulfillment time for the requested swap.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuotesRequestV3DTO'
      responses:
        '200':
          description: Successfully retrieved exact out quotes with pricing and execution details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuotesResponseV3DTO'
      tags:
      - Quotes V3
  /api/v3/quotes/exactIn:
    post:
      operationId: QuotesV3Controller_getReverseQuotes
      summary: Get Exact In Quotes
      description: Retrieve exact in quotes from solvers for a given intent. Exact in quotes allow you to specify what you want to offer and get quotes for what will be received and can only have transfer calls.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuotesRequestV3DTO'
      responses:
        '201':
          description: Successfully retrieved exact in quotes from solvers
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuotesResponseV3DTO'
      tags:
      - Quotes V3
  /api/v3/quotes/single:
    post:
      operationId: QuotesV3Controller_createQuote
      summary: Get Single Quote
      description: Retrieve the best quote for a cross-chain single token swap. Returns detailed pricing, fees, contract addresses, and estimated fulfillment time for the requested swap. This endpoint should only be used for intents intended to be published onchain.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SingleRequestV3DTO'
      responses:
        '200':
          description: Successfully retrieved quote with pricing and execution details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleResponseV3DTO'
      tags:
      - Quotes V3
  /api/v3/quotes/initiateGaslessIntent:
    post:
      operationId: QuotesV3Controller_initiateGaslessIntent
      summary: Initiate Gasless Intent
      description: Submit a gasless intent transaction using a previously obtained quote. This endpoint initiates the gasless execution of an intent with the specified solver.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InitiateGaslessIntentV3DTO'
      responses:
        '201':
          description: Successfully initiated gasless intent transaction
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InitiateGaslessIntentResponseV3DTO'
      tags:
      - Quotes V3
components:
  schemas:
    IntentDataV3DTO:
      type: object
      properties:
        sourceChainID:
          type: number
          description: Source chain ID where the intent was created
          example: 42161
        destinationChainID:
          type: number
          description: Destination chain ID where the intent will be fulfilled
          example: 167000
        creator:
          type: string
          description: Address that created the intent
          example: '0x1234567890abcdef1234567890abcdef12345678'
        refundRecipient:
          type: string
          description: Address that received the refund (only set when intent has been refunded)
          example: '0x1234567890abcdef1234567890abcdef12345678'
        deadline:
          type: number
          description: Unix timestamp when the intent expires and becomes refundable
          example: 1730000000
        createdAt:
          type: number
          description: Unix timestamp when the intent was created
          example: 1729500000
        sourceTransfers:
          description: Array of reward token transfers (what the prover receives from the creator). Does not include recipients.
          example:
          - token: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
            amount: '1000000'
          type: array
          items:
            $ref: '#/components/schemas/SourceTransferV3DTO'
        destinationTransfers:
          description: Array of destination transfers (tokens and recipients on the destination chain). Always includes recipients.
          example:
          - token: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
            amount: '1000000'
            recipient: '0x054968e2f376192c69b8f30870d450519ff77ac8'
          type: array
          items:
            $ref: '#/components/schemas/DestinationTransferV3DTO'
      required:
      - sourceChainID
      - destinationChainID
      - creator
      - deadline
      - createdAt
      - sourceTransfers
      - destinationTransfers
    TransactionInfoV3DTO:
      type: object
      properties:
        chainId:
          type: number
          description: Chain ID where this transaction occurred
          example: 1
        transactionHash:
          type: string
          description: Hash of the transaction
          example: '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef12'
        blockExplorerUrl:
          type: string
          description: URL to view this transaction on a block explorer
          example: https://etherscan.io/tx/0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef12
      required:
      - chainId
      - transactionHash
      - blockExplorerUrl
    GaslessIntentDataV3DTO:
      type: object
      properties:
        permit3:
          description: Permit3 signature data for multi-chain token approvals
          allOf:
          - $ref: '#/components/schemas/Permit3DTO'
        allowPartial:
          type: boolean
          description: Whether to allow partial funding of the intent
          example: false
          default: false
      required:
      - permit3
    QuotesRequestV3DTO:
      type: object
      properties:
        dAppID:
          type: string
          description: Unique identifier for the client application making the request
          example: my-dapp
        intentExecutionTypes:
          type: array
          description: Array of intent execution types to fetch quotes for
          example:
          - SELF_PUBLISH
          items:
            type: string
            enum:
            - SELF_PUBLISH
            - GASLESS
        quoteRequest:
          description: Cross-chain token swap request details including source/destination tokens and addresses
          allOf:
          - $ref: '#/components/schemas/QuoteRequestV3DTO'
        contracts:
          description: Optional contract addresses to use for the cross-chain swap (will use defaults if not specified)
          allOf:
          - $ref: '#/components/schemas/QuotesV3RequestContractsDTO'
      required:
      - dAppID
      - intentExecutionTypes
      - quoteRequest
    IntentByHashRequestV3DTO:
      type: object
      properties:
        intentHash:
          type: string
          description: Intent hash to look up
          example: 0xabc123...
      required:
      - intentHash
    Permit3DTO:
      type: object
      properties:
        chainId:
          type: number
          description: The original chain ID from the signature
          example: 1
        permitContract:
          type: string
          description: Address of the Permit3 contract
          example: '0x1234567890123456789012345678901234567890'
        owner:
          type: string
          description: Owner address of the tokens being permitted
          example: '0x0987654321098765432109876543210987654321'
        salt:
          type: string
          description: Unique salt value for the permit signature
          example: '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef'
        signature:
          type: string
          description: Cryptographic signature for the permit
          example: '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1b'
        deadline:
          type: string
          description: Expiration timestamp for the permit signature
          example: '1234567890'
        timestamp:
          type: number
          description: Unix timestamp when the permit was created
          example: 1234567890
        merkleRoot:
          type: string
          description: Merkle root hash representing all chain permit leaves
          example: '0xabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcd'
        leaves:
          description: Array of merkle tree leaf hashes for multi-chain permits
          example:
          - '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890ab'
          - '0xfedcba0987654321fedcba0987654321fedcba0987654321fedcba0987654321'
          type: array
          items:
            type: string
        allowanceOrTransfers:
          description: Array of allowance or transfer data organized by chain for multi-chain permits
          type: array
          items:
            $ref: '#/components/schemas/AllowanceOrTransferDTO'
      required:
      - chainId
      - permitContract
      - owner
      - salt
      - signature
      - deadline
      - timestamp
      - merkleRoot
      - leaves
      - allowanceOrTransfers
    RouteDataDTO:
      type: object
      properties:
        originChainID:
          type: string
          description: Chain ID where the intent originates
          example: '8453'
        destinationChainID:
          type: string
          description: Chain ID where the intent will be executed
          example: '10'
        inboxContract:
          type: string
          description: Address of the inbox contract on the destination chain
          example: '0x123abc456def789012345678901234567890abcd'
        tokens:
          description: Array of ERC20 tokens and amounts involved in the destination calls
          type: array
          items:
            $ref: '#/components/schemas/TokenAmountDataDTO'
        calls:
          description: Array of contract calls to be executed on the destination chain
          type: array
          items:
            $ref: '#/components/schemas/CallDataDTO'
        salt:
          type: string
          description: Salt for the intent (used when initiating gasless intents or publishing onchain, set to '0x0' for quote requests)
          example: '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef'
      required:
      - originChainID
      - destinationChainID
      - inboxContract
      - tokens
      - calls
    IntentsByAddressRequestV3DTO:
      type: object
      properties:
        evmAddresses:
          description: Array of EVM addresses (0x...) to filter intents by creator/funder
          example:
          - '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb'
          type: array
          items:
            type: string
        solanaAddresses:
          description: Array of Solana addresses (base58) to filter intents by creator/funder
          example:
          - 9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM
          type: array
          items:
            type: string
        tronAddresses:
          description: Array of Tron addresses (T...) to filter intents by creator/funder
          example:
          - TYASr5UV6HEcXatwdFQfmLVUqQQQMUxHLS
          type: array
          items:
            type: string
        startTimestamp:
          type: number
          description: 'Start timestamp (Unix seconds) for date range filter (default: 7 days ago)'
          example: 1704067200
        endTimestamp:
          type: number
          description: 'End timestamp (Unix seconds) for date range filter (default: now)'
          example: 1704153600
    RefundableIntentsRequestV3DTO:
      type: object
      properties:
        evmAddresses:
          description: Array of EVM addresses (0x...) to filter refundable intents by creator/funder
          example:
          - '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb'
          type: array
          items:
            type: string
        solanaAddresses:
          description: Array of Solana addresses (base58) to filter refundable intents by creator/funder
          example:
          - 9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM
          type: array
          items:
            type: string
        tronAddresses:
          description: Array of Tron addresses (T...) to filter refundable intents by creator/funder
          example:
          - TYASr5UV6HEcXatwdFQfmLVUqQQQMUxHLS
          type: array
          items:
            type: string
    IntentByHashResponseV3DTO:
      type: object
      properties:
        data:
          description: Intent activity details
          allOf:
          - $ref: '#/components/schemas/IntentActivityV3DTO'
      required:
      - data
    TokenInfoV3DTO:
      type: object
      properties:
        address:
          type: string
          description: Contract address of the token
          example: '0xA0b86a33E6441e45C3b9d1C3D6a0b5be4b7b5b5a'
        decimals:
          type: number
          description: Number of decimal places for the token
          example: 6
        symbol:
          type: string
          description: Token symbol or ticker
          example: USDC
      required:
      - address
      - decimals
      - symbol
    InitiateGaslessIntentResponseV3DTO:
      type: object
      properties:
        data:
          description: Gasless intent execution response data
          allOf:
          - $ref: '#/components/schemas/GaslessIntentExecutionResponseDTO'
      required:
      - data
    SingleResponseV3DTO:
      type: object
      properties:
        data:
          description: Quote response data
          allOf:
          - $ref: '#/components/schemas/QuoteResponseV3DTO'
      required:
      - data
    GaslessIntentExecutionResponseEntryDTO:
      type: object
      properties:
        chainID:
          type: number
          description: Chain ID where the gasless intent was executed
          example: 1
        quoteIDs:
          description: Array of quote IDs associated with this execution
          example:
          - quote_abc123def456
          - quote_ghi789jkl012
          type: array
          items:
            type: string
        transactionHash:
          type: string
          description: Transaction hash of the executed gasless intent
          example: '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef'
        error:
          type: object
          description: Error details if the gasless intent execution failed
          example:
            message: Insufficient balance
            code: INSUFFICIENT_FUNDS
      required:
      - chainID
      - quoteIDs
      - transactionHash
    FeeV3DTO:
      type: object
      properties:
        name:
          type: string
          description: Name identifier for the fee type
          example: Solver Fee
        description:
          type: string
          description: Human-readable description of what this fee covers
          example: Fee paid to the solver for executing the cross-chain swap
        token:
          description: Token information for the fee payment
          allOf:
          - $ref: '#/components/schemas/TokenInfoV3DTO'
        amount:
          type: string
          description: Fee amount as a string representation of a bigint
          example: '1000'
      required:
      - name
      - description
      - token
      - amount
    TransactionWithTransfersV3DTO:
      type: object
      properties:
        chainId:
          type: number
          description: Chain ID where this transaction occurred
          example: 42161
        timestamp:
          type: number
          description: Unix timestamp of the transaction
          example: 1729163645
        txHash:
          type: string
          description: Transaction hash
          example: '0xe1ffdcf09d5aa92a2d89b1b39db3f8cadf09428a296cce0d5e387595ac83d08f'
        txLink:
          type: string
          description: Block explorer URL for this transaction
          example: https://arbiscan.io/tx/0xe1ffdcf09d5aa92a2d89b1b39db3f8cadf09428a296cce0d5e387595ac83d08f
        transfers:
          type: array
          description: Token transfers associated with this transaction. Source transfers (sendingTxs) do not include recipients. Destination transfers (receivingTxs) include recipients.
          items:
            oneOf:
            - $ref: '#/components/schemas/SourceTransferV3DTO'
            - $ref: '#/components/schemas/DestinationTransferV3DTO'
          example:
          - token: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
            amount: '1000000'
            recipient: '0x054968e2f376192c69b8f30870d450519ff77ac8'
      required:
      - chainId
      - timestamp
      - txHash
      - txLink
      - transfers
    DestinationTransferV3DTO:
      type: object
      properties:
        token:
          type: string
          description: Token address (use "0x" for native tokens)
          example: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
        amount:
          type: string
          description: Token amount as string
          example: '1000000'
        recipient:
          type: string
          description: Recipient address for this transfer
          example: '0x9876543210abcdef9876543210abcdef98765432'
      required:
      - token
      - amount
      - recipient
    QuoteRequestV3DTO:
      type: object
      properties:
        sourceChainID:
          type: number
          description: Chain ID of the source network where tokens will be sent from
          example: 1
        destinationChainID:
          type: number
          description: Chain ID of the destination network where tokens will be received
          example: 42161
        sourceToken:
          type: string
          description: Contract address of the token being sent on the source chain
          example: '0xA0b86a33E6441e45C3b9d1C3D6a0b5be4b7b5b5a'
        destinationToken:
          type: string
          description: Contract address of the token to be received on the destination chain
          example: '0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8'
        sourceAmount:
          type: string
          description: Amount of source tokens to send, specified as a string representation of a bigint
          example: '1000000'
        funder:
          type: string
          description: Address that will provide the tokens and pay for the transaction
          example: '0x742d35Cc6527C92b4A1F3a2a8b1c9b3e8c4c5b2a'
        refundRecipient:
          type: string
          description: Address to receive refunds if the intent fails (defaults to funder if not specified)
          example: '0x742d35Cc6527C92b4A1F3a2a8b1c9b3e8c4c5b2a'
        recipient:
          type: string
          description: Address that will receive the tokens on the destination chain
          example: '0x8Ba1c0a8B4A4b9e8A9f1a6B7c8d9e0F1234567890'
      required:
      - sourceChainID
      - destinationChainID
      - sourceToken
      - destinationToken
      - sourceAmount
      - funder
      - recipient
    InitiateGaslessIntentV3DTO:
      type: object
      properties:
        intentGroupID:
          type: string
          description: Unique identifier of the group of intents being used
          example: group:01234567-89ab-cdef-0123-456789abcdef
        dAppID:
          type: string
          description: Identifier for the client application initiating the gasless intent
          example: my-dapp
        intentEntries:
          description: Array of intent request entries
          type: array
          items:
            $ref: '#/components/schemas/GaslessIntentRequestIntentEntryDTO'
        gaslessIntentData:
          description: Gasless intent configuration containing permit signatures and execution parameters
          allOf:
          - $ref: '#/components/schemas/GaslessIntentDataV3DTO'
      required:
      - intentGroupID
      - dAppID
      - intentEntries
      - gaslessIntentData
    IntentStatusArrayResponseV3DTO:
      type: object
      properties:
        data:
          description: Array of intent statuses matching the search criteria (with log indexes and timestamps)
          type: array
          items:
            $ref: '#/components/schemas/IntentStatusWithMetadataV3DTO'
      required:
      - data
    IntentActivityV3DTO:
      type: object
      properties:
        intentHash:
          type: string
          description: Intent hash (properly formatted with/without 0x prefix based on source chain)
          example: 0xabc123...
        sourceChainID:
          type: number
          description: Source chain ID where the intent was created
          example: 1399811149
        destinationChainID:
          type: number
          description: Destination chain ID where the intent will be fulfilled
          example: 8453
        creator:
          type: string
          description: Address that created the intent
          example: 0x123...
        funder:
          type: string
          description: Address that funded the intent (if different from creator)
          example: 0x456...
        recipient:
          type: string
          description: Destination address for the intent
          example: 0x789...
        deadline:
          type: number
          description: Unix timestamp when the intent expires and becomes refundable
          example: 1730000000
        createdAt:
          type: number
          description: Unix timestamp when the intent was created
          example: 1729500000
        version:
          type: string
          description: Intent version (from EVM indexer or "3.0.0-alpha.8" for Solana/Tron)
          example: 1.7.13
        params:
          type: object
          description: Raw intent parameters for frontend parsing
          example: {}
        createdTxHash:
          type: string
          description: Transaction hash of the intent creation
          example: 0xabc...
        contract:
          type: string
          description: Contract address that emitted the intent creation event
          example: 0xdef...
        isGasless:
          type: boolean
          description: Whether this is a gasless intent (funder is different from creator)
          example: true
        fulfillment:
          description: Fulfillment event details (if intent was fulfilled)
          allOf:
          - $ref: '#/components/schemas/EventInfoDTO'
        refund:
          description: Refund event details (if intent was refunded)
          allOf:
          - $ref: '#/components/schemas/EventInfoDTO'
      required:
      - intentHash
      - sourceChainID
      - destinationChainID
      - creator
      - deadline
      - createdAt
      - version
      - params
      - createdTxHash
      - contract
      - isGasless
    RewardDataDTO:
      type: object
      properties:
        creator:
          type: string
          description: Address of the user creating this intent, this will be the recipient of a refund if the intent expires
          example: '0x742d35Cc6634C0532925a3b8D56C85e83F9D18Fa'
        proverContract:
          type: string
          description: Address of the prover contract that validates intent execution
          example: '0x1234567890abcdef1234567890abcdef12345678'
        deadline:
          type: string
          description: Unix timestamp deadline for when this intent expires (in seconds)
          example: '1699123456'
        nativeValue:
          type: string
          description: Native token amount offered (in wei)
          example: '0'
        tokens:
          description: Array of ERC20 tokens and amounts offered on the origin chain for fulfilling the intent
          type: array
          items:
            $ref: '#/components/schemas/TokenAmountDataDTO'
      required:
      - creator
      - proverContract
      - deadline
      - nativeValue
      - tokens
    QuotesResponseV3DTO:
      type: object
      properties:
        data:
          description: Array of solver quote responses
          type: array
          items:
            $ref: '#/components/schemas/SolverQuoteV2ResponseDTO'
      required:
      - data
    QuoteResponseV3DTO:
      type: object
      properties:
        quoteResponse:
          description: Detailed quote information including tokens, amounts, fees, and timing
          allOf:
          - $ref: '#/components/schemas/QuoteResponseDataV3DTO'
        contracts:
          description: Contract addresses required for executing this cross-chain swap
          allOf:
          - $ref: '#/components/schemas/QuoteV3ResponseContractsDTO'
      required:
      - contracts
    GaslessIntentRequestIntentEntryDTO:
      type: object
      properties:
        routeData:
          description: Route configuration specifying source and destination chains and transfer details
          allOf:
          - $ref: '#/components/schemas/RouteDataDTO'
        rewardData:
          description: Reward configuration defining tokens and amounts offered to solvers for executing the intent
          allOf:
          - $ref: '#/components/schemas/RewardDataDTO'
        quoteID:
          type: string
          description: Unique identifier of the quote being used to initiate the gasless intent
          example: quote:01234567-89ab-cdef-0123-456789abcdef
        solverID:
          type: string
          description: Address of the solver that provided the quote
          example: '0x742d35Cc6634C0532925a3b8D56C85e83F9D18Fa'
        salt:
          type: string
      required:
      - routeData
      - rewardData
      - quoteID
      - solverID
      - salt
    IntentStatusRequestV3DTO:
      type: object
      properties:
        intentHash:
          type: string
          description: Hash of the intent to query status for
        intentCreatedHash:
          type: string
          description: Transaction hash of the intent creation transaction
        fulfillmentHash:
          type: string
          description: Transaction hash of the intent fulfillment transaction
      oneOf:
      - required:
        - intentHash
      - required:
        - intentCreatedHash
      - required:
        - fulfillmentHash
    IntentsResponseV3DTO:
      type: object
      properties:
        data:
          description: Array of intents matching the request
          type: array
          items:
            $ref: '#/components/schemas/IntentActivityV3DTO'
      required:
      - data
    SingleRequestV3DTO:
      type: object
      properties:
        dAppID:
          type: string
          description: Unique identifier for the client application making the request
          example: my-dapp
        quoteRequest:
          description: Cross-chain token swap request details including source/destination tokens and addresses
          allOf:
          - $ref: '#/components/schemas/QuoteRequestV3DTO'
        contracts:
          description: Optional contract addresses to use for the cross-chain swap (will use defaults if not specified)
          allOf:
          - $ref: '#/components/schemas/QuotesV3RequestContractsDTO'
      required:
      - dAppID
      - quoteRequest
    TokenAmountDataDTO:
      type: object
      properties:
        token:
          type: string
          description: Address of the ERC20 token contract
          example: '0xA0b86a33E6441446C1c3df4c64B739C7e4a81ec0'
   

# --- truncated at 32 KB (45 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/eco/refs/heads/main/openapi/eco-quotes-v3-api-openapi.yml