Skip to main content
This page introduces the development stack you’ll use to build Canton applications. Understanding these components helps you see how everything fits together.

Stack Overview

Smart Contract Layer

Daml

Daml is Canton’s smart contract language—a functional language designed for multi-party workflows. Example:

Daml Compiler

The Daml compiler (dpm build) compiles Daml source code into DAR files (Daml Archives) that can be deployed to participant nodes.

Application Layer

Backend Integration

Your backend connects to Canton via the Ledger API. Language support:
  • TypeScript/JavaScript (code generation available via dpm codegen-js)
  • Java (code generation available via dpm codegen-java)
  • Any language via gRPC or JSON API
Community-supported bindings also exist for Python, Rust, and Go.

Code Generation

Generate type-safe bindings from your Daml code:
Generated code provides:
  • Type-safe contract representations
  • Command submission helpers
  • Event handling utilities

Frontend

Use any web framework. Common choices: The frontend typically connects via your backend, which handles Ledger API communication.

Development Tools

Daml SDK

The Daml SDK bundles everything needed for Canton development:

dpm (Daml Package Manager)

Manage dependencies and build workflows:

VS Code Extension

The Daml VS Code extension (Daml Studio) provides:
  • Syntax highlighting
  • Type checking
  • Error diagnostics
  • Code navigation
  • Integrated terminal
The extension is installed automatically with DPM. You need VS Code 1.87 or above. To launch Daml Studio, run dpm studio from your project directory.

Infrastructure Components

LocalNet

LocalNet is a local Global Synchronizer simulation for development:
LocalNet provides:
  • Local synchronizer
  • Local participant node(s)
  • Test Canton Coin
  • No external dependencies

Participant Node

The participant node is the portion of the validator that hosts the Canton runtime which:
  • Hosts your parties
  • Stores contract data
  • Executes Daml logic
  • Exposes the Ledger API
In production, this runs as part of your validator.

PQS (Participant Query Store)

PQS provides SQL-based querying for complex data access: PQS maintains a PostgreSQL database synchronized with ledger state.

Development Workflow

Typical Flow

Steps

  1. Write Daml contracts defining your business logic
  2. Compile with daml build
  3. Test locally with Daml Script or LocalNet
  4. Build backend integration
  5. Deploy to DevNet for integration testing
  6. Promote through TestNet to MainNet

QuickStart Project

The cn-quickstart repository provides a complete example that includes build tooling:
For more detailed instructions see Canton Network Quickstart Prerequisites and Installation.

Tool Comparison with Other Platforms

Next Steps

QuickStart

Run the example application.

Module 3: Daml

Start writing smart contracts.