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

# Get vault details

> Retrieve vault-level information like current APY, TVL, and available liquidity.

Use the [get vault details](/api-reference/wallets/earn/get-vault-details) endpoint to retrieve vault-level information like current APY, TVL, and available liquidity. This is useful for displaying vault metrics to users before they deposit, or for checking liquidity before initiating a large withdrawal.

<Info>
  View the full [API reference](/api-reference/wallets/earn/get-vault-details) for the get vault
  details endpoint.
</Info>

## Usage

<Tabs>
  <Tab title="REST API">
    Make a `GET` request to:

    ```bash theme={"system"}
    https://api.privy.io/api/v1/earn/ethereum/vaults/{vault_id}
    ```

    ### Parameters

    <ParamField path="vault_id" type="string" required>
      The unique identifier for the vault.
    </ParamField>

    ### Returns

    <ResponseField name="id" type="string">
      The vault's unique identifier.
    </ResponseField>

    <ResponseField name="name" type="string">
      Display name of the vault.
    </ResponseField>

    <ResponseField name="provider" type="&#x22;morpho&#x22; | &#x22;aave&#x22; | &#x22;veda&#x22;">
      The protocol powering the vault. Some response fields vary by provider (see below).
    </ResponseField>

    <ResponseField name="vault_address" type="string">
      The onchain address of the vault contract.
    </ResponseField>

    <ResponseField name="asset" type="object">
      The vault's underlying asset.

      <Expandable title="Asset fields">
        <ResponseField name="asset.address" type="string">
          The token contract address.
        </ResponseField>

        <ResponseField name="asset.symbol" type="string">
          The token symbol (e.g. `"usdc"`).
        </ResponseField>

        <ResponseField name="asset.decimals" type="number">
          The number of decimals for the token.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="caip2" type="string">
      Chain identifier in CAIP-2 format.
    </ResponseField>

    <ResponseField name="user_apy" type="number | null">
      Current APY in basis points (e.g. `500` = 5%). See the note below on when this is `null`.
    </ResponseField>

    <ResponseField name="app_apy" type="number | null">
      The application's share of the APY in basis points. See the note below on when this is `null`.
    </ResponseField>

    <ResponseField name="tvl_usd" type="number | null">
      Total value locked in the vault in USD. See the note below on when this is `null`.
    </ResponseField>

    <ResponseField name="available_liquidity_usd" type="number | null">
      Liquidity available for withdrawal in USD. See the note below on when this is `null`.
    </ResponseField>

    <ResponseField name="admin_wallet_id" type="string">
      The ID of the vault's admin wallet, which receives your app's share of fees.
    </ResponseField>

    <ResponseField name="admin_wallet_address" type="string">
      The onchain address of the vault's admin wallet.
    </ResponseField>

    The following fields are provider-specific:

    <ResponseField name="total_rewards_apr" type="number">
      **Morpho vaults only.** Additional token-incentive rewards APR, in basis points.
    </ResponseField>

    <ResponseField name="available_fees" type="string">
      **Aave vaults only.** Performance fees currently available for your app to collect, in the smallest unit of the underlying asset. This is your app's share after the revenue split. Collect it with the [collect fees](/wallets/actions/earn/collect-fees) endpoint.
    </ResponseField>

    <Info>
      For Morpho and Aave vaults, `user_apy`, `app_apy`, `tvl_usd`, and `available_liquidity_usd`
      are always populated. For Veda vaults, `available_liquidity_usd` is always `null`, and
      `user_apy`, `app_apy`, and `tvl_usd` may be `null` for the first 7–10 days after the vault is
      deployed, after which they are populated.
    </Info>

    ### Example

    ```bash theme={"system"}
    curl https://api.privy.io/api/v1/earn/ethereum/vaults/{vault_id} \
      -H "privy-app-id: <your-app-id>" \
      -H "Authorization: Basic <credentials>"
    ```

    ```json Morpho vault theme={"system"}
    {
      "id": "<your-vault-id>",
      "name": "Gauntlet USDC Prime",
      "provider": "morpho",
      "vault_address": "0x04422053aDDbc9bB2759b248B574e3FCA76Bc145",
      "asset": {
        "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
        "symbol": "usdc",
        "decimals": 6
      },
      "caip2": "eip155:1",
      "user_apy": 500,
      "app_apy": 100,
      "tvl_usd": 1000000,
      "available_liquidity_usd": 500000,
      "admin_wallet_id": "<admin-wallet-id>",
      "admin_wallet_address": "0x1234abcd...",
      "total_rewards_apr": 50
    }
    ```

    ```json Aave vault theme={"system"}
    {
      "id": "<your-vault-id>",
      "name": "Aave USDC",
      "provider": "aave",
      "vault_address": "0x1234567890123456789012345678901234567890",
      "asset": {
        "address": "0x1234567890abcdef1234567890abcdef12345678",
        "symbol": "usdc",
        "decimals": 6
      },
      "caip2": "eip155:8453",
      "user_apy": 420,
      "app_apy": 80,
      "tvl_usd": 250000,
      "available_liquidity_usd": 250000,
      "admin_wallet_id": "<admin-wallet-id>",
      "admin_wallet_address": "0x1234abcd...",
      "available_fees": "1500000"
    }
    ```
  </Tab>
</Tabs>

<Tip>
  Check `available_liquidity_usd` before initiating large withdrawals. If the vault's lending
  markets are fully utilized, a withdrawal may partially fill or fail. See [liquidity
  considerations](/wallets/actions/earn/withdraw#liquidity-considerations) for more details.
</Tip>

## Next steps

<Card title="Webhooks" icon="bell" href="/wallets/actions/earn/webhooks" arrow>
  Track deposit, withdrawal, and claim activity in real time.
</Card>
