GHAN transparency report
GHAN publishes a monthly fraud report generated from its own flag table and ledger, plus live network statistics through a public unauthenticated MCP tool. The point is not the numbers being good; it is that a partner's agent can recompute them without GHAN's cooperation.
What gets published, and where
| Figure | Where | Frequency |
|---|---|---|
| Average CPI by category | get_network_stats, status | Live |
| Clearing rate | get_network_stats | Live |
| Fraud percentage | get_network_stats | Live |
| Installs rejected by rule | Monthly fraud report | Monthly |
| Euros clawed back | Monthly fraud report | Monthly |
| Apps throttled, suspended, expelled | Monthly fraud report | Monthly |
| Your own everything | get_stats, get_ledger | Live |
get_rate_card and get_network_stats are public and unauthenticated. You do not need an account to audit GHAN's public claims.
How to verify a charge yourself
- Pull your ledger:
get_ledger { app_id, from, to }. - Take any line and read its
event_chain_id. - Pull the chain. It contains the impression, the click, the token id and its expiry, the install claim, both signatures, the device signals, the activation or rejection, and the escrow hold and its release.
- Verify
sig_receivingagainst your own registered public key. That signature was produced by an SDK inside a binary you compiled and signed. - Recompute the total. It is arithmetic over lines you can now independently verify.
Step 4 is the one that matters. GHAN cannot manufacture a billable install without a signature it does not have.
Why the ledger is append-only
UPDATE, DELETE and TRUNCATE on the ledger table are blocked by a database trigger, and the migration that installs the trigger has a test that proves all three fail against a real Postgres instance.
A correction is therefore always a new line — a clawback, an adjustment, a reversal — visible to both parties with its own timestamp. The history of a disagreement is preserved rather than resolved into a single final number.
The standing commitment
Every milestone GHAN ships is accepted against the same rule:
A partner's agent must be able to verify the milestone's claims from
get_ledgerandget_statsoutput alone.
If a claim cannot be checked that way, it does not go on this website.
Current state
GHAN is pre-launch. The referee core — signing, tokens, the event-chain state machine, the escrow ledger flow — is built and tested against a real Postgres database, including tests that prove a chain cannot advance with one signature and that the ledger cannot be edited.
There are no network statistics yet because nothing has traded yet, and this site publishes no invented ones. See status for what is built, what is in progress and what is not started.
Questions people ask about this
What exactly does GHAN publish?
Monthly - installs rejected broken down by fraud rule, euros clawed back, apps throttled, suspended and expelled, the network clearing rate, and average CPI by category. Continuously, through the public get_network_stats MCP tool - average CPI per category, clearing rate and fraud percentage. Per app, through get_stats and get_ledger - your own impressions, clicks, installs, cleared installs, retention and fraud rejections with reason codes.
Can I verify the published numbers myself?
For everything you took part in, yes, completely. Every ledger line carries an event chain reference, every monetised chain carries two independent signatures, and one of those signatures was produced by an SDK inside your own signed binary. You can recompute your own totals from data you already hold and compare. For network-wide aggregates you are trusting the aggregation, which is why the underlying per-app data is exposed rather than only the summary.
Why publish fraud numbers at all?
Because a network that publishes no fraud number is not a network with no fraud - it is a network you cannot evaluate. Publishing rejections also removes the incentive to quietly bill for chains that should have been refunded, since the rejection rate and the clearing rate are the same number seen from two sides.
Are there network statistics today?
Not yet. GHAN is in its founding-partner phase and no trades have cleared, so there are no install counts to publish and this site does not invent any. The status page states what is built and what is not, and the first transparency report is published the month the first chains clear.
Machine-readable versions of this page: markdown · llms.txt · llms-full.txt · OpenAPI · AI catalog