> For the complete documentation index, see [llms.txt](https://docs.ensemble.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ensemble.io/data-and-transparency/sources-of-truth.md).

# Sources of truth

Resolve differences between contract state, indexed history, and the interface.

The vault contract determines your shares and transaction results. A dashboard helps you read that state, but a delayed dashboard cannot change what the contract settled.

```mermaid
flowchart LR
    Contracts["Vault and transaction receipts"] --> Current["Balances and transaction results"]
    Reads["VaultLens and CircuitBreaker"] --> Capacity["Previews and transaction limits"]
    Events["Contract events and trade records"] --> History["Historical reports"]
```

| Question                                     | Authority                                                |
| -------------------------------------------- | -------------------------------------------------------- |
| Were shares minted or burned?                | Vault and transaction receipt                            |
| Is the route currently allowed?              | CircuitBreaker deployed state                            |
| What is current grouped capacity or preview? | Compatible VaultLens plus route read                     |
| What product is configured?                  | Published strategy plus current contract settings        |
| What happened historically?                  | Canonical events with indexed provenance                 |
| What fills were observed?                    | Trade records with transaction or fill identifiers       |
| What did the UI show?                        | The display is a view of state, not accounting authority |

## When records disagree

If the screen and the contract disagree, use the contract for the next transaction.

When a display or indexed record disagrees with current contract state, the contract controls current accounting and transaction behavior. Keep each observation with its own block and time rather than treating an earlier record as current state.

## Checking a reported value

Keep the source and observation time with each number so readers can judge whether it is usable.

Check each observation's source, network, block or time, and coverage. A report with incomplete trade attribution cannot establish the full cost of execution.

## A balance is not withdrawal capacity

Suppose your shares have an estimated value of 100 USDC, but the current redemption limit permits only 40 USDC of net proceeds. The estimate describes value; the limit describes the proposed exit. Neither number alone tells you that the vault settled a transaction.

Use compatible Lens and CircuitBreaker reads for capacity, simulate the chosen amount, and confirm the result from its receipt. See [Redeem](/use-ensemble/redeem.md) and [CircuitBreaker](/safety/circuit-breaker.md) for units and account rules.
