Skip to main content
You check that the evidence is what it claims to be. You need two things from the bank: the evidence pack (a JSON file) and the appliance’s public key, delivered through a channel you trust. You do not need a Sengol install or a licence.
1

Receive the pack and the key

Separately, from people you trust.
2

Install the verifier

sengol-verify, Apache-2.0, two dependencies.
3

Verify

Every check runs on your laptop.
4

Check completeness

Confirm the pack covers the period you asked for.

1. Receive the pack and the key

The bank’s operator produces the pack:
They also give you the appliance’s Ed25519 public key as a JSON map of key id to PEM, which is the format of --trusted-keys-file. Ask for it through a different channel from the pack: whoever produced the pack could also have produced the key embedded in it.
trusted-keys.json
In this walkthrough we export the pack and fetch the key ourselves, from a running appliance:

2. Install the verifier

sengol-verify is open source, has no dependency on Sengol, and makes no network calls:

3. Verify

The command exits 0. That is the result you want.

What each check proves

Exit codes

The exit code follows the countersignature check, not the overall verdict: Add --json for machine-readable output with verdict, trusted_key_supplied and countersignature_trust_established.

What tampering looks like

Flip one verdict in one record:

4. Check completeness

The chain proves the records in the pack link together. It does not prove the pack holds every record. A pack that starts mid-sequence still passes, and an empty pack passes every check. Confirm the scope yourself:
Ask the bank to explain any of these:
  • a first sequence number other than 1, or gaps
  • a period that does not cover the one under review
  • pending countersignatures (re-export later; they are usually just not finished)

Reading the rest of the evidence

  • Compliance reports map the records to the bank’s obligations. A report generated in the Console or through the API carries an HMAC signature. One generated with the CLI does not. Ask for the Console version.
  • Review decisions made in the Console are labels, not signed evidence.
  • Account administration (users, roles, break-glass sign-ins) writes logs, not signed records.

The same checks, from the Sengol CLI

If you have the sengol package, the same offline checks run with:
With read access to the appliance, the online check also verifies every HMAC: