> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ix.finance/llms.txt
> Use this file to discover all available pages before exploring further.

# Reporting & assurance

> How IX RWA reports NAV and revenue, and the assurance program — on-chain recomputability, evidence-hashed attestations, and third-party audit.

IX RWA's reporting model is **verify, don't trust**: every headline figure is either read directly from the chain or backed by a hash you can recompute against public evidence. This page describes what is reported, how often, and how you check it.

## What is reported

| Metric                           | Source                                         | Cadence               | Verify                                               |
| -------------------------------- | ---------------------------------------------- | --------------------- | ---------------------------------------------------- |
| **NAV / NAV-per-share**          | Live vault read (`totalAssets`, `totalSupply`) | Real-time (per block) | [Transparency & NAV](/protocol/transparency-and-nav) |
| **Per-cohort value + freshness** | NAV oracle (`cohortValueUSD`, `lastUpdate`)    | Per attestation       | [Proof of Reserve](/protocol/proof-of-reserve)       |
| **Reserve coverage**             | Smoothing reserve balance                      | Real-time             | On-chain `balance()`                                 |
| **Revenue settled**              | `RevenueAccrued` events + revenue snapshots    | Per settlement        | Revenue proof (below)                                |
| **Holdings / positions**         | Event-indexer read model (chain-as-truth)      | Real-time             | Re-derive from `Transfer` events                     |

All of these are recomputable from public on-chain inputs — no figure originates from a private dashboard.

## Revenue proof (hash-chained snapshots)

Each revenue settlement is committed to a signed, hash-chained record so a reading can't be silently revised after the fact:

```mermaid theme={null}
flowchart LR
    LIVE[Live market inputs] --> BUNDLE[Canonical inputs bundle]
    BUNDLE -->|keccak256| IH[inputs_hash]
    IH --> CH[chain_hash = keccak · prev_chain_hash + inputs_hash]
    IH -->|evidenceHash| ATT[On-chain attestReserve]
    CH --> NEXT[Next snapshot links here]
```

* Each snapshot stores the **canonical inputs bundle** (formula version, live rates, per-cohort NAV & revenue) plus `inputs_hash = keccak256(bundle)`.
* Snapshots form a **tamper-evident hash chain**: `chain_hash = keccak256(prev_chain_hash || inputs_hash)`.
* The same `inputs_hash` is submitted on-chain as the attestation's `evidenceHash`, so the reported figure and the on-chain record are one and the same.

**To verify a reading:** pull the snapshot, recompute `keccak256` of the canonical bundle, confirm it equals both the stored `inputs_hash` and the on-chain `ReserveAttested` `evidenceHash`, then walk the `chain_hash` back to confirm the record was never rewritten.

## Proof-of-reserve program

Reserve values reach the oracle only through the [Attestor Registry](/protocol/proof-of-reserve), which records `(attestor, valueUSD, evidenceHash, timestamp)` for every move. On testnet the attestor is the EconomicsFeeder key; at mainnet the program adds **independent third-party attestors** holding `ATTESTOR_ROLE`, each move backed by a real evidence pack (invoices, serials, site, telemetry) behind its `evidenceHash`.

## Audit & security assurance

<Warning>
  A **third-party smart-contract audit** is a prerequisite for mainnet launch. The audit report and remediation status will be published in [Trust & Security](/security/security-model). Until then, testnet is for evaluation only and is not production-secure.
</Warning>

## Observability

Every state change emits an on-chain event (deposits, redemptions, revenue accrual, fee mints, cohort value sets, attestations, asset lifecycle). An event indexer reconstructs holder state and reporting **from those events**, so the reporting layer can always be rebuilt from the chain rather than trusted. See [Architecture → Observability](/protocol/architecture#observability).
