Exponential Vault API

The Vault API from Exponential — 5 operation(s) for vault.

OpenAPI Specification

exponential-vault-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Yo Protocol Agent Vault API
  version: '1.0'
  description: 'Public read API for the YO Protocol (by Exponential.fi). Fetch historical and current protocol- and address-level data for yoVaults: current snapshot (TVL, yield, underlying pools, allocation), pending redeem requests, historical yield and TVL time series, per-user deposit/withdraw history, per-user pending redemptions, and per-user P&L. No API key required. Endpoints are assembled verbatim from the per-endpoint OpenAPI fragments published on the docs API reference page.'
servers:
- url: https://api.yo.xyz
  description: Production
tags:
- name: Vault
paths:
  /api/v1/vault/{network}/{vaultAddress}:
    get:
      operationId: VaultController_getVault_v1
      summary: Get a snapshot of the current TVL, yield, underlying pools and allocation of a protocol vault.
      tags:
      - Vault
      parameters:
      - name: vaultAddress
        required: true
        in: path
        schema:
          type: string
      - name: network
        required: true
        in: path
        schema:
          enum:
          - base
          - ethereum
          - unichain
          - arbitrum
          - tac
          - plasma
          - hyperevm
          type: string
      responses:
        '200':
          description: ''
  /api/v1/vault/pending-redeems/{network}/{vaultAddress}:
    get:
      operationId: VaultController_getTotalPendingRedeems_v1
      summary: Check the status of pending redeem requests for a given YO vault on a given blockchain.
      tags:
      - Vault
      parameters:
      - name: vaultAddress
        required: true
        in: path
        schema:
          type: string
      - name: network
        required: true
        in: path
        schema:
          enum:
          - base
          - ethereum
          - unichain
          - arbitrum
          - tac
          - plasma
          - hyperevm
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiResponseDto'
                - properties:
                    data:
                      $ref: '#/components/schemas/AmountDto'
  /api/v1/vault/yield/timeseries/{network}/{vaultAddress}:
    get:
      operationId: VaultController_getYieldTimeseries_v1
      summary: Fetch the historical yield of a specific YO vault.
      tags:
      - Vault
      parameters:
      - name: vaultAddress
        required: true
        in: path
        schema:
          type: string
      - name: network
        required: true
        in: path
        schema:
          enum:
          - base
          - ethereum
          - unichain
          - arbitrum
          - tac
          - plasma
          - hyperevm
          type: string
      responses:
        '200':
          description: ''
  /api/v1/vault/tvl/timeseries/{network}/{vaultAddress}:
    get:
      operationId: VaultController_getTvlTimeseries_v1
      summary: Fetch the historical TVL of a specific YO vault.
      tags:
      - Vault
      parameters:
      - name: vaultAddress
        required: true
        in: path
        schema:
          type: string
      - name: network
        required: true
        in: path
        schema:
          enum:
          - base
          - ethereum
          - unichain
          - arbitrum
          - tac
          - plasma
          - hyperevm
          type: string
      responses:
        '200':
          description: ''
  /api/v1/vault/pending-redeems/{network}/{vaultAddress}/{userAddress}:
    get:
      operationId: VaultController_getPendingRedeemsForUser_v1
      summary: Fetch the pending redemptions for a specific user on a specific vault.
      tags:
      - Vault
      parameters:
      - name: vaultAddress
        required: true
        in: path
        schema:
          type: string
      - name: userAddress
        required: true
        in: path
        schema:
          type: string
      - name: network
        required: true
        in: path
        schema:
          enum:
          - base
          - ethereum
          - unichain
          - arbitrum
          - tac
          - plasma
          - hyperevm
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ApiResponseDto'
                - properties:
                    data:
                      $ref: '#/components/schemas/PendingRedeemsForUserResponseDto'
components:
  schemas:
    ApiResponseDto:
      type: object
      properties:
        data:
          type: object
          description: The response data
        message:
          type: string
          description: Message describing the response
        statusCode:
          type: number
          description: HTTP status code of the response
      required:
      - data
      - message
      - statusCode
    PendingRedeemsForUserResponseDto:
      type: object
      properties:
        assets:
          $ref: '#/components/schemas/AmountDto'
        shares:
          $ref: '#/components/schemas/AmountDto'
      required:
      - assets
      - shares
    AmountDto:
      type: object
      properties:
        raw:
          format: int64
          type: integer
        formatted:
          type: string
      required:
      - raw
      - formatted