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

# List vaults

> Requires key scope `read`.

Returns the vaults whose on-chain authority is the key's manager, filtered to the key's vault allowlist when it has one. The list can be up to 15 seconds old.



## OpenAPI

````yaml /api-reference/openapi.json get /vaults
openapi: 3.1.0
info:
  title: Hedgin manager bot API
  version: 1.0.0
  description: >-
    Versioned HTTP API for approved manager bots. Reads vault state and builds
    unsigned Solana transactions. The bot signs locally with the vault's current
    authority key. Runs only on Solana mainnet-beta.
servers:
  - url: https://hedgin.xyz/api/external/v1
    description: Production (Solana mainnet-beta)
security:
  - bearerAuth: []
tags:
  - name: Vault reads
  - name: Market reads
  - name: Jupiter transactions
  - name: Meteora DLMM transactions
  - name: Phoenix transactions
  - name: Vault and strategy transactions
  - name: Send and status
paths:
  /vaults:
    get:
      tags:
        - Vault reads
      summary: List vaults
      description: >-
        Requires key scope `read`.


        Returns the vaults whose on-chain authority is the key's manager,
        filtered to the key's vault allowlist when it has one. The list can be
        up to 15 seconds old.
      operationId: listVaults
      responses:
        '200':
          description: Vaults in scope.
          content:
            application/json:
              schema:
                type: object
                required:
                  - vaults
                properties:
                  vaults:
                    type: array
                    items:
                      $ref: '#/components/schemas/VaultSummary'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
components:
  schemas:
    VaultSummary:
      type: object
      required:
        - address
        - id
        - name
        - chainName
        - status
        - depositMint
        - depositSymbol
        - depositDecimals
        - depositLogo
        - depositPriceUsd
        - totalAssets
        - navPerShare
        - depositCap
        - performanceFeeBps
        - managementFeeBps
        - lastNavTs
        - navEpoch
        - depositPaused
        - authority
        - metadata
        - manager
        - hidden
        - verified
        - tags
        - performance
      properties:
        address:
          $ref: '#/components/schemas/PublicKey'
        id:
          type: string
          description: On-chain vault id, decimal string.
        name:
          type: string
          description: 'Display name: the listing name when set, otherwise `chainName`.'
        chainName:
          type: string
          description: 'Name stored on chain, or `Vault #<id>` when empty.'
        status:
          $ref: '#/components/schemas/Status'
        depositMint:
          $ref: '#/components/schemas/PublicKey'
        depositSymbol:
          type: string
        depositDecimals:
          type: integer
        depositLogo:
          type:
            - string
            - 'null'
        depositPriceUsd:
          type:
            - number
            - 'null'
        totalAssets:
          $ref: '#/components/schemas/BaseUnitAmount'
          description: Last posted total assets, deposit-token base units.
        navPerShare:
          type: string
          description: >-
            Last posted value of one share base unit in deposit base units,
            scaled by 10^9.
        depositCap:
          $ref: '#/components/schemas/BaseUnitAmount'
        performanceFeeBps:
          type: integer
        managementFeeBps:
          type: integer
        lastNavTs:
          type: integer
          description: Unix seconds of the last NAV post.
        navEpoch:
          type: string
          description: Epoch of the last posted NAV, decimal string.
        depositPaused:
          type: boolean
        authority:
          $ref: '#/components/schemas/PublicKey'
        metadata:
          type:
            - object
            - 'null'
          properties:
            managerName:
              type:
                - string
                - 'null'
            strategy:
              type:
                - string
                - 'null'
            description:
              type:
                - string
                - 'null'
        manager:
          type:
            - object
            - 'null'
          properties:
            name:
              type:
                - string
                - 'null'
            xHandle:
              type:
                - string
                - 'null'
              description: Set only when a Hedgin administrator verified it.
            avatarUrl:
              type:
                - string
                - 'null'
        hidden:
          type: boolean
        verified:
          type: boolean
        tags:
          type: array
          items:
            type: string
          maxItems: 5
        performance:
          type:
            - object
            - 'null'
          properties:
            return30d:
              type:
                - number
                - 'null'
              description: Fraction, 0.012 = +1.2%.
            returnAll:
              type:
                - number
                - 'null'
            windowStartTs:
              type:
                - integer
                - 'null'
            sinceTs:
              type:
                - integer
                - 'null'
            sparkline:
              type: array
              items:
                type: number
              maxItems: 40
    PublicKey:
      type: string
      description: >-
        Base58 Solana public key. The server decodes it and rejects anything
        that is not 32 bytes.
      pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
      example: So11111111111111111111111111111111111111112
    Status:
      type: string
      enum:
        - normal
        - paused
        - reduceOnly
    BaseUnitAmount:
      type: string
      description: >-
        Non-negative integer in token base units, as a decimal string. Must fit
        in u64 (at most 18446744073709551615). Never a JSON number.
      pattern: ^\d+$
      maxLength: 20
      example: '1000000'
    Error:
      type: object
      description: >-
        Every error response uses this envelope. Responses with status 500, 502,
        or 503 always carry the message `Service temporarily unavailable`.
        Responses with status 422 always carry the message `Transaction rejected
        during simulation or preflight`. In both cases `code` still names the
        cause.
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              description: >-
                Stable machine-readable code, such as `Validation`, `Forbidden`,
                or a decoded program error name.
              example: Validation
            message:
              type: string
              description: Human-readable detail. Never contains provider logs.
              example: vault must be a public key
  responses:
    BadRequest:
      description: >-
        Invalid path, query, or body. Builder messages name the field, such as
        `amount: must be a non-negative integer string`.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: Validation
              message: vault must be a public key
    Unauthorized:
      description: Missing, malformed, unknown, revoked, or expired API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: Unauthorized
              message: Invalid API key
    Forbidden:
      description: >-
        The key lacks the required scope, the vault is outside the key's
        allowlist, or the key's manager is not the vault's current on-chain
        authority.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: Forbidden
              message: Action is not enabled for this key
    NotFound:
      description: Unknown route, or the vault, mint, pool, or strategy does not exist.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: NotFound
              message: Vault not found
    TooManyRequests:
      description: A rate limit is exhausted.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: RateLimited
              message: Too many requests, slow down
    InternalError:
      description: >-
        Internal error, including a builder that returned an invalid transaction
        (`BuildFailed`).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: Internal
              message: Service temporarily unavailable
    ServiceUnavailable:
      description: RPC, key store, or service configuration unavailable.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: RpcUnavailable
              message: Service temporarily unavailable
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: hv1_<id>_<secret>
      description: >-
        API key issued by a Hedgin administrator, in the form
        `hv1_<id>_<secret>`. `<id>` is 1 to 48 characters and `<secret>` is 32
        to 128 characters, both from `[A-Za-z0-9_-]`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.