Exactly Protocol Variable Rate API

Floating/variable rate deposit and borrow operations

OpenAPI Specification

exactly-variable-rate-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Exactly Protocol Auditor ERC-4626 Variable Rate API
  description: 'Smart contract interface for the Auditor, the central risk management component of Exactly Protocol. Manages market listings, collateral factors, account liquidity checks, and liquidation eligibility. Provides methods to query all markets, compute account liquidity, calculate seizure amounts, and check liquidation conditions. Deployed on Ethereum, Optimism, and Base.

    '
  version: 1.0.0
  contact:
    name: Exactly Protocol
    url: https://docs.exact.ly
  license:
    name: MIT
    url: https://github.com/exactly/protocol/blob/main/LICENSE-MIT
servers:
- url: https://app.exact.ly
  description: Exactly Protocol App
tags:
- name: Variable Rate
  description: Floating/variable rate deposit and borrow operations
paths:
  /market/deposit:
    post:
      summary: Deposit assets at variable rate
      description: 'Deposits underlying assets into the floating pool and mints ERC-4626 shares to the receiver. Returns the number of shares minted.

        '
      operationId: deposit
      tags:
      - Variable Rate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DepositRequest'
      responses:
        '200':
          description: Shares minted
          content:
            application/json:
              schema:
                type: object
                properties:
                  shares:
                    type: string
                    description: Number of shares minted to receiver
  /market/withdraw:
    post:
      summary: Withdraw assets at variable rate
      description: 'Withdraws a specific amount of underlying assets from the floating pool, burning the required shares from the owner''s balance.

        '
      operationId: withdraw
      tags:
      - Variable Rate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WithdrawRequest'
      responses:
        '200':
          description: Shares burned
          content:
            application/json:
              schema:
                type: object
                properties:
                  shares:
                    type: string
                    description: Number of shares burned
  /market/borrow:
    post:
      summary: Borrow assets at variable rate
      description: 'Borrows assets from the floating pool at a variable interest rate and sends them to the receiver. Returns the borrow shares issued.

        '
      operationId: borrow
      tags:
      - Variable Rate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - assets
              - receiver
              - borrower
              properties:
                assets:
                  type: string
                  description: Amount to borrow (in wei)
                receiver:
                  type: string
                  description: Address to receive the borrowed assets
                  pattern: ^0x[a-fA-F0-9]{40}$
                borrower:
                  type: string
                  description: Address whose collateral backs the borrow
                  pattern: ^0x[a-fA-F0-9]{40}$
      responses:
        '200':
          description: Borrow shares issued
          content:
            application/json:
              schema:
                type: object
                properties:
                  borrowShares:
                    type: string
                    description: Number of borrow shares issued
  /market/repay:
    post:
      summary: Repay variable rate debt
      description: 'Repays a specific amount of assets toward a variable rate borrow position. Returns the actual assets repaid and borrow shares burned.

        '
      operationId: repay
      tags:
      - Variable Rate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - assets
              - borrower
              properties:
                assets:
                  type: string
                  description: Amount to repay (in wei)
                borrower:
                  type: string
                  description: Address of the borrower whose debt is being repaid
                  pattern: ^0x[a-fA-F0-9]{40}$
      responses:
        '200':
          description: Repayment result
          content:
            application/json:
              schema:
                type: object
                properties:
                  actualRepay:
                    type: string
                    description: Actual assets repaid (in wei)
                  borrowShares:
                    type: string
                    description: Borrow shares burned
components:
  schemas:
    WithdrawRequest:
      type: object
      required:
      - assets
      - receiver
      - owner
      properties:
        assets:
          type: string
          description: Amount of underlying assets to withdraw (in wei)
        receiver:
          type: string
          description: Address to receive the withdrawn assets
          pattern: ^0x[a-fA-F0-9]{40}$
        owner:
          type: string
          description: Address of the shares owner
          pattern: ^0x[a-fA-F0-9]{40}$
    DepositRequest:
      type: object
      required:
      - assets
      - receiver
      properties:
        assets:
          type: string
          description: Amount of underlying assets to deposit (in wei)
        receiver:
          type: string
          description: Address to receive the minted shares
          pattern: ^0x[a-fA-F0-9]{40}$
externalDocs:
  description: Exactly Protocol Auditor Documentation
  url: https://docs.exact.ly/guides/protocol/auditor.md