WARDEN
A callout, minute by minute

03:12. Structure fire.
Persons reported.

The clearest way to understand Warden is to watch one incident run. Here it is with drone overwatch in the loop — and, alongside each beat, the line it writes to the hash-chained record.

Incident Structure fire · persons reported Overwatch Thermal DFR Status Synthetic · pre-production
Read this first

This is an illustrative, synthetic scenario — no real incident, address or person. It's written to show how the pieces fit in time: the flight, the picture, the human decisions, and the record each one leaves. Every timestamp and hazard here is invented to make the sequence legible. It assumes the service launches its own drone from a dock, which is one way a service might fly. No dock connection is built yet: Warden has been tested only against a flight simulator and a test video stream, never a real aircraft. It has no DJI integration and no 999 or computer-aided dispatch (CAD) feed, so the incident below is opened in the console.

01 The incident, in real time

Under each decision, the line it writes to the record.

03:12:04

The 999 call lands

Control categorises it: structure fire, persons reported. An incident is opened and the record begins — before anything flies, before anyone commits.

Record #01 · INCIDENT OPENED
03:12:40

A human authorises the flight

The service's own aircraft is ready to launch. A named commander — not the software — authorises overwatch. The entry carries the same fixed note every time; the necessity and proportionality reasoning itself is the service's to record.

Record #02 · FLIGHT AUTHORISED · ◆ human
03:13:30

Eyes on, before the crew

The drone reaches the scene ahead of the appliances. Thermal overwatch is live: two heat signatures on the first floor, a hotspot building at the rear. Live-only — nothing is stored.

Record #03 · OVERWATCH FEED LIVE
03:14:10

A hazard, called early

The officer on the console spots a gas cylinder at the rear and flags it to the incident commander — before a single firefighter is anywhere near it.

Record #04 · HAZARD FLAGGED
03:16:00

The first appliance arrives to a picture

Not a blank street in the dark. Where the people are, where the fire is travelling, and where not to send a crew — from the service's own drone, on the commander's screen, with each decision around it on the record.

03:41:00

Stand down, and sanitise

Incident closed and the live feed is gone. If a deployment keeps footage, the retention job is designed to delete it on schedule and write the deletion to the record as #05. That schedule is not yet switched on.

Record #05 · MEDIA PURGED
03:45:00

The record is sealed

Closed and sealed: the database refuses to un-seal it. If this deployment is ever reviewed, by the service or the Information Commissioner's Office (ICO), the account of who authorised what, and when, is there to read, and anyone holding an export can check it against Warden's published key without Warden, and, once the next anchor covers it, against an outside RFC 3161 time-stamp too.

Record #06 · RECORD SEALED

02 What changed

Same fire, same drone. A different record.

Before A picture, no record

The drone flies and the picture is good, but the decisions around it — who authorised the launch, on what grounds, what was kept — can end up spread across radio logs, notebooks and memory, and be hard to show afterwards.

After The same picture, on the record

Same aircraft, same picture. A named person's authorisation goes on the record before launch, with no facial recognition, no imagery stored by default, and every later decision chained into the same record.

03 The whole system, on one picture

What the drone sends in, what the commander controls, and how every decision becomes a sealed, hash-chained entry.

WARDEN operational flow Four phases from callout to sealed record: ingest and air safety (one-way feed), live command and privacy (live-only), the cryptographic ledger (append-only keyless SHA-256 chain, each link signed with Ed25519, time-stamped externally up to the latest anchor), and purge and seal (seal-guard plus governed, logged deletion), with the ledger lifecycle from incident opened to record sealed. WARDEN — operational flow From emergency callout to a sealed, hash-chained record. PHASE 1 Ingest & Air Safety Thermal + telemetry stream in via MediaMTX and a MAVLink→WS bridge. one-way — sends no command → reassures the engineer PHASE 2 Live Command & Privacy Commander watches live, role-gated. Imagery is live-only — nothing stored. live-only — nothing stored → reassures the DPO PHASE 3 Cryptographic Ledger Each action chained server-side into an append-only hash chain. SHA-256 chain · Ed25519 → checkable from an export PHASE 4 Purge & Seal Record sealed; any retained media purged — and the purge is logged. seal-guard · governed purge → reassures the commander THE RECORD · LEDGER LIFECYCLE #01 INCIDENT OPENED #02 FLIGHT AUTHORISED #03 OVERWATCH FEED LIVE #04 HAZARD FLAGGED #05 MEDIA PURGED #06 RECORD SEALED content = SHA-256(seq · ts · event · meta · actor · gate)    chain = SHA-256(prev :: content)    signed: Ed25519(chain) Tamper-evident, not “unbreakable” — time-stamped externally (RFC 3161) up to the latest anchor; newer events are not covered until the next one.
The aircraft

One-way by design

Warden sits downstream of the ground station, and its software has no function that sends anything to the aircraft. In an installation the connection it reads from would also be set to receive only; that set-up is not built or tested yet. The aircraft, the pilots and the service’s own permissions stay as they are.

Downstream of the ground control station · sends no command
Privacy & the DPO

Live-only by default

By default the thermal feed is live-only — no imagery is stored. Any opt-in recording is designed to be retention-bound, with its deletion written to the record as a chained event; that scheduled deletion is not yet switched on.

Data minimisation · Art 5(1)(c) · storage limitation · Art 5(1)(e)
Record integrity

Append-only, signed hash chain

Every action is chained into an append-only hash chain with SHA-256, which needs no key, and each link is signed with Ed25519; edits or deletes of entries, and un-seals, are rejected at the database. Anyone holding an export can check it against Warden's published key fingerprint, without Warden. Events up to the latest time-stamped anchor (one whose token verifies) are also time-stamped externally (RFC 3161), so they cannot be altered undetected after that time-stamp; newer events are not covered until the next anchor, and the verification page lists the other limits.

SHA-256 · Ed25519 · append-only · checkable from an export · RFC 3161 anchors

Diagram shows the design of pre-production software — not deployed at any fire & rescue service.

See it for yourself

The demo console runs this sequence on synthetic data — the feed, the human authorisation, the ledger forming and a tamper test. Open the demo →