> ## 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.

# Get vault

> Requires key scope `read`.

Returns the vault's on-chain state with display metadata: status, fees, limits, pending totals, and NAV epoch. The data can be up to 15 seconds old. The authority check always reads the chain.



## OpenAPI

````yaml /api-reference/openapi.json get /vaults/{vault}
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/{vault}:
    get:
      tags:
        - Vault reads
      summary: Get vault
      description: >-
        Requires key scope `read`.


        Returns the vault's on-chain state with display metadata: status, fees,
        limits, pending totals, and NAV epoch. The data can be up to 15 seconds
        old. The authority check always reads the chain.
      operationId: getVault
      parameters:
        - name: vault
          in: path
          required: true
          description: >-
            Vault public key. Must be in the key's allowlist when the key has
            one, and the key's manager must be the vault's current on-chain
            authority.
          schema:
            $ref: '#/components/schemas/PublicKey'
      responses:
        '200':
          description: The vault address and its data.
          content:
            application/json:
              schema:
                type: object
                required:
                  - vault
                  - data
                properties:
                  vault:
                    $ref: '#/components/schemas/PublicKey'
                  data:
                    $ref: '#/components/schemas/VaultDetail'
        '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:
    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
    VaultDetail:
      allOf:
        - $ref: '#/components/schemas/VaultSummary'
        - type: object
          properties:
            shareMint:
              $ref: '#/components/schemas/PublicKey'
            shareSupply:
              $ref: '#/components/schemas/BaseUnitAmount'
            idleBalance:
              $ref: '#/components/schemas/BaseUnitAmount'
            unmanagedHoldings:
              type: array
              description: Non-deposit tokens in the vault outside any strategy.
              items:
                type: object
                properties:
                  token:
                    $ref: '#/components/schemas/TokenInfo'
                  amount:
                    $ref: '#/components/schemas/BaseUnitAmount'
            pendingDeposits:
              $ref: '#/components/schemas/BaseUnitAmount'
            pendingWithdrawalShares:
              $ref: '#/components/schemas/BaseUnitAmount'
            unclaimedManagerFeeShares:
              $ref: '#/components/schemas/BaseUnitAmount'
            unclaimedPlatformFeeShares:
              $ref: '#/components/schemas/BaseUnitAmount'
            epochOutflow:
              $ref: '#/components/schemas/BaseUnitAmount'
            highWaterMark:
              type: string
              description: >-
                All-time highest NAV per share after fees, same scale as
                `navPerShare`.
            minDeposit:
              $ref: '#/components/schemas/BaseUnitAmount'
            minWithdrawalShares:
              $ref: '#/components/schemas/BaseUnitAmount'
            withdrawalPaused:
              type: boolean
            pendingPerformanceFeeBps:
              type: integer
            pendingManagementFeeBps:
              type: integer
            feeEffectiveTs:
              type: integer
            openStrategyCount:
              type: integer
            protocol:
              type: object
              properties:
                status:
                  $ref: '#/components/schemas/Status'
                maxEpochOutflowBps:
                  type: integer
                maxSlippageBps:
                  type: integer
    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
    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'
    TokenInfo:
      type: object
      required:
        - mint
        - symbol
        - decimals
        - logo
        - priceUsd
      properties:
        mint:
          $ref: '#/components/schemas/PublicKey'
        symbol:
          type: string
        name:
          type: string
        decimals:
          type: integer
        logo:
          type:
            - string
            - 'null'
        priceUsd:
          type:
            - number
            - 'null'
          description: USD per whole token (base units / 10^decimals). Display only.
        uiMultiplier:
          type: number
          description: >-
            Token-2022 scaled UI amount multiplier. Absent for unscaled mints.
            Display only.
    Status:
      type: string
      enum:
        - normal
        - paused
        - reduceOnly
    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.