#579Declined Pull Request
Proposal: daml-fuzz — property-based fuzzing for Daml contracts
fronow20-07-2026Last activity 1mo ago
daml-toolingneeds-champion
Summary
daml-fuzz is an open-source (Apache-2.0) property-based fuzzer for Daml contracts on Canton: developers declare invariants a contract must never break, and it generates randomized multi-party transaction sequences until it finds one that does — then reports a minimal, deterministic reproduction recipe. A working proof of concept is public and validated by mutation testing (8/8 planted bugs discovered by seeded random generation, zero false positives). It fills the ecosystem's adversarial-input-generation gap, complementing coverage (DamlCov, #323) and formal verification (B-Method, #12).
Proposal file: 2026-07-dfrnw-daml-fuzz.md
Checklist
- Proposal file added under
/proposals/ - Milestones and funding amounts defined
- Acceptance criteria included
- Alignment with Canton priorities described
Notes for Reviewers
- SIG alignment: daml-tooling.
- Working PoC (runnable today, Daml 3.4.11): https://github.com/fronow/daml-fuzz-canton
- 2.5-minute demo (live break → catch → fix): https://youtu.be/QZ2AnSY_Fps
- Uniquely to Canton, the property set includes privacy/disclosure and multi-party authorization — surfaces EVM-ecosystem fuzzers cannot express.
- Positioning: consumes the dpm devkit (#18); complementary to DamlCov (#323) and B-Method (#12), not competing.
- Funding figures are the author's market-cost estimate; open to committee guidance.