Dopex CLAMM Options Trading API

REST API for interacting with Dopex's Concentrated Liquidity AMM Options (CLAMM) markets. Provides endpoints to fetch option market statistics, retrieve the full strikes chain for a given market and expiry, get estimated purchase quotes, prepare on-chain transaction calldata for buying and exercising options, and query per-user position and transaction history. The base URL is https://api.stryke.xyz and supports multi-chain queries via the chains query parameter accepting comma-separated EVM chain IDs (e.g., 42161 for Arbitrum).

OpenAPI Specification

stryke-api.yaml Raw ↑
openapi: 3.0.0
paths:
  /clamm/purchase/quote:
    get:
      operationId: PurchaseController_getQuote
      summary: Get quote for purchasing options
      parameters:
        - name: chainId
          required: true
          in: query
          description: Chain ID of the network
          schema:
            enum:
              - 5000
              - 42161
            type: number
        - name: optionMarket
          required: true
          in: query
          description: Address of the option market
          schema:
            type: string
        - name: user
          required: true
          in: query
          schema:
            type: string
        - name: strike
          required: true
          in: query
          schema:
            type: number
        - name: markPrice
          required: true
          in: query
          schema:
            type: number
        - name: type
          required: true
          in: query
          schema:
            enum:
              - call
              - put
            type: string
        - name: amount
          required: true
          in: query
          schema:
            type: number
        - name: ttl
          required: true
          in: query
          schema:
            type: number
      responses:
        '200':
          description: Get cost of purchasing an option
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteResponseDto'
      tags:
        - purchase
  /clamm/purchase/positions:
    get:
      operationId: PurchaseController_getPurchasePositions
      summary: Get current options positions of a user
      parameters:
        - name: chainId
          required: true
          in: query
          description: Chain ID of the network
          schema:
            enum:
              - 5000
              - 42161
            type: number
        - name: optionMarket
          required: true
          in: query
          description: Address of the option market
          schema:
            type: string
        - name: user
          required: true
          in: query
          description: Address of the user
          schema:
            type: string
        - name: first
          required: true
          in: query
          description: Pagination parameter for first (Similar to Qraphql)
          schema:
            enum:
              - 100
              - 200
              - 300
            type: number
        - name: skip
          required: true
          in: query
          description: Pagination parameter for skip (Similar to Qraphql)
          schema:
            enum:
              - 0
              - 100
              - 200
            type: number
      responses:
        '200':
          description: List of options positions
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PurchasePositionsResponseDto'
      tags:
        - purchase
  /clamm/purchase/history:
    get:
      operationId: PurchaseController_getHistory
      summary: Get history of options purchases for a user
      parameters:
        - name: chainId
          required: true
          in: query
          description: Chain ID of the network
          schema:
            enum:
              - 5000
              - 42161
            type: number
        - name: optionMarket
          required: true
          in: query
          description: Address of the option market
          schema:
            type: string
        - name: user
          required: true
          in: query
          description: Address of the user
          schema:
            type: string
        - name: first
          required: true
          in: query
          description: Pagination parameter for first (Similar to Qraphql)
          schema:
            enum:
              - 100
              - 200
              - 300
            type: number
        - name: skip
          required: true
          in: query
          description: Pagination parameter for skip (Similar to Qraphql)
          schema:
            enum:
              - 0
              - 100
              - 200
            type: number
      responses:
        '200':
          description: History of options purchases by an address
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PurchaseHistoryResponseDto'
      tags:
        - purchase
  /clamm/deposit/prepare:
    get:
      operationId: DepositController_prepareDeposit
      summary: >-
        Prepare a executable transaction and a summary for providing liquidity
        into CLAMM
      parameters:
        - name: chainId
          required: true
          in: query
          description: Chain ID of the network
          schema:
            enum:
              - 5000
              - 42161
            type: number
        - name: pool
          required: true
          in: query
          description: Address of the token pair pool
          schema:
            type: string
        - name: hook
          required: true
          in: query
          description: Address of the hook to deposit through
          schema:
            type: string
        - name: handler
          required: true
          in: query
          description: Address of the handler to deposit through
          schema:
            type: string
        - name: maxStrike
          required: true
          in: query
          description: Range max strike price
          schema:
            type: number
        - name: minStrike
          required: true
          in: query
          description: Range min strike price
          schema:
            type: number
        - name: optionsAmount
          required: true
          in: query
          description: Amount of options to provide liquidity for.
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrepareDepositResponseDto'
      tags:
        - deposit
  /clamm/deposit/history:
    get:
      operationId: DepositController_getHistory
      summary: Get history of deposit activity
      parameters:
        - name: chainId
          required: true
          in: query
          description: Chain ID of the network
          schema:
            enum:
              - 5000
              - 42161
            type: number
        - name: first
          required: true
          in: query
          description: Pagination parameter for first (Similar to Qraphql)
          schema:
            enum:
              - 100
              - 200
              - 300
            type: number
        - name: skip
          required: true
          in: query
          description: Pagination parameter for skip (Similar to Qraphql)
          schema:
            enum:
              - 0
              - 100
              - 200
            type: number
        - name: pool
          required: true
          in: query
          description: Address of the token pair pool
          schema:
            type: string
        - name: user
          required: true
          in: query
          description: Address of the user
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DepositHistoryResponseDto'
      tags:
        - deposit
  /clamm/deposit/positions:
    get:
      operationId: DepositController_getPositions
      summary: Get current deposit positions
      parameters:
        - name: chainId
          required: true
          in: query
          description: Chain ID of the network
          schema:
            enum:
              - 5000
              - 42161
            type: number
        - name: first
          required: true
          in: query
          description: Pagination parameter for first (Similar to Qraphql)
          schema:
            enum:
              - 100
              - 200
              - 300
            type: number
        - name: skip
          required: true
          in: query
          description: Pagination parameter for skip (Similar to Qraphql)
          schema:
            enum:
              - 0
              - 100
              - 200
            type: number
        - name: pool
          required: true
          in: query
          description: Address of the token pair pool
          schema:
            type: string
        - name: user
          required: true
          in: query
          description: Address of the user
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DepositPositionsResponseDto'
      tags:
        - deposit
  /clamm/withdraw/history:
    get:
      operationId: WithdrawController_getHistory
      summary: Get history of withdraws from CLAMM for a user
      parameters:
        - name: chainId
          required: true
          in: query
          description: Chain ID of the network
          schema:
            enum:
              - 5000
              - 42161
            type: number
        - name: user
          required: true
          in: query
          description: Address of the user
          schema:
            type: string
        - name: first
          required: true
          in: query
          description: Pagination parameter for first (Similar to Qraphql)
          schema:
            enum:
              - 100
              - 200
              - 300
            type: number
        - name: skip
          required: true
          in: query
          description: Pagination parameter for skip (Similar to Qraphql)
          schema:
            enum:
              - 0
              - 100
              - 200
            type: number
        - name: pool
          required: true
          in: query
          description: Address of the token pair pool
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WithdrawHistoryResponseDto'
        '400':
          description: Failed to fetch withdraw history
      tags:
        - withdraw
  /clamm/exercise/prepare:
    get:
      operationId: ExerciseController_getExerciseTx
      summary: Get information required to exercise an options position
      parameters:
        - name: chainId
          required: true
          in: query
          description: Chain ID of the network
          schema:
            enum:
              - 5000
              - 42161
            type: number
        - name: optionMarket
          required: true
          in: query
          description: Address of the option market
          schema:
            type: string
        - name: optionId
          required: true
          in: query
          description: ERC721 token ID of the options position
          schema:
            type: number
        - name: swapperId
          required: true
          in: query
          description: Swapper contract to route exercise swap through
          schema:
            enum:
              - 1inch
              - uni-v3
            type: string
        - name: slippage
          required: true
          in: query
          description: >-
            Max slippage allowance for the swap that takes place when options'
            position collateral tokens are swapped to the profit token
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrepareExerciseResponseDto'
      tags:
        - exercise
  /clamm/exercise/history:
    get:
      operationId: ExerciseController_getHistory
      summary: Get history of exercise activity for a user
      parameters:
        - name: chainId
          required: true
          in: query
          description: Chain ID of the network
          schema:
            enum:
              - 5000
              - 42161
            type: number
        - name: user
          required: true
          in: query
          description: Address of the user
          schema:
            type: string
        - name: optionMarket
          required: true
          in: query
          description: Address of the option market
          schema:
            type: string
        - name: first
          required: true
          in: query
          description: Pagination parameter for first (Similar to Qraphql)
          schema:
            enum:
              - 100
              - 200
              - 300
            type: number
        - name: skip
          required: true
          in: query
          description: Pagination parameter for skip (Similar to Qraphql)
          schema:
            enum:
              - 0
              - 100
              - 200
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExerciseHistoryResponseDto'
      tags:
        - exercise
  /clamm/strikes-chain:
    get:
      operationId: StrikesChainController_getStrikesChain
      summary: Get strikes chain or options chain of a options market
      parameters:
        - name: optionMarket
          required: true
          in: query
          description: Address of the option market
          schema:
            type: string
        - name: chainId
          required: true
          in: query
          description: Chain ID of the network
          schema:
            enum:
              - 5000
              - 42161
            type: number
        - name: callsReach
          required: true
          in: query
          schema:
            enum:
              - 100
              - 200
            type: number
        - name: putsReach
          required: true
          in: query
          schema:
            enum:
              - 100
              - 200
            type: number
      responses:
        '200':
          description: List of strikes of the option market
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StrikesChainResponseDto'
      tags:
        - strikes-chain
  /clamm/option-markets:
    get:
      operationId: OptionMarketsController_getOptionMarkets
      summary: Get option markets on a chain
      parameters:
        - name: chainId
          required: true
          in: query
          description: Chain ID of the network
          schema:
            enum:
              - 5000
              - 42161
            type: number
      responses:
        '200':
          description: List of option markets on specified chain
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OptionMarketsResponseDtoV1'
      tags:
        - option-markets
  /v1.1/clamm/option-markets:
    get:
      operationId: OptionMarketsController_getOptionMarketsV2
      summary: Get option markets on chains specified
      parameters:
        - name: chains
          required: true
          in: query
          description: Chain IDs of networks to query option markets for
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: List of option markets on specified chain
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OptionMarketsResponseDtoV2'
      tags:
        - option-markets
  /clamm/stats/fees:
    get:
      operationId: StatsController_getFees
      summary: Get premium and protocol fees earned by a options market
      parameters:
        - name: chainId
          required: true
          in: query
          description: Chain ID of the network
          schema:
            enum:
              - 5000
              - 42161
            type: number
        - name: optionMarket
          required: true
          in: query
          description: Address of the option market
          schema:
            type: string
        - name: from
          required: true
          in: query
          schema:
            type: number
        - name: to
          required: true
          in: query
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeesResponseDto'
      tags:
        - stats
  /clamm/stats/volume:
    get:
      operationId: StatsController_getVolume
      summary: Get volume generated by a options market
      parameters:
        - name: chainId
          required: true
          in: query
          description: Chain ID of the network
          schema:
            enum:
              - 5000
              - 42161
            type: number
        - name: optionMarket
          required: true
          in: query
          description: Address of the option market
          schema:
            type: string
        - name: from
          required: true
          in: query
          schema:
            type: number
        - name: to
          required: true
          in: query
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: number
      tags:
        - stats
  /clamm/stats/dau:
    get:
      operationId: StatsController_getDau
      summary: Get number of unique users
      parameters:
        - name: chainId
          required: true
          in: query
          description: Chain ID of the network
          schema:
            enum:
              - 5000
              - 42161
            type: number
        - name: optionMarket
          required: true
          in: query
          description: Address of the option market
          schema:
            type: string
        - name: from
          required: true
          in: query
          schema:
            type: number
        - name: to
          required: true
          in: query
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: number
      tags:
        - stats
  /clamm/stats/open-interest:
    get:
      operationId: StatsController_getOpenInterest
      summary: Get current open interest of a options market
      parameters:
        - name: chainId
          required: true
          in: query
          description: Chain ID of the network
          schema:
            enum:
              - 5000
              - 42161
            type: number
        - name: optionMarket
          required: true
          in: query
          description: Address of the option market
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: number
      tags:
        - stats
  /clamm/stats/tvl:
    get:
      operationId: StatsController_getTvl
      summary: Get total value locked in a options market
      parameters:
        - name: chainId
          required: true
          in: query
          description: Chain ID of the network
          schema:
            enum:
              - 5000
              - 42161
            type: number
        - name: optionMarket
          required: true
          in: query
          description: Address of the option market
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: number
      tags:
        - stats
  /clamm/stats/tvl/{pool}:
    get:
      operationId: StatsController_getTvlForPool
      summary: Get total value locked in a pool specific to CLAMM
      parameters:
        - name: chainId
          required: true
          in: query
          description: Chain ID of the network
          schema:
            enum:
              - 5000
              - 42161
            type: number
        - name: pool
          required: true
          in: path
          description: Address of the pool
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: number
      tags:
        - stats
  /clamm/stats/delta:
    get:
      operationId: StatsController_getPnlDelta
      summary: Get trade performance of a user on specified chains
      parameters:
        - name: chains
          required: true
          in: query
          description: Chain IDs of networks to query option markets for
          schema:
            type: array
            items:
              type: string
        - name: user
          required: true
          in: query
          description: Address of the user
          schema:
            type: string
        - name: from
          required: true
          in: query
          schema:
            type: number
        - name: to
          required: true
          in: query
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PnlDeltaResponseDto'
      tags:
        - stats
  /xsyk/vest-positions/{account}:
    get:
      operationId: VestPositionsController_getUserData
      parameters:
        - name: chainId
          required: true
          in: query
          description: Chain ID of the network
          schema:
            enum:
              - 5000
              - 42161
            type: number
        - name: account
          required: true
          in: path
          description: Address of user
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserXSykDataResponseDto'
      tags:
        - xSYK
info:
  title: Stryke API
  description: ''
  version: '1.0'
  contact: {}
tags:
  - name: CLAMM
    description: ''
servers:
  - url: https://api.stryke.xyz
components:
  schemas:
    TokenDto:
      type: object
      properties:
        address:
          type: string
          description: Address of the ERC20 token
        decimals:
          type: string
          description: Decimals of the ERC20 token
        symbol:
          type: string
          description: Symbol of the ERC20 token
      required:
        - address
        - decimals
        - symbol
    QuoteResponseDto:
      type: object
      properties:
        token:
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/TokenDto'
        premium:
          type: string
          readOnly: true
        fees:
          type: string
          readOnly: true
      required:
        - token
        - premium
        - fees
    PurchasePositionMetaHandlerDto:
      type: object
      properties:
        name:
          type: string
          readOnly: true
        deprecated:
          type: boolean
          readOnly: true
        handler:
          type: object
          readOnly: true
        pool:
          type: object
          readOnly: true
      required:
        - name
        - deprecated
        - handler
        - pool
    PurchasePositionMetaDto:
      type: object
      properties:
        tokenId:
          type: string
          readOnly: true
        expiry:
          type: number
          readOnly: true
        handlers:
          readOnly: true
          type: array
          items:
            $ref: '#/components/schemas/PurchasePositionMetaHandlerDto'
        liquidities:
          readOnly: true
          type: array
          items:
            type: string
      required:
        - tokenId
        - expiry
        - handlers
        - liquidities
    PurchasePositionsResponseDto:
      type: object
      properties:
        size:
          type: string
          readOnly: true
        premium:
          type: string
          readOnly: true
        strike:
          type: number
          readOnly: true
        type:
          type: string
          readOnly: true
          enum:
            - call
            - put
        token:
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/TokenDto'
        meta:
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/PurchasePositionMetaDto'
      required:
        - size
        - premium
        - strike
        - type
        - token
        - meta
    PurchaseHistoryResponseDto:
      type: object
      properties:
        txHash:
          type: object
          readOnly: true
        timestamp:
          type: number
          readOnly: true
        strike:
          type: number
          readOnly: true
        size:
          type: string
          readOnly: true
        ttl:
          type: number
          readOnly: true
        type:
          type: string
          readOnly: true
          enum:
            - call
            - put
        premium:
          type: string
          readOnly: true
        token:
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/TokenDto'
      required:
        - txHash
        - timestamp
        - strike
        - size
        - ttl
        - type
        - premium
        - token
    TransactionData:
      type: object
      properties:
        to:
          type: string
          description: Address to send the transaction calldata to
        data:
          type: string
          description: Transaction calldata
      required:
        - to
        - data
    IntersectionAmountTokenDto:
      type: object
      properties:
        amount:
          type: string
        address:
          type: string
          description: Address of the ERC20 token
        decimals:
          type: string
          description: Decimals of the ERC20 token
        symbol:
          type: string
          description: Symbol of the ERC20 token
      required:
        - amount
        - address
        - decimals
        - symbol
    PrepareDepositResponseDto__Tokens:
      type: object
      properties:
        callToken:
          description: Call token details and amount
          allOf:
            - $ref: '#/components/schemas/IntersectionAmountTokenDto'
        putToken:
          description: Put token details and amount
          allOf:
            - $ref: '#/components/schemas/IntersectionAmountTokenDto'
      required:
        - callToken
        - putToken
    PrepareDepositResponseDto:
      type: object
      properties:
        tx:
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/TransactionData'
        strikes:
          readOnly: true
          type: array
          items:
            type: number
        tokens:
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/PrepareDepositResponseDto__Tokens'
      required:
        - tx
        - strikes
        - tokens
    Strikes:
      type: object
      properties:
        call:
          type: number
          description: Call strike
        put:
          type: number
          description: Put strike
      required:
        - call
        - put
    LiquidityToken0Token1:
      type: object
      properties:
        amount0:
          type: string
          description: Amount of token0 provided as liquidity
        amount1:
          type: string
          description: Amount of token1 provided as liquidity
      required:
        - amount0
        - amount1
    Token0Token1:
      type: object
      properties:
        token0:
          description: Token0 details and amount
          allOf:
            - $ref: '#/components/schemas/TokenDto'
        token1:
          description: Token1 token details and amount
          allOf:
            - $ref: '#/components/schemas/TokenDto'
      required:
        - token0
        - token1
    HandlerMeta:
      type: object
      properties:
        name:
          type: string
        deprecated:
          type: boolean
        handler:
          type: object
        pool:
          type: string
      required:
        - name
        - deprecated
        - handler
        - pool
    DepositHistoryResponseDto:
      type: object
      properties:
        strikes:
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/Strikes'
        txHash:
          type: string
          readOnly: true
        timestamp:
          type: number
          readOnly: true
        liquidity:
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/LiquidityToken0Token1'
        tokens:
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/Token0Token1'
        handler:
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/HandlerMeta'
      required:
        - strikes
        - txHash
        - timestamp
        - liquidity
        - tokens
        - handler
    Token0Token1Composition:
      type: object
      properties:
        token0:
          type: string
          description: Amount of token0
        token1:
          type: string
          description: Amount of token1
      required:
        - token0
        - token1
    DepositResponseDto__ReservedWithdrawable:
      type: object
      properties:
        token0:
          type: string
          description: Amount of token0
        token1:
          type: string
          description: Amount of token1
        liquidity:
          type: string
          readOnly: true
      required:
        - token0
        - token1
        - liquidity
    DepositResponseDto__Reserved:
      type: object
      properties:
        token0:
          type: string
          description: Amount of token0
        token1:
          type: string
          description: Amount of token1
        withdrawable:
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/DepositResponseDto__ReservedWithdrawable'
        lastReserve:
          type: number
          readOnly: true
      required:
        - token0
        - token1
        - withdrawable
        - lastReserve
    DepositPositionsResponseDto:
      type: object
      properties:
        strikes:
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/Strikes'
        tokens:
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/Token0Token1'
        earned:
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/Token0Token1Composition'
        liquidity:
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/Token0Token1Composition'
        withdrawable:
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/Token0Token1Composition'
        reserved:
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/DepositResponseDto__Reserved'
      required:
        - strikes
        - tokens
        - earned
        - liquidity
        - withdrawable
        - reserved
    WithdrawHistoryResponseDto:
      type: object
      properties:
        liquidity:
          readOnly: true
          allOf:
    

# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/dopex/refs/heads/main/openapi/stryke-api.yaml