> ## Documentation Index
> Fetch the complete documentation index at: https://docs.compasslabs.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List vaults

> List ERC-4626 yield vaults across DeFi venues.

Returns vault data including APY, TVL, and underlying asset information. Use this endpoint to discover yield opportunities, compare rates across venues, or build vault selection interfaces.

Supports dozens of vaults and markets like Morpho and other ERC-4626 compatible yield venues.

To deposit into a vault, use the [manage endpoint](https://docs.compasslabs.ai/v2/api-reference/earn/manage-earn-position) with `venue_type=VAULTS`.



## OpenAPI

````yaml /v2/combined_spec.json get /v2/earn/vaults
openapi: 3.1.0
info:
  title: Compass API
  description: Compass Labs DeFi API
  version: 0.0.1
servers:
  - url: https://api.compasslabs.ai
    description: Production server
security:
  - ApiKeyAuth: []
paths:
  /v2/earn/vaults:
    get:
      tags:
        - Earn
      summary: List vaults
      description: >-
        List ERC-4626 yield vaults across DeFi venues.


        Returns vault data including APY, TVL, and underlying asset information.
        Use this endpoint to discover yield opportunities, compare rates across
        venues, or build vault selection interfaces.


        Supports dozens of vaults and markets like Morpho and other ERC-4626
        compatible yield venues.


        To deposit into a vault, use the [manage
        endpoint](https://docs.compasslabs.ai/v2/api-reference/earn/manage-earn-position)
        with `venue_type=VAULTS`.
      operationId: v2_earn_vaults
      parameters:
        - name: order_by
          in: query
          required: true
          schema:
            type: string
            title: Order By
            default: tvl_usd
          description: The field to order the results by.
        - name: direction
          in: query
          required: false
          schema:
            type: string
            enum:
              - asc
              - desc
            title: Direction
            default: desc
          description: The direction to order the results by.
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            default: 0
            title: Offset
          description: The offset of the first item to return.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 1000
            exclusiveMinimum: 0
            default: 50
            title: Limit
          description: The number of items to return.
        - name: chain
          in: query
          required: false
          schema:
            anyOf:
              - $ref: '#/components/schemas/Chain'
              - type: 'null'
            title: Chain
            default: null
          description: >-
            Optional chain filter. If not provided, returns vaults for all
            chains.
        - name: asset_symbol
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Asset Symbol
          description: Filter vaults by underlying asset symbol (e.g., 'USDC', 'WETH').
        - name: min_tvl_usd
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: string
                pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
              - type: 'null'
            title: Min Tvl Usd
          description: >-
            Minimum TVL in USD. Vaults with TVL below this value will be
            excluded.
        - name: min_liquidity_usd
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: string
                pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
              - type: 'null'
            title: Min Liquidity Usd
          description: Minimum available liquidity in USD. Vaults below this are excluded.
        - name: min_deposit_cap_usd
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: string
                pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
              - type: 'null'
            title: Min Deposit Cap Usd
          description: >-
            Minimum deposit capacity in USD. Vaults below this are excluded. Set
            to 0 to exclude paused vaults.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VaultsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-codeSamples:
        - lang: python
          label: Python (SDK)
          source: |-
            from compass_api_sdk import CompassAPI, models


            with CompassAPI(
                api_key_auth="<YOUR_API_KEY_HERE>",
            ) as compass_api:

                res = compass_api.earn.earn_vaults(order_by="tvl_usd", direction=models.V2EarnVaultsDirection.DESC, offset=0, limit=50)

                # Handle response
                print(res)
        - lang: typescript
          label: Typescript (SDK)
          source: |-
            import { CompassApiSDK } from "@compass-labs/api-sdk";

            const compassApiSDK = new CompassApiSDK({
              apiKeyAuth: "<YOUR_API_KEY_HERE>",
            });

            async function run() {
              const result = await compassApiSDK.earn.earnVaults({
                orderBy: "tvl_usd",
                direction: "desc",
                offset: 0,
                limit: 50,
              });

              console.log(result);
            }

            run();
components:
  schemas:
    Chain:
      type: string
      enum:
        - base
        - ethereum
        - arbitrum
        - hyperevm
        - tempo
      title: Chain
      description: The chain to use.
    VaultsResponse:
      properties:
        total:
          type: integer
          title: Total
        offset:
          type: integer
          title: Offset
        limit:
          type: integer
          title: Limit
        vaults:
          items:
            $ref: '#/components/schemas/VaultInfo'
          type: array
          title: Vaults
          description: A list of vault information objects.
          example:
            - apy_30d: '5.12'
              apy_7d: '5.25'
              apy_90d: '4.98'
              asset: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
              asset_name: USD Coin
              asset_symbol: USDC
              chain: ethereum
              deposit_cap: '50000000.00'
              deposit_cap_usd: '50000000.00'
              liquidity_usd: '3200000.00'
              markets:
                - allocation_pct: 68
                  collateral_token: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'
                  collateral_token_symbol: WETH
                  lltv: '860000000000000000'
                  loan_token: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
                  loan_token_symbol: USDC
                  market_id: >-
                    0xb323495f7e4148be5643a4ea4a8221eef163e4bccfdedc2a6f4696baacbc86cc
                  supply_assets: '8500000000000'
                  supply_cap: '50000000000000'
                - allocation_pct: 32
                  collateral_token: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599'
                  collateral_token_symbol: WBTC
                  lltv: '770000000000000000'
                  loan_token: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
                  loan_token_symbol: USDC
                  market_id: >-
                    0xa921ef34e2fc7a27ccc50ae7e4b154e16c9799d3387076c421423ef52ac4df99
                  supply_assets: '4000000000000'
                  supply_cap: '30000000000000'
              name: Steakhouse USDC
              owner: '0x1234567890123456789012345678901234567890'
              symbol: steakUSDC
              tvl_usd: '12500000.00'
              vault_address: '0xBEEF01735c132Ada46AA9aA4c54623cAA92A64CB'
            - apy_30d: '3.28'
              apy_7d: '3.45'
              apy_90d: '3.15'
              asset: '0x4200000000000000000000000000000000000006'
              asset_name: Wrapped Ether
              asset_symbol: WETH
              chain: base
              deposit_cap: '5000.00'
              deposit_cap_usd: '15750000.00'
              liquidity_usd: '1500000.00'
              markets:
                - allocation_pct: 100
                  collateral_token: '0x2Ae3F1Ec7F1F5012CFEab0185bfc7aa3cf0DEc22'
                  collateral_token_symbol: cbETH
                  lltv: '945000000000000000'
                  loan_token: '0x4200000000000000000000000000000000000006'
                  loan_token_symbol: WETH
                  market_id: >-
                    0xdb760246f6859780f6c1b272d47a8f64710777121118e56e0cdb4b8b744a3094
                  supply_assets: '8750000000000000000000'
                  supply_cap: '10000000000000000000000'
              name: Morpho Blue WETH
              owner: '0x1234567890123456789012345678901234567890'
              symbol: mWETH
              tvl_usd: '8750000.00'
              vault_address: '0x616a4E1db48e22028f6bbf20444Cd3b8e3273738'
      type: object
      required:
        - total
        - offset
        - limit
        - vaults
      title: VaultsResponse
      description: Response model for a paginated list of ERC-4626 vaults.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    VaultInfo:
      properties:
        vault_address:
          type: string
          title: Vault Address
          description: The vault contract address.
          examples:
            - '0xBEEF01735c132Ada46AA9aA4c54623cAA92A64CB'
        chain:
          type: string
          title: Chain
          description: Blockchain name (e.g., 'ethereum', 'base').
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
          description: The name of the vault.
        symbol:
          anyOf:
            - type: string
            - type: 'null'
          title: Symbol
          description: The vault share token symbol.
        owner:
          type: string
          title: Owner
          description: The vault owner address.
        asset:
          type: string
          title: Asset
          description: The underlying asset contract address.
        asset_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Asset Name
          description: The name of the underlying asset.
        asset_symbol:
          anyOf:
            - type: string
            - type: 'null'
          title: Asset Symbol
          description: The symbol of the underlying asset (e.g., 'USDC').
        factory_version:
          anyOf:
            - type: string
            - type: 'null'
          title: Factory Version
          description: >-
            Morpho factory version this vault was created from. 'v1.0' / 'v1.1'
            = MetaMorpho v1 (single-asset, Morpho Blue markets only). 'v2' =
            Morpho Vaults v2 (adapter framework, can route to non-Morpho-Blue
            venues). Null only on legacy rows that pre-date factory tracking.
          examples:
            - v1.1
        tvl_usd:
          anyOf:
            - type: string
            - type: 'null'
          title: Tvl Usd
          description: >-
            Total Value Locked in USD. Represents the total assets deposited in
            the vault.
        liquidity_usd:
          anyOf:
            - type: string
            - type: 'null'
          title: Liquidity Usd
          description: >-
            Available liquidity in USD. The amount that can be withdrawn right
            now, accounting for idle funds and borrowable supply across the
            vault's markets. Always <= tvl_usd.
        deposit_cap:
          anyOf:
            - type: string
            - type: 'null'
          title: Deposit Cap
          description: >-
            Maximum additional amount that can be deposited into the vault, in
            human-readable token units (e.g., 1000.5 USDC). Derived from the
            ERC4626 maxDeposit function. A value of 0 means the vault is paused
            or full.
        deposit_cap_usd:
          anyOf:
            - type: string
            - type: 'null'
          title: Deposit Cap Usd
          description: Maximum additional depositable amount converted to USD.
        apy_7d:
          anyOf:
            - type: string
            - type: 'null'
          title: Apy 7D
          description: 7-day APY as a percentage (e.g., 5.25 = 5.25%).
        apy_30d:
          anyOf:
            - type: string
            - type: 'null'
          title: Apy 30D
          description: 30-day APY as a percentage.
        apy_90d:
          anyOf:
            - type: string
            - type: 'null'
          title: Apy 90D
          description: 90-day APY as a percentage.
        markets:
          items:
            $ref: '#/components/schemas/MarketAllocation'
          type: array
          title: Markets
          description: >-
            Morpho Blue markets in this vault's supply queue, ordered by queue
            index. Shows how the vault's capital is split across lending markets
            with different collateral types and risk parameters.
      additionalProperties: false
      type: object
      required:
        - vault_address
        - chain
        - owner
        - asset
      title: VaultInfo
      description: Information about a single ERC-4626 vault from the database.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    MarketAllocation:
      properties:
        market_id:
          type: string
          title: Market Id
          description: Morpho Blue market unique identifier (bytes32 hex string).
        loan_token:
          type: string
          title: Loan Token
          description: Address of the token being lent in this market.
        loan_token_symbol:
          anyOf:
            - type: string
            - type: 'null'
          title: Loan Token Symbol
          description: Symbol of the loan token (e.g., 'USDC').
        collateral_token:
          type: string
          title: Collateral Token
          description: Address of the collateral token accepted by this market.
        collateral_token_symbol:
          anyOf:
            - type: string
            - type: 'null'
          title: Collateral Token Symbol
          description: Symbol of the collateral token (e.g., 'WETH').
        lltv:
          type: string
          title: Lltv
          description: >-
            Liquidation Loan-To-Value ratio as a raw uint256 string. Divide by
            1e18 to get the decimal ratio (e.g., '860000000000000000' = 86%).
        supply_cap:
          anyOf:
            - type: string
            - type: 'null'
          title: Supply Cap
          description: >-
            Maximum amount the vault is allowed to supply to this market, as a
            raw uint184 string in the smallest token unit.
        supply_assets:
          anyOf:
            - type: string
            - type: 'null'
          title: Supply Assets
          description: >-
            Amount currently supplied by the vault to this market, in the
            smallest token unit (converted from shares).
        allocation_pct:
          anyOf:
            - type: number
            - type: 'null'
          title: Allocation Pct
          description: >-
            Percentage of the vault's total supplied capital allocated to this
            market (e.g., 45.5 means 45.5%).
      additionalProperties: false
      type: object
      required:
        - market_id
        - loan_token
        - collateral_token
        - lltv
      title: MarketAllocation
      description: A Morpho Blue market that a vault allocates capital to.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Your Compass API Key. Get your key
        [here](https://www.compasslabs.ai/dashboard).

````