Exactly Protocol · Schema

MarketAccount

Comprehensive snapshot of an Exactly Protocol market and an account's positions within it, as returned by the Previewer contract's exactly() method.

DeFiLendingBorrowingFixed RateVariable RateEthereumOptimismBaseERC-4626Credit Markets

Properties

Name Type Description
market string Address of the Market contract
symbol string ERC-20 symbol of the underlying asset (e.g., USDC, WETH)
asset string Address of the underlying ERC-20 asset
decimals integer Decimal precision of the underlying asset
usdPrice string USD price of the underlying asset, scaled by 1e18
adjustFactor string Collateral adjust factor (LTV) for this market, scaled by 1e18. E.g., 8e17 = 80%.
maxFuturePools integer Maximum number of concurrent active maturity pools
fixedPools array Active fixed-rate maturity pool summaries for this market
floatingBorrowRate string Current annualized variable borrow rate, scaled by 1e18
floatingDepositAPR string Current annualized variable deposit yield, scaled by 1e18
totalFloatingDepositAssets string Total assets deposited at variable rate in this market (in wei)
totalFloatingBorrowAssets string Total assets borrowed at variable rate from this market (in wei)
floatingDepositShares string Account's ERC-4626 deposit shares in this market
floatingDepositAssets string Account's variable deposit balance in underlying units (in wei)
floatingBorrowShares string Account's variable borrow shares in this market
floatingBorrowAssets string Account's variable borrow balance in underlying units (in wei)
isCollateral boolean Whether the account has enabled this market as collateral
fixedDepositPositions array Account's fixed-rate deposit positions across maturities
fixedBorrowPositions array Account's fixed-rate borrow positions across maturities
View JSON Schema on GitHub

JSON Schema

market-account.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/exactly/refs/heads/main/json-schema/market-account.json",
  "title": "MarketAccount",
  "description": "Comprehensive snapshot of an Exactly Protocol market and an account's positions within it, as returned by the Previewer contract's exactly() method.",
  "type": "object",
  "properties": {
    "market": {
      "type": "string",
      "description": "Address of the Market contract",
      "pattern": "^0x[a-fA-F0-9]{40}$"
    },
    "symbol": {
      "type": "string",
      "description": "ERC-20 symbol of the underlying asset (e.g., USDC, WETH)"
    },
    "asset": {
      "type": "string",
      "description": "Address of the underlying ERC-20 asset",
      "pattern": "^0x[a-fA-F0-9]{40}$"
    },
    "decimals": {
      "type": "integer",
      "description": "Decimal precision of the underlying asset",
      "minimum": 0,
      "maximum": 18
    },
    "usdPrice": {
      "type": "string",
      "description": "USD price of the underlying asset, scaled by 1e18"
    },
    "adjustFactor": {
      "type": "string",
      "description": "Collateral adjust factor (LTV) for this market, scaled by 1e18. E.g., 8e17 = 80%."
    },
    "maxFuturePools": {
      "type": "integer",
      "description": "Maximum number of concurrent active maturity pools",
      "minimum": 1
    },
    "fixedPools": {
      "type": "array",
      "description": "Active fixed-rate maturity pool summaries for this market",
      "items": {
        "$ref": "#/$defs/FixedPool"
      }
    },
    "floatingBorrowRate": {
      "type": "string",
      "description": "Current annualized variable borrow rate, scaled by 1e18"
    },
    "floatingDepositAPR": {
      "type": "string",
      "description": "Current annualized variable deposit yield, scaled by 1e18"
    },
    "totalFloatingDepositAssets": {
      "type": "string",
      "description": "Total assets deposited at variable rate in this market (in wei)"
    },
    "totalFloatingBorrowAssets": {
      "type": "string",
      "description": "Total assets borrowed at variable rate from this market (in wei)"
    },
    "floatingDepositShares": {
      "type": "string",
      "description": "Account's ERC-4626 deposit shares in this market"
    },
    "floatingDepositAssets": {
      "type": "string",
      "description": "Account's variable deposit balance in underlying units (in wei)"
    },
    "floatingBorrowShares": {
      "type": "string",
      "description": "Account's variable borrow shares in this market"
    },
    "floatingBorrowAssets": {
      "type": "string",
      "description": "Account's variable borrow balance in underlying units (in wei)"
    },
    "isCollateral": {
      "type": "boolean",
      "description": "Whether the account has enabled this market as collateral"
    },
    "fixedDepositPositions": {
      "type": "array",
      "description": "Account's fixed-rate deposit positions across maturities",
      "items": {
        "$ref": "#/$defs/FixedPosition"
      }
    },
    "fixedBorrowPositions": {
      "type": "array",
      "description": "Account's fixed-rate borrow positions across maturities",
      "items": {
        "$ref": "#/$defs/FixedPosition"
      }
    }
  },
  "required": ["market", "symbol", "asset", "decimals", "usdPrice", "adjustFactor", "maxFuturePools", "fixedPools", "floatingBorrowRate", "floatingDepositAPR", "isCollateral"],
  "$defs": {
    "FixedPool": {
      "type": "object",
      "description": "Summary of a fixed-rate maturity pool",
      "properties": {
        "maturity": {
          "type": "integer",
          "description": "Unix timestamp at which this pool matures"
        },
        "supplied": {
          "type": "string",
          "description": "Total assets supplied to this maturity pool (in wei)"
        },
        "borrowed": {
          "type": "string",
          "description": "Total assets borrowed from this maturity pool (in wei)"
        },
        "depositRate": {
          "type": "string",
          "description": "Annualized fixed deposit APR for this pool, scaled by 1e18"
        },
        "minBorrowRate": {
          "type": "string",
          "description": "Minimum fixed borrow APR for this pool, scaled by 1e18"
        },
        "optimalDeposit": {
          "type": "string",
          "description": "Optimal deposit to maximize yield in this pool (in wei)"
        }
      },
      "required": ["maturity", "supplied", "borrowed"]
    },
    "FixedPosition": {
      "type": "object",
      "description": "A fixed-rate deposit or borrow position at a specific maturity",
      "properties": {
        "maturity": {
          "type": "integer",
          "description": "Unix timestamp of the maturity pool"
        },
        "position": {
          "type": "object",
          "description": "Principal and fee components of the position",
          "properties": {
            "principal": {
              "type": "string",
              "description": "Principal amount of the position (in wei)"
            },
            "fee": {
              "type": "string",
              "description": "Fee (interest) component of the position (in wei)"
            }
          },
          "required": ["principal", "fee"]
        }
      },
      "required": ["maturity", "position"]
    }
  }
}