> For the complete documentation index, see [llms.txt](https://gitbook-docs.coinmetrics.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gitbook-docs.coinmetrics.io/network-data/protocol-metrics/vault-metrics.md).

# Vault Metrics

## Overview

Vault metrics apply to vaults that follow the ERC-4626 tokenized vault standard (or a close variant of it), which currently includes `morpho_vaults_v1`. They do not apply to lending-pool protocols such as `aave_v3`. `share_price_ntv` (and its `_mean` form) is a property of any ERC-4626-style vault: how much a single share is worth in terms of the vault's underlying asset. `fee_performance_pct` (and its `_mean` form) is not part of the ERC-4626 standard itself, so it applies specifically to vault protocols, like `morpho_vaults_v1`, that charge such a fee, rather than to ERC-4626 vaults generally. They are part of the [Protocol Metrics](/network-data/protocol-metrics.md) family. See that page for the shared entity model (protocol, chain, market), the beginning-of-interval timestamp convention, and for what an instantaneous value versus a `_mean` value represents at each frequency.

## At a Glance

<table data-full-width="true"><thead><tr><th>Data type</th><th>Entities</th><th width="159">Frequency / cadence</th><th>Unit</th><th>Primary endpoint</th><th>Coverage</th></tr></thead><tbody><tr><td>Vault share price and performance fee</td><td>Vault protocol markets (currently <code>morpho_vaults_v1</code> only)</td><td>1d and 1m</td><td>Native units per share (share price) or percent (fee)</td><td><code>/timeseries/protocol-metrics</code></td><td><em>coming soon....</em></td></tr></tbody></table>

## Metrics

<table data-full-width="true"><thead><tr><th width="290">Metric</th><th>Description</th><th width="90">Frequency</th></tr></thead><tbody><tr><td><code>share_price_ntv</code></td><td>The value of one vault share. This multiplier can be used to convert assets to shares and vice versa.</td><td>1d, 1m</td></tr><tr><td><code>share_price_ntv_mean</code></td><td>The mean <code>share_price_ntv</code> value over the time interval.</td><td>1d, 1m</td></tr><tr><td><code>fee_performance_pct</code></td><td>The percentage of the vault's performance (yield generated) taken as a fee, closing value for the interval.</td><td>1d, 1m</td></tr><tr><td><code>fee_performance_pct_mean</code></td><td>The mean <code>fee_performance_pct</code> value over the time interval.</td><td>1d, 1m</td></tr></tbody></table>

{% hint style="info" %}
**Conventions.**

* Metric values are returned as JSON strings to preserve precision.
* `share_price_ntv` is denominated in the vault's underlying asset (for example USDC for a USDC vault), not in U.S. dollars directly, so a share price near `1.0` on a stablecoin vault indicates the underlying asset itself is close to par, not that the vault has returned nothing.
* `fee_performance_pct` is already scaled to percent (for example `10` means 10%).
  {% endhint %}

## Methodology

See [Protocol Metrics: Frequency and the daily mean](/network-data/protocol-metrics.md#frequency-and-the-daily-mean) for how the instantaneous and `_mean` forms differ at each frequency.

### Share price

A vault issues shares against deposits of its underlying asset, following the ERC-4626 tokenized vault standard (or a close variant of it). `share_price_ntv` is the current exchange rate between one share and the underlying asset, equivalent to the ERC-4626 `convertToAssets` view for a single share, and it rises over time as the vault's strategies earn yield (net of fees). This is how a vault depositor's return is expressed without needing a separate rebasing balance.

### Performance fee

`fee_performance_pct` is the fee the vault takes on the yield it generates, set by the vault's curator. This is not a property of the ERC-4626 standard itself: ERC-4626 defines how shares convert to and from the underlying asset, but says nothing about fees, so whether a vault charges a performance fee, and how it is defined, is up to the individual vault protocol rather than the standard.

## Accessing the Data

* [`/timeseries/protocol-metrics`](https://docs.coinmetrics.io/api/v4/#operation/getTimeseriesProtocolMetrics)

{% tabs %}
{% tab title="Python Client" %}

```python
import os
from coinmetrics.api_client import CoinMetricsClient

client = CoinMetricsClient(os.environ["CM_API_KEY"])

df = client.get_protocol_metrics(
    protocols="morpho_vaults_v1",
    markets="ausdc",
    metrics=["share_price_ntv", "share_price_ntv_mean", "fee_performance_pct"],
    frequency="1d",
).to_dataframe()
```

{% endtab %}

{% tab title="Shell" %}

```shell
curl --compressed "https://api.coinmetrics.io/v4/timeseries/protocol-metrics?protocols=morpho_vaults_v1&markets=ausdc&metrics=share_price_ntv,share_price_ntv_mean,fee_performance_pct&frequency=1d&page_size=10000&api_key=$CM_API_KEY"
```

{% endtab %}

{% tab title="Python" %}

```python
import os, requests

response = requests.get(
    "https://api.coinmetrics.io/v4/timeseries/protocol-metrics",
    params={"protocols": "morpho_vaults_v1", "markets": "ausdc",
            "metrics": "share_price_ntv,share_price_ntv_mean,fee_performance_pct",
            "frequency": "1d", "page_size": 10000, "api_key": os.environ["CM_API_KEY"]},
).json()
print(response)
```

{% endtab %}
{% endtabs %}

Full parameter reference: see the API Reference for [`/timeseries/protocol-metrics`](https://docs.coinmetrics.io/api/v4/#operation/getTimeseriesProtocolMetrics).

## Examples

The example below is a live pull, returned as JSON strings, and changes on each pull.

### Example: vault share price and fee

`share_price_ntv`, `share_price_ntv_mean`, and `fee_performance_pct` for a Morpho vault on Ethereum ([browser](https://api.coinmetrics.io/v4/timeseries/protocol-metrics?markets=ausdc\&protocols=morpho_vaults_v1\&metrics=share_price_ntv,share_price_ntv_mean,fee_performance_pct\&frequency=1d\&page_size=3\&paging_from=end\&api_key=YOUR_API_KEY)):

```json
[
  {
    "protocol": "morpho_vaults_v1",
    "market": "ausdc",
    "chain": "ethereum",
    "time": "2026-08-07T00:00:00.000000000Z",
    "fee_performance_pct": "10",
    "share_price_ntv": "1.105472",
    "share_price_ntv_mean": "1.105362704741980423"
  },
  {
    "protocol": "morpho_vaults_v1",
    "market": "ausdc",
    "chain": "ethereum",
    "time": "2026-08-08T00:00:00.000000000Z",
    "fee_performance_pct": "10",
    "share_price_ntv": "1.105669",
    "share_price_ntv_mean": "1.10556758102822019"
  },
  {
    "protocol": "morpho_vaults_v1",
    "market": "ausdc",
    "chain": "ethereum",
    "time": "2026-08-09T00:00:00.000000000Z",
    "fee_performance_pct": "10",
    "share_price_ntv": "1.105856",
    "share_price_ntv_mean": "1.105763864725550336"
  }
]
```

## Coverage

See [Protocol Metrics: Coverage](/network-data/protocol-metrics.md#coverage) for how to check current availability against the catalog directly. As of this writing, vault metrics are only available for `morpho_vaults_v1` markets.

## Related

* [Protocol Metrics](/network-data/protocol-metrics.md): the parent page, with the shared entity model and frequency semantics.
* [Rates and Yield](/network-data/protocol-metrics/rates-and-yield.md): the lending-pool equivalent of yield, for protocols like `aave_v3` that are not vaults.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://gitbook-docs.coinmetrics.io/network-data/protocol-metrics/vault-metrics.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
