# How verification works

Every live firm publishes an on-chain proof page that anyone can read without
logging in. The point is that you should not have to take the platform's word —
or the firm's — for where the money is.

[**Verify a firm →**](https://docs.troncharts.xyz/docs/verify/)

## What the page shows

| Section | Where it comes from |
| --- | --- |
| **Addresses** | The firm's `PropInstance` contract and the multisig that owns it, each linked to a block explorer so you can read them yourself. |
| **On-chain treasury** | Read live from the chain: treasury, collateral, and available balances. |
| **Ledger totals** | The platform's record: pay-ins, payouts, forfeits. |
| **Reconciliation** | The two compared, dollar for dollar. |
| **Solvency** | A classification derived from on-chain treasury versus what the ledger says should be there. |

The reconciliation is the part that matters. Ledger totals alone are a claim;
an on-chain balance alone lacks context. Setting them side by side is what
makes the claim checkable.

## The data behind it

Two public endpoints, no auth:

| Endpoint | Returns |
| --- | --- |
| `GET /api/prop/transparency` | Every live firm's bundle. Cached 30s server-side; capped at 200 firms. |
| `GET /api/prop/transparency/{firmId}` | One firm. 404 if it doesn't exist or isn't live. |

```bash
curl -s https://api.troncharts.xyz/api/prop/transparency | jq '.firms[] | {name, solvency}'
```

The proof page is a thin client over these — it fetches the same JSON you can.
Build your own dashboard against it if you'd rather.

## What it does not claim

- **It is not an audit.** It is a live read of public chain state next to the
  platform's ledger.
- **A firm that isn't deployed has nothing to verify.** Those show a
  `not_deployed` reconciliation rather than a reassuring zero.
- **Custody is the multisig's, not the platform's.** Verification doesn't change
  that; it just lets you confirm it. See
  [Trust & custody model](https://docs.troncharts.xyz/docs/auth/trust-model/).

## For firm operators

You get this by deploying — there is nothing to opt into. Once your firm is
live and its instance is deployed, it appears in the index automatically with
the addresses you supplied at create time. See
[Launch a prop firm](https://docs.troncharts.xyz/docs/launch/prop-firm/).