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

# List MicroVault yield sources

> Returns the yield sources admitted for MicroVault use on a chain, including APY, processing-time estimates, and synchronous or asynchronous capabilities.

Discover the environment-specific yield sources admitted for MicroVault allocation.

<Note>
  MicroVaults are in private preview for enabled sandbox organizations on Ethereum Sepolia.
</Note>


## OpenAPI

````yaml swagger/swagger-combined.yaml GET /v2/microvaults/yield-sources
openapi: 3.0.0
info:
  title: Ground API
  description: Core API for Portfolio Wallets, gtokens, MicroVaults, and webhooks.
  version: 2.0.0
servers:
  - url: https://sandbox.groundtech.co
  - url: https://production.groundtech.co
security:
  - bearerAuth: []
tags:
  - name: System
    description: System health and utility endpoints.
  - name: Sandbox Faucets
    description: Sandbox-only test token faucets.
  - name: Portfolio Wallets
    description: >-
      Portfolio wallets with strategy allocation, deposits, withdrawals, and
      yield positions.
  - name: gVaults
    description: >-
      Direct access to gtokens with deposit access controls and optional fee
      wrappers.
  - name: MicroVaults
    description: >-
      Customer-owned onchain vaults with externally held ERC-20 shares. Private
      preview in sandbox on Ethereum Sepolia.
  - name: Webhook Endpoints
    description: Webhook endpoint management for portfolio wallet notifications.
paths:
  /v2/microvaults/yield-sources:
    get:
      tags:
        - MicroVaults
      summary: List available yield sources
      description: >-
        Returns the yield sources admitted for MicroVault use on a chain,
        including APY, processing-time estimates, and synchronous or
        asynchronous capabilities.
      operationId: listMicrovaultYieldSources
      parameters:
        - name: chainId
          in: query
          required: true
          schema:
            type: integer
            minimum: 1
            example: 11155111
          description: EVM chain where the MicroVault will be created or already exists.
      responses:
        '200':
          description: Sources available on the requested chain.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MicroVaultYieldSourceList'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    MicroVaultYieldSourceList:
      type: object
      required:
        - yieldSources
      properties:
        yieldSources:
          type: array
          description: >-
            Sources available for attachment to a new MicroVault on the
            requested chain.
          items:
            type: object
            additionalProperties: true
            properties:
              id:
                allOf:
                  - $ref: '#/components/schemas/UuidV4'
                description: Ground record identifier for the source.
              chainId:
                type: integer
                description: EVM chain containing the source contracts.
              sourceId:
                allOf:
                  - $ref: '#/components/schemas/MicroVaultBytes32'
                description: Source identifier used in strategy and source-mode requests.
              sourceAddress:
                allOf:
                  - $ref: '#/components/schemas/NonzeroEvmAddress'
                description: Contract where the underlying yield position is held.
              positionTokenAddress:
                allOf:
                  - $ref: '#/components/schemas/NonzeroEvmAddress'
                description: >-
                  Token whose balance represents the vault's position in this
                  source.
              baseAssetAddress:
                allOf:
                  - $ref: '#/components/schemas/NonzeroEvmAddress'
                description: Token accepted by this source.
              sourceKind:
                type: string
                description: >-
                  Integration type that determines whether entry and exit are
                  synchronous or asynchronous.
              positionKey:
                type: string
                description: >-
                  Ground position identifier shared with the corresponding
                  portfolio yield source.
              displayName:
                type: string
                description: Display name shown for the yield source.
              providerName:
                type: string
                description: Provider or protocol operating the yield source.
              tickerLabel:
                type: string
                description: Compact source label suitable for portfolio displays.
              apyBps:
                type: integer
                nullable: true
                description: >-
                  Current annual percentage yield in basis points, or `null`
                  when unavailable.
              expectedProcessingSeconds:
                type: integer
                nullable: true
                description: >-
                  Typical asynchronous processing time in seconds, or `null` for
                  synchronous or unknown timing.
              maxProcessingSeconds:
                type: integer
                nullable: true
                description: >-
                  Upper processing-time estimate in seconds, or `null` when
                  unavailable.
              capabilities:
                type: object
                additionalProperties:
                  type: boolean
                description: >-
                  Whether the source supports synchronous and asynchronous
                  deposits and redemptions.
      example:
        yieldSources:
          - id: e6c8b358-34cb-49ef-a7f0-e8e2ef7a619b
            chainId: 11155111
            sourceId: '0x1111111111111111111111111111111111111111111111111111111111111111'
            sourceAddress: '0x2222222222222222222222222222222222222222'
            positionTokenAddress: '0x2222222222222222222222222222222222222222'
            baseAssetAddress: '0x1c7d4b196cb0c7b01d743fbc6116a902379c7238'
            sourceKind: direct_erc4626
            positionKey: ethereum_morpho_steakhouse_usdc
            displayName: Morpho Steakhouse USDC
            providerName: Morpho
            tickerLabel: Steakhouse USDC
            apyBps: 500
            expectedProcessingSeconds: null
            maxProcessingSeconds: null
            capabilities:
              syncDeposit: true
              syncRedeem: true
              asyncDeposit: false
              asyncRedeem: false
    UuidV4:
      type: string
      format: uuid
      pattern: >-
        ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89aAbB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$
      example: 8f4c52d7-62ab-4db9-a964-92f481f6b851
    MicroVaultBytes32:
      type: string
      pattern: ^0x[0-9a-fA-F]{64}$
      example: '0x1111111111111111111111111111111111111111111111111111111111111111'
    NonzeroEvmAddress:
      type: string
      description: >-
        Valid nonzero EVM EOA or contract address. Mixed-case values must use a
        valid EIP-55 checksum.
      minLength: 42
      maxLength: 42
      pattern: ^0x(?!0{40}$)[0-9a-fA-F]{40}$
      example: '0x3bf25a73a1f1033c2d50ac65f3c9d6a44123db81'
    AuthErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: string
          description: Authentication or authorization error message.
        message:
          type: string
          nullable: true
          description: Additional auth middleware detail, when present.
        code:
          type: string
          nullable: true
          enum:
            - unauthenticated
            - forbidden
          description: >-
            Some auth and scope failures include a stable code; middleware
            errors may omit it.
  responses:
    Unauthorized:
      description: >-
        The request is missing a valid bearer token, or the token is invalid or
        expired.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthErrorResponse'
          example:
            error: Unauthenticated request
            message: Missing or invalid bearer token
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````