Eco

Eco Routes API

REST API for Eco Routes — request cross-chain stablecoin quotes (exact-in, exact-out, single, reverse), initiate gasless intents, query intent status and history, and register/update solvers. Versions V1, V2, and V3 are all exposed. Quote endpoints require no authentication; a dAppID is passed in the request body for attribution.

OpenAPI Specification

eco-routes-openapi-original.json Raw ↑
{
  "openapi": "3.0.0",
  "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/v2/quotes": {
      "post": {
        "operationId": "QuotesController_getQuotes",
        "summary": "Get Quotes",
        "description": "Retrieve quotes from solvers for a given intent. Returns an array of quotes with pricing and execution details from available solvers.",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetQuotesDTO"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successfully retrieved quotes from solvers",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EcoAPIResponse"
                }
              }
            }
          }
        },
        "tags": [
          "Quotes V2"
        ]
      }
    },
    "/api/v2/quotes/reverse": {
      "post": {
        "operationId": "QuotesController_getReverseQuote",
        "summary": "Get Reverse Quotes",
        "description": "Retrieve reverse quotes from solvers for a given intent. Reverse 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/GetQuotesDTO"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successfully retrieved reverse quotes from solvers",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EcoAPIResponse"
                }
              }
            }
          }
        },
        "tags": [
          "Quotes V2"
        ]
      }
    },
    "/api/v2/quotes/initiateGaslessIntent": {
      "post": {
        "operationId": "QuotesController_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/InitiateGaslessIntentDTO"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successfully initiated gasless intent transaction",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EcoAPIResponse"
                }
              }
            }
          }
        },
        "tags": [
          "Quotes V2"
        ]
      }
    },
    "/api/v2/quotes/getGaslessIntentTransactionData": {
      "post": {
        "operationId": "QuotesController_getDestinationChainTransactionHash",
        "summary": "Get Gasless Intent Transaction Data",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GaslessIntentTransactionDataRequestDTO"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GaslessIntentTransactionDataDTO"
                }
              }
            }
          }
        },
        "tags": [
          "Quotes V2"
        ]
      }
    },
    "/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"
        ]
      }
    },
    "/api/v1/quotes": {
      "post": {
        "operationId": "V1QuotesController_getQuotes",
        "summary": "Get Quotes",
        "description": "Retrieve quotes from solvers for a given intent. Returns an array of quotes with pricing and execution details from available solvers.",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/V1GetQuotesDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully retrieved quotes from solvers",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1GetQuotesResponseDTO"
                }
              }
            }
          }
        },
        "tags": [
          "Quotes V1"
        ]
      }
    },
    "/api/v1/quotes/reverse": {
      "post": {
        "operationId": "V1QuotesController_getReverseQuote",
        "summary": "Get Reverse Quotes",
        "description": "Retrieve reverse quotes from solvers for a given intent. Reverse 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/V1GetQuotesDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully retrieved reverse quotes from solvers",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1GetQuotesResponseDTO"
                }
              }
            }
          }
        },
        "tags": [
          "Quotes V1"
        ]
      }
    }
  },
  "info": {
    "title": "Eco Routes API",
    "description": "Eco Routes API documentation",
    "version": "1.0",
    "contact": {}
  },
  "tags": [],
  "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"
    }
  ],
  "components": {
    "schemas": {
      "GetIntentsForHashesDTO": {
        "type": "object",
        "properties": {
          "hashes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "hashes"
        ]
      },
      "AdminRefundableIntentsRequestV3DTO": {
        "type": "object",
        "properties": {}
      },
      "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"
            ]
          }
        ]
      },
      "StatusV3DTO": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "Pending",
              "Completed"
            ],
            "description": "High-level status of the intent (Pending or Completed)",
            "example": "Pending"
          },
          "subStatus": {
            "type": "string",
            "enum": [
              "WaitingToFulfill",
              "WaitingForRefund",
              "Fulfilled",
              "Refunded"
            ],
            "description": "Detailed status indicating the specific stage of intent execution",
            "example": "WaitingToFulfill"
          },
          "subStatusMessage": {
            "type": "string",
            "description": "Human-readable description of the substatus",
            "example": "The intent is waiting to be fulfilled"
          }
        },
        "required": [
          "status",
          "subStatus",
          "subStatusMessage"
        ]
      },
      "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"
        ]
      },
      "IntentStatusV3DTO": {
        "type": "object",
        "properties": {
          "intentHash": {
            "type": "string",
            "description": "Hash of the intent being tracked",
            "example": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef12"
          },
          "status": {
            "description": "Current status and sub-status of the intent execution",
            "allOf": [
              {
                "$ref": "#/components/schemas/StatusV3DTO"
              }
            ]
          },
          "intentCreated": {
            "description": "Transaction details for when the intent was created",
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionInfoV3DTO"
              }
            ]
          },
          "fulfillment": {
            "description": "Transaction details for when the intent was fulfilled (if completed)",
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionInfoV3DTO"
              }
            ]
          },
          "refund": {
            "description": "Transaction details for when the intent was refunded (if refunded)",
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionInfoV3DTO"
              }
            ]
          }
        },
        "required": [
          "intentHash",
          "status",
          "intentCreated"
        ]
      },
      "IntentStatusResponseV3DTO": {
        "type": "object",
        "properties": {
          "data": {
            "description": "Intent status response data",
            "allOf": [
              {
                "$ref": "#/components/schemas/IntentStatusV3DTO"
              }
            ]
          }
        },
        "required": [
          "data"
        ]
      },
      "SourceTransferV3DTO": {
        "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"
          }
        },
        "required": [
          "token",
          "amount"
        ]
      },
      "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"
        ]
      },
      "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"
        ]
      },
      "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"
        ]
      },
      "IntentStatusWithMetadataV3DTO": {
        "type": "object",
        "properties": {
          "intentHash": {
            "type": "string",
            "description": "Hash of the intent being tracked",
            "example": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef12"
          },
          "status": {
            "description": "Current status and sub-status of the intent execution",
            "allOf": [
              {
                "$ref": "#/components/schemas/StatusV3DTO"
              }
            ]
          },
          "intentData": {
            "description": "Intent definition data including chain IDs, creator, deadline, and transfers",
            "allOf": [
              {
                "$ref": "#/components/schemas/IntentDataV3DTO"
              }
            ]
          },
          "sendingTxs": {
            "description": "Transactions that sent tokens on the source chain (intent creation). Transfers do not include recipients.",
            "example": [
              {
                "chainId": 42161,
                "timestamp": 1729163645,
                "txHash": "0xe1ffdcf09d5aa92a2d89b1b39db3f8cadf09428a296cce0d5e387595ac83d08f",
                "txLink": "https://arbiscan.io/tx/0xe1ffdcf09d5aa92a2d89b1b39db3f8cadf09428a296cce0d5e387595ac83d08f",
                "transfers": [
                  {
                    "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                    "amount": "1000000"
                  }
                ]
              }
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransactionWithTransfersV3DTO"
            }
          },
          "receivingTxs": {
            "description": "Transactions that received tokens on the destination chain (fulfillment or refund). Transfers always include recipients.",
            "example": [
              {
                "chainId": 10,
                "timestamp": 1729164000,
                "txHash": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
                "txLink": "https://optimistic.etherscan.io/tx/0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
                "transfers": [
                  {
                    "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                    "amount": "1000000",
                    "recipient": "0x054968e2f376192c69b8f30870d450519ff77ac8"
                  }
                ]
              }
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransactionWithTransfersV3DTO"
            }
          }
        },
        "required": [
          "intentHash",
          "status",
          "intentData",
          "sendingTxs",
          "receivingTxs"
        ]
      },
      "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"
        ]
      },
      "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
          }
        }
      },
      "EventInfoDTO": {
        "type": "object",
        "properties": {
          "txHash": {
            "type": "string",
            "description": "Transaction hash of the event",
            "example": "0x1234567890abcdef..."
          },
          "timestamp": {
            "type": "number",
            "description": "Unix timestamp when the event occurred",
            "example": 1729600000
          },
          "chainID": {
            "type": "number",
            "description": "Chain ID where the event occurred",
            "example": 8453
          }
        },
        "required": [
          "txHash",
          "timestamp",
         

# --- truncated at 32 KB (81 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/eco/refs/heads/main/openapi/eco-routes-openapi-original.json