> ## 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 yield sources

> Returns the environment-specific yield source catalog for wallet strategies. Sources in `emergency_freeze` remain visible with that mode so clients can show their maintenance status, but they must not be selected for new allocations. Use `depositToken` to place each source in the matching USDC or USDT strategy group.

This endpoint returns the live public yield-source catalog. The catalog is environment-specific: sandbox exposes only the currently supported sandbox yield sources, while production may expose additional entries.


## OpenAPI

````yaml swagger/swagger-combined.yaml GET /v2/wallets/yield-sources
openapi: 3.0.0
info:
  title: Ground API
  description: Core API for portfolio wallets, deposits, withdrawals, 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: Webhook Endpoints
    description: Webhook endpoint management for portfolio wallet notifications.
paths:
  /v2/wallets/yield-sources:
    get:
      tags:
        - Portfolio Wallets
      summary: List yield sources
      description: >-
        Returns the environment-specific yield source catalog for wallet
        strategies. Sources in `emergency_freeze` remain visible with that mode
        so clients can show their maintenance status, but they must not be
        selected for new allocations. Use `depositToken` to place each source in
        the matching USDC or USDT strategy group.
      operationId: getYieldSourcesV2
      responses:
        '200':
          description: Yield source catalog
          content:
            application/json:
              schema:
                type: object
                properties:
                  nextCursor:
                    type: string
                    nullable: true
                    description: >-
                      Always null — the yield-source catalog is unpaginated.
                      Present for list-envelope consistency.
                  data:
                    type: array
                    description: Canonical yield-source catalog.
                    items:
                      $ref: '#/components/schemas/YieldSource'
              examples:
                production_rwa:
                  summary: Production RWA rows
                  description: >-
                    Shortened to the USTB and JAAA rows. The deployed response
                    also contains the rest of the production catalog.
                  value:
                    data:
                      - id: ground-ustb-vault
                        name: Invesco USTB tokenized by Superstate
                        description: >-
                          Short-duration U.S. Treasury bill exposure through
                          Invesco USTB tokenized by Superstate in a gUSTB vault
                          on Ethereum mainnet.
                        mode: active
                        chain: ethereum
                        apyBps: 330
                        navUpdateMode: discrete
                        tvlUsd: 825500281.71
                        utilizationPct: null
                        addresses:
                          - label: Vault
                            value: '0x5a68cfE0DCCcfA4991e5a92d2c382b15B41C4119'
                        allocations:
                          - label: Short-duration U.S. Treasury Bills
                            type: treasury
                            valueUsd: null
                            pct: 100
                            address: null
                            description: null
                        links:
                          - label: Superstate USTB
                            url: https://superstate.com/assets/ustb
                        protocol: gustb
                        depositToken: usdc
                        maxAllocationUsd: null
                        processingPolicies:
                          deposit:
                            processingTimeBasis: elapsed_seconds
                            typicalMinUnits: 0
                            typicalMaxUnits: 0
                          redeem:
                            processingTimeBasis: elapsed_seconds
                            typicalMinUnits: 7200
                            typicalMaxUnits: 7200
                            processingEstimate:
                              basis: elapsed_seconds
                              typicalMinDuration: PT2H
                              typicalMaxDuration: PT2H
                      - id: ground-jaaa-usdc-vault
                        name: Janus Henderson JAAA (USDC)
                        description: >-
                          AAA-rated collateralized loan obligation exposure
                          through Janus Henderson JAAA tokenized by Centrifuge
                          in a gJAAA vault on Ethereum mainnet.
                        mode: active
                        chain: ethereum
                        apyBps: 687
                        navUpdateMode: discrete
                        tvlUsd: 790000000
                        utilizationPct: null
                        addresses:
                          - label: Vault
                            value: '0xA0FC15E1c879acd4036d912425997811fA49A195'
                        allocations:
                          - label: Janus Henderson JAAA
                            type: fund
                            valueUsd: 790000000
                            pct: 100
                            address: null
                            description: null
                        links:
                          - label: Centrifuge JAAA
                            url: https://app.centrifuge.io/pool/281474976710663
                        protocol: centrifuge
                        depositToken: usdc
                        maxAllocationUsd: null
                        processingPolicies:
                          deposit:
                            processingTimeBasis: banking_days
                            typicalMinUnits: 1
                            typicalMaxUnits: 2
                            processingEstimate:
                              basis: banking_days
                              typicalCompletionDate: '2026-07-20'
                              typicalWindowEndDate: '2026-07-21'
                          redeem:
                            processingTimeBasis: banking_days
                            typicalMinUnits: 1
                            typicalMaxUnits: 2
                            processingEstimate:
                              basis: banking_days
                              typicalCompletionDate: '2026-07-20'
                              typicalWindowEndDate: '2026-07-21'
                      - id: ground-jaaa-usdt-vault
                        name: Janus Henderson JAAA (USDT)
                        description: >-
                          AAA-rated collateralized loan obligation exposure
                          through Janus Henderson JAAA tokenized by Centrifuge
                          in a gJAAA-USDT vault on Ethereum mainnet.
                        mode: active
                        chain: ethereum
                        apyBps: 377
                        navUpdateMode: discrete
                        tvlUsd: 684263886.11
                        utilizationPct: null
                        addresses:
                          - label: Vault
                            value: '0x25b7EB555864504a413E573647b90F69Bf29937D'
                          - label: Asset token
                            value: usdt
                        allocations:
                          - label: >-
                              AAA-rated collateralized loan obligations and cash
                              equivalents
                            type: rwa
                            valueUsd: 684263886.11
                            pct: 100
                            address: null
                            description: null
                        links:
                          - label: Centrifuge JAAA
                            url: https://app.centrifuge.io/pool/281474976710663
                        protocol: centrifuge
                        depositToken: usdt
                        maxAllocationUsd: '1000.000000'
                        processingPolicies:
                          deposit:
                            processingTimeBasis: banking_days
                            typicalMinUnits: 1
                            typicalMaxUnits: 2
                            processingEstimate:
                              basis: banking_days
                              typicalCompletionDate: '2026-07-23'
                              typicalWindowEndDate: '2026-07-24'
                          redeem:
                            processingTimeBasis: banking_days
                            typicalMinUnits: 1
                            typicalMaxUnits: 2
                            processingEstimate:
                              basis: banking_days
                              typicalCompletionDate: '2026-07-23'
                              typicalWindowEndDate: '2026-07-24'
                    nextCursor: null
                sandbox_rwa:
                  summary: Sandbox JAAA-USDT and JTRSY rows
                  description: >-
                    Shortened to the JAAA-USDT and token-specific JTRSY rows
                    available in sandbox.
                  value:
                    data:
                      - id: ground-jaaa-usdt-vault
                        name: Janus Henderson JAAA (USDT)
                        description: >-
                          AAA-rated collateralized loan obligation exposure
                          through Janus Henderson JAAA tokenized by Centrifuge
                          in a gJAAA-USDT vault on Ethereum Sepolia.
                        mode: active
                        chain: ethereum_sepolia
                        apyBps: 255
                        navUpdateMode: discrete
                        tvlUsd: 684118334.59
                        utilizationPct: null
                        addresses:
                          - label: Vault
                            value: '0x0251E101bf9811F7c5907Bf55c36AB094F88Fa54'
                          - label: Asset token
                            value: usdt
                        allocations:
                          - label: >-
                              AAA-rated collateralized loan obligations and cash
                              equivalents
                            type: rwa
                            valueUsd: 684118334.59
                            pct: 100
                            address: null
                            description: null
                        links:
                          - label: Centrifuge JAAA
                            url: https://app.centrifuge.io/pool/281474976710663
                        protocol: centrifuge
                        depositToken: usdt
                        maxAllocationUsd: '1000.000000'
                        processingPolicies:
                          deposit:
                            processingTimeBasis: banking_days
                            typicalMinUnits: 1
                            typicalMaxUnits: 2
                          redeem:
                            processingTimeBasis: banking_days
                            typicalMinUnits: 1
                            typicalMaxUnits: 2
                      - id: ground-jtrsy-usdc-vault
                        name: Janus Henderson JTRSY tokenized by Centrifuge
                        description: >-
                          Short-duration U.S. Treasury bill exposure through
                          Janus Henderson JTRSY tokenized by Centrifuge in a
                          gJTRSY-USDC vault.
                        mode: active
                        chain: ethereum_sepolia
                        apyBps: 421
                        navUpdateMode: discrete
                        tvlUsd: 3200000000
                        utilizationPct: null
                        addresses: []
                        allocations:
                          - label: Janus Henderson JTRSY
                            type: fund
                            valueUsd: 3200000000
                            pct: 100
                            address: null
                            description: null
                        links:
                          - label: Centrifuge JTRSY
                            url: https://app.centrifuge.io/pool/281474976710662
                        protocol: centrifuge
                        depositToken: usdc
                        maxAllocationUsd: null
                        processingPolicies:
                          deposit:
                            processingTimeBasis: banking_days
                            typicalMinUnits: 1
                            typicalMaxUnits: 2
                          redeem:
                            processingTimeBasis: banking_days
                            typicalMinUnits: 1
                            typicalMaxUnits: 2
                      - id: ground-jtrsy-usdt-vault
                        name: Janus Henderson JTRSY tokenized by Centrifuge
                        description: >-
                          Short-duration U.S. Treasury bill exposure through
                          Janus Henderson JTRSY tokenized by Centrifuge in a
                          gJTRSY-USDT vault.
                        mode: active
                        chain: ethereum_sepolia
                        apyBps: 421
                        navUpdateMode: discrete
                        tvlUsd: 3200000000
                        utilizationPct: null
                        addresses: []
                        allocations:
                          - label: Janus Henderson JTRSY
                            type: fund
                            valueUsd: 3200000000
                            pct: 100
                            address: null
                            description: null
                        links:
                          - label: Centrifuge JTRSY
                            url: https://app.centrifuge.io/pool/281474976710662
                        protocol: centrifuge
                        depositToken: usdt
                        maxAllocationUsd: null
                        processingPolicies:
                          deposit:
                            processingTimeBasis: banking_days
                            typicalMinUnits: 1
                            typicalMaxUnits: 2
                          redeem:
                            processingTimeBasis: banking_days
                            typicalMinUnits: 1
                            typicalMaxUnits: 2
                    nextCursor: null
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    YieldSource:
      type: object
      required:
        - id
        - name
        - description
        - mode
        - chain
        - apyBps
        - navUpdateMode
        - tvlUsd
        - utilizationPct
        - addresses
        - allocations
        - links
        - protocol
        - depositToken
        - processingPolicies
      properties:
        id:
          type: string
          description: >-
            Unique identifier for the yield source (used in strategy
            allocations).
        name:
          type: string
          description: Human-readable display name.
        description:
          type: string
          nullable: true
        mode:
          type: string
          enum:
            - active
            - buy_only
            - sell_only
            - emergency_freeze
          description: >-
            Source operating mode. `emergency_freeze` sources remain visible but
            are unavailable for new allocations.
        chain:
          type: string
          nullable: true
          description: >-
            Canonical chain the source settles on, for the current environment.
            Production returns mainnet keys (e.g. `ethereum`, `base`, `solana`);
            sandbox returns the environment's testnet key (e.g.
            `ethereum_sepolia`, `solana_devnet`).
        apyBps:
          type: integer
          nullable: true
          description: Current APY in basis points.
        navUpdateMode:
          type: string
          enum:
            - continuous
            - discrete
          description: >-
            Whether the source value accrues continuously between price
            snapshots or changes only when a new NAV is published.
        tvlUsd:
          type: number
          nullable: true
          description: Current source TVL in USD when provider data is available.
        utilizationPct:
          type: number
          nullable: true
          description: >-
            Vault-level deployed-asset utilization percentage when provider data
            is available.
        addresses:
          type: array
          description: Protocol addresses relevant to the source.
          items:
            type: object
            properties:
              label:
                type: string
              value:
                type: string
        allocations:
          type: array
          description: >-
            Current underlying allocation rows. Percentages describe source
            asset mix, not utilization.
          items:
            type: object
            properties:
              label:
                type: string
              type:
                type: string
                nullable: true
              valueUsd:
                type: number
                nullable: true
              pct:
                type: number
                nullable: true
              address:
                type: string
                nullable: true
              description:
                type: string
                nullable: true
        links:
          type: array
          description: Provider UI links for the source.
          items:
            type: object
            properties:
              label:
                type: string
              url:
                type: string
                format: uri
        protocol:
          type: string
          nullable: true
          description: Underlying protocol identifier.
        depositToken:
          type: string
          enum:
            - usdc
            - usdt
          description: >-
            Token accepted when allocating into the source and returned when
            redeeming.
        maxAllocationUsd:
          type: string
          nullable: true
          description: >-
            Optional per-wallet allocation cap for this source, as a
            fixed-precision USD string. The cap blocks additional buys but not
            exits.
        processingPolicies:
          type: object
          description: >-
            Typical processing windows by action. Calendar and outer-bound
            details are internal.
          properties:
            deposit:
              $ref: '#/components/schemas/YieldSourceProcessingPolicy'
            redeem:
              $ref: '#/components/schemas/YieldSourceProcessingPolicy'
    YieldSourceProcessingPolicy:
      type: object
      required:
        - processingTimeBasis
        - typicalMinUnits
        - typicalMaxUnits
      properties:
        processingTimeBasis:
          type: string
          enum:
            - elapsed_seconds
            - banking_days
        typicalMinUnits:
          type: integer
          minimum: 0
        typicalMaxUnits:
          type: integer
          minimum: 0
        processingEstimate:
          allOf:
            - $ref: '#/components/schemas/ProcessingEstimate'
          description: >-
            Preliminary completion estimate calculated when the catalog response
            is generated. Omitted for atomic actions and when maintained
            calendar coverage is unavailable.
    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.
    ErrorResponse:
      type: object
      required:
        - error
        - code
      properties:
        error:
          type: string
          description: >-
            Human-readable error message. May change without notice; do not
            parse programmatically.
        code:
          type: string
          description: >-
            Machine-readable error code. Stable across API versions — safe to
            switch on in client code.
          enum:
            - validation_error
            - unknown_parameters
            - unsupported_chain
            - unsupported_token
            - invalid_destination_address
            - precision_overflow
            - invalid_cursor
            - unauthenticated
            - forbidden
            - wallet_not_found
            - wallet_limit_reached
            - withdrawal_not_found
            - deposit_not_found
            - yield_source_not_found
            - wallet_projection_unavailable
            - insufficient_funds
            - duplicate_request_id
            - request_id_conflict
            - invalid_position_weight
            - invalid_withdrawal_plan
            - payout_not_found
            - webhook_not_found
            - webhook_duplicate_url
            - withdrawal_not_cancellable
            - withdrawal_already_cancelled
            - withdrawal_payout_in_progress
            - withdrawal_policy_required
            - workflow_conflict
            - payout_already_terminal
            - payout_in_progress
            - payout_not_retryable
            - address_book_entry_not_found
            - address_book_duplicate_entry
            - address_book_whitelist_violation
            - rate_limited
            - rate_limit_exceeded
            - internal_error
            - wallet_creation_failed
            - service_temporarily_unavailable
    ProcessingEstimate:
      oneOf:
        - type: object
          required:
            - basis
            - typicalCompletionDate
            - typicalWindowEndDate
          properties:
            basis:
              type: string
              enum:
                - banking_days
            typicalCompletionDate:
              type: string
              format: date
            typicalWindowEndDate:
              type: string
              format: date
            phases:
              type: array
              description: >-
                Ordered asynchronous phases that make up the overall
                workflow-leg estimate.
              items:
                $ref: '#/components/schemas/ProcessingEstimatePhase'
        - type: object
          required:
            - basis
            - typicalMinDuration
            - typicalMaxDuration
          properties:
            basis:
              type: string
              enum:
                - elapsed_seconds
            typicalMinDuration:
              type: string
              description: ISO-8601 duration for the lower end of the usual window.
            typicalMaxDuration:
              type: string
              description: ISO-8601 duration for the upper end of the usual window.
    ProcessingEstimatePhase:
      type: object
      required:
        - type
        - label
        - status
        - typicalCompletionDate
        - typicalWindowEndDate
      properties:
        type:
          type: string
          enum:
            - yield_redeem
            - yield_deposit
        label:
          type: string
        status:
          type: string
          enum:
            - queued
            - processing
            - completed
            - failed
            - cancelled
        typicalCompletionDate:
          type: string
          format: date
        typicalWindowEndDate:
          type: string
          format: date
  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
    TooManyRequests:
      description: >-
        Rate limit exceeded. Limits are enforced by API key/customer identity
        and by endpoint class. Retry with backoff; rate-limit headers are not
        currently emitted.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: Rate limit exceeded
            code: rate_limited
    InternalServerError:
      description: >-
        An unexpected error occurred while processing the request. The request
        can be safely retried with the same `requestId`.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: Internal server error
            code: internal_error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````