Canton application development involves several tools that handle different parts of the workflow — from writing and compiling Daml contracts to testing locally and querying ledger state. This page summarizes each tool and when you use it.Documentation Index
Fetch the complete documentation index at: https://docs.canton.network/llms.txt
Use this file to discover all available pages before exploring further.
DPM (Daml Package Manager)
DPM is the primary command-line tool for Canton project management. It handles project initialization, dependency management, compilation, code generation, and testing.daml CLI and is the recommended entry point for all build and project tasks. See the DPM reference for the full command set.
Daml Studio (VS Code Extension)
Daml Studio is a VS Code extension that provides an IDE experience for writing Daml smart contracts. It includes:- Real-time type checking and error diagnostics as you type
- Go-to-definition and find-references navigation
- Script results visualization — run Daml Scripts directly from the editor and inspect the resulting ledger state in a table view
- Code completion for templates, choices, and standard library functions
dpm studio from a project directory, or search for “Daml” in the VS Code extensions marketplace. Requires VS Code 1.87 or later.
For full setup instructions, see IDE Setup.
Canton Console
The Canton Console is an interactive Scala-based REPL for inspecting and managing Canton nodes. You can use it to:- Query the active contract set (ACS) on a validator
- Inspect transaction trees and event details
- Upload DAR packages to validators
- Manage parties and their hosting
- Check node health and connectivity
Sandbox
The Sandbox is a lightweight, single-node Canton environment for rapid local testing. Start it with:LocalNet
LocalNet is a Docker Compose-based local environment that simulates the Global Synchronizer with multiple validators. The cn-quickstart repository packages LocalNet as part of its development setup:PQS (Participant Query Store)
PQS maintains a PostgreSQL database synchronized with your validator’s ledger state. It projects ledger events (creates, archives, exercises) into SQL tables that you can query with standard SQL. PQS is useful when you need:- Complex queries across multiple contract types (joins, aggregations, filters)
- Reporting and analytics over historical ledger data
- Integration with BI tools or dashboards that speak SQL
- Full-text search or custom indexing on contract payloads
Choosing the Right Tool
- Write and compile Daml contracts — DPM + Daml Studio
- Run unit tests for contract logic —
dpm test(Daml Script) - Quick local iteration on Daml code — Sandbox
- Multi-validator integration testing — LocalNet
- Inspect contract state interactively — Canton Console
- Complex queries and reporting — PQS
Next Steps
- IDE Setup — Configure your editor for Canton development
- Debugging Tools — Troubleshoot transactions and contract state
- The Canton Development Stack — How all the pieces fit together