> 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
