openapi: 3.0.0
paths:
  /v1/allswaps:
    get:
      description: >-
        Returns all existing swap pairs with their current volumes and prices in
        USD.
      operationId: PoolController_getAllSwaps_v1
      parameters: []
      responses:
        '200':
          description: Successfully returning all existing swaps.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllSwapsResponse'
        '403':
          description: Forbidden
        '404':
          description: Not found
      summary: Returns all available swap pairs
      tags:
        - pool
  /v1/pool_stats/{pool_token_id}:
    get:
      description: >-
        Returns detailed statistics for a specific swap pool including volumes,
        fees, liquidity metrics and APR. Data is provided as a time series, with
        each entry corresponding to a specific Stacks block height.
      operationId: PoolController_getPriceHistory_v1
      parameters:
        - name: pool_token_id
          required: true
          in: path
          description: Pool token ID of swap pool.
          schema:
            oneOf:
              - type: integer
                example: 13
        - name: offset
          required: false
          in: query
          description: Specifies the offset of data to be returned, default value is 0.
          schema: {}
        - name: limit
          required: true
          in: query
          description: Specifies number of data to be returned, default value is 10.
          schema: {}
      responses:
        '200':
          description: Successfully returning pool stats.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PoolStatsResponse'
        '403':
          description: Forbidden
        '404':
          description: Not found
      summary: Returns pool stats
      tags:
        - pool
  /v1/pool_volume/{pool_token_id}:
    get:
      description: >-
        Returns 24-hour pool volume history for a specific swap pool. Data is
        provided as a time series, with each entry corresponding to a specific
        Stacks block height.
      operationId: PoolController_getPoolVolumeHistory_v1
      parameters:
        - name: pool_token_id
          required: true
          in: path
          description: Pool token ID of swap pool.
          schema:
            oneOf:
              - type: integer
                example: 13
        - name: offset
          required: false
          in: query
          description: Specifies the offset of data to be returned, default value is 0.
          schema: {}
        - name: limit
          required: true
          in: query
          description: Specifies number of data to be returned, default value is 10.
          schema: {}
      responses:
        '200':
          description: Successfully returning volumes.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PoolVolumeResponse'
        '403':
          description: Forbidden
        '404':
          description: Not found
      summary: Returns daily pool volume
      tags:
        - pool
  /v1/volume_24h/{pool_token_id}:
    get:
      operationId: PoolController_getVolume24HRHistory_v1
      parameters:
        - name: pool_token_id
          required: true
          in: path
          description: Pool token ID of swap pool.
          schema:
            oneOf:
              - type: integer
                example: 13
        - name: offset
          required: false
          in: query
          description: Specifies the offset of data to be returned, default value is 0.
          schema: {}
        - name: limit
          required: true
          in: query
          description: Specifies number of data to be returned, default value is 10.
          schema: {}
      responses:
        '200':
          description: Successfully returning volumes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PoolVolumeResponse'
        '403':
          description: Forbidden
        '404':
          description: Not found
      summary: Returns daily volumes of token in time series
      tags:
        - pool
  /v1/volume_7d/{pool_token_id}:
    get:
      description: >-
        Returns 7-day pool volume history for a specific swap pool. Data is
        provided as a time series, with each entry corresponding to a specific
        Stacks block height.
      operationId: PoolController_getVolume7DHistory_v1
      parameters:
        - name: pool_token_id
          required: true
          in: path
          description: Pool token ID of swap pool.
          schema:
            oneOf:
              - type: integer
                example: 13
        - name: offset
          required: false
          in: query
          description: Specifies the offset of data to be returned, default value is 0.
          schema: {}
        - name: limit
          required: true
          in: query
          description: Specifies number of data to be returned, default value is 10.
          schema: {}
      responses:
        '200':
          description: Successfully returning volumes.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PoolVolume7DayResponse'
        '403':
          description: Forbidden
        '404':
          description: Not found
      summary: Returns weekly pool volume
      tags:
        - pool
  /v1/pool_liquidity/{pool_token_id}:
    get:
      description: >-
        Returns liquidity history for a specific swap pool. Data is provided as
        a time series, with each entry corresponding to a specific Stacks block
        height.
      operationId: PoolController_getPoolLiquidityHistory_v1
      parameters:
        - name: pool_token_id
          required: true
          in: path
          description: Pool token ID of swap pool.
          schema:
            oneOf:
              - type: integer
                example: 13
        - name: offset
          required: false
          in: query
          description: Specifies the offset of data to be returned, default value is 0.
          schema: {}
        - name: limit
          required: true
          in: query
          description: Specifies number of data to be returned, default value is 10.
          schema: {}
      responses:
        '200':
          description: Successfully returning liquidity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenLiquidityResponse'
        '403':
          description: Forbidden
        '404':
          description: Not found
      summary: Returns pool liquidity
      tags:
        - pool
  /v1/liquidity/{pool_token_id}:
    get:
      operationId: PoolController_getLiquidityHistory_v1
      parameters:
        - name: pool_token_id
          required: true
          in: path
          description: Pool token ID of swap pool.
          schema:
            oneOf:
              - type: integer
                example: 13
        - name: offset
          required: false
          in: query
          description: Specifies the offset of data to be returned, default value is 0.
          schema: {}
        - name: limit
          required: true
          in: query
          description: Specifies number of data to be returned, default value is 10.
          schema: {}
      responses:
        '200':
          description: Successfully returning liquidity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenLiquidityResponse'
        '403':
          description: Forbidden
        '404':
          description: Not found
      summary: Returns liquidity of token in time series
      tags:
        - pool
  /v1/fee/{pool_token_id}:
    get:
      description: >-
        Returns pool's fee rebate history for a specific swap pool. Data is
        provided as a time series, with each entry corresponding to a specific
        Stacks block height.
      operationId: PoolController_getFeeHistory_v1
      parameters:
        - name: pool_token_id
          required: true
          in: path
          description: Pool token ID of swap pool.
          schema:
            oneOf:
              - type: integer
                example: 13
        - name: offset
          required: false
          in: query
          description: Specifies the offset of data to be returned, default value is 0.
          schema: {}
        - name: limit
          required: true
          in: query
          description: Specifies number of data to be returned, default value is 10.
          schema: {}
      responses:
        '200':
          description: Successfully returning fee
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PoolFeeResponse'
        '403':
          description: Forbidden
        '404':
          description: Not found
      summary: Returns pool fee
      tags:
        - pool
  /v1/stats/tvl:
    get:
      description: >-
        Returns the total value locked (TVL) across all pools on the ALEX DEX.
        Data is provided as a time series, with each entry corresponding to a
        specific Stacks block height.
      operationId: StatsController_getTVL_v1
      parameters: []
      responses:
        '200':
          description: Successfully returning TVL
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TotalTVL'
        '403':
          description: Forbidden
        '404':
          description: Not found
      summary: Returns total TVL value of ALEX DEX
      tags:
        - stats
  /v1/stats/tvl/{token}:
    get:
      description: >-
        Returns a time series of the total value locked (TVL) for a specific
        token on the ALEX DEX. The response includes TVL values, block heights,
        timestamps, and token identifiers for each recorded interval.
      operationId: StatsController_getTokenTVL_v1
      parameters:
        - name: token
          required: true
          in: path
          description: The Stacks principal of the token contract.
          schema:
            oneOf:
              - type: string
                example: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex
        - name: offset
          required: false
          in: query
          description: Specifies the offset of data to be returned, default value is 0
          schema: {}
        - name: limit
          required: false
          in: query
          description: Specifies number of data to be returned, default value is 10
          schema: {}
      responses:
        '200':
          description: Successfully returning liquidity
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LaplaceTokenTvlReference'
        '403':
          description: Forbidden
        '404':
          description: Not found
      summary: Returns token TVL in time series
      tags:
        - stats
  /v1/stats/total_supply/{token}:
    get:
      description: >-
        Returns the total supply of a specific token on the ALEX DEX. The
        response includes the token identifier, the total supply value, and the
        block height at which the total supply was recorded.
      operationId: StatsController_getTotalSupply_v1
      parameters:
        - name: token
          required: true
          in: path
          description: The Stacks principal of the token contract.
          schema:
            oneOf:
              - type: string
                example: age000-governance-token
      responses:
        '200':
          description: Successfully returning total supply
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SinkTokenStatsReference'
        '403':
          description: Forbidden
        '404':
          description: Not found
      summary: Returns total supply of the queried token
      tags:
        - stats
  /v1/stats/circulating_supply/age000-governance-token:
    get:
      description: >-
        Returns the circulating supply of the age000-governance-token on the
        ALEX DEX. The response includes the circulating supply value, the number
        of decimals, the token name, and the block height at which the
        circulating supply was recorded.
      operationId: StatsController_getCirculatingSupply_v1
      parameters: []
      responses:
        '200':
          description: Successfully returning total supply
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LaplaceTokenStatsReference'
        '403':
          description: Forbidden
        '404':
          description: Not found
      summary: Returns circulating supply of the age000-governance-token
      tags:
        - stats
  /v1/price/{token}:
    get:
      description: >-
        Returns the current price of a specific token along with the block
        height at which the price was last synchronized. This endpoint provides
        real-time price data for the requested token.
      operationId: PriceController_getPrice_v1
      parameters:
        - name: token
          required: true
          in: path
          description: >-
            The unique identifier of the token, which is Stacks principal of the
            token contract.
          schema:
            oneOf:
              - type: string
                example: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex
      responses:
        '200':
          description: Successfully returning price
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenPrice'
        '403':
          description: Forbidden
        '404':
          description: Not found
      summary: Returns price of token
      tags:
        - price
  /v1/pool_token_price/{pool_token_id}:
    get:
      description: >-
        Returns the current price of a specific pool token on the ALEX DEX,
        along with the block height at which the price was recorded.
      operationId: PriceController_getPoolTokenPrice_v1
      parameters:
        - name: pool_token_id
          required: true
          in: path
          description: Pool token ID of swap pool.
          schema:
            oneOf:
              - type: integer
                example: 13
      responses:
        '200':
          description: Successfully returning Pool token price
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PoolTokenPrice'
        '403':
          description: Forbidden
        '404':
          description: Not found
      summary: Returns pool token price value of ALEX DEX
      tags:
        - price
  /v1/pool_token_stats:
    get:
      description: >-
        Returns a list of all existing pool token statistics on the ALEX DEX,
        including details such as token prices, total supply, reserved balances,
        and the block height at which these statistics were recorded.
      operationId: PriceController_getAllPoolTokenPrice_v1
      parameters: []
      responses:
        '200':
          description: Successfully returning all existing pool token stats
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PoolTokenStats'
        '403':
          description: Forbidden
        '404':
          description: Not found
      summary: Returns all existing pool token stats of the ALEX DEX
      tags:
        - price
  /v1/price_history/{token}:
    get:
      description: >-
        Returns a list of the historical price data for a specific token,
        providing a time series of average prices. This endpoint supports
        optional filters for block height ranges, ordering, and pagination.
      operationId: PriceController_getPriceHistory_v1
      parameters:
        - name: token
          required: true
          in: path
          description: >-
            The unique identifier of the token, which is Stacks principal of the
            token contract.
          schema:
            oneOf:
              - type: string
                example: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex
              - type: integer
        - name: limit
          required: false
          in: query
          description: Specifies number of data to be returned, default value is 10
          schema: {}
        - name: order_by
          required: false
          in: query
          description: >-
            Specifies the order of block height to be returned, default value is
            desc
          schema: {}
        - name: end_block_height
          required: false
          in: query
          description: Specifies the end block height of data to be returned
          schema: {}
        - name: start_block_height
          required: false
          in: query
          description: Specifies the start block height of data to be returned
          schema: {}
        - name: offset
          required: false
          in: query
          description: Specifies the offset of data to be returned, default value is 0
          schema: {}
      responses:
        '200':
          description: Successfully returning price history
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenPriceHistory'
        '403':
          description: Forbidden
        '404':
          description: Not found
      summary: Returns price history of token
      tags:
        - price
  /v1/price_history_15min/{token}:
    get:
      description: >-
        Returns a list of the historical price data for a specific token,
        divided into 15-minute intervals. The response includes average prices
        for each interval.
      operationId: PriceController_getPriceHistory15Min_v1
      parameters:
        - name: token
          required: true
          in: path
          description: >-
            The unique identifier of the token, which is Stacks principal of the
            token contract.
          schema:
            oneOf:
              - type: string
                example: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex
              - type: integer
        - name: order_by
          required: false
          in: query
          description: >-
            Specifies the order of block height to be returned, default value is
            desc
          schema: {}
        - name: end_ts
          required: true
          in: query
          description: Specifies the end unix timestamp of data to be returned
          schema: {}
        - name: start_ts
          required: true
          in: query
          description: Specifies the start unix timestamp of data to be returned
          schema: {}
        - name: offset
          required: false
          in: query
          description: Specifies the offset of data to be returned, default value is 0
          schema: {}
        - name: limit
          required: false
          in: query
          description: Specifies number of data to be returned, default value is 10
          schema: {}
      responses:
        '200':
          description: Successfully returning price history 15min
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenPriceHistory'
        '403':
          description: Forbidden
        '404':
          description: Not found
      summary: Returns price history 15min of token
      tags:
        - price
  /v1/price_history_daily:
    get:
      description: >-
        Returns daily average prices for a token by aggregating 15-minute
        historical price data within the provided date range.
      operationId: PriceController_getPriceHistoryDaily_v1
      parameters:
        - name: end
          required: true
          in: query
          description: End date in YYYY-MM-DD format
          schema:
            example: '2022-01-31'
        - name: start
          required: true
          in: query
          description: Start date in YYYY-MM-DD format
          schema:
            example: '2022-01-01'
        - name: token
          required: true
          in: query
          description: >-
            Token symbol alias or token contract identifier. Supports btc, alex,
            stx, or a full token contract string.
          schema: {}
      responses:
        '200':
          description: Successfully returning daily average price history
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DailyTokenPrice'
        '400':
          description: Invalid request parameters
      summary: Returns daily average price history of token
      tags:
        - price
  /v1/pairs:
    get:
      description: >-
        Returns a list of all active trading pairs on the ALEX AMM. Each pair
        includes the pool ticker (formed by the Stacks principals of the token
        pair) and the symbols of the base and target tokens.
      operationId: DexController_getAllPairs_v1
      parameters: []
      responses:
        '200':
          description: Successfully returning all existing pairs
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Pair'
        '403':
          description: Forbidden
        '404':
          description: Not found
      summary: Returns all existing pairs
      tags:
        - dex
  /v1/tickers:
    get:
      description: >-
        Returns a list of market statistics for all trading pairs on the ALEX
        DEX over the last 24 hours. The response includes trading volumes,
        prices, and other key metrics for each pair.
      operationId: DexController_getAllTickers_v1
      parameters: []
      responses:
        '200':
          description: Successfully returning all markets statistics for the last 24 hours
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Ticker'
        '403':
          description: Forbidden
        '404':
          description: Not found
      summary: Returns all markets statistics for the last 24 hours
      tags:
        - dex
  /v1/ticker/{ticker_id}:
    get:
      description: >-
        Returns detailed market statistics for a specific ticker over the last
        24 hours. The response includes trading volumes, prices, and other
        metrics for the requested trading pair.
      operationId: DexController_getTicker_v1
      parameters:
        - name: ticker_id
          required: true
          in: path
          description: >-
            Unique identifier of the pool, consisting of the token principals of
            each token delimited by an underscore.
          schema:
            oneOf:
              - type: string
                example: >-
                  SP2C2YFP12AJZB4MABJBAJ55XECVS7E4PMMZ89YZR.usda-token_SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex
              - type: integer
      responses:
        '200':
          description: Successfully returning all historical trades of certain ticker
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ticker'
        '403':
          description: Forbidden
        '404':
          description: Not found
      summary: Returns all markets statistics for a certain ticker
      tags:
        - dex
  /v1/orderbook/{ticker}:
    get:
      description: >-
        Returns the order book for a specific ticker, including all historical
        trades.
      operationId: DexController_getOrderBookTicker_v1
      parameters:
        - name: ticker
          required: true
          in: path
          description: >-
            Unique identifier of the pool, consisting of the token principals of
            each token delimited by an underscore.
          schema:
            oneOf:
              - type: string
                example: ALEX_WSLM
              - type: integer
      responses:
        '200':
          description: Successfully returning all historical trades of certain ticker
        '403':
          description: Forbidden
        '404':
          description: Not found
      summary: Returns the orderbook of a certain ticker
      tags:
        - dex
  /v1/historical_swaps/{pool_token_id}:
    get:
      description: >-
        Returns a list of all historical trades for a specific pool token on the
        ALEX DEX. The response includes trade details such as volumes, prices,
        and timestamps for each recorded trade.
      operationId: DexController_getHistoricalTrades_v1
      parameters:
        - name: pool_token_id
          required: true
          in: path
          description: Pool token ID of swap pool.
          schema:
            oneOf:
              - type: integer
                example: 13
        - name: limit
          required: true
          in: query
          description: >-
            Specifies number of recent block heights to be returned, default
            value is 1000
          schema: {}
      responses:
        '200':
          description: Successfully returning all historical trades of certain ticker
        '403':
          description: Forbidden
        '404':
          description: Not found
      summary: Returns all existing historical trades
      tags:
        - dex
  /v2/coin-gecko/pairs:
    get:
      operationId: CoinGeckoController_getPairsV2_v2
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - coin-gecko
  /v2/coin-gecko/tickers:
    get:
      operationId: CoinGeckoController_getTickersV2_v2
      parameters: []
      responses:
        '200':
          description: 'Get all tickers from AMM '
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Ticker'
      tags:
        - coin-gecko
  /v3/coin-gecko/latest-block:
    get:
      operationId: CoinGeckoController_getLatestBlock_v3
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - coin-gecko
  /v3/coin-gecko/asset:
    get:
      operationId: CoinGeckoController_getAsset_v3
      parameters:
        - name: id
          required: true
          in: query
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - coin-gecko
  /v3/coin-gecko/pair:
    get:
      operationId: CoinGeckoController_getPair_v3
      parameters:
        - name: id
          required: true
          in: query
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - coin-gecko
  /v3/coin-gecko/events:
    get:
      operationId: CoinGeckoController_getEvent_v3
      parameters:
        - name: fromBlock
          required: true
          in: query
          schema:
            type: string
        - name: toBlock
          required: true
          in: query
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - coin-gecko
  /v1/brc20/user-balance:
    get:
      operationId: Brc20Controller_userBalance_v1
      parameters:
        - name: tick
          required: true
          in: query
          schema:
            example: ORMM
            type: string
        - name: user
          required: true
          in: query
          schema:
            example: bc1phpa7ym29gdwulxv62c20su2nh2039vad04hhawyuwztt54weff2suawxly
            type: string
      responses:
        '200':
          description: Successfully returning user balance
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserBalanceResponse'
      tags:
        - brc20
  /v1/brc20/bitcoin-tx-indexed:
    get:
      operationId: Brc20Controller_bitcoinTxIndexed_v1
      parameters:
        - name: bitcoin-tx-id
          required: true
          in: query
          schema:
            example: 498f108b18f5a5b2dec1f31133c7da8260b44711c1bd387728eb51ac146e1d7f
            type: string
        - name: offset
          required: true
          in: query
          schema:
            example: 0
            type: number
        - name: output
          required: true
          in: query
          schema:
            example: 0
            type: number
      responses:
        '200':
          description: Successfully returning bitcoin tx indexed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BitcoinTxIndexedResponse'
      tags:
        - brc20
  /v2/stx-tools/pools:
    get:
      operationId: StxToolsController_getPools_v2
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - StxTools
  /v2/stx-tools/token-prices:
    get:
      operationId: StxToolsController_getTokenPrices_v2
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - StxTools
  /v2/stx-tools:
    get:
      operationId: StxToolsController_getAll_v2
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - StxTools
  /v1/galxe/check-bridged:
    get:
      operationId: GalxeController_checkBridged_v1
      parameters:
        - name: address
          required: true
          in: query
          schema:
            type: string
        - name: chain_id
          required: true
          in: query
          schema:
            type: string
        - name: start
          required: true
          in: query
          schema:
            type: string
        - name: end
          required: true
          in: query
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - Galxe
  /v1/zealy-campaign/swap-verify:
    post:
      operationId: ZealyController_alexVerify_v1
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Zealy
  /v1/zealy-campaign/stake-stx-more-than-10:
    post:
      operationId: ZealyController_lisaVerifyStxMoreThan10_v1
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Zealy
  /v1/zealy-campaign/stake-vlistx-more-than-10:
    post:
      operationId: ZealyController_lisaVerifyListxMoreThan10_v1
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Zealy
  /v1/zealy-campaign/hold-listx-more-than-10:
    post:
      operationId: ZealyController_lisaVerifyHoldListxMoreThan10_v1
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Zealy
  /v1/zealy-campaign/stake-listx-lp-more-than-20-usd:
    post:
      operationId: ZealyController_lisaVerifyStakeListxLpMoreThan20Usd_v1
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Zealy
  /v1/zealy-campaign/hold-10-listx-more-than-7-days:
    post:
      operationId: ZealyController_lisaVerifyHoldListxMoreThan7Days_v1
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Zealy
  /v1/zealy-campaign/hold-200-lialex-more-than-7-days:
    post:
      operationId: ZealyController_lisaVerifyHoldLiAlexMoreThan7Days_v1
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Zealy
  /v1/zealy-campaign/stake-verify:
    post:
      operationId: ZealyController_lisaVerify_v1
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Zealy
  /v1/zealy-campaign/bridge-verify:
    post:
      operationId: ZealyController_bridgeVerify_v1
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Zealy
  /v1/public/token-prices:
    get:
      operationId: PublicController_getTokenPrices_v1
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Public
  /v2/public/token-prices:
    get:
      operationId: PublicController_getTokenPricesV2_v2
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Public
  /v1/public/history-prices:
    get:
      operationId: PublicController_getHistoryPrices_v1
      parameters:
        - name: limit
          required: true
          in: query
          schema:
            type: number
        - name: offset
          required: true
          in: query
          schema:
            type: number
        - name: block_heights
          required: true
          in: query
          schema:
            type: string
        - name: token
          required: true
          in: query
          schema:
            type: string
        - name: wrapped_token
          required: true
          in: query
          schema:
            type: string
        - name: burn_block_time
          required: true
          in: query
          schema:
            type: string
        - name: sort
          required: true
          in: query
          schema:
            type: string
        - name: sort_by
          required: true
          in: query
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - Public
  /v1/public/synced-blocks:
    get:
      operationId: PublicController_getSyncedBlock_v1
      parameters:
        - name: limit
          required: true
          in: query
          schema:
            type: number
        - name: offset
          required: true
          in: query
          schema:
            type: number
        - name: block_heights
          required: true
          in: query
          schema:
            type: string
        - name: burn_block_time
          required: true
          in: query
          schema:
            type: string
        - name: sort
          required: true
          in: query
          schema:
            type: string
        - name: sort_by
          required: true
          in: query
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - Public
  /v1/public/token-mappings:
    get:
      operationId: PublicController_getTokenMapping_v1
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Public
  /v2/public/token-mappings:
    get:
      operationId: PublicController_getTokenMappingV2_v2
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Public
  /v1/public/pools:
    get:
      operationId: PublicController_getPools_v1
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Public
  /v2/public/pools:
    get:
      operationId: PublicController_getPoolsV2_v2
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Public
  /v1/public/pairs:
    get:
      operationId: PublicController_getPairs_v1
      parameters: []
      responses:
        '200':
          description: 'Get all token pairs from AMM '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenPairResponse'
      tags:
        - Public
  /v1/public/amm-pool-stats:
    get:
      operationId: PublicController_getAmmPoolStats_v1
      parameters: []
      responses:
        '200':
          description: Get all stats of AMM pools
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AmmPoolStatsResponse'
      tags:
        - Public
  /v1/public/hackers:
    get:
      operationId: PublicController_getHackers_v1
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Public
  /v1/public/addresses/{address}/auto-alex-v3-rewards:
    get:
      operationId: PublicController_getAutoAlexV3RewardsByAddress_v1
      parameters:
        - name: address
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - Public
  /v1/public/auto-alex-v3/rewards:
    get:
      operationId: PublicController_getAutoAlexV3RewardsByCycle_v1
      parameters:
        - name: cycle
          required: true
          in: query
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - Public
  /v1/public/auto-alex-v3-stats:
    get:
      operationId: PublicController_getAutoAlexV3Stats_v1
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Public
  /v1/public/lqstx/rewards:
    get:
      operationId: PublicController_getLqstxRewardsByCycle_v1
      parameters:
        - name: cycle
          required: true
          in: query
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - Public
  /v1/public/addresses/{address}/lqstx-rewards:
    get:
      operationId: PublicController_getLqstxRewardsByAddress_v1
      parameters:
        - name: address
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - Public
  /v2/public/addresses/{address}/auto-alex-v3-rewards:
    get:
      operationId: PublicController_getAutoAlexV3RewardsByAddressV2_v2
      parameters:
        - name: address
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - Public
  /v2/public/auto-alex-v3/rewards:
    get:
      operationId: PublicController_getAutoAlexV3RewardsByCycleV2_v2
      parameters:
        - name: cycle
          required: true
          in: query
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - Public
  /v2/public/lqstx/rewards:
    get:
      operationId: PublicController_getLqstxRewardsByCycleV2_v2
      parameters:
        - name: cycle
          required: true
          in: query
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - Public
  /v2/public/addresses/{address}/lqstx-rewards:
    get:
      operationId: PublicController_getLqstxRewardsByAddressV2_v2
      parameters:
        - name: address
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - Public
  /v1/public/treasury-grant-records:
    get:
      operationId: PublicController_getTreasuryGrantRecords_v1
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Public
  /v1/public/surge-vote-analysis/{id}:
    get:
      operationId: PublicController_surge_v1
      parameters:
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - Public
  /v1/public/brc20-tokens:
    get:
      operationId: PublicController_getBrc20Tokens_v1
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Public
  /v1/public/stark-usdc:
    get:
      operationId: PublicController_getBrc20TokensPrice_v1
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Public
  /v1/public/tessera-tokens:
    get:
      operationId: PublicController_getTesseraTokens_v1
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Public
  /v1/_internal/hackers:
    get:
      operationId: InternalController_getHackers_v1
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Internal
  /v1/_internal/images:
    post:
      operationId: InternalController_generateImage_v1
      parameters: []
      responses:
        '201':
          description: ''
      tags:
        - Internal
  /v1/_internal/addresses/{address}/flow-transactions:
    get:
      operationId: InternalController_getFlowTransactionsByAddress_v1
      parameters:
        - name: address
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - Internal
  /v1/_internal/prestocks-pools/{address}:
    get:
      operationId: InternalController_getPrestocksPools_v1
      parameters:
        - name: address
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - Internal
  /v1/_internal/prestocks-pools/{address}/volumes:
    get:
      operationId: InternalController_getPrestocksPoolsVolumes_v1
      parameters:
        - name: address
          required: true
          in: path
          schema:
            type: string
        - name: num_of_days
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - Internal
  /v1/_internal/tessera-address-alias:
    post:
      operationId: InternalController_setTesseraAddressAliasToDB_v1
      parameters: []
      responses:
        '201':
          description: ''
      tags:
        - Internal
  /v1/_internal/tessera-referral-tree:
    get:
      operationId: InternalController_getTesseraReferralTreeEdges_v1
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Internal
  /v1/malicious:
    get:
      operationId: MaliciousController_getHackers_v1
      parameters: []
      responses:
        '200':
          description: ''
      tags:
        - Malicious
info:
  title: ALEX REST API
  description: ALEX Open API service
  version: '1.0'
  contact:
    name: ALEX Development Team
    url: https://www.alexgo.io
    email: talkto@alexgo.io
tags:
  - name: ALEX REST API
    description: ALEX Open API for public usage
servers:
  - url: https://api.alexgo.io
    description: Production environment
components:
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http
  schemas:
    Swap:
      type: object
      properties:
        id:
          type: number
          example: 7
        base:
          type: string
          example: token-alex
        baseSymbol:
          type: string
          example: alex
        baseId:
          type: string
          example: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex
        quote:
          type: string
          example: token-wban
        quoteSymbol:
          type: string
          example: BANANA
        quoteId:
          type: string
          example: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-wban
        baseVolume:
          type: number
          example: 105.45894916044628
        quoteVolume:
          type: number
          example: 98.15140304673803
        lastBasePriceInUSD:
          type: number
          example: 0.03150216
        lastQuotePriceInUSD:
          type: number
          example: 0.005409090542472804
      required:
        - id
        - base
        - baseSymbol
        - baseId
        - quote
        - quoteSymbol
        - quoteId
        - baseVolume
        - quoteVolume
        - lastBasePriceInUSD
        - lastQuotePriceInUSD
    AllSwapsResponse:
      type: object
      properties:
        data:
          description: >-
            List of all existing swap pairs (base and quote tokens) with their
            current volumes and prices in USD.
          type: array
          items:
            $ref: '#/components/schemas/Swap'
      required:
        - data
    PoolStatus:
      type: object
      properties:
        pool_token:
          type: number
          example: 13
          description: Unique identifier of the pool token
        block_height:
          type: number
          example: 746617
          description: Stacks block height at which this status was recorded
        token_x:
          type: string
          example: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-wstx-v2
          description: Contract identifier for token X in the pool
        token_y:
          type: string
          example: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex
          description: Contract identifier for token Y in the pool
        volume_x_24h:
          type: number
          example: 112443.97784314597
          description: 24-hour trading volume for token X
        volume_y_24h:
          type: number
          example: 111321.83151559353
          description: 24-hour trading volume for token Y
        volume_24h:
          type: number
          example: 225221.63555752003
          description: Total 24-hour trading volume
        volume_x_7d:
          type: number
          example: 772478.6819111536
          description: 7-day trading volume for token X
        volume_y_7d:
          type: number
          example: 763925.8164915497
          description: 7-day trading volume for token Y
        volume_7d:
          type: number
          example: 1548772.3056866901
          description: Total 7-day trading volume
        fee_rebate_x_24h:
          type: number
          example: 83.41996769813575
          description: 24-hour fee rebate for token X
        fee_rebate_y_24h:
          type: number
          example: 196.64898177152597
          description: 24-hour fee rebate for token Y
        fee_rebate_24h:
          type: number
          example: 276.89283447830627
          description: Total 24-hour fee rebate
        fee_rebate_x_7d:
          type: number
          example: 953.7354657850966
          description: 7-day fee rebate for token X
        fee_rebate_y_7d:
          type: number
          example: 19723.707926126946
          description: 7-day fee rebate for token Y
        fee_rebate_7d:
          type: number
          example: 1909.7699233141293
          description: Total 7-day fee rebate
        est_pool_token_price:
          type: number
          example: 1.8974830418148833e-7
          description: Estimated price of the pool token
        liquidity:
          type: number
          example: 4092767.3621235755
          description: Current liquidity in the pool
        total_supply:
          type: number
          example: 4092767.3621156355
          description: Total supply of pool tokens
        apr_7d:
          type: number
          example: 2.433093588672123
          description: 7-day Annual Percentage Rate (APR)
        burn_block_time:
          type: number
          example: 1741601675
          description: Bitcoin's block height
        sync_at:
          type: string
          example: '2025-03-10T10:33:32.378+00:00'
          description: Timestamp when this data was synchronized
      required:
        - pool_token
        - block_height
        - token_x
        - token_y
        - volume_x_24h
        - volume_y_24h
        - volume_24h
        - volume_x_7d
        - volume_y_7d
        - volume_7d
        - fee_rebate_x_24h
        - fee_rebate_y_24h
        - fee_rebate_24h
        - fee_rebate_x_7d
        - fee_rebate_y_7d
        - fee_rebate_7d
        - est_pool_token_price
        - liquidity
        - total_supply
        - apr_7d
        - burn_block_time
        - sync_at
    PoolStatsResponse:
      type: object
      properties:
        token:
          type: number
          example: 13
          description: Pool token identifier
        pool_status:
          description: >-
            Array of pool status records ordered by block height. All monetary
            values use base token (token X) units unless explicitly specified
            with a "_y" suffix for quote token.
          type: array
          items:
            $ref: '#/components/schemas/PoolStatus'
      required:
        - token
        - pool_status
    VolumeValue:
      type: object
      properties:
        block_height:
          type: number
          example: 748628
          description: Stacks block height at which this status was recorded
        volume_24h:
          type: number
          example: 294318.0656719518
          description: 24-hour volume in base token (token X) units
      required:
        - block_height
        - volume_24h
    PoolVolumeResponse:
      type: object
      properties:
        token:
          type: number
          example: 13
          description: Pool token identifier
        volume_values:
          description: >-
            Array of 24-hour pool volume records ordered by block height. All
            monetary values use base token (token X) units
          type: array
          items:
            $ref: '#/components/schemas/VolumeValue'
      required:
        - token
        - volume_values
    VolumeValue7Day:
      type: object
      properties:
        block_height:
          type: number
          example: 748811
          description: Stacks block height at which this status was recorded
        volume_7d:
          type: number
          example: 1517660.0316130652
          description: 7-day volume in base token (token X) units
      required:
        - block_height
        - volume_7d
    PoolVolume7DayResponse:
      type: object
      properties:
        token:
          type: number
          example: 13
          description: Pool token identifier
        volume_values:
          description: >-
            Array of pool volume records ordered by block height. All monetary
            values use base token (token X) units
          type: array
          items:
            $ref: '#/components/schemas/VolumeValue7Day'
      required:
        - token
        - volume_values
    TokenLiquidityValue:
      type: object
      properties:
        block_height:
          type: number
          example: 748855
          description: Stacks block height at which this status was recorded
        liquidity:
          type: number
          example: 3769712.496803321
          description: Pool liquidity in base token (token X) units
      required:
        - block_height
        - liquidity
    TokenLiquidityResponse:
      type: object
      properties:
        token:
          type: number
          example: 13
          description: Pool token identifier
        liquidity_value:
          description: >-
            Array of liquidity records ordered by block height. All monetary
            values use base token (token X) units
          type: array
          items:
            $ref: '#/components/schemas/TokenLiquidityValue'
      required:
        - token
        - liquidity_value
    PoolFeeValue:
      type: object
      properties:
        block_height:
          type: number
          example: 748936
          description: Stacks block height at which this status was recorded
        fee_rebate_24h:
          type: number
          example: 615.3625117185487
          description: Fee rebate value for the past 24 hours
        fee_rebate_7d:
          type: number
          example: 3173.3596157582247
          description: Fee rebate value for the past 7 days
      required:
        - block_height
        - fee_rebate_24h
        - fee_rebate_7d
    PoolFeeResponse:
      type: object
      properties:
        pool_token:
          type: number
          example: 13
          description: Pool token identifier
        fee_value:
          description: Array of fee rebate records ordered by block height.
          type: array
          items:
            $ref: '#/components/schemas/PoolFeeValue'
      required:
        - pool_token
        - fee_value
    TotalTVL:
      type: object
      properties:
        type:
          type: string
          example: Total TVL in ALEX DEX
          description: Type of TVL being reported.
        lp_token_supply:
          type: number
          example: 16490364.062874101
          description: The total supply of liquidity provider tokens.
        reserve_pool_value:
          type: number
          example: 15097746.975137029
          description: The total value of the reserve pool.
        tvl:
          type: number
          example: 31588111.03801113
          description: >-
            The total value locked (TVL) in the ALEX DEX, combining all pools
            and reserves.
        block_height:
          type: number
          example: 799443
          description: The block height at which the TVL was last recorded.
        updated_at:
          format: date-time
          type: string
          example: '2025-03-18T13:47:45.249+00:00'
          description: The timestamp when the TVL was last updated.
      required:
        - type
        - lp_token_supply
        - reserve_pool_value
        - tvl
        - block_height
        - updated_at
    LaplaceTokenTvlReference:
      type: object
      properties:
        token:
          type: string
          example: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex
          description: >-
            The token identifier, which is the Stacks principal of the token
            contract.
        tvl:
          type: number
          example: 3551330.078772197
          description: The total value locked (TVL) for the token.
        block_height:
          type: number
          example: 805148
          description: The block height at which the TVL was recorded.
        burn_block_time:
          type: number
          example: 1742389269
          description: The burn block time when the TVL was recorded.
        sync_at:
          format: date-time
          type: string
          example: '2025-03-19T13:04:43.507+00:00'
          description: The timestamp when the TVL was last synchronized.
      required:
        - token
        - tvl
        - block_height
        - burn_block_time
        - sync_at
    SinkTokenStatsReference:
      type: object
      properties:
        token:
          type: string
          example: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex
          description: >-
            The token identifier, which is the Stacks principal of the token
            contract.
        block_height:
          type: number
          example: 804936
          description: The block height at which the TVL was recorded.
        total_supply:
          type: number
          example: 590496986.162147
          description: The total supply of the token.
      required:
        - token
        - block_height
        - total_supply
    LaplaceTokenStatsReference:
      type: object
      properties:
        token_name:
          type: string
          example: age000-governance-token
          description: The token name.
        decimals:
          type: number
          example: 8
          description: The number of decimals used for the token.
        block_height:
          type: number
          example: 805213
          description: The block height at which the TVL was recorded.
        total_supply:
          type: number
          example: 824791508.1801852
          description: The circulating supply of the token.
      required:
        - token_name
        - decimals
        - block_height
        - total_supply
    TokenPrice:
      type: object
      properties:
        token:
          type: string
          example: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex
          description: Contract identifier for token in the pool
        price:
          type: number
          example: 0.03118367
          description: The current price of the token
        syncedBlockHeight:
          type: number
          example: 793308
          description: The block height at which the price was synchronized
      required:
        - token
        - price
        - syncedBlockHeight
    PoolTokenPrice:
      type: object
      properties:
        pool_token:
          type: number
          example: 13
          description: Pool token identifier
        price:
          type: number
          example: 1.8186610911606693e-7
          description: The current price of the pool token
        block_height:
          type: number
          example: 799222
          description: Block height at which the price was recorded
      required:
        - pool_token
        - price
        - block_height
    PoolTokenStats:
      type: object
      properties:
        id:
          type: number
          example: 13
        pool_token:
          type: string
          example: 13
          description: Pool token identifier
        price:
          type: number
          example: 1.881276488329545e-7
          description: The current price of the pool token
        total_supply:
          type: number
          example: 21527396262050.875
          description: Total supply of the pool token
        reserved_balance:
          type: number
          example: 21527396262050.875
          description: Reserved balance of the pool token
        block_height:
          type: number
          example: 793384
          description: Block height at which the stats were recorded
        updated_at:
          format: date-time
          type: string
          example: '2025-03-17T13:59:07.028+00:00'
          description: Timestamp at which the stats were last updated
      required:
        - id
        - pool_token
        - price
        - total_supply
        - reserved_balance
        - block_height
        - updated_at
    Prices:
      type: object
      properties:
        avg_price_usd:
          type: number
          example: 0.03131814
          description: The average price of the token
        block_height:
          type: number
          example: 793335
          description: Stacks block height at which this status was recorded
        sync_at:
          format: int64
          type: integer
          example: 1742219377
          description: The time at which the status was recorded
        token:
          type: string
          example: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex
          description: Contract identifier for token in the pool
      required:
        - avg_price_usd
        - block_height
        - sync_at
        - token
    TokenPriceHistory:
      type: object
      properties:
        token:
          type: string
          example: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex
          description: Contract identifier for token in the pool
        prices:
          description: Array of the average prices of the token for each block height
          type: array
          items:
            $ref: '#/components/schemas/Prices'
      required:
        - token
        - prices
    DailyTokenPrice:
      type: object
      properties:
        price:
          type: number
          example: 0.03118367
          description: The average price of the token for the day
        date:
          type: string
          example: '2022-01-01'
          description: Date in YYYY-MM-DD format
      required:
        - price
        - date
    Pair:
      type: object
      properties:
        ticker:
          type: string
          example: >-
            SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.brc20-tx20_SP2XD7417HGPRTREMKF748VNEQPDRR0RMANB7X1NK.token-abtc
          description: >-
            The unique identifier for the trading pair, combining the base and
            target currencies.
        base:
          type: string
          example: brc20-tx20
          description: Contract principal of the base token.
        target:
          type: string
          example: bridged-btc
          description: Target currency of the pair
      required:
        - ticker
        - base
        - target
    Ticker:
      type: object
      properties:
        ticker_id:
          type: string
          description: ticker id with delimiter between different cryptoassets.
          example: SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.token-slunr_stx
        pool_id:
          type: string
          description: pool id with delimiter between different cryptoassets.
          example: SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.token-amm-swap-pool-v1-1
        base_currency:
          type: string
          example: SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.token-slunr
        target_currency:
          type: string
          example: stx
        base:
          type: string
          description: display name of base currency.
          example: sLUNR
        target:
          type: string
          description: display name of target currency.
          example: STX
        last_price:
          type: number
          example: 0.08540716070881907
        base_volume:
          type: number
          example: 0.08540716070881907
        target_volume:
          type: number
          example: 22589.502469
        liquidity_in_usd:
          type: number
          example: 22062.86716874599
      required:
        - ticker_id
        - pool_id
        - base_currency
        - target_currency
        - base
        - target
        - last_price
        - base_volume
        - target_volume
        - liquidity_in_usd
    UserBalanceResponse:
      type: object
      properties:
        balance:
          type: string
          description: user balance of given asset
          example: '1000000000000000'
        up-to-block:
          type: string
          description: latest block height
          example: '811363'
      required:
        - balance
        - up-to-block
    BitcoinTxIndexedResponse:
      type: object
      properties:
        from:
          type: string
          description: from address
          example: 0xbc1pngxflzuqe5vevtc8fgmxzl69pw74x36dc9pmv5rye6nhwty0c0hsh5tyr3
        to:
          type: string
          description: to address
          example: 0xbc1p06r44ervnukj3kxnqt863sz9hly5m7f80k7l94aplnd6z2tnrzvstdkzsq
        amt:
          type: string
          description: amount of assets
          example: '10000000000000000000000000000'
        tick:
          type: string
          description: asset id
          example: sats
      required:
        - from
        - to
        - amt
        - tick
    AmmTokenPair:
      type: object
      properties:
        pool_id:
          type: number
          example: 13
        token_x:
          type: string
          example: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-wxusd
        wrapped_token_x:
          type: string
          example: SP2TZK01NKDC89J6TA56SA47SDF7RTHYEQ79AAB9A.Wrapped-USD
        token_y:
          type: string
          example: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-wusda
        wrapped_token_y:
          type: string
          example: SP2C2YFP12AJZB4MABJBAJ55XECVS7E4PMMZ89YZR.usda-token
      required:
        - pool_id
        - token_x
        - wrapped_token_x
        - token_y
        - wrapped_token_y
    TokenPairResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/AmmTokenPair'
      required:
        - data
    AmmPoolStats:
      type: object
      properties:
        pool_id:
          type: number
          example: 13
        target_token:
          type: string
          example: STX
        base_token:
          type: string
          example: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex
        tvl:
          type: string
          example: '4800976.56479834'
        apy:
          type: string
          example: '0.017392667325066296'
      required:
        - pool_id
        - target_token
        - base_token
        - tvl
        - apy
    AmmPoolStatsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/AmmPoolStats'
      required:
        - data
