# Transparency Dashboards for DeFi Treasuries

> Public NAV and position pages let DAOs, vaults and treasuries prove holdings without granting access. What belongs on one and what to leave off.

- **URL:** https://octav.fi/blog/defi-treasury-transparency-dashboards
- **Published:** 2026-02-13
- **Author:** Octav Team — Portfolio Intelligence for Digital Assets
- **Topic:** NAV Reporting
- **Tags:** transparency, treasury, nav-reporting
- **Source:** Octav, Practical guides on crypto NAV reporting, multi-chain portfolio management and digital asset APIs, from the team behind Octav.

---
A DAO treasury or a DeFi vault has a reporting problem most funds do not: its
stakeholders are anonymous, numerous, and entitled to verify claims rather than
take them on trust.

The usual answers are bad. A quarterly PDF is stale on publication. A block
explorer link shows transactions, not a portfolio. A spreadsheet screenshot in
Discord proves nothing.

[Transparency Dashboards](https://transparency.octav.fi) are the third option: a
public page with live NAV, positions, holdings and history that anyone can
check without being granted access to anything.

## What belongs on one

| Section | Why |
| --- | --- |
| Current NAV | The single number people came for |
| Position breakdown | Proves the NAV rather than asserting it |
| Chain and protocol allocation | Shows where the risk actually sits |
| Historical chart | Distinguishes performance from deposits |
| Last updated | Without it, readers assume the worst |

The position breakdown is the part that does the work. A NAV figure alone is a
claim. A NAV figure with the positions that add up to it is evidence.

## Why decoding is the whole game here

A transparency page built on token balances is worse than no page, because it
looks authoritative while being wrong. A treasury with assets in Aave, an LP
position and staked SOL would display a fraction of its real value — and every
reader would take that number as the truth.

The dashboard has to decode [lending, LP and staking positions](/track-defi-positions-multichain),
and — if the treasury runs them — [perps](/hyperliquid-perps-portfolio-tracking)
and [options](/derive-options-portfolio-tracking). Otherwise you have published
a confidently wrong number to an audience that cannot check it.

The scale of that error is measured in
[Why Portfolio APIs Disagree About Net Worth](/why-portfolio-apis-disagree):
10× to 600× on active wallets.

## What to leave off

Publishing a treasury's full position set has real consequences. Consider
carefully before exposing:

- **Addresses that receive contributor payments.** Salary information becomes
  public and permanently linkable.
- **Positions small enough to be front-run or squeezed**, particularly
  concentrated illiquid holdings and leveraged positions with visible
  liquidation prices.
- **Pending or strategic activity** — an in-progress accumulation is exactly the
  kind of thing observers will trade against.

Transparency is a decision about which addresses to publish, not an obligation
to publish all of them. Most treasuries separate an operational wallet from the
published treasury set for precisely this reason.

## Transparency page vs embedded widget

| | Transparency dashboard | [Embedded widget](/embed-crypto-portfolio-widget) |
| --- | --- | --- |
| Form | A hosted page you link to | A component inside your own page |
| Audience | Public, unauthenticated | Your site's visitors |
| Setup | Configure and publish | Paste an iframe |
| Best for | Proving treasury holdings | Adding a portfolio view to a product |

Many treasuries use both: the dashboard as the canonical public record, the
widget to surface the headline number on the project's own homepage.

## Keeping it honest over time

Two operational habits matter more than the initial setup:

**Record history from day one.** A transparency page that only shows today
invites the question of what it showed last quarter.
[Daily snapshots](/daily-crypto-portfolio-snapshots) answer it; retroactive
reconstruction generally cannot.

**Show the timestamp.** Live data occasionally lags — a chain reorganises, an
indexer falls behind. A visible "last updated" is the difference between a
transient delay and an accusation of hiding something.
