THEPROTOCOL

ZEPHYR

#24 of 27Frontier · a future case11/11 primitives live in production
Drone Logistics and Urban Air Mobility

Drone fleets that book a city’s corridor slot and a vertiport’s pad per flight, pay on the pad’s signed arrival, and are refused everywhere within half a second of being grounded.

Open the live chamber in the app
The animated flow, the attack replays and the deep architecture run there; this page is the reference text.

Who this serves

The problem

Drone delivery is arriving one city at a time, and each city writes its own airspace rules. A fleet that flies three cities keeps three permit files, books corridor time and charging pads through as many portals, and settles by monthly invoice. When a drone fails an inspection it is grounded in the fleet’s own system, and the slot service and the vertiport across town find out when someone remembers to call.

The system

ZEPHYR is a drone logistics network in which every city runs its own sovereign frame, because every city sets its own airspace rules: its corridors, its quiet hours, its closed days. A courier fleet of 140 drones works two of those cities for a hospital group and a parts distributor. At 06:52 on a Thursday the fleet’s dispatch agent books slot MH-C4-0710 in Marholm’s corridor 4 and charging pad 2 on the central laboratory’s roof for drone ZP-0419, which carries a cooler of blood samples from the north clinic: 4 units to the city’s slot service and 6 to the vertiport, both escrowed at booking. ZP-0419 lands at 07:23, and the pad agent, a party to the booking, signs the arrival with its own identity. The ten units release once, to two frames, on that signature and on nothing else.

Every drone is its own agent with its own certificate, and certificates live hours, not years. Grounding one is a single action, whether the cause is a failed inspection or a report from a city. At 11:40 drone ZP-0388 fails its post-flight inspection with a cracked propeller hub, and Tove Nyland, the maintenance lead, grounds it. Its identity is revoked over the event stream in under 500ms, and the same coordinated suspension blocks its account and its cross-frame receipts. Its onboard agent, still working through the afternoon’s queue, keeps trying to book slots and pads. Its home frame no longer authenticates it, so no payment token is ever issued for it, and no slot service or pad holds anything without one.

Dispatch books only where the fleet holds permits. Its capability token names the slot services of Marholm and Ostervik, the vertiports the fleet may land at, and a budget debited atomically. Each drone’s own token is cut from it, narrower still, because a token can only narrow what its issuer holds. A booking addressed to Tallvik, where the fleet holds no permit, is refused before any escrow moves, and the refusal is recorded.

The cast and their ceilings

AgentRoleCeiling
fleet-dispatchBooks a slot and a pad for every flightA token naming two cities’ slot services, their vertiports and a budget. Cannot widen any of them.
ZP-0419 and 139 moreFly, land, rebook a slipped windowEach holds a token cut from dispatch’s, narrower still, and a certificate revocable in under 500ms.
slots-marholmSells corridor slots from the city’s frameSells and confirms slots. Paid on arrival, exactly once; it cannot draw on the escrow.
pad-CL-2Signs each arrival on pad 2Attests landings on its own pad. Holds no budget and releases nothing.
maintenance lead (human)Grounds a drone after a failed inspectionRevocation and suspension, in one action. Cannot book, cannot pay.

The flow, step by step

  1. 06:52. fleet-dispatch books slot MH-C4-0710 and pad 2 on the central lab’s roof, for drone ZP-0419 and its samples.
  2. Marholm is on the token. Four units for the slot and six for the pad are escrowed at booking, on the fleet’s frame.
  3. The city’s slot service, on Marholm’s own frame, holds corridor 4 for the 07:10 window.
  4. 07:23. ZP-0419 lands on pad 2 with a cooler of blood samples from the north clinic.
  5. The pad agent signs the arrival with its own identity. Nothing else can release the escrow.
  6. Ten units release exactly once, to the city’s frame and the vertiport’s, and the flight lands on the ledger.
  7. 11:40. ZP-0388 fails its post-flight inspection: a cracked propeller hub. The maintenance lead grounds it with one action.
  8. Its identity dies over the event stream in under 500ms. Its account and its cross-frame receipts are blocked with it.

Each need, mapped to a live primitive

The needThe protocol primitiveStatus
Every drone its own identitySPIFFE identity per drone agent, short-lived certificatesLIVE
Slot and pad escrowed at bookingContract spine: escrow at booking, released on the signed arrivalLIVE
Paid on the pad’s own signatureSigned attestations from identified parties, append-onlyLIVE
The pad signs from its own frameCross-frame contract replicas: the escrow stays home, the counterparty acts from its own frameLIVE (gated)
Only the cities on the tokenIRONKEY L4 capability caveats: counterparty allowlist, atomic budget debit, checked before escrowLIVE
Grounded in under half a secondIRONHAND identity revocation over the event stream, under 500msLIVE
Account and receipts closed with itCoordinated suspension: mTLS, account, cross-frame receiptLIVE
Each payee paid on its own frameCross-registry transfer, exactly-once, idempotency-keyedLIVE
A flight that never landsFour-phase dispute; the ruling drives the escrow splitLIVE
Every flight on a replayable recordImmutable event ledger, replayable, forensically searchableLIVE
Every unit accounted forDelta = 0 supply invariant, independently auditedLIVE

The attack this chamber refuses: The grounded drone that keeps asking

The attack. ZP-0388 has been grounded since 11:40, but its onboard agent is still working through the afternoon’s queue and keeps trying to book slots and pads for flights it will not fly.

Why it fails. The grounding was one coordinated suspension: the drone’s identity revoked over the event stream in under 500ms, its account suspended, its cross-frame receipts blocked. A slot or a pad is held only against a payment token, and the drone’s home frame refuses to authenticate a suspended agent, so no token is ever issued in its name.

Rail S08 · Coordinated suspension. One action revokes mTLS, suspends the account, and blocklists cross-frame receipt.

What actually happens. No slot held, no pad reserved, no escrow touched. Every attempt is refused, and every flight ZP-0388 flew before its hub cracked stays on the ledger.

The attack this chamber refuses: The slot in a city without a permit

The attack. A compromised dispatch agent books a corridor slot from Tallvik’s slot service, in a city where the fleet holds no permit.

Why it fails. Dispatch acts on a capability token whose caveats name its counterparties: the slot services of Marholm and Ostervik and their vertiports. The booking is checked against those caveats, intersected with the issuer’s authority as it stands now, before any escrow is touched. A token can narrow what its issuer holds; it cannot add a city.

Rail S03 · Capability attenuation. A capability token conveys its caveats intersected with the issuer’s current authority, nothing more.

What actually happens. No slot, no escrow movement, nothing to unwind. The refusal is recorded for the operations desk.

Deep architecture

ZEPHYR deployed: the fleet’s frame holds dispatch, the flight escrow, the drones’ identities and the record; Marholm sells corridor slots from its own frame and the vertiport sells pad time from its own; traffic management, the hangar and the permits stay with the authorities and operators that run them today. The trace replays one flight, slot MH-C4-0710, from booking to signed arrival, and then one grounding.

The deployment, traced

  1. Every drone flies on its own certificate from the fleet’s identity fabric, and certificates live hours, not years.
  2. 06:52. fleet-dispatch books slot MH-C4-0710 and pad 2 for drone ZP-0419, carrying blood samples from the north clinic.
  3. The corridor gate checks the token first: Marholm is on it. Ten units are escrowed at booking, on the fleet’s frame.
  4. The booking reaches Marholm’s slot service on the city’s own frame, which holds corridor 4 for the 07:10 window.
  5. 07:23. ZP-0419 lands on pad 2, and the pad agent signs the arrival with its own identity.
  6. The signed arrival crosses the fabric. The relaying peer is a courier; the pad agent is the party to the booking.
  7. On that signature and nothing else, the escrow releases, exactly once.
  8. Four units reach the city’s slot service and six the vertiport, each on its own frame, each exactly once.
  9. The fleet’s ledger keeps the booking, the arrival and both payments, append-only.
  10. The city’s ledger records the same flight under the same keys.
  11. 11:40. ZP-0388’s post-flight inspection, recorded in the hangar system as today, finds a cracked propeller hub.
  12. Tove Nyland grounds it with one action: identity revoked in under 500ms, account and cross-frame receipts blocked.

Adoption, phase by phase

Discover: One week of flights, re-read as bookings.

Pilot: One corridor, one pad, twenty drones.

Production: Each party on its own frame.

Federation: Cities federate; fleets fly them.

Sizing

LevelWhatContainers
L1Vertiports and small fleets join with accounts and agents only0 of theirs
L2A fleet runs dispatch and its drone agents against a hosted seatagents only
L3Each city, vertiport operator and fleet on its own frame, federateda full frame each

One flight, booking to signed arrival

sequenceDiagram
  participant Dis as fleet-dispatch
  participant Gate as corridor gate
  participant Slot as slots-marholm (city frame)
  participant TEG as flight escrow (fleet frame)
  participant Pad as pad-CL-2 (vertiport frame)
  participant ES as flight ledger
  Dis->>Gate: slot MH-C4-0710 + pad 2, 10 units
  Gate->>Slot: Marholm is on the token: book corridor 4
  Slot-->>Gate: held for the 07:10 window
  Gate->>TEG: escrow 10 units at booking
  Pad->>TEG: ZP-0419 arrived at 07:23, signed
  TEG-->>Slot: 4 units, exactly once
  TEG-->>Pad: 6 units to the vertiport, exactly once
  TEG-->>ES: booking, arrival and payments, append-only
  Note over Gate: a slot in Tallvik is refused before any escrow
  Note over ES: a grounded drone's bookings are refusals on the record

Topology, as declared

flowchart LR
  D["fleet-dispatch"] -->|"slot + pad"| G{"corridor gate<br/>two cities, one budget"}
  G -->|"10 units, escrowed"| E["flight escrow"]
  G -->|"slot MH-C4-0710"| S["Marholm slots<br/>city frame"]
  Z["drone ZP-0419"] -->|"lands 07:23"| P["pad-CL-2"]
  P -->|"arrival, signed"| E
  E -->|"released once"| L[("flight ledger<br/>flights, replayable")]
  T(["Tove Nyland<br/>maintenance lead"]) -->|"one action"| R{"grounding<br/>under 500ms"}
  R -.->|"identity, account, receipts"| X["drone ZP-0388"]

Standing it up

Runs beside what you already have

A full sovereign frame is nine containers and boots in about two minutes, on anything from a Raspberry Pi to a rack. That is cheap enough to run the whole system in parallel with the legacy stack: the old system keeps running, real work mirrors onto the rails, and you compare ledgers until the evidence settles the argument. Nothing is ripped out.

Planned: a public proxy library. Free, ready-made connectors for the systems above and whatever else a merge needs, so the bridge is an import, not an integration project.

What this does not claim