Repository navigation
Singular documentation and on-chain release 0.7.0
·
1413 commits
to main
since this release
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
- Download the
singular-onchain-<version>.tar.gzarchive andSHA256SUMS
from this release. The checksum file also covers the documentation archive;
download that too to check every listed file. - Run
sha256sum --check SHA256SUMS, extract the on-chain archive, then run
bash verify-identities.shinside it to check the compiled validators. - For a local devnet, follow
README.mdin the archive. The runners use Nix. - To use your own node and wallet, follow the
onboarding runbook. - For the shared registry on preprod, follow
docs/preprod.mdonce that
deployment guide is published.