# Whitelabel TVL & APR

Display real-time TVL (Total Value Locked) and APR (Annual Percentage Rate) on your custom incentives hub. Fuul automatically calculates and refreshes these metrics for programs built on lending, liquidity, and staking protocols.

## How it works

Fuul computes TVL and APR at the conversion level for pool-based incentive programs:

* **TVL** — total value currently locked in the underlying protocol pool, denominated in USD
* **APR** — estimated annualized return based on the configured reward rate and current TVL

Metrics are automatically refreshed every \~3 hours for active pool incentives.

## Fetching TVL & APR

Use the public incentives endpoint — no API key required ([API reference](https://fuul.readme.io/reference/get_v1-incentives)):

```typescript
// GET /v1/incentives?protocol=your-protocol-code
```

The response includes TVL and APR per conversion:

```json
{
  "conversions": [
    {
      "name": "Deposit USDC",
      "tvl": "12500000.00",
      "apr": "0.145",
      "liquidity_pool_protocol": {
        "code": "morpho-vaults",
        "name": "Morpho Vaults"
      }
    }
  ]
}
```

Display `apr` as a percentage (e.g., `0.145` → `14.5% APR`).

## Protocol support

| Protocol type                              | TVL source                    |
| ------------------------------------------ | ----------------------------- |
| **Uniswap V3 and V3-style DEXs**           | Subgraph query                |
| **Lending pools** (Morpho, Compound, etc.) | `totalSupply()` contract call |
| **Morpho Vaults**                          | Subgraph query                |
| **Euler V2 looping**                       | Subgraph query                |

## Use cases

* Show depositors the current APR next to each incentive
* Display protocol TVL to signal liquidity depth and program health
* Build comparison tables of multiple active incentives with their live rates

{% hint style="info" %}
APR is calculated based on the reward rate configured in your program divided by the current TVL. It updates automatically as TVL changes — no manual refresh needed.
{% endhint %}


---

# Agent Instructions: 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:

```
GET https://docs.fuul.xyz/developer-guide/whitelabel-tvl-apr.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
