Story ladder: what has actually settled
What ships, and the accepted design
This page is the ledger of settled V1 transactions. The accepted design is on the home page and in the checkpoint simulation. The ARMED/FROZEN stories below are what shipped; they are not the hunter freeze of the M1 return.
This page is history. It records the transactions that reached a real ledger, with their dates, and nothing else. What is designed but not built is on the home page; what is scheduled is on the roadmap.
KERI is Key Event Receipt Infrastructure, the off-chain protocol that maintains an identity's signed key history. A KERI AID (Autonomic Identifier) names the identity, and its KEL (Key Event Log) contains the inception and rotation events for that AID. cardano-keri projects the current KERI key state into a Cardano checkpoint UTxO: an unspent transaction output that carries one identity-specific token and an inline datum with the current keys, thresholds, witnesses, and sequence number.
What “settled” means
The transaction reached a real ledger — either a private protocol-11 development network configured with Cardano's production transaction limits, or Cardano preprod. This is stronger evidence than an emulator or a unit test. It is not a mainnet deployment or a production-readiness claim.
The machine these stories exercised is being replaced
The devnet ladder below settled the ACTIVE/ARMED/FROZEN enforcement economy — freeze for lag, the claimed delay bond, the burn-only conviction. The M1 return removes that economy: the freeze becomes a hunter's payment when the owner's pool has run dry, and conviction becomes a terminal state reached only by a proven duplicity. These rungs are kept as the record of what the vertical path proved, not as a description of where the design is going. Epic #319 removes the code they exercised.
On preprod — 2026-08-06
The M1 V1 programs were published on preprod on 2026-07-28 from source
commit 50a5820 (five reference scripts, registration bond 1,000 tADA, freeze
bond 5 tADA, freeze window 10,000 slots). See
the M1 preprod deployment.
A genuine KLI identity then completed the register → advance → close journey
through the packaged ckeri, in process, on 2026-08-06:
| Step | AID | Transaction | Capture |
|---|---|---|---|
| BLAKE3 premint | EMMcQtoqOkACLvyswJTFXUQmRbZhWt4ALjjhXzLGhr5P |
167220b32479b2ae91eb4e754460b71bf51d44b331660ab31cf4e2264fb30b68 |
deploy/preprod/m1-register-acceptance.txt |
| Register | same | 6ecc2e0729347f5008a4f07ba18c2ce6ad745ace4911818b838037dfc83241e2 |
deploy/preprod/m1-register-acceptance.txt |
| Advance | same | f0f3a18ff994f5865b638dab33e166b8baa9996eb58d1691f0d26c8b218bfe4a |
deploy/preprod/m1-advance-acceptance.txt |
| Close | same | 446f0d831ee69aa067516ec6cb6d696a8dee64bf7be00694030cfe061de9010f |
deploy/preprod/m1-close-acceptance.txt |
Separate historical-negative captures record the failures that must also hold against the deployed programs: an already-registered AID, an ambiguous checkpoint set, an unlisted witness, and — for advance — under-signed, under-witnessed and stale attempts, each reaching the deployed Plutus evaluator and failing there.
No enforcement transaction has ever settled on preprod. ckeri exposes no
freeze, claim or convict command; those paths exist only in the end-to-end
harness.
On the protocol-11 development network — 2026-07-27 and 2026-07-28
The fixture has two controller keys and genuine keripy-produced events and
witness receipts. keripy is the reference KERI implementation used to produce
and verify the test history.
| Date | Rung | What settled | Record |
|---|---|---|---|
| 2026-07-27 | Register small | BLAKE3 premint and a bonded ACTIVE checkpoint | PR #146 |
| 2026-07-27 | Close small | Controller-authorized burn and full refund | PR #147 |
| 2026-07-27 | Rotate small | A genuine witnessed Advance | PR #148 |
| 2026-07-27 | Freeze and respond | Freeze, response, stale-replay rejection, and a fresh second round | PR #150 |
| 2026-07-28 | Seize the delay bond | An unanswered deadline paying the recorded hunter, then thaw by an Advance re-posting B |
PR #154 |
| 2026-07-28 | Convict a fork | A fully witnessed irreconcilable conflict, protected payouts, token burned, no successor | PR #155 |
Together these establish a vertical path through the production validators, the transaction builder, node submission, and the settlement boundary.
Register — PR #146
The expensive BLAKE3 calculation ran first and minted a short-lived proof token. Registration then consumed that fact, created the checkpoint, and locked the two bonds.
| Transaction | Txid |
|---|---|
| BLAKE3 premint | 7222d36ea5f3791877cf8ca779a76d6241cf16a709c8908a058d6ca791b1526b |
| Register | 84118d89a5c0c57e35a1af9666cd266a7e70818600dbe9499819f69efcb20e90 |
Close — PR #147
The story registered the same small identity, then its current controllers authorized a refund to output zero.
| Transaction | Txid |
|---|---|
| Register | 84118d89a5c0c57e35a1af9666cd266a7e70818600dbe9499819f69efcb20e90 |
| Close | 1d8afdf5b9f87ee32c10cb96d4fc82a8e6c23a9d1212074ba2dcd244ebde91b1 |
Rotate — PR #148
The Advance transaction consumed the registered checkpoint and created its single successor. The same live run also settled a Close regression.
| Transaction | Txid |
|---|---|
| Advance | 04c3673798c9e555ad1cd0cf32efb9a9265d75ef0b464502eb5bfd8e8bd0b055 |
| Close regression | 7008cd9c93b5c5c252af61b2734831f3ac7f532e95eebd4bf988ecaf7ae50fc7 |
Freeze, response, and replay rejection — PR #150
This is a two-round security drill, not two copies of a unit test. After the first response advanced the checkpoint, the runner replayed the exact old Freeze evidence. The applied checkpoint and enforcement observer rejected it before submission. A fresh pair of conflicting rotations at the next KERI sequence then opened and resolved a second challenge normally.
| Step | Txid |
|---|---|
| Register | c4b315a43c72b8493284c0e30b1dd90bf354e96f35d6f9b90f7f4c21c632e71e |
| Recorded rotation | 1b4acf5b3f62c09a5627aeac364d798728a375bd3340d7e19bba4765e8c60532 |
| First hunter Freeze | 08cc097782780f02d5a69dba763566d62d74e0e763816c1e3eb3e4155ff501e7 |
| First honest response Advance | 1503db7294bf3ffef24ef44c424714024f2d1784788be4fd730427c91aedde60 |
| Fresh second Freeze | bc96940734bb3b3866b215ad189bd9a2a8b8c4f4282410b5c836631d9fedd9ec |
| Second honest response Advance | 6b706faf955a303cd5bb425440595ab729a4e4438948e2f3009080e039f24b3c |
Both responses preserved the checkpoint's complete value, including the delay bond. The old evidence failed because it no longer described a rotation ahead of the new tip. That binding — evidence to the exact state it challenges — is the part of the drill that survives the M1 return: the freeze of the new design also runs the advance predicate on the rotation it presents.
The transaction IDs for the seize and convict rungs are in the merged records of PR #154 and PR #155.
What the ladder did not reach
- GLEIF scale. The settled fixtures are two-key and 1-of-1. The genuine three-of-seven shape with a real witness set has never completed the vertical ladder, and the cost of doing so is what epic #321 exists to measure.
- The engineering ceiling.
observer-advancemeasures 16,130 bytes against a 16,133-byte limit. Every rung above was settled inside three bytes of headroom. - Enforcement on a public network. Freeze, claim and convict settled on the
development network only, and never through
ckeri. - Uniqueness. Nothing in the ladder prevents two checkpoints for one AID.
The ledger has no AID-unicity rule today;
ckeri registerrefuses an already-live AID as a convenience, not as a guarantee. The registry of the M1 return is what turns that into a rule.
Where to read next
- The M1 preprod deployment — the published release, its manifest, and how to verify it.
- Observer architecture — the thin checkpoint, reference scripts, zero-lovelace withdrawal, and BLAKE3 fact token, with measured sizes and costs.
- Identity operations — the operation-by- operation view of what ships and what replaces it.