# Third-Party Integration

This page provides a comprehensive guide for third-party integrators to correctly query and compute Renzo Protocol’s Total Value Locked (TVL) and ezETH exchange rate on-chain. Renzo’s TVL spans multiple layers including assets held in protocol contracts, value staked in EigenLayer, and validator balances on the Beacon Chain.&#x20;

### Fetching Protocol TVL

The RestakeManager Contract contains the logic to calculate all TVL of the protocol. This includes all value residing in contracts on chain, all value staked in EigenLayer, and all value on the Beacon Chain.

* RestakeManager\
  <https://etherscan.io/address/0x74a09653A083691711cF8215a6ab074BB4e99ef5>

The main function to query is “calculateTVLs()”. This function returns Individual Operator Delegator TVLs, split by token, total TVL per Operator Delegator, and total TVL in the protocol.  The 3rd parameter returned is the full protocol TVL, denominated in ETH value.

\
This total TVL can then be used to derive the Exchange Rate of ezETH by querying the ezETH totalSupply() from the token contract and dividing it.

`Exchange Rate = Total TVL / ezETH Total Supply`

* ezETH Token Address\
  <https://etherscan.io/address/0xbf5495Efe5DB9ce00f80364C8B423567e58d2110>

**Note:** *The calculateTVLs() function is not guaranteed to succeed.  Under low probability scenarios, this function could revert. Third parties should ensure integrations do not catch an error and continue logic with invalid data.*

<br>


---

# 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.renzoprotocol.com/docs/contracts/third-party-integration.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.
