Sealed records
Sealed where it is measured.
Every reading is hashed on the unit as it is taken and sealed in short signed batches. The seal shows if anything changed later; people still make the decisions, and those are logged too.

The Sensolytica portal, with a demo organisation. Data illustrative. Seal values illustrative.
A chain, not a pile.
Readings are sealed in batches of up to 10 seconds or 50 readings, and at once when something notable happens. Each batch seal is the Merkle root of its readings plus the seal before, signed with a key held in a secure element on the unit. Four batches from Aurora's pass, illustrative.
Batch B-2204, 40 readings
Batch B-2205, 32 readings
Batch B-2206, over 6 kn
Batch B-2207, 38 readings
What is sealed
- Each reading, hashed on the unit as it is taken
- The unit that took it, and its signature
- The time, from satellite time, in UTC
- The position and its quality level
- The images, if any
- The seal of the batch before
- When each batch was sealed, and when it arrived
What is not
The verdict. Whether a reading means a rule was broken is a person's decision. It is logged beside the record with who made it and why, so it can be reviewed or reversed without touching a single sealed reading.
Check it yourself.
Take the reading and its path
From the portal, the API or an evidence pack. One reading travels with its Merkle path, so the rest of the batch can stay private.
Rebuild the batch seal
Hash the reading, walk the path to the root, add the previous seal. Any SHA-256 tool will do; we publish the format.
Compare and check the signature
If it matches the signed seal, nothing has changed since the unit sealed it.
# reading 14:32:06, DRV-0418, batch B-2206 { "unit": "DRV-0418", "kind": "sog", "value": 7.2, "unit_of": "kn", "quality": "evidence", "at": "2026-08-14T14:32:06.250Z", "path": ["a41f…", "07c9…", "e2d0…"], "prev_seal": "f15a08e3…" } $ sensolytica seal check reading.json root 3b07c2d8… match signature DRV-0418 key valid sealed 14:32:07Z, arrived 14:32:08Z chain intact to 0c6e5f21…
Who looked, who decided.
IllustrativeScroll across to see all columns.
| Time | Who | What | Detail |
|---|---|---|---|
| 14 Aug 14:32:08 | Platform | Batch B-2206 checked | Signature valid, chained to f15a 08e3 |
| 14 Aug 15:10:22 | R. Okafor, operator | Viewed | Readings and 6 images |
| 14 Aug 15:14:40 | R. Okafor, operator | Decision: over limit | Speed confirmed by drive unit and AIS |
| 15 Aug 09:02:11 | J. Hale, authority admin | Evidence pack exported | EP-2026-0814-0031 |
The evidence pack.
- Every reading, with its unit and source
- The images, in sequence
- Each reading's batch seal and Merkle path, and the chain around them
- The audit trail and the decision
- How to check the seals, in plain words
Evidence pack
Aurora, SO-4471. 14 August 2026
EP-2026-0814-0031, illustrative
Common questions.
Could Sensolytica change a reading after it was sealed?
Not without the change showing. The unit seals and signs each batch before it sends it, and each seal includes the one before, so altering any reading breaks every seal after it, and the break is visible to anyone who checks.
What if the unit was out of signal?
It keeps sealing on the unit and sends the batches later. Each seal shows when it was sealed and when it arrived.
What about logs imported from another app?
They are sealed on import, keep the original file and its hash, and are marked imported, not sealed at source. They never count as evidence on their own.
Who decides that a vessel broke a rule?
A person, never the unit. The decision, who made it and why are in the audit trail.
How long are records kept?
As long as the customer sets, within the law that applies to them.
Can the other side check the seals themselves?
Yes. The seal check is open and documented, and works on an evidence pack without an account.
Talk to us about evidence.
We will walk through a sealed record and an evidence pack with your team, from the first reading to the final review.