Skip to content

Singular documentation and on-chain release 0.7.0

Choose a tag to compare

@lambdasistemi-ci lambdasistemi-ci released this 21 Sep 09:52
· 1413 commits to main since this release
ba788d0

0.7.0 (2026-09-20)

Features

  • #157 D-BOOT carrier, and X1's harness on the derived pins (9cba521)
  • #157 derive the obligations a registry-mode edge owes a fold (1b44867)
  • #157 registry-mode encodings and the four derived pins (D-BOOT) (f71c0d2)
  • #157 the blueprint reads a fixed tuple, and X1's local rows execute (a13b855)
  • #157 the generic rows fold real edges (75dfad5)
  • 173: admit the open application's approvals, and sweep the witness move (6bff250)
  • 173: boot the open registry from its own blueprint, with no naming input (0122cba)
  • 173: fold insertActive to a named wallet, and mirror each landed fold (7944105)
  • 173: give a receipt somewhere to record an insertActive observation (d64f895)
  • 173: model insertActive at transaction level and key the fold's mint guard (bc5852b)
  • 173: refuse the duplicate insert instead of crashing on it (63f36c8)
  • 173: ship insert-active in the release archive and run it from there (f5064f0)
  • 177: observe the retirement live as conformance row CG22 (056cf9b)
  • 177: reference the state validator at boot and restore the full guard (e71e893)
  • 177: refuse a retirement by name instead of dying in the library (aed74e2)
  • 177: run the retirement from the extracted archive (3a6aa25)
  • 177: source the retirement's burn from the holder that carries it (a4e86e4)
  • execute the insertActive conformance row (e88e306)
  • implement registry-mode Aiken cage (#157) (240ede1)
  • model the updateTerminal transaction row (019e258)
  • model: complete all seven edge inversions in both directions (792b5ad)
  • model: construct updateTerminal transaction row (759ceba)
  • model: prove L1 and restate fold_batch_cons over the inner fold (1319bc4)
  • model: prove P1, the read facts and the fold refusal (a047c9e)
  • model: prove S1/S3/W1/W2/W4 and the tree-edge inversions (bbacfae)
  • model: prove S2 permanence, O1 occupancy and T1 termination (7ee6ecb)
  • model: prove the lifecycle statements; the model is sorry-free (567e84f)
  • model: prove the naming instance statements (NM4, R-NM4, NM5) (a676001)
  • model: prove the occupancy converse and the terminal-mint provenance (0c47025)
  • model: prove the two workhorse lemmas the statements rest on (565f82d)
  • model: prove the wire statements, byte-exactly (cf48231)
  • model: prove W3, the plurality of the terminal witness (be66a50)
  • model: regenerate the manifests, corpora and theorem page; just model green (3917517)
  • simulator: transcribe the registry model; replay naming and its lifecycle (5bbfba1)

Fixes

  • #157 authenticate the coupled transitions the audit found unbound (ca8611f)
  • #157 bind the custody fold to its own registry, and fit the boot (de430ff)
  • #157 carry the retired encodings through the derived executables (7b76227)
  • #157 CG11, CG12 and CG19's bookings are edges (f22cc37)
  • #157 duties follow the action, and the row folds discharge them (9edcb29)
  • #157 every issue-70 request is a booking, and the folds balance it (6c5872f)
  • #157 the custody rule binds by token, not by address (fdcf841)
  • #157 the generic session funds, seeds and boots under registry mode (c9ebd0f)
  • #157 the generic session's cages publish once and fund cleanly (fcfc085)
  • #157 the issue-70 rows book edges too (9461344)
  • #157 the wallet sweep leaves the CA seed alone (1dac2d4)
  • 157: bind the E2E rows and the journey to real registry edges (dfe06f1)
  • 157: drop the deleted consumer hook from the CG19 control binding (2da66f4)
  • 157: find Fork #81's state UTxO by its policy token (b0ccdd8)
  • 157: re-cut CG19 against the interface's routing, no hook (2006f5c)
  • 157: read the fold's script identities from its reference inputs (c7c8ddd)
  • 173: build the transaction, bridge the keyed witness, key the JS fold (854f56f)
  • 173: read a validator's parameter count instead of writing it down (3587bcb)
  • 177: carry the rebased receipt fields on CG21 and the CG22 refusal legs (7b75a4e)
  • 177: fit the retirement guard inside the boot transaction (c848855)
  • 177: suppress the CG22 shellcheck finding, name the refused keys, resolve boot by reference (c9afb2d)
  • ci: cover Lean and HTML registry rename inputs (d542c9f)
  • ci: cover Lean and HTML registry rename inputs (28a6819)
  • coverage,wire: adopt the registry-mode inventory in both protected judges (5422fe0)
  • make rename-registry control pass on main (8c5e053)
  • model: build the naming axiom gate, and check that every module is reachable (5ed6df8)
  • model: split retirement request completion (f70af8a)
  • model: split retirement request completion (09ba0c9)
  • preserve naming record asset shape (1bee7ca)
  • preserve naming record asset shape (5acd8d2)
  • tools: test the tree under test and survive deleted rename targets (d0fef25)

Documentation

  • #157 CG19 says what it now does (a32d2d9)
  • #157 mandate — D-BOOT carrier: CageParts carries the four derived pins; Deployment.hs and Register.hs in the fence; consumer registration deleted (cb6b46e)
  • #157 mandate — D-BOOT: the four pins are derived at genesis; X1 executable stays here with the five files the encodings force (56c2863)
  • #157 mandate — D-DEST encoding is Aiken's fixed tuple; Blueprint.hs parses it (eighth file in the fence) (b5df2b0)
  • #157 mandate — N10 excludes the read: Read(0x02) on a terminal leaf is accepted (44ecdd7)
  • #157 mandate — retirement gated on the recovery key, deposits returned, known weaknesses stated (want-ledger R1–R4) (cd43313)
  • #157 mandate — X3: the existing journeys are re-cut here; main is never red on a journey job (d0bef8d)
  • 157: move NYA journeys to epic 174 (54503cc)
  • 157: record registry journey and CG19 routing (a298c3f)
  • 157: record request residual and journey ownership (156931d)
  • 157: record serialization row split (0caa84f)
  • 173: apply slicing audit recut (b446626)
  • 173: define the insert-active vertical slice (3401083)
  • 173: describe what the insertActive devnet spec actually does (805f0c2)
  • 177: say which control belongs to which refusal (98f0ac4)
  • add the speech companions the planning pages owe (71b114d)
  • apply the operator's specification findings (packet v3) (9668eee)
  • carry two operator rulings into the slice-A mandate (fac6645)
  • define insertActive conformance mandate (0d5282b)
  • mark insertActive conformance as pending (01f14f2)
  • plan #157 — the cage in registry mode replaces consumer.ak (6db37a0)
  • plan the registry-mode Lean model (3c91180)
  • recompile the #156 mandate as two slices under ruling A-001 (5db006e)
  • record frozen insertActive gate (1bdb437)
  • record insertActive ticket readiness (38e311a)
  • record the theorem-page finding as two mandate obligations (97e2f31)
  • require the oracle observation surface the repaired gate reads (3101222)
  • rewrite the model ledger and mutation ledger for registry mode (941c6d2)
  • spec: add root CI rename repair task (aabd291)
  • speech for the regenerated theorem manifest page (7362ef1)

Automation

  • 157: retire the NYA application journey jobs (a488924)
  • 157: split serialization rows by edge (abcb690), closes #157
  • 177: tell shellcheck the frozen jq body is not shell (c1d5eff)

Singular is a registry of unique names on Cardano that applications can use
with their own rules. This archive includes the compiled smart contracts and
runnable examples: claim a name, change its payment destination, recover
control after losing a key, and retire it permanently so it cannot be reused.
Run the naming application on a local devnet or against your own test-network
node.

Use it

  1. Download the singular-onchain-<version>.tar.gz archive and SHA256SUMS
    from this release. The checksum file also covers the documentation archive;
    download that too to check every listed file.
  2. Run sha256sum --check SHA256SUMS, extract the on-chain archive, then run
    bash verify-identities.sh inside it to check the compiled validators.
  3. For a local devnet, follow README.md in the archive. The runners use Nix.
  4. To use your own node and wallet, follow the
    onboarding runbook.
  5. For the shared registry on preprod, follow docs/preprod.md once that
    deployment guide is published.