Docs · Guides
Proofs
Verifying an audit event against an anchored Merkle root, with four outcomes that stay four.
The chain of custody for a record
- An authorization decision writes an audit event.
- Events are batched into a Merkle tree.
- The batch root is anchored in a transaction on the Bengar chain.
- A proof shows one event is a leaf under that root.
- An independent witness — a chain node — is asked whether it holds the same root.
The four outcomes
| Outcome | What happened |
|---|---|
| VERIFIED | The proof holds and a witness confirmed the root. |
| INVALID | The proof was checked and does not hold. A statement about the cryptography. |
| NOT_WITNESSED | The witness was reached and does not have this root. |
| UNAVAILABLE | The witness could not be reached. Nothing was concluded. |
Never collapse these into a boolean. NOT_WITNESSED and UNAVAILABLE both mean “not green”, and one says we looked and found nothing while the other says we could not look. Reporting either as INVALID is a false accusation.
Where to verify
GET /v1/projects/:id/audit/:auditId/proof returns the proof; POST /v1/console/projects/:id/proofs/verify performs the check and asks the witness.
AVAILABLE Verify an audit event against its anchor — /projects/:id/proofs
Where: Proofs
First: An anchored audit event.
Requires: ADMIN, AUDITOR