Skip to content

Proposal: DAML Choice Dry-Run Simulator

CLOSEDPull Request
by Sernior12-06-2026Declined
daml-toolingneeds-champion

Development Fund Proposal Submission

Proposal file: /proposals/2026-06-Canton-Simulate-daml-choice-dry-run.md

---

Summary

A dry-run simulator for DAML choices: given a live contract and a choice, it returns the exact effects (contracts created, contracts archived, the return value, and any authorization errors) without committing, by running the DAML LF engine on the real contract. It fills the pre-execution gap that PR #171 confirmed the Ledger API lacks, the eth_call that Canton does not have today. Deliverables are a daml simulate CLI and a TypeScript SDK, with a working proof of concept already validated on Canton 3.x.

---

Checklist

  • [x] Proposal file added under /proposals/
  • [x] Milestones and funding amounts defined
  • [x] Acceptance criteria included
  • [x] Alignment with Canton priorities described

---

Notes for Reviewers

This is an external proposal and I am seeking a Development Fund champion.

A working proof of concept is public and clone-and-run at https://github.com/Sernior/Canton-Simulate, validated on Canton 3.x: it fetches a real contract over the Ledger API v2 and computes the effect of a choice without committing. The core mechanism is already demonstrated, so the technical risk is low; the milestones cover productization (CLI, TypeScript SDK, full DAML value and error coverage, transitive dependencies, contract keys, and testnet validation). Happy to give a short live demo.