Skip to content
CCPEDIAby Unity Nodes
#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.
← Back to Proposals