BarnBridge SMART Yield API

Structured-product yield pools with senior/junior tranches

OpenAPI Specification

barnbridge-smart-yield-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: BarnBridge Governance SMART Yield API
  description: 'BarnBridge is a risk tokenization DeFi protocol. This REST API exposes endpoints for querying SMART Yield structured products, SMART Alpha price-volatility pools, SMART Exposure automated-rebalancing tranches, DAO Governance proposals and treasury data, and Yield Farming staking analytics.

    '
  version: 2.0.0
  contact:
    name: BarnBridge Discord
    url: https://discord.com/invite/FfEhsVk
  license:
    name: GPL-3.0
    url: https://github.com/BarnBridge/internal-api/blob/main/LICENSE
  x-logo:
    url: https://barnbridge.com/logo.png
servers:
- url: https://api-v2.barnbridge.com
  description: BarnBridge Production API
tags:
- name: SMART Yield
  description: Structured-product yield pools with senior/junior tranches
paths:
  /api/smartyield/pools:
    get:
      operationId: listSmartYieldPools
      summary: List SMART Yield pools
      tags:
      - SMART Yield
      description: Returns all SMART Yield structured-product pools with current liquidity, APY, and state data. Optionally filter by originator protocol or underlying token symbol.
      parameters:
      - name: originator
        in: query
        description: Comma-separated list of originator protocol IDs, or "all" (default).
        schema:
          type: string
          default: all
        example: compound/v2
      - name: underlyingSymbol
        in: query
        description: Underlying asset symbol filter (case-insensitive), or "all" (default).
        schema:
          type: string
          default: all
        example: USDC
      responses:
        '200':
          description: Array of SMART Yield pool objects
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
        '500':
          $ref: '#/components/responses/InternalError'
  /api/smartyield/pools/{address}:
    get:
      operationId: getSmartYieldPool
      summary: Get SMART Yield pool by address
      tags:
      - SMART Yield
      parameters:
      - $ref: '#/components/parameters/poolAddress'
      responses:
        '200':
          description: Single SMART Yield pool object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
  /api/smartyield/pools/{address}/apy:
    get:
      operationId: getSmartYieldPoolAPYTrend
      summary: Get APY trend for a SMART Yield pool
      tags:
      - SMART Yield
      parameters:
      - $ref: '#/components/parameters/poolAddress'
      - $ref: '#/components/parameters/windowParam'
      responses:
        '200':
          description: Time-series array of APY data points
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
  /api/smartyield/pools/{address}/liquidity:
    get:
      operationId: getSmartYieldPoolLiquidity
      summary: Get liquidity chart for a SMART Yield pool
      tags:
      - SMART Yield
      parameters:
      - $ref: '#/components/parameters/poolAddress'
      - $ref: '#/components/parameters/windowParam'
      responses:
        '200':
          description: Time-series array of liquidity data points
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
  /api/smartyield/pools/{address}/transactions:
    get:
      operationId: listSmartYieldPoolTransactions
      summary: List transactions for a SMART Yield pool
      tags:
      - SMART Yield
      parameters:
      - $ref: '#/components/parameters/poolAddress'
      - $ref: '#/components/parameters/pageParam'
      - $ref: '#/components/parameters/limitParam'
      responses:
        '200':
          description: Paginated list of pool transactions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
  /api/smartyield/pools/{address}/senior-bonds:
    get:
      operationId: listSmartYieldSeniorBonds
      summary: List senior bonds for a SMART Yield pool
      tags:
      - SMART Yield
      parameters:
      - $ref: '#/components/parameters/poolAddress'
      - $ref: '#/components/parameters/pageParam'
      - $ref: '#/components/parameters/limitParam'
      responses:
        '200':
          description: Paginated list of senior bond positions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
  /api/smartyield/pools/{address}/junior-bonds:
    get:
      operationId: listSmartYieldJuniorBonds
      summary: List junior bonds for a SMART Yield pool
      tags:
      - SMART Yield
      parameters:
      - $ref: '#/components/parameters/poolAddress'
      - $ref: '#/components/parameters/pageParam'
      - $ref: '#/components/parameters/limitParam'
      responses:
        '200':
          description: Paginated list of junior bond positions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
  /api/smartyield/rewards/pools:
    get:
      operationId: listSmartYieldRewardPools
      summary: List SMART Yield reward pools (v1)
      tags:
      - SMART Yield
      responses:
        '200':
          description: Array of reward pool objects
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
  /api/smartyield/rewards/pools/{poolAddress}/transactions:
    get:
      operationId: listSmartYieldRewardPoolTransactions
      summary: List staking-action transactions for a reward pool (v1)
      tags:
      - SMART Yield
      parameters:
      - $ref: '#/components/parameters/rewardPoolAddress'
      - $ref: '#/components/parameters/pageParam'
      - $ref: '#/components/parameters/limitParam'
      responses:
        '200':
          description: Paginated list of staking-action transactions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
  /api/smartyield/rewards/v2/pools:
    get:
      operationId: listSmartYieldRewardPoolsV2
      summary: List SMART Yield reward pools (v2)
      tags:
      - SMART Yield
      responses:
        '200':
          description: Array of v2 reward pool objects
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
  /api/smartyield/rewards/v2/pools/{poolAddress}/transactions:
    get:
      operationId: listSmartYieldRewardPoolTransactionsV2
      summary: List staking-action transactions for a reward pool (v2)
      tags:
      - SMART Yield
      parameters:
      - $ref: '#/components/parameters/rewardPoolAddress'
      - $ref: '#/components/parameters/pageParam'
      - $ref: '#/components/parameters/limitParam'
      responses:
        '200':
          description: Paginated list of v2 staking-action transactions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
  /api/smartyield/users/{address}/history:
    get:
      operationId: getSmartYieldUserHistory
      summary: Get SMART Yield transaction history for a user
      tags:
      - SMART Yield
      parameters:
      - $ref: '#/components/parameters/userAddress'
      - $ref: '#/components/parameters/pageParam'
      - $ref: '#/components/parameters/limitParam'
      responses:
        '200':
          description: Paginated transaction history
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
  /api/smartyield/users/{address}/redeems/senior:
    get:
      operationId: getSmartYieldUserSeniorRedeems
      summary: Get senior bond redeems for a user
      tags:
      - SMART Yield
      parameters:
      - $ref: '#/components/parameters/userAddress'
      - $ref: '#/components/parameters/pageParam'
      - $ref: '#/components/parameters/limitParam'
      responses:
        '200':
          description: Paginated list of senior bond redeems
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
  /api/smartyield/users/{address}/junior-past-positions:
    get:
      operationId: getSmartYieldUserJuniorPastPositions
      summary: Get past junior positions for a user
      tags:
      - SMART Yield
      parameters:
      - $ref: '#/components/parameters/userAddress'
      - $ref: '#/components/parameters/pageParam'
      - $ref: '#/components/parameters/limitParam'
      responses:
        '200':
          description: Paginated list of past junior positions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
  /api/smartyield/users/{address}/portfolio-value:
    get:
      operationId: getSmartYieldUserPortfolioValue
      summary: Get total portfolio value for a user
      tags:
      - SMART Yield
      parameters:
      - $ref: '#/components/parameters/userAddress'
      responses:
        '200':
          description: Portfolio value breakdown
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
  /api/smartyield/users/{address}/portfolio-value/junior:
    get:
      operationId: getSmartYieldUserJuniorPortfolioValue
      summary: Get junior portfolio value for a user
      tags:
      - SMART Yield
      parameters:
      - $ref: '#/components/parameters/userAddress'
      responses:
        '200':
          description: Junior portfolio value breakdown
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
  /api/smartyield/users/{address}/portfolio-value/senior:
    get:
      operationId: getSmartYieldUserSeniorPortfolioValue
      summary: Get senior portfolio value for a user
      tags:
      - SMART Yield
      parameters:
      - $ref: '#/components/parameters/userAddress'
      responses:
        '200':
          description: Senior portfolio value breakdown
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
components:
  schemas:
    Meta:
      type: object
      description: Optional metadata accompanying paginated or block-aware responses.
      properties:
        count:
          type: integer
          description: Total record count (for paginated endpoints).
          example: 125
        block:
          $ref: '#/components/schemas/BlockInfo'
    ErrorResponse:
      type: object
      description: Standard error envelope.
      properties:
        status:
          type: integer
          example: 400
        error:
          type: string
          example: invalid pool address
    SuccessResponse:
      type: object
      description: Standard API success envelope.
      properties:
        status:
          type: integer
          example: 200
        data:
          description: Response payload — array or object depending on endpoint.
          oneOf:
          - type: array
            items: {}
          - type: object
        meta:
          $ref: '#/components/schemas/Meta'
    BlockInfo:
      type: object
      description: Ethereum block context at the time of the query.
      properties:
        blockNumber:
          type: integer
          format: int64
          example: 15234567
        blockTimestamp:
          type: integer
          format: int64
          description: Unix timestamp of the block.
          example: 1660000000
  responses:
    NotFound:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalError:
      description: Internal server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: Invalid parameter or address.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  parameters:
    pageParam:
      name: page
      in: query
      description: 1-based page number for pagination.
      schema:
        type: integer
        minimum: 1
        default: 1
    windowParam:
      name: window
      in: query
      description: Time window for chart/trend data (e.g. "24h", "7d", "30d").
      schema:
        type: string
        enum:
        - 24h
        - 7d
        - 30d
        default: 30d
    limitParam:
      name: limit
      in: query
      description: Number of items per page.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 10
    rewardPoolAddress:
      name: poolAddress
      in: path
      required: true
      description: Ethereum address of the reward pool.
      schema:
        type: string
        pattern: ^0x[0-9a-fA-F]{40}$
      example: '0x3FdFb07472ea4771E1aD66FD3b87b265Cd4ec112'
    poolAddress:
      name: address
      in: path
      required: true
      description: Ethereum address of the SMART Yield pool (checksummed or lowercase).
      schema:
        type: string
        pattern: ^0x[0-9a-fA-F]{40}$
      example: '0x4B8d90D68F26DEF303Dcb6CFc9b63A1aAEC15840'
    userAddress:
      name: address
      in: path
      required: true
      description: Ethereum address of the user.
      schema:
        type: string
        pattern: ^0x[0-9a-fA-F]{40}$
      example: '0xabcdef1234567890abcdef1234567890abcdef12'