Skip to content
CCPEDIAby Unity Nodes
Declined#579 Pull request

Proposal: daml-fuzz — property-based fuzzing for Daml contracts

Opened 20-07-2026 by fronow, last activity 2mo ago

  1. Incoming0 days20-07-2026
  2. Declinedsince 20-07-2026
Discussion
3 messages
1 person

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.