Skip to content

Proposal: Canton DAR-to-TypeScript Codegen Toolkit

OPENPull Request
by srikanth-bitdynamics11-03-2026Declined
daml-tooling

Development Fund Proposal Submission

Proposal file: /proposals/canton-dar-typescript-codegen-toolkit.md

Summary

This proposal requests funding to build a focused open-source developer tool that reads a compiled .dar and generates a TypeScript package with package IDs, template IDs, choice names, and manifest-based drift checks.

It addresses a specific Canton integration problem surfaced in developer research: teams manually extract identifiers from .dar files and hardcode them into application code. The proposal is intentionally narrow and focused on one practical workflow improvement rather than a broader SDK effort.

---

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 proposal is intentionally scoped to avoid overlap with broader SDK, language-binding, and general developer-tooling efforts already under discussion.

It focuses on one specific workflow gap that appears after daml build: teams still manually inspect compiled .dar artifacts, extract package and template identifiers, wire them into TypeScript code, and repeat that work during upgrades. The goal of this proposal is to turn that repeated glue work into a open-source tool with deterministic generation, manifest-based drift checks, and CI-friendly verification.

The main differentiators are:

  • focused specifically on the contract-to-application handoff after a .dar already exists
  • generates stable TypeScript registries rather than a broad runtime SDK
  • improves upgrade safety through check and diff workflows
  • stays verifiable, and easy to adopt incrementally

This project is intended as a public-good developer tool from day one. It does not require protocol changes, hosted infrastructure, or application architecture changes, and it should be straightforward for TypeScript teams building on Canton to adopt.

Bitdynamics is approaching this as infrastructure work rather than product packaging. Our team has experience building developer and infrastructure systems, including infrastructure and integration work around Ethereum-based environments.

Prototype:

<img width="1509" height="799" alt="Screenshot 2026-03-21 at 2 13 36 PM" src="https://github.com/user-attachments/assets/a36578c6-c46d-4898-9d21-ed31cbe5f513" /> <img width="1510" height="777" alt="Screenshot 2026-03-21 at 2 13 25 PM" src="https://github.com/user-attachments/assets/635318ae-2f34-41cf-a7a6-bc5d31ce8e9d" />