[Dev Fund] daml-fuzz — property-based fuzzing for Daml (working PoC, 8/8 mutation score) — seeking a Daml Tooling SIG champion
Hi all,
I’ve built a working proof of concept for daml-fuzz — a property-based fuzzer
for Daml/Canton contracts. You declare the rules a contract must never break
(“value is conserved”, “only the owner can act”, “Eve can never see this”), and
it fires randomized multi-party transaction sequences until it finds one that
breaks a rule — then prints the exact recipe to reproduce it.
Why it’s worth funding: Canton has coverage (DamlCov #323) and formal-
verification proposals (#12), but nothing that generates adversarial inputs.
And it’s the only approach that can test Canton’s unique risk surface —
multi-party authorization and privacy/disclosure — which no EVM fuzzer can
express.
It’s not vaporware. The PoC runs today on Daml 3.4.11 and is validated by
mutation testing: it catches 8/8 planted bugs across all four property tiers,
with zero false positives on the correct contract.
- Repo (Apache-2.0, runnable today): GitHub - fronow/daml-fuzz-canton: Daml Fuzzer for Canton network · GitHub
- 2.5-minute demo (live break → catch → fix): https://youtu.be/QZ2AnSY_Fps
- Draft proposal PR (auto-parked as needs-champion): Proposal: daml-fuzz — property-based fuzzing for Daml contracts by fronow · Pull Request #579 · canton-foundation/canton-dev-fund · GitHub
SIG alignment: daml-tooling.
Would a Daml Tooling SIG member be willing to champion this — or point me to
the right person?
Thanks,
dfrnw