Week 37 · 2026
Sep 7 – Sep 13, 2026 · gathered Sep 23, 2026
- 3
- PRs merged
- 2
- PRs opened
- 3
- Closed
- 1
- Opened
- 0
- Releases
- 3
- Repos
- 270
- Commits
- 3
- Comments
Highlights
The DAO and the settings protocol both landed on main (D5, #47 + #32)
Two long-running explorations merged within half an hour of each other on
Wednesday, and contracts-library's main went from one shipped primitive to
three.
- Config parameter management (#32, Sofia Bobbiesi) — open since 11
August, merged at +13,452 / −1,658 across 75 files. Besides the settings
protocol itself (
validators/settings.akand a typed variant, pluslib/settings/{mint,spend,types,utils}.ak), it carried in most of the repository's second off-chain lane: the whole Tx3 workspace — devnet genesis, faucet, utilities, a 756-linesettings/main.tx3and a 477-line devnet suite — a MeshJS settings driver with a 746-line e2e test, and the house-keeping that goes with a second toolchain (biome.json, anaiken-fmt.sh, an.editorconfig, a widened CI job). - DAO governance (#47, Sofia Bobbiesi) — +13,676 / −163 across 64 files.
Three validators (
stake,proposal,vote) plus thepoll_effectcandidate, 2,125 lines of Aiken tests across proposal, stake, vote, effect and locks, a 1,405-linedao/main.tx3with a 1,105-line devnet suite, and a MeshJS driver (stake,proposal,vote,effect, datum codecs) behind a 1,027-line e2e test.
A procedural note, because last week's narrative cited it: #44 is gone. The base branch was rewritten, the reopen failed, and Sofia recreated the same head/base as #47. Same work, new number.
Both issues closed with their PRs — #43 (Implement: DAO) and #27 (Implement Config Parameter Management).
The last mile before the merge was security work (D5)
The DAO did not coast into main. Monday and Tuesday were spent closing
attack surface:
- Tagged outputs against double satisfaction. Refund checks moved into
validate_vote_tallyand now use tagged outputs, so one refund cannot be claimed by two tally transactions. - Tally DoS heuristics. Explicit heuristics on vote tallying, so a proposal cannot be made uncountable by flooding it — and a design note capping the locks list to keep the stake datum from bloating past what a transaction can carry.
- Settings read only when needed. The validators stopped fetching the settings UTxO on paths that do not consult it — cheaper, and a smaller reference-input surface.
- Checks moved to where they belong. The cosign threshold check moved from
the stake validator to the proposal validator; the redundant
createthreshold check and an unnecessaryis_draftcheck came out.
Plus the ordinary tidying that makes a merge reviewable:
StakePositionTokenRedeemer → StakeTokenRedeemer across the tree, a
consistent import order, a dropped max-tally test that cost minutes for no
extra coverage, and both off-chain drivers re-aligned with the new on-chain
shape.
Specs grew usage guides (D5)
The specs written last week got their practical counterpart: a 605-line DAO usage guide and a 373-line settings usage guide, both following the same plan — lifecycle, roles, how to deploy an instance, then the same actions twice, once through MeshJS and once through the Tx3 client, and a Gotchas and safety notes section at the end. The DAO guide opens with its prerequisite ("you need a settings instance first"), which is the honest statement of how the two protocols relate. The Typst transaction diagrams for both were finished and committed as PDFs alongside.
One shape per protocol in docs/ (D5, #49 → #50)
Francisco Joray opened an issue at 21:58 and closed it at 23:07: fold specs/
and docs/explorations/ into one directory per protocol, each holding
spec.md, design.typ, design.pdf and usage.md. 37 files moved for a net
−317 lines — the reorganization mostly deleted duplication. A Copilot patch
fixed the stale vesting README links that the move left behind.
Event-triggered assets picked up on-chain logic (D5)
Three commits on the exploration branch took it past scaffolding: a design
document, event-rule hooks and graduation mechanics written up as a CIP-113
substandard, and a validator refactor that implements issuance, transfer and
third-party logic. The DAO merge also carried a first MeshJS driver and e2e
test for it onto main, ahead of the on-chain side.
Intermediate lectures 10–13 went up for review (D4, #2003)
Paulo Bressan opened the PR that closes the Intermediate track: 77 files, +6,151 / −92, four design lectures each with a runnable Aiken project and, where the lecture has an app, a Mesh app.
- 10, Handling time — a vesting deadline enforced through the transaction's validity window, with the contract never reading a clock.
- 11, Multi validators — a gift card as one script with a
mintand aspendhandler, and a one-shot policy seeded from a UTxO. - 12, Modifying state — an oracle whose rate lives on the chain and changes:
Updateputs the UTxO back,Deleteburns the beacon. - 13, Reference inputs & reference scripts — a consumer that reads the oracle's datum as a reference input, then the same consumer published once and unlocked through it.
The 19 commits inside the window are the shape of the thing being found rather
than written: the oracle's beacon split out into its own one-shot policy and
the two oracle lectures reworked around that split; lectures 10 and 11 given
their own projects and transaction diagrams; a Mesh app added for the gift card;
the consumer's fee paid from the wallet so the published script stays unspent;
the vesting validator switched to the stdlib deadline check; and a small
validatorHash.js helper so every script hash quoted in the prose is read
from the example blueprints rather than pasted.
The tracker (D1, #31)
Romain Soulat opened the first dependency PR the site has had: next
16.2.10 → 16.3.4 plus npm audit fix, clearing every open Dependabot
advisory (npm audit → 0 vulnerabilities), with AGENTS.md's pinned-version
note updated to match. Still open at week's end. The rest of devx-updates'
movement was its own plumbing — W36's highlights.
A note on the commit count
247 of the week's 270 commits are contracts-library, and almost all of
that is history, not work: merging #47 and #32 pulled two long-lived branches —
#32's reaching back to early July — into the window at once. 57 commits
were newly authored this week: 29 by Sofia Bobbiesi, 27 by Francisco Joray,
1 by Robertino Martinez.
Activity
Merged PRs, issues, and releases grouped by deliverable — the evidence behind the narrative above.
- PR openedchore(deps): next 16.3.4 + npm audit fixes (0 vulnerabilities)input-output-hk/devx-updates · @RSoulatIOHK
4 commits · input-output-hk/devx-updates
D5 Contracts Library
In progress- Merged49 reorganize docsinput-output-hk/contracts-library · @franciscojoray
- Merged43 implement daoinput-output-hk/contracts-library · @sofia-bobbiesi
- Merged27 implement config parameter managementinput-output-hk/contracts-library · @sofia-bobbiesi
- Issue openedReorganize docsinput-output-hk/contracts-library · @franciscojoray
- Issue closedReorganize docsinput-output-hk/contracts-library · @franciscojoray
- Issue closedImplement: DAOinput-output-hk/contracts-library · @sofia-bobbiesi
- Issue closedImplement Config Parameter Managementinput-output-hk/contracts-library · @sofia-bobbiesi
247 commits · input-output-hk/contracts-library
D4 Developer HUB
In progress- PR openedOnboarding: Intermediate lectures 10 to 13, with vesting, gift card and oracle examplescardano-foundation/developer-portal · @paulobressan
19 commits · cardano-foundation/developer-portal