Aarloven

Receipts

Two real receipts. Check them yourself.

One fail and one pass for the same delivery, a CRM build tested against three clauses both sides locked first. The pass names the fail before it, so the failed run stays on record.

These receipts: our first room, on our own machine (runs of 2 October 2026)✓The room now: an AWS Nitro Enclave in Stockholm

aarloven receiptfail

r-62d6b6 · build v1.3 · 2 oct 2026, 12:26 utc

  1. c1a person without permission cannot turn a lead into a customeryes
  2. c2when the same customer already exists, conversion stopsnoif it fails → hold milestone 2. 10-day fix window, then retest.
  3. c3after conversion, the lead is marked convertedyes
wall
network blocked · writes blocked · reads blocked
inputs
build 8ddd…e634 · tests 9b76…0109 · data 6dd5…c427
lock
63f7…6e04, the same clauses for both runs
workspace
deleted after the run · proof: none yet
chain
previous receipt 08af…224f
signed
ed25519 · key 6967c16b56f94b95

next: clause c2 names the action. milestone 2 is held, the seller gets a 10-day fix window, then the same locked clauses run again.

download the json

aarloven receiptpass

r-3f7f34 · build v1.4 · 2 oct 2026, 12:26 utc

  1. c1a person without permission cannot turn a lead into a customeryes
  2. c2when the same customer already exists, conversion stopsyes
  3. c3after conversion, the lead is marked convertedyes
wall
network blocked · writes blocked · reads blocked
inputs
build f83c…7d59 · tests 9b76…0109 · data 6dd5…c427
lock
63f7…6e04, the same clauses for both runs
workspace
deleted after the run · proof: none yet
chain
chained to the fail receipt r-62d6b6, so the failed run stays on record
signed
ed25519 · key 6967c16b56f94b95

next: the buyer decides whether to sign and accept.

download the json

Both receipts, in full.

Each is signed by the room with Ed25519 over its canonical JSON (sorted keys, no spaces, every field except the signature). Lines that differ are marked.

Show both in full

fail · r-62d6b6 · build v1.3

{
  "v": 1,
  "run": "r-62d6b6",
  "room": {
    "id": "r-6967",
    "host": "dev machine",
    "region": null,
    "where": "dev machine \u00b7 not a cloud region",
    "isolation": "macos-seatbelt",
    "code": "sha256:70f773f00785e5db4f96d16e2277b4302d17a5bfd5f3d48111886a0e46dc6c36"
  },
  "started": "2026-10-02T12:26:09.573Z",
  "finished": "2026-10-02T12:26:09.686Z",
  "sample": "espocrm-lead-convert",
  "build": "v1.3",
  "kept": [
    "C1",
    "C2",
    "C3"
  ],
  "inputs": {
    "build": "sha256:8dddef1ca7d0455ebf9a26f72a69a0216f5b8826ad51515f142fd2d232bbe634",
    "tests": "sha256:9b767b9a5e3fd04d75cd3184dd3f22b85d4dfb40a009ef63d1d87104fe5a0109",
    "data": "sha256:6dd5c6e2a744cd3d35b8de9fdf9538eb448ef09220f6af506f4d1e1bae1ac427",
    "lock": "sha256:63f767f6e8d61914ad26900955ef1ff8445ee26d905a8c00be4058f1efd96e04"
  },
  "wall": {
    "writes": "blocked",
    "reads": "blocked",
    "network": "blocked"
  },
  "results": [
    {
      "id": "C1",
      "judgment": "Yes",
      "ms": 25,
      "output": "sha256:66275efa89700fe15218e9cbaad59540d1a4eddf73fcb12ad168107fbb86cb9c"
    },
    {
      "id": "C2",
      "judgment": "No",
      "ms": 26,
      "output": "sha256:72f2f8b0da85d183291e266a77a68e854824776dec893d9e8e7e9cb077bb1eb9"
    },
    {
      "id": "C3",
      "judgment": "Yes",
      "ms": 24,
      "output": "sha256:9851961805d43960f2731af737ac8597b29780a927415351787ffd67efcd2550"
    }
  ],
  "verdict": "fail",
  "retention": {
    "workspace": "deleted after the run",
    "proof": "none yet"
  },
  "prev": "sha256:08afbee05dfaff4a1eb7bd3f889425e007e3270730d98b3f94f7c74d60e5224f",
  "key": "6967c16b56f94b95",
  "sig": "9JlLIdxOCHierZFV9g4381gcGQHhnV8rDa5Rb4bakUhovKhIqSQMVu38vFxmJgmTr0r0eX1HYykE20A5WNu2Aw=="
}

pass · r-3f7f34 · build v1.4

{
  "v": 1,
  "run": "r-3f7f34",
  "room": {
    "id": "r-6967",
    "host": "dev machine",
    "region": null,
    "where": "dev machine \u00b7 not a cloud region",
    "isolation": "macos-seatbelt",
    "code": "sha256:70f773f00785e5db4f96d16e2277b4302d17a5bfd5f3d48111886a0e46dc6c36"
  },
  "started": "2026-10-02T12:26:09.836Z",
  "finished": "2026-10-02T12:26:09.940Z",
  "sample": "espocrm-lead-convert",
  "build": "v1.4",
  "kept": [
    "C1",
    "C2",
    "C3"
  ],
  "inputs": {
    "build": "sha256:f83c8c14e997f29f250a39b51987d5316522f972ca0460affdfcfe270cc27d59",
    "tests": "sha256:9b767b9a5e3fd04d75cd3184dd3f22b85d4dfb40a009ef63d1d87104fe5a0109",
    "data": "sha256:6dd5c6e2a744cd3d35b8de9fdf9538eb448ef09220f6af506f4d1e1bae1ac427",
    "lock": "sha256:63f767f6e8d61914ad26900955ef1ff8445ee26d905a8c00be4058f1efd96e04"
  },
  "wall": {
    "writes": "blocked",
    "reads": "blocked",
    "network": "blocked"
  },
  "results": [
    {
      "id": "C1",
      "judgment": "Yes",
      "ms": 26,
      "output": "sha256:66275efa89700fe15218e9cbaad59540d1a4eddf73fcb12ad168107fbb86cb9c"
    },
    {
      "id": "C2",
      "judgment": "Yes",
      "ms": 24,
      "output": "sha256:acf3cda26885ad0eec668eebc46c1f27f08594d4d6035c82ae15b77572d5869d"
    },
    {
      "id": "C3",
      "judgment": "Yes",
      "ms": 25,
      "output": "sha256:9851961805d43960f2731af737ac8597b29780a927415351787ffd67efcd2550"
    }
  ],
  "verdict": "pass",
  "retention": {
    "workspace": "deleted after the run",
    "proof": "none yet"
  },
  "prev": "sha256:0a62546a2a1950422736bcd146a13ee41b17b0ec7c2c49ef5c322a32e92c98a8",
  "key": "6967c16b56f94b95",
  "sig": "9c+LdrY1z9gsCm4S1ejkDHYjvY4qtBcyOELkGARoNQ0EicLg+edUC8Hv5WucT8BNW/bVsMLuzVS4gftu7jN1DQ=="
}

13 lines differ: the run and its times, the build and its hash, three timings, clause C2's answer and its output, the verdict, the chain link and the signature. The tests, the data, the locked clauses and the room's code are the same in both.

The room's public key.

{
  "alg": "Ed25519",
  "spki": "MCowBQYDK2VwAyEAZnQYJj5LAkKqEvWHtginwmaFOeU6ShQFRR4/CIwWCOU=",
  "id": "6967c16b56f94b95",
  "room": "r-6967",
  "note": "Public key of the operator-run room that signed these receipts. Pin it; the private key never leaves the room."
}

To check on your own machine: remove sig, write the rest as canonical JSON, and verify the base64 signature with this Ed25519 key (SPKI, DER, base64). For the chain, the pass receipt's prev must equal sha256: + the SHA-256 of the fail receipt's canonical JSON, signature included. The same key as a file: /receipts/room-key.json (the receipt-signing key; the case key that sealers encrypt to is /room-key.json).

Honest about the boundaries.

These two receiptsThe room now
Who runs itWe run it for you (operator-run)We run it for you; a self-serve sealed API is Next
WhereOur own machineAWS Stockholm (eu-north-1). Still AWS's cloud.
IsolationmacOS sandbox: network off, writes only in the workspaceAWS Nitro Enclave: diskless, login-free, one channel to its host
Trust rootEd25519-signed, hash-chained receipts; room code hash self-reportedEnclave measurement (PCR0) + KMS key policy: the key opens only for that measurement; an unlock attempt by our own admin role was refused (checked), though admins can still change the policy. Every receipt signed inside the enclave and vouched for by AWS's hardware, checked offline with our verifier
DeletionWorkspace deleted by our code; unverifiedDiskless; temporary files deleted per request; unverified
SampleEspoCRM lead → customer, synthetic leadsThe published sample case; your delivery and test rows in a pilot

The trust comes from the enclave measurement and the key seal. The clause library is business content: it says what to test.

Next · Design partnersDesign it with us.