Check a record
Anyone with the record and the company’s public key can check it with the Koncernify verifier, on their own computer and without an account. Write to hello@koncernify.com for a copy of the verifier.
Koncernify verify books.jsonl --pub books.key.pub
The verifier checks that every entry matches its hash, that each entry points to the one before, and that every signature is valid. If one entry was changed or removed, it names the first one that fails.
Check the countersignature
Koncernify witness-key -o witness.pub
Koncernify verify books.jsonl --pub books.key.pub --witness-pub witness.pub
This also checks the service’s receipts. A record that was rewritten after it was countersigned fails here, even if the company signed the new version with its own key.
Check a report Koncernify made
Koncernify check evidence/
A report made in Koncernify comes with its evidence folder. The check verifies each signed statement in it against keys.json and compares each posting with the approval it names and with the entry in ledger.json.
What is signed on each path
Every journal that reaches the books through Koncernify leaves a signed approval. When Koncernify also posts the journal, it signs a posting statement that names the ledger entry, the figures sent and a hash of the approval it was posted on. A reader can follow each journal from the decision to the ledger without relying on Koncernify’s database.
| Path | Approval | Posting |
|---|---|---|
| An agent that posts itself, with the hook | The reviewer’s decision | Kept in the agent’s own record, which Koncernify countersigns |
| An agent through the gateway | The reviewer’s decision, or the note of the lane it posted in | Signed by Koncernify and returned to the agent |
| A chat assistant through the connector | The reviewer’s decision, or the lane note | Signed by Koncernify |
| The box | The reviewer’s decision, or the lane note | Signed by Koncernify |
| A journal a person sends | The reviewer’s decision, or the lane note | Signed by Koncernify |
Changes to the controls
A report also shows whether the controls stayed the same during the period. Every change to the policy, an agent, an agent or admin key, a person’s role or authority, a standing approval or a ledger is kept as a statement Koncernify signs, naming who made the change and the value before and after. Each statement carries its number and the hash of the one before, so a change that is later removed, reordered or altered breaks the chain. The evidence folder holds the chain as controls.jsonl, and the check verifies every link and signature in it.
Try it on the sample
Download the sample record and its public key, then run the first command. Change any figure in the file and run it again.