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

# Search liquidity pools

> Find liquidity pools across multiple chains and protocols with advanced filtering and sorting.



## OpenAPI

````yaml https://api.hydric.org/v1/openapi.json post /v1/pools/search
openapi: 3.1.0
info:
  title: hydric Gateway API
  description: Access DeFi Liquidity easily. One plug. Every Protocol. Every Network.
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.hydric.org
security:
  - bearerAuth: []
tags: []
paths:
  /v1/pools/search:
    post:
      tags:
        - Liquidity Pools
      summary: Search liquidity pools
      description: >-
        Find liquidity pools across multiple chains and protocols with advanced
        filtering and sorting.
      operationId: PoolsController_searchPools
      parameters: []
      requestBody:
        required: true
        description: Search criteria and pagination config.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchLiquidityPoolsRequestParams'
      responses:
        '200':
          description: Successfully retrieved a list of matching liquidity pools.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/SuccessResponse'
                  - properties:
                      data:
                        $ref: '#/components/schemas/SearchLiquidityPoolsResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                statusCode: 400
                timestamp: '2026-02-28T19:40:59.629Z'
                path: /pools/search
                traceId: doc_sample_trace_id
                error:
                  code: VALIDATION_ERROR
                  title: Invalid Parameters
                  message: Invalid query parameters.
                  details: Check the 'meta' field for specific field-level violations.
                  metadata:
                    property: minTvl
                    value: invalid
                    constraints:
                      isNumber:
                        - minTvl must be a number
components:
  schemas:
    SearchLiquidityPoolsRequestParams:
      type: object
      properties:
        tokensA:
          description: >-

            Primary set of token addresses. The search engine returns pools
            containing at least one of these tokens.


            - **Single Token Search:** Provide 'tokensA' and omit 'tokensB' (or
            alternatively use 'basketsA').

            - **Pair Search:** Used in conjunction with 'tokensB' or 'basketsB'.

            - **Note:** Token ordering does not affect search results.
                
          example:
            - chainId: 1
              address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
            - chainId: 1
              address: '0x6B175474E89094C44Da98b954EedeAC495271d0F'
            - chainId: 8453
              address: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
          type: array
          items:
            $ref: '#/components/schemas/BlockchainAddress'
        basketsA:
          description: >-

            Primary set of token baskets. The search engine automatically
            resolves these baskets into tokens server-side.

            Returns pools containing at least one token from any of the provided
            baskets.


            - **Behaviour:** This joins with tokensA, so if you pass tokensA and
            basketsA, the search engine will return pools containing at least
            one token from tokensA OR at least one token from basketsA.

            - **Note:** Either 'tokensA' or 'basketsA' must be provided.
                
          type: array
          items:
            $ref: '#/components/schemas/BlockchainBasket'
        tokensB:
          description: >-

            Secondary set of token identifiers used to narrow the search to
            specific pairs.


            - **Relationship:** Returns pools containing (one token from
            'tokensA'/'basketsA') AND (one token from 'tokensB'/'basketsB').

            - **Broad Search:** If omitted, the search returns any pool
            containing a token from 'tokensA'/'basketsA'.

            - **Note:** Evaluation is order-independent.
                
          example:
            - chainId: 1
              address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'
            - chainId: 8453
              address: '0x4200000000000000000000000000000000000006'
          type: array
          items:
            $ref: '#/components/schemas/BlockchainAddress'
        basketsB:
          description: >-

            Secondary set of token baskets used to narrow the search to specific
            pairs. This cannot be used alone, needs either tokensA or basketsA.


            - **Relationship:** Returns pools that contain at least one token
            from 'tokensA'/'basketsA' AND at least one token from
            'tokensB'/'basketsB'.
                
          type: array
          items:
            $ref: '#/components/schemas/BlockchainBasket'
        filters:
          description: Filters based on pool attributes like TVL and protocol types.
          example:
            minimumTotalValueLockedUsd: 10000
            blockedPoolTypes: []
            blockedProtocols: []
            protocols: []
            poolTypes: []
          allOf:
            - $ref: '#/components/schemas/SearchLiquidityPoolsFilter'
        config:
          description: Configuration for the search such as limit, cursor, etc.
          allOf:
            - $ref: '#/components/schemas/LiquidityPoolSearchConfig'
    SuccessResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code.
          example: 200
        timestamp:
          type: string
          description: ISO 8601 Timestamp.
          example: '2026-01-11T00:00:00.000Z'
        path:
          type: string
          description: Request Path.
          example: /pools
        traceId:
          type: string
          description: Unique Trace ID for observability.
          example: req_123abc
        data:
          type: object
          description: The requested data payload.
          nullable: true
      description: >-
        Global Success Response that every endpoint returns if the request was
        successful (not errors).
      required:
        - statusCode
        - timestamp
        - path
        - traceId
        - data
    SearchLiquidityPoolsResponse:
      type: object
      properties:
        pools:
          description: List of pools matching the search criteria.
          example:
            - address: '0x8ad599c3a01ae48104127aeeb893430d0bc41221'
              tokens:
                - chainId: 1
                  address: '0x0000000000000000000000000000000000000000'
                  decimals: 18
                  name: Ether
                  symbol: ETH
                  logoUrl: >-
                    https://cdn.jsdelivr.net/gh/atomiclabs/cryptocurrency-icons@1a63530be6e374711a8554f31b17e4cb92c25fa5/128/color/eth.png
                - chainId: 1
                  address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
                  decimals: 18
                  name: USDC
                  symbol: USDC
                  logoUrl: >-
                    https://cdn.jsdelivr.net/gh/atomiclabs/cryptocurrency-icons@1a63530be6e374711a8554f31b17e4cb92c25fa5/128/color/usdc.png
              balance:
                totalValueLockedUsd: 3001.32
                tokens:
                  - amount: 1
                    amountUsd: 1500.11
                    token:
                      chainId: 1
                      address: '0x0000000000000000000000000000000000000000'
                      decimals: 18
                      name: Ether
                      symbol: ETH
                      logoUrl: >-
                        https://cdn.jsdelivr.net/gh/atomiclabs/cryptocurrency-icons@1a63530be6e374711a8554f31b17e4cb92c25fa5/128/color/eth.png
                  - amount: 1500.11
                    amountUsd: 1501.21
                    token:
                      chainId: 1
                      address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
                      decimals: 18
                      name: USDC
                      symbol: USDC
                      logoUrl: >-
                        https://cdn.jsdelivr.net/gh/atomiclabs/cryptocurrency-icons@1a63530be6e374711a8554f31b17e4cb92c25fa5/128/color/usdc.png
              chainId: 1
              createdAtTimestamp: 1768429616
              feeTier:
                feeTierPercentage: 0.4
                isDynamic: false
              type: V3
              stats:
                stats24h:
                  feesUsd: 12450.55
                  swapVolumeUsd: 4124500.22
                  yield: 12.5
                  netInflowUsd: 450000
                  liquidityVolumeUsd: 120000
                stats7d:
                  feesUsd: 85400.12
                  swapVolumeUsd: 28450100.45
                  yield: 11.2
                  netInflowUsd: 1200000
                  liquidityVolumeUsd: 850000
                stats30d:
                  feesUsd: 345200.55
                  swapVolumeUsd: 115045000.11
                  yield: 10.8
                  netInflowUsd: 5400000
                  liquidityVolumeUsd: 3200000
                stats90d:
                  feesUsd: 1120400.88
                  swapVolumeUsd: 375200400.55
                  yield: 10.5
                  netInflowUsd: 12500000
                  liquidityVolumeUsd: 9800000
              protocol:
                id: uniswap-v3
                logoUrl: https://cryptologos.cc/logos/uniswap-uni-logo.png
                name: Uniswap V3
                url: https://app.uniswap.org
              metadata:
                latestSqrtPriceX96: '1564073352721610496185854744476'
                tickSpacing: 60
                latestTick: '201235'
                positionManagerAddress: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88'
          type: array
          items:
            $ref: '#/components/schemas/LiquidityPool'
        filters:
          type: object
          description: Filters that were applied to produce the result set.
          example:
            blockedPoolTypes:
              - V3
            blockedProtocols:
              - uniswap-v3
            minimumTotalValueLockedUsd: 10000
            protocols: []
            poolTypes: []
        nextCursor:
          type: object
          description: Cursor for the next page. Null if no more results.
          example: Y3Vyc29yXzE2NjMwMDAwMDA=
          nullable: true
      required:
        - pools
        - filters
    ErrorResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code.
          example: 400
          enum:
            - 100
            - 101
            - 102
            - 103
            - 200
            - 201
            - 202
            - 203
            - 204
            - 205
            - 206
            - 207
            - 208
            - 210
            - 300
            - 301
            - 302
            - 303
            - 304
            - 307
            - 308
            - 400
            - 401
            - 402
            - 403
            - 404
            - 405
            - 406
            - 407
            - 408
            - 409
            - 410
            - 411
            - 412
            - 413
            - 414
            - 415
            - 416
            - 417
            - 418
            - 421
            - 422
            - 423
            - 424
            - 428
            - 429
            - 456
            - 500
            - 501
            - 502
            - 503
            - 504
            - 505
            - 507
            - 508
        timestamp:
          type: string
          description: ISO 8601 Timestamp.
          example: '2026-01-11T00:00:00.000Z'
        path:
          type: string
          description: Request Path.
          example: /pools
        traceId:
          type: string
          description: Unique Trace ID for observability.
          example: req_123abc
        error:
          description: Error specifications.
          allOf:
            - $ref: '#/components/schemas/ErrorContent'
      description: Default error response object that is returned when any error occurs.
      required:
        - statusCode
        - timestamp
        - path
        - traceId
        - error
    BlockchainAddress:
      type: object
      properties:
        chainId:
          type: number
          description: The chain id of the address. Must be one of the supported networks
          enum:
            - 1
            - 143
            - 130
            - 999
            - 8453
            - 9745
            - 534352
          example: 1
        address:
          type: string
          description: The address tied to the blockchain
          example: '0x0000000000000000000000000000000000000000'
      description: An address that is tied to a blockchain
      required:
        - chainId
        - address
    BlockchainBasket:
      type: object
      properties:
        basketId:
          type: string
          description: The unique slug or ID of the token basket.
          enum:
            - usd-stablecoins
            - eth-pegged-tokens
            - btc-pegged-tokens
            - hype-pegged-tokens
            - monad-pegged-tokens
            - xau-stablecoins
            - eur-stablecoins
          example: usd-stablecoins
        chainIds:
          type: array
          description: >-
            The set of blockchains to resolve tokens for. If omitted, all
            supported networks are the default.
          example:
            - 1
            - 8453
          default:
            - 1
            - 143
            - 130
            - 999
            - 8453
            - 9745
            - 534352
          items:
            type: number
            enum:
              - 1
              - 143
              - 130
              - 999
              - 8453
              - 9745
              - 534352
      description: Representation of a token basket on selected blockchains
      required:
        - basketId
    SearchLiquidityPoolsFilter:
      type: object
      properties:
        minimumTotalValueLockedUsd:
          type: number
          description: >-
            The minimum total value locked (USD) for a pool to be included in
            the response.
          example: 100000
          minimum: 0
          default: 0
        blockedPoolTypes:
          type: array
          description: Filter out specific liquidity pool types.
          example:
            - ALGEBRA
          items:
            type: string
            enum:
              - V3
              - V4
              - ALGEBRA
              - SLIPSTREAM
        blockedProtocols:
          description: Filter out specific protocols by ID.
          example:
            - uniswap-v3
          type: array
          items:
            type: string
        protocols:
          description: >-

            **Allow-list of supported Protocol IDs.** **Stability Note:** While
            hydric normalizes core pool data, the `metadata` field contains
            protocol/type specific fields (e.g., hooks, plugins, addresses, pool
            math). If your integration logic depends on these specialized
            fields, we recommend explicitly defining your supported protocols.
            This prevents your application from receiving novel protocol
            structures before your custom logic is ready to parse their unique
            `metadata`.


            If omitted, all protocols (excluding `blockedProtocols`) are
            included.
          example:
            - uniswap-v3
            - uniswap-v4
          type: array
          items:
            type: string
        poolTypes:
          type: array
          description: >-

            **Allow-list of supported Liquidity Pool architectures.**


            **Architecture Note:** Use this to restrict results to specific pool
            designs (V3, V4, etc.). While the top-level schema is unified,
            depending in your integration logic, you need to use the `metadata`
            field (e.g., allowing deposits), then you should explicitly define
            your supported architectures. Explicit filtering ensures your UI
            only attempts to interact with pool structures it is designed to
            handle.


            If omitted, all architectures (excluding `blockedPoolTypes`) are
            included.
          example:
            - V3
          items:
            type: string
            enum:
              - V3
              - V4
              - ALGEBRA
              - SLIPSTREAM
    LiquidityPoolSearchConfig:
      type: object
      properties:
        limit:
          type: number
          description: The number of items to return.
          minimum: 1
          maximum: 500
          default: 10
        orderBy:
          description: >-
            Ordering configuration. Note: Changing this while using a cursor may
            yield inconsistent results.
          allOf:
            - $ref: '#/components/schemas/LiquidityPoolOrder'
        cursor:
          type: string
          description: >-
            Base64-encoded cursor for pagination. Fetch this from the
            "nextCursor" field of a previous response. Do not pass this if you
            want to start from the beginning.
          example: ''
        parseWrappedToNative:
          type: string
          description: >-

            Controls how Wrapped Native tokens are presented in the response.

            - **ALWAYS**: Always convert Wrapped Native tokens to Native tokens
            in the response.

            - **NEVER**: Never convert Wrapped Native tokens; return them as is.

            - **AUTO** (Default): Automatically convert to Native if the user
            searched for Native, otherwise keep as Wrapped.
          enum:
            - ALWAYS
            - NEVER
            - AUTO
          default: AUTO
        useWrappedForNative:
          type: boolean
          description: >-

            Controls whether a search for a Native token automatically includes
            its Wrapped version.

            - **true** (Default): Searching for a Native token (e.g., ETH) will
            also query for the Wrapped token (e.g., WETH).

            - **false**: Searching for a Native token will only query for the
            exact Native token address.
          default: true
    LiquidityPool:
      type: object
      properties:
        address:
          type: string
          description: |-
            The unique on-chain identifier for the pool. 
                - **Standard:** The contract address of the pool.
                - **V4 Singleton:** The unique 'poolId' (bytes32 hash) used by the Manager.
          example: '0x8ad599c3a01ae48104127aeeb893430d0bc41221'
        tokens:
          description: >-
            Deterministic list of assets in the pool. The array order strictly
            follows the protocol's internal "Token 0, 1... N" indexing.
          example:
            - chainId: 1
              address: '0x0000000000000000000000000000000000000000'
              decimals: 18
              name: Ether
              symbol: ETH
              logoUrl: >-
                https://cdn.jsdelivr.net/gh/atomiclabs/cryptocurrency-icons@1a63530be6e374711a8554f31b17e4cb92c25fa5/128/color/eth.png
            - chainId: 1
              address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
              decimals: 18
              name: USDC
              symbol: USDC
              logoUrl: >-
                https://cdn.jsdelivr.net/gh/atomiclabs/cryptocurrency-icons@1a63530be6e374711a8554f31b17e4cb92c25fa5/128/color/usdc.png
          type: array
          items:
            $ref: '#/components/schemas/SingleChainTokenMetadata'
        balance:
          description: >-
            The aggregate inventory state, including Total Value Locked (TVL)
            and individual asset reserves.
          example:
            totalValueLockedUsd: 3001.32
            tokens:
              - amount: 1
                amountUsd: 1500.11
                token:
                  chainId: 1
                  address: '0x0000000000000000000000000000000000000000'
                  decimals: 18
                  name: Ether
                  symbol: ETH
                  logoUrl: >-
                    https://cdn.jsdelivr.net/gh/atomiclabs/cryptocurrency-icons@1a63530be6e374711a8554f31b17e4cb92c25fa5/128/color/eth.png
              - amount: 1500.11
                amountUsd: 1501.21
                token:
                  chainId: 1
                  address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
                  decimals: 18
                  name: USDC
                  symbol: USDC
                  logoUrl: >-
                    https://cdn.jsdelivr.net/gh/atomiclabs/cryptocurrency-icons@1a63530be6e374711a8554f31b17e4cb92c25fa5/128/color/usdc.png
          allOf:
            - $ref: '#/components/schemas/LiquidityPoolBalance'
        protocol:
          description: The protocol that owns the liquidity pool and its metadata
          example:
            id: uniswap-v3
            logoUrl: https://cryptologos.cc/logos/uniswap-uni-logo.png
            name: Uniswap V3
            url: https://app.uniswap.org
          allOf:
            - $ref: '#/components/schemas/Protocol'
        createdAtTimestamp:
          type: number
          description: Unix timestamp (seconds) of the block where the pool was created.
          example: 1768429616
        chainId:
          type: number
          description: >-
            The chain id where the liquidity pool is deployed. Following EIP-155
            standards. Check out [Chainlist](https://chainlist.org) to discover
            the chain id of any EVM Blockchain
          example: 1
          enum:
            - 1
            - 143
            - 130
            - 999
            - 8453
            - 9745
            - 534352
        type:
          type: string
          description: >-
            The architectural classification of the pool. This field acts as the
            discriminator for the polymorphic "metadata" object.
          enum:
            - V3
            - V4
            - ALGEBRA
            - SLIPSTREAM
          example: V3
        feeTier:
          description: Information about the fee tier of this Liquidity Pool
          example:
            feeTierPercentage: 0.4
            isDynamic: false
          allOf:
            - $ref: '#/components/schemas/LiquidityPoolFeeTier'
        stats:
          description: >-
            Dynamic performance data including volume, fees, and yield
            aggregated over rolling time windows.
          example:
            stats24h:
              feesUsd: 12450.55
              swapVolumeUsd: 4124500.22
              yield: 12.5
              netInflowUsd: 450000
              liquidityVolumeUsd: 120000
            stats7d:
              feesUsd: 85400.12
              swapVolumeUsd: 28450100.45
              yield: 11.2
              netInflowUsd: 1200000
              liquidityVolumeUsd: 850000
            stats30d:
              feesUsd: 345200.55
              swapVolumeUsd: 115045000.11
              yield: 10.8
              netInflowUsd: 5400000
              liquidityVolumeUsd: 3200000
            stats90d:
              feesUsd: 1120400.88
              swapVolumeUsd: 375200400.55
              yield: 10.5
              netInflowUsd: 12500000
              liquidityVolumeUsd: 9800000
          allOf:
            - $ref: '#/components/schemas/LiquidityPoolWindowedStats'
        metadata:
          description: >-
            Deep architectural state (Ticks, Hooks, Plugins). The schema of this
            object is determined by the "type" field.
          oneOf:
            - $ref: '#/components/schemas/V3LiquidityPoolMetadata'
              title: V3LiquidityPoolMetadata
            - $ref: '#/components/schemas/V4LiquidityPoolMetadata'
              title: V4LiquidityPoolMetadata
            - $ref: '#/components/schemas/AlgebraLiquidityPoolMetadata'
              title: AlgebraLiquidityPoolMetadata
            - $ref: '#/components/schemas/SlipstreamLiquidityPoolMetadata'
              title: SlipstreamLiquidityPoolMetadata
      description: >-
        The universal interface for liquidity pools. hydric normalizes diverse
        protocol architectures (V2, V3, V4, Algebra) into this single,
        high-fidelity model. 


        ### Integration Strategy:

        1. **Core Fields:** Use for portfolio tracking, analytics, and global
        search.

        2. **Metadata:** Use for protocol-specific execution, such as
        calculating ticks or interacting with V4 hooks.
      required:
        - address
        - tokens
        - balance
        - protocol
        - createdAtTimestamp
        - chainId
        - type
        - feeTier
        - stats
        - metadata
    ErrorContent:
      type: object
      properties:
        code:
          type: string
          description: A hydric error code for programmatic handling.
          enum:
            - LIQUIDITY_POOL_NOT_FOUND
            - TOKEN_NOT_FOUND
            - TOKEN_BASKET_NOT_FOUND
            - VALIDATION_ERROR
            - INVALID_POOL_ADDRESS
            - UNSUPPORTED_CHAIN_ID
            - INVALID_PAGINATION_CURSOR
            - INVALID_BLOCKCHAIN_ADDRESS
            - INVALID_PROTOCOL_ID
            - INVALID_BASKET_ID
            - API_KEY_DISABLED
            - API_KEY_EXPIRED
            - API_KEY_NOT_FOUND
            - API_KEY_INVALID
            - API_KEY_MISSING
            - RATE_LIMIT_EXCEEDED
            - ROUTE_NOT_FOUND
            - UNKNOWN_ERROR
            - HTTP_EXCEPTION
          example: INVALID_POOL_ADDRESS
        title:
          type: string
          description: A human-readable short summary.
          example: Invalid Parameters
        message:
          type: string
          description: A detailed explanation of the error.
          example: The provided pool address does not match the expected format.
        details:
          type: string
          description: >-
            A more detailed explanation of the error. Containing also Technical
            hints or stuff that can help to debug the error. 
          example: >-
            Pool address should be 20 bytes long, with 42 characters, starting
            with 0x.
        metadata:
          description: Dynamic context data useful for debugging or UI handling.
          oneOf:
            - $ref: '#/components/schemas/ApiKeyMissingMetadata'
            - $ref: '#/components/schemas/ApiKeyDisabledMetadata'
            - $ref: '#/components/schemas/ApiKeyExpiredMetadata'
            - $ref: '#/components/schemas/ApiKeyInvalidMetadata'
            - $ref: '#/components/schemas/ApiKeyNotFoundMetadata'
            - $ref: '#/components/schemas/ApiKeyUnknownMetadata'
            - $ref: '#/components/schemas/RateLimitMetadata'
            - $ref: '#/components/schemas/InvalidBlockchainAddressMetadata'
            - $ref: '#/components/schemas/InvalidPaginationCursorMetadata'
            - $ref: '#/components/schemas/UnsupportedChainIdMetadata'
            - $ref: '#/components/schemas/InvalidProtocolIdMetadata'
            - $ref: '#/components/schemas/InvalidBasketIdMetadata'
            - $ref: '#/components/schemas/InvalidLiquidityPoolAddressMetadata'
            - $ref: '#/components/schemas/ValidationErrorMetadata'
            - $ref: '#/components/schemas/LiquidityPoolNotFoundMetadata'
            - $ref: '#/components/schemas/TokenNotFoundMetadata'
            - $ref: '#/components/schemas/TokenBasketNotFoundMetadata'
            - $ref: '#/components/schemas/RouteNotFoundMetadata'
            - $ref: '#/components/schemas/UnknownErrorMetadata'
      required:
        - code
        - title
        - message
    LiquidityPoolOrder:
      type: object
      properties:
        field:
          type: string
          enum:
            - yield
            - tvl
          default: tvl
          description: Field that you want to order pools by.
          example: tvl
        direction:
          type: string
          enum:
            - desc
            - asc
          default: desc
          description: Sorting direction of the selected field.
          example: desc
        timeframe:
          type: string
          enum:
            - 24h
            - 7d
            - 30d
            - 90d
          default: 24h
          description: >-
            Timeframe used when ordering by a stats-based field. Does not apply
            when ordering by total fields, like TVL.
    SingleChainTokenMetadata:
      type: object
      properties:
        chainId:
          type: number
          description: The chain id of the network where the token resides.
          example: 1
          enum:
            - 1
            - 143
            - 130
            - 999
            - 8453
            - 9745
            - 534352
        address:
          type: string
          description: >-

            The contract address of the token on its host network.


            * **ERC-20 Tokens:** The 20-byte hex contract address.

            * **Native Assets (e.g., ETH, MATIC):** Represented by the "Zero
            Address" (`0x000...000`).
                
          example: '0x0000000000000000000000000000000000000000'
        decimals:
          type: number
          description: >-
            The number of decimal places used to represent the smallest
            fractional unit of the token (e.g., 18 for ETH, 6 for USDC).
          example: 18
        name:
          type: string
          description: >-
            The full human-readable name of the asset (e.g., "Ethereum",
            "Wrapped Bitcoin").
          example: Ether
        symbol:
          type: string
          description: The ticker symbol of the token (e.g., "ETH", "WBTC")..
          example: ETH
        logoUrl:
          type: string
          description: The URL of the token logo.
          example: >-
            https://logos.hydric.org/tokens/1/0x0000000000000000000000000000000000000000
      description: Core identifying metadata for a token on a single blockchain.
      required:
        - chainId
        - address
        - decimals
        - name
        - symbol
        - logoUrl
    LiquidityPoolBalance:
      type: object
      properties:
        totalValueLockedUsd:
          type: number
          description: >-
            The aggregate USD value of all assets held within the pool (Total
            Value Locked).
          example: 13224.324
        tokens:
          description: >-
            The detailed breakdown of individual token reserves and their
            USD-denominated values.
          example:
            - amount: 21.3
              amountUsd: 113000.21
              token:
                chainId: 1
                address: '0x0000000000000000000000000000000000000000'
                decimals: 18
                name: Ether
                symbol: ETH
                logoUrl: >-
                  https://cdn.jsdelivr.net/gh/atomiclabs/cryptocurrency-icons@1a63530be6e374711a8554f31b17e4cb92c25fa5/128/color/eth.png
            - amount: 21.3
              amountUsd: 21.4
              token:
                chainId: 1
                address: '0xdac17f958d2ee523a2206206994597c13d831ec7'
                decimals: 6
                name: USDT
                symbol: USDT
                logoUrl: >-
                  https://cdn.jsdelivr.net/gh/atomiclabs/cryptocurrency-icons@1a63530be6e374711a8554f31b17e4cb92c25fa5/128/color/usdt.png
          type: array
          items:
            $ref: '#/components/schemas/LiquidityPoolTokenBalance'
      description: The aggregate financial state and tokens inventory of a liquidity pool.
      required:
        - totalValueLockedUsd
        - tokens
    Protocol:
      type: object
      properties:
        id:
          type: string
          description: >-
            The slug or unique string-based identifier for the protocol (e.g.,
            "uniswap-v3").
          example: somedex-id
        name:
          type: string
          description: >-
            The official commercial name of the protocol used for display
            purposes.
          example: Somedex Name
        url:
          type: string
          description: The primary landing page or official website for the protocol.
          example: https://somedex.com
        logoUrl:
          type: string
          description: >-
            A canonical URL pointing to the protocol icon or brand logo (usually
            in SVG or high-res PNG format).
          example: https://somedex.com/logo.png
      description: Information about a DeFi Protocol
      required:
        - id
        - name
        - url
        - logoUrl
    LiquidityPoolFeeTier:
      type: object
      properties:
        feeTierPercentage:
          type: number
          description: The exact percentage of fee a trader pays when using this pool.
          example: 0.3
        isDynamic:
          type: boolean
          description: >-
            Whether the fee tier is dynamic. A dynamic fee tier means the fee
            can change according to protocol-defined rules or market conditions.
          example: false
      description: >-
        Information about how much fee a trader will pay to perform swaps in
        this pool.
      required:
        - feeTierPercentage
        - isDynamic
    LiquidityPoolWindowedStats:
      type: object
      properties:
        stats24h:
          description: Rolling 24-hour performance metrics
          example:
            swapVolumeUsd: 1234.56
            feesUsd: 1222.22
            netInflowUsd: -7291
            liquidityVolumeUsd: 87000000
            yield: 512.6781609195
          allOf:
            - $ref: '#/components/schemas/LiquidityPoolStats'
        stats7d:
          description: Rolling 7-day performance metrics
          example:
            swapVolumeUsd: 1234.56
            feesUsd: 1222.22
            netInflowUsd: -7291
            liquidityVolumeUsd: 87000000
            yield: 512.6781609195
          allOf:
            - $ref: '#/components/schemas/LiquidityPoolStats'
        stats30d:
          description: Rolling 30-day performance metrics
          example:
            swapVolumeUsd: 1234.56
            feesUsd: 1222.22
            netInflowUsd: -7291
            liquidityVolumeUsd: 87000000
            yield: 512.6781609195
          allOf:
            - $ref: '#/components/schemas/LiquidityPoolStats'
        stats90d:
          description: Rolling 90-day performance metrics
          example:
            swapVolumeUsd: 1234.56
            feesUsd: 1222.22
            netInflowUsd: -7291
            liquidityVolumeUsd: 87000000
            yield: 512.6781609195
          allOf:
            - $ref: '#/components/schemas/LiquidityPoolStats'
      description: Multi-horizon performance metrics aggregated over the specified period
      required:
        - stats24h
        - stats7d
        - stats30d
        - stats90d
    V3LiquidityPoolMetadata:
      type: object
      properties:
        latestSqrtPriceX96:
          type: string
          description: >-
            The current square root price in Q64.96 format. Use this for
            high-precision swap math.
          example: '1564073352721610496185854744476'
        latestTick:
          type: string
          description: The integer index representing the current price ($1.0001^{tick}$).
          example: '201235'
        tickSpacing:
          type: number
          description: >-
            The minimum granularity of price ranges (ticks) for this pool (e.g.,
            60 for 0.3% fee pools).
          example: 60
        positionManagerAddress:
          type: string
          description: >-
            The address of the NonfungiblePositionManager responsible for
            Minting/Burning LP NFTs.
          example: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88'
      description: >-
        Technical state for Concentrated Liquidity (V3) pools, including
        tick-level precision and price encoding.
      required:
        - latestSqrtPriceX96
        - latestTick
        - tickSpacing
        - positionManagerAddress
    V4LiquidityPoolMetadata:
      type: object
      properties:
        stateViewAddress:
          type: object
          description: >-
            The periphery StateView contract used for off-chain state queries.
            May be null if the protocol uses a custom implementation of V4
            Architecture. Like the Pancake Swap Infinity CL
          examples:
            - '0x7ffe42c4a5deea5b0fec41c94c136cf115597227'
            - null
          nullable: true
        poolManagerAddress:
          type: string
          description: The core V4 Singleton contract address that manages all pool states.
          example: '0x000000000004444c5dc75cb358380d2e3de08a90'
        tickSpacing:
          type: number
          description: >-
            The minimum granularity of price ranges (ticks) for this pool (e.g.,
            60 for 0.3% fee pools).
          examples:
            - 60
        latestTick:
          type: string
          description: The integer index representing the current price ($1.0001^{tick}$).
          example: '201235'
        permit2Address:
          type: string
          description: >-
            The Permit2 contract used for token approvals and signature-based
            transfers for this pool.
          example: '0x000000000022D473030F116dDEE9F6B43aC78BA3'
        latestSqrtPriceX96:
          type: string
          description: >-
            The latest sqrtPriceX96 value. Represented as a string to preserve
            precision for BigInt calculations.
          example: '1564073352721610496185854744476'
        hook:
          type: object
          description: >-
            Information about the hook of the v4 liquidity pool if it exists. In
            case that this pool has no hooks attached, this field will be null
          examples:
            - address: '0x4440854B2d02C57A0Dc5c58b7A884562D875c0c4'
            - null
          nullable: true
        positionManagerAddress:
          type: string
          description: The contract used to manage positions for v4 liquidity pools
          example: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88'
      description: Architectural specifications and state for Uniswap V4 (Singleton) pools
      required:
        - stateViewAddress
        - poolManagerAddress
        - tickSpacing
        - latestTick
        - permit2Address
        - latestSqrtPriceX96
        - hook
        - positionManagerAddress
    AlgebraLiquidityPoolMetadata:
      type: object
      properties:
        latestSqrtPriceX96:
          type: string
          description: >-
            The current square root price in Q64.96 format. Use this for
            high-precision swap math.
          example: '1564073352721610496185854744476'
        latestTick:
          type: string
          description: The integer index representing the current price ($1.0001^{tick}$).
          example: '201235'
        tickSpacing:
          type: number
          description: >-
            The minimum granularity of price ranges (ticks) for this pool (e.g.,
            60 for 0.3% fee pools).
          example: 60
        positionManagerAddress:
          type: string
          description: >-
            The address of the NonfungiblePositionManager responsible for
            Minting/Burning LP NFTs.
          example: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88'
        deployer:
          type: string
          description: |2-

              The address that initiated the pool deployment. 
              
              * **Standard Pools:** Returns the Zero Address (0x0...) for pools deployed via the default factory.
              * **Custom/Permissioned Pools:** Returns the specific address of the deployer for non-standard or private pool instances.
              
          example: '0x4440854B2d02C57A0Dc5c58b7A884562D875c0c4'
        version:
          type: string
          description: >-
            The specific version of the Algebra core/integral logic used by this
            pool instance.
          example: 1.2.2
        communityFeePercentage:
          type: number
          description: >-
            The protocol-level "cut" taken from the total swap fee represented
            in a percentage
          example: 100
        plugin:
          description: |2-

              The plugin contract attached to this pool, including its address and configuration.
              
              Plugins in Algebra Integral are conceptually similar to Uniswap V4 Hooks and allow modular logic
              to be executed at specific lifecycle points (e.g., dynamic fee calculation, oracle updates,
              or custom volatility tracking).
              
              If the pool does not have a plugin configured, this field is 'null'.
              
          externalDocs:
            url: >-
              https://docs.algebra.finance/algebra-integral-documentation/algebra-integral-technical-reference/plugins
            description: Algebra Integral Plugin Specification
          example:
            address: '0x778A933d684F310CAf470FBf4fc7E40F3F3ef0c6'
            config: 195
          nullable: true
          allOf:
            - $ref: '#/components/schemas/AlgebraLiquidityPoolPlugin'
      description: >-
        Technical state and architectural configuration for Algebra Integral
        (Modular V3) pools
      required:
        - latestSqrtPriceX96
        - latestTick
        - tickSpacing
        - positionManagerAddress
        - deployer
        - version
        - communityFeePercentage
        - plugin
    SlipstreamLiquidityPoolMetadata:
      type: object
      properties:
        latestSqrtPriceX96:
          type: string
          description: >-
            The current square root price in Q64.96 format. Use this for
            high-precision swap math.
          example: '1564073352721610496185854744476'
        latestTick:
          type: string
          description: The integer index representing the current price ($1.0001^{tick}$).
          example: '201235'
        tickSpacing:
          type: number
          description: >-
            The minimum granularity of price ranges (ticks) for this pool (e.g.,
            60 for 0.3% fee pools).
          example: 60
        positionManagerAddress:
          type: string
          description: >-
            The address of the NonfungiblePositionManager responsible for
            Minting/Burning LP NFTs.
          example: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88'
      description: Technical state and architectural configuration for Slipstream pools
      required:
        - latestSqrtPriceX96
        - latestTick
        - tickSpacing
        - positionManagerAddress
    ApiKeyMissingMetadata:
      type: object
      properties:
        example:
          type: string
          example: Bearer <api-key>
          description: Example of how to provide the API key
      required:
        - example
    ApiKeyDisabledMetadata:
      type: object
      properties:
        reason:
          type: string
          example: The API key has been revoked.
      required:
        - reason
    ApiKeyExpiredMetadata:
      type: object
      properties:
        expiredAt:
          type: string
          example: '2023-01-01T00:00:00Z'
          description: The date when the API key expired
      required:
        - expiredAt
    ApiKeyInvalidMetadata:
      type: object
      properties:
        reason:
          type: string
          example: Invalid format
          description: Reason why the API key is considered invalid
      required:
        - reason
    ApiKeyNotFoundMetadata:
      type: object
      properties:
        receivedKey:
          type: string
          example: sk_l...123
          description: The masked API key that was received
      required:
        - receivedKey
    ApiKeyUnknownMetadata:
      type: object
      properties:
        details:
          type: string
          description: Additional details about the unknown API key error
      required:
        - details
    RateLimitMetadata:
      type: object
      properties:
        retryAfterSeconds:
          type: number
          example: 60
      required:
        - retryAfterSeconds
    InvalidBlockchainAddressMetadata:
      type: object
      properties:
        invalidAddresses:
          description: One or more invalid chain identities (chainId + address)
          oneOf:
            - type: object
              properties:
                address:
                  type: string
                reason:
                  type: string
            - type: array
              items:
                type: object
                properties:
                  address:
                    type: string
                  reason:
                    type: string
        receivedCount:
          type: number
          description: Total number of addresses received
        totalInvalid:
          type: number
          description: Number of invalid addresses found
      required:
        - invalidAddresses
        - receivedCount
    InvalidPaginationCursorMetadata:
      type: object
      properties:
        receivedCursor:
          type: string
          description: The invalid cursor string received
      required:
        - receivedCursor
    UnsupportedChainIdMetadata:
      type: object
      properties:
        chainId:
          description: The chain ID or list of chain IDs relative to the error
          oneOf:
            - type: number
            - type: array
              items:
                type: number
        unsupportedIds:
          description: List of unsupported IDs found
          type: array
          items:
            type: number
        supportedIds:
          description: List of supported IDs valid for this operation
          type: array
          items:
            type: number
      required:
        - chainId
        - unsupportedIds
        - supportedIds
    InvalidProtocolIdMetadata:
      type: object
      properties:
        received:
          type: object
          description: The invalid item(s) received
        invalidCount:
          type: number
          description: Count of invalid items found
        invalidItems:
          description: List of specific invalid items
          type: array
          items:
            type: string
      required:
        - received
    InvalidBasketIdMetadata:
      type: object
      properties:
        basketId:
          type: string
          description: The requested basket identifier
        supportedIds:
          description: List of supported IDs
          type: array
          items:
            type: string
      required:
        - basketId
        - supportedIds
    InvalidLiquidityPoolAddressMetadata:
      type: object
      properties:
        liquidityPoolAddress:
          type: string
          description: The requested liquidity pool address
      required:
        - liquidityPoolAddress
    ValidationErrorMetadata:
      type: object
      properties:
        property:
          type: string
          description: The property that failed validation
        value:
          type: object
          description: The value that failed validation
        constraints:
          type: object
          description: >-
            Object containing constraint violations where key is the property
            name and value is an array of error messages
          additionalProperties:
            type: array
            items:
              type: string
          example:
            email:
              - email must be an email
            password:
              - password is too short
      required:
        - property
        - value
        - constraints
    LiquidityPoolNotFoundMetadata:
      type: object
      properties:
        liquidityPoolAddress:
          type: string
          description: The requested liquidity pool address
        chainId:
          type: number
          description: The value of the chain ID
          example: 1
      required:
        - liquidityPoolAddress
        - chainId
    TokenNotFoundMetadata:
      type: object
      properties:
        tokenAddress:
          type: string
          description: The requested token address
        chainId:
          type: number
          description: The value of the chain ID
          example: 1
      required:
        - tokenAddress
        - chainId
    TokenBasketNotFoundMetadata:
      type: object
      properties:
        basketId:
          type: string
          description: The requested basket identifier
        chainId:
          type: number
          description: The value of the chain ID
          example: 1
      required:
        - basketId
        - chainId
    RouteNotFoundMetadata:
      type: object
      properties:
        method:
          type: string
          description: The HTTP method used in the request
          example: GET
      required:
        - method
    UnknownErrorMetadata:
      type: object
      properties:
        exceptionName:
          type: string
          description: The name of the exception that was thrown
          example: InternalServerError
    LiquidityPoolTokenBalance:
      type: object
      properties:
        amount:
          type: number
          description: >-
            The human-readable token balance, adjusted for decimals
            (normalized).
          example: 21.3
        amountUsd:
          type: number
          description: >-
            The current market value of the token reserve inside the pool
            denominated in USD.
          example: 113000.21
        token:
          description: The metadata of the underlying blockchain token.
          example:
            chainId: 1
            address: '0x0000000000000000000000000000000000000000'
            decimals: 18
            name: Ether
            symbol: ETH
            logoUrl: >-
              https://logos.hydric.org/tokens/1/0x0000000000000000000000000000000000000000
          allOf:
            - $ref: '#/components/schemas/SingleChainTokenMetadata'
      description: A normalized representation of a specific token reserve inside a pool.
      required:
        - amount
        - amountUsd
        - token
    LiquidityPoolStats:
      type: object
      properties:
        swapVolumeUsd:
          type: number
          description: The cumulative swap volume processed by the pool
          example: 1234.56
        feesUsd:
          type: number
          description: >-
            Total revenue generated from swap fees and distributed to liquidity
            providers.
          example: 1222.22
        netInflowUsd:
          type: number
          description: >-
            The net change in liquidity (deposits - withdrawals). Positive
            values indicate capital growth; negative values indicate capital
            flight.
          example: -7291
        liquidityVolumeUsd:
          type: number
          description: >-
            The gross amount of liquidity activity (sum of all deposits and
            withdrawals).
          example: 87000000
        yield:
          type: number
          description: The annualized yield projected based on the performance observed.
          example: 512.6781609195
      description: >-
        Relevant stats about a liquidity pool. Such as Swap Fees, Swap Volume,
        Yield, net inflow, etc...
      required:
        - swapVolumeUsd
        - feesUsd
        - netInflowUsd
        - liquidityVolumeUsd
        - yield
    AlgebraLiquidityPoolPlugin:
      type: object
      properties:
        address:
          type: string
          description: The contract address of the Algebra plugin
          example: '0x778A933d684F310CAf470FBf4fc7E40F3F3ef0c6'
        config:
          type: number
          description: >-
            Bitmask representing the enabled capabilities of the Algebra plugin.
            Each bit corresponds to a specific behavior defined by the Algebra
            protocol (e.g., dynamic fee logic).
          externalDocs:
            url: >-
              https://docs.algebra.finance/algebra-integral-documentation/algebra-integral-technical-reference/plugins
            description: Algebra plugin capability specification
          example: 195
      description: Relevant information about the plugin of an algebra liquidity pool
      required:
        - address
        - config
  securitySchemes:
    bearerAuth:
      scheme: bearer
      bearerFormat: JWT
      type: http
      description: >-
        Use the docs sandbox API key for authentication:
        **hydric_docs_4N4ocuirsN8Sh**

````