Glossary · Canton and smart contracts

Daml

Published 24 Oct 2025 · Updated 20 Oct 2026 · 11 min read

Daml is an open-source smart contract language from Digital Asset for agreements between several parties. A Daml contract states who must sign it, who may see it and who may act on it. The ledger enforces those rules. Daml 3.x applications run on the Canton Network.

  • Daml models multi-party agreements with explicit rights and obligations.
  • The ledger enforces authorization and privacy rules defined by the contract model.
  • Daml 3.x applications run on the Canton Network, not on other ledgers.

How the Daml model works

A Daml model is a set of templates. Each template defines the data for one agreement type, who must sign it, who may see it and which choices change it. The ledger stores contracts made from templates and checks every action against those rules. In the Iou example, Bank is the only signatory, and Alice is the owner and observer. Transfer lets Alice name a new owner without Bank signing again.

Number 1

Templates and contracts

A template is a blueprint for a contract, an immutable instance on the ledger. After creation, a contract can only be archived, making its choices unavailable. The Iou's ensure clause requires an amount above zero.

Number 2

Parties

A party represents a person or legal entity. Parties create contracts and exercise choices. In the example, Bank, Alice, Bob and Carol are distinct parties with different rights over the Iou.

Number 3

Signatories and observers

A signatory must authorize contract creation. An observer can see the contract without consenting to its creation. These parties form the stakeholder set, which defines who shares the contract.

Number 4

Choices and controllers

A choice defines an action, and its controller is the party allowed to exercise it. Controllers must be able to see the contract, usually as stakeholders. Multiple controllers must all authorize the action. Only the current owner can exercise Transfer.

Number 5

Archive and create

A consuming choice archives its contract. Choices consume by default. Transfer creates Bob's replacement Iou, which is absent from Alice's active contracts. She cannot see Bob's later actions. Non-consuming choices leave contracts active.

Figure 1 · Sample templateTransfer an Iou contractTransfer the Iou and check who sees each contract, then retry as the old owner or Bank to see unauthorized submissions rejected.
Daml · Iou template
template Iou  with    issuer : Party    owner : Party    amount : Decimal  where    signatory issuer    observer owner    ensure amount > 0.0
    choice Transfer : ContractId Iou      with        newOwner : Party      controller owner      do        create this with owner = newOwner
Who sees the contractChoice that ranRule that rejected it
Submit as
New owner
Iou #1Activeissuer Bank · owner Alice · amount 100.0StakeholdersBank iconBankAlice iconAlice

> Bank creates Iou #1 for Alice. Bank signs as issuer. Alice is the observer.

This sample template uses a simulated ledger, and nothing is sent.

Privacy within a single transaction

Sub-transaction privacy means each party sees only the transaction parts it is entitled to see. Every action has informees, the parties that should learn about it. Under the projection rule, an informee sees that action and its consequences, but nothing else. For a create, informees are signatories and observers. For a consuming exercise, they include the consumed contract's stakeholders, the actors and any choice observers.

An atomic transaction commits every action or none. In delivery versus payment, Alice pays bank-issued cash while Bob delivers a bond recorded by a registrar. Both traders see the whole trade. The cash bank sees only cash, the registrar only bonds, and outsiders nothing. A failed bond leg means no cash moves. Privacy has limits: synchronizers see metadata, mediators see informee lists and confirmation results, and divulgence can reveal contracts to non-stakeholders.

Figure 2 · Sample delivery versus paymentOne trade, different viewsSwitch viewers to compare trade visibility, then make the bond leg fail to see both legs rejected together.
View as
Exercise Settle on DvP agreementInformees: Alice, BobVisible
Exercise Transfer on Cash · Alice to BobInformees: Cash bank, AliceVisible
Create Cash · owner BobInformees: Cash bank, BobVisible
Exercise Transfer on Bond · Bob to AliceInformees: Registrar, BobVisible
Create Bond · owner AliceInformees: Registrar, AliceVisible

Alice sees 5 of 5 actions. Alice is an informee of the root action, so she sees the whole transaction, both legs included.

These sample parties and assets illustrate delivery versus payment.

How Canton coordinates transactions

Canton separates coordination from storage. Participant nodes host parties, store contracts those parties may see and validate transactions that affect them. Synchronizers order and deliver encrypted messages through a sequencer and mediator without reading their contents. Super Validators run the public, decentralized Global Synchronizer, governed by the Canton Foundation. Its MainNet and Canton Coin went live in June 2024, and traffic fees paid in Canton Coin are burned.

Figure 3 · Simplified Canton protocolFollow an Iou transferStep through Alice's transfer to Bob to see which nodes receive messages, confirm the transaction and record the result.
Alice iconParticipant node iconAlice's nodeRuns the Daml code and builds the transaction
Bank iconParticipant node iconBank's nodeWaiting
Bob iconParticipant node iconBob's nodeWaiting
Carol iconParticipant node iconCarol's nodeNot involved
Synchronizer iconSynchronizer · sequencer and mediatorIdle
Step 1 of 4 · SubmitAlice's application sends Transfer through the Ledger API. Her participant node runs Daml locally against active contracts, builds the transaction and encrypts a separate view for each action's recipients.

This is a simplified view of the Canton protocol.

Changes to the network go through Canton Improvement Proposals, or CIPs, and need a two-thirds Super Validator majority. CIP-56, approved on 31 March 2025, defines the Canton Network Token Standard. Its Daml interfaces and off-ledger APIs let a compliant wallet serve any registry implementing the standard. Visa was approved as a Super Validator in March 2026.

Daml vs Solidity

Both languages describe smart contracts, but their state models and access rules differ. The comparison below covers the Solidity language on public EVM chains and the Daml model on Canton.

ComparedDamlSolidity
Data modelDamlImmutable contracts represent state, with changes expressed through archive and create actions.SolidityMutable contract storage holds state, and functions update those values in place.
AuthorizationDamlTemplates declare signatories and controllers, and the ledger rejects actions without their required authority.SolidityDevelopers write access checks in code or use libraries such as OpenZeppelin's Ownable.
PrivacyDamlParties receive the transaction views they are entitled to see, rather than the whole ledger.SolidityPublic EVM transactions and contract state remain visible to everyone, including variables marked private.
Language styleDamlIt is functional, statically and strongly typed, with syntax borrowed from Haskell.SolidityIts statically typed, curly-brace syntax draws influence from C++, Python and JavaScript.
TestingDamlTeams use Daml Script to exercise contract actions and check the resulting ledger behavior.SolidityTeams usually test their Solidity contracts with the Foundry or Hardhat development tools.
Where it runsDamlIn October 2026, Daml 3.x applications run on Canton, not Ethereum or other EVM chains.SolidityContracts run on Ethereum and other EVM chains, including public deployments supporting open DeFi.

The choice depends on the workflow. Solidity fits public EVM chains and open DeFi. Daml fits coordination between known parties that need privacy and clear rights, including settlement, repo and tokenized assets.

Tools for developing Daml applications

Canton 3.6.2 was released on 15 October 2026. Version 3.6.1, released on 5 October 2026, added external calls from Daml choices and disabled deprecated Ledger API endpoints by default. Since that release, projects without an LF version setting compile to Daml-LF 2.3. These tools support writing, testing and connecting Daml code.

dpm and Daml SDK

The Daml SDK bundles the compiler, script runner, editor, codegen and sandbox. dpm builds .dar (Daml Archive) files, tests and runs projects. Installation needs Visual Studio Code and JDK 17 or newer.

Daml Studio

This Visual Studio Code extension provides an editor for Daml. The dpm studio command opens it, keeping language editing within the development tools bundled with the SDK.

Daml Script

Scripts allocate parties, create contracts, exercise choices and check results during development. Run dpm test to execute them and report pass or fail, along with coverage for the tested Daml code.

Codegen and Ledger API

Codegen turns templates into Java or TypeScript types. Applications use these alongside the Ledger API, the main interface to participant nodes through gRPC or JSON Ledger API v2.

Canton Sandbox

Run dpm sandbox for a full Canton installation in one process. This local development environment is included in the SDK, alongside the compiler and testing tools.

Where Daml appears in institutional workflows

In October 2026, banks and market infrastructures use Daml and Canton for repo, bond issuance, tokenized securities and tokenized deposits. Some workflows process daily transactions in production, while others remain pilots. Asset tokenization includes issuing digital bonds and converting securities already held at a depository into tokens.

Broadridge DLR

Repo transactions

Broadridge's Distributed Ledger Repo launched in June 2021 using Daml smart contracts from Digital Asset. Broadridge reported $7.5 trillion in repo transactions for September 2026, an average of $359 billion a day, after $8.0 trillion in July 2026. The Canton Network ecosystem page lists DLR as an application on Canton.

$7.5 trillion processed in September 2026

Goldman Sachs GS DAP

Digital asset issuance

Built on Daml and Canton, this tokenization platform went live in January 2023 with a European Investment Bank digital bond. That issuance used same-day settlement. In November 2024, Goldman Sachs announced an industry-owned spinout plan, subject to regulatory approval. Tradeweb was named as the first strategic partner in that announcement.

Live since January 2023, spin-out announced November 2024

DTCC

Depository asset tokenization

In July 2026, DTCC reported converting assets held at The Depository Trust Company into tokens on Besu and Canton. More than 30 firms took part, with Besu serving as the private network and Canton as the public network. DTCC scheduled its Tokenization Service launch for October 2026.

Tokenization Service launch scheduled for October 2026

HSBC

Tokenized deposit pilot

The April 2026 pilot simulated transfers of tokenized deposits and atomic settlement against other digital assets on the Canton Network. This was the first public blockchain use of HSBC's Tokenised Deposit Service. The report describes a pilot, not a production service.

Pilot on the Canton Network in April 2026

Building a Daml application on Canton

An application needs more than contract templates. It needs node access, an application interface, wallet connections and a test plan for every party's role. We scope Daml development work around the agreement model and Canton Network development around the infrastructure that runs it. This separates contract logic, integration and operations.

PixelPlex case icon

We co-authored CIP-0103, the Canton dApp Standard, with Digital Asset. It was approved in January 2026 and defines a vendor-neutral API between dApps and wallets. The standard lists the SDK for our self-custodial Console Wallet project. In October 2026, the wallet has more than 250K registered users across its browser extension and mobile apps.

  1. Daml contract model

    Define templates, stakeholders, choices and creation conditions around the agreement. Model each party's authority explicitly, including the signatories needed for any contracts created by an exercise.
  2. Node and network access

    Provide participant node access for the application's parties and a synchronizer connection. Keep the node's validation and storage responsibilities separate from the network's coordination role.
  3. Application integration

    Connect the application through the Ledger API and use generated types where appropriate. Plan package changes with Smart Contract Upgrades (SCU), which replace the earlier model in Canton 3.x.
  4. Wallets and tokens

    Wallets connect to dApps through the CIP-0103 API, while tokens follow CIP-56 interfaces. Explorers and data APIs, including our CC Suite tools, help monitor parties and contracts in production.
  5. Testing and audit

    Exercise the full workflow before review, including rejected commands and failed settlement legs. Define the audit scope around the parties, contracts and integrations involved.

Discuss the requirements of your Daml application

We can review your workflow, party roles and integration boundaries before defining the scope of development or audit work.

Discuss your project

Daml FAQ

Is Daml a blockchain or a language?

Daml is a language, not a blockchain, and its contracts run on a ledger. Daml 3.x applications run on the Canton Network, where participant nodes store contracts and synchronizers order transactions. Daml describes the agreement, and Canton runs it.

Is Daml open source, and under which license?

Yes. Digital Asset made the Daml language, runtime and SDK open source in April 2019 under the Apache 2.0 license. The digital-asset/daml repository on GitHub still carries the Apache-2.0 license, and anyone can read, build and change the code.

Why do older pages call Daml DAML?

The name originates from Digital Asset Modeling Language, used in a Digital Asset patent filing from 2016. Digital Asset wrote DAML in 2019 and had switched to Daml by January 2021. In August 2021, the team said it had updated all website appearances. Official documentation in October 2026 uses Daml as a name without an expansion.

Do developers need Haskell before learning Daml?

No. The official tutorial lists one prerequisite, installing dpm. Daml borrows much of its syntax from Haskell, so Haskell experience helps. The languages differ: Haskell is lazy, Daml is strict, and Daml leaves out some Haskell type-system features. Haskell books appear as optional further reading, rather than a required starting point.

Can Daml run on Ethereum or other ledgers?

In October 2026, Daml 3.x applications run on Canton, not Ethereum or other EVM chains. Earlier versions integrated with VMware Blockchain, PostgreSQL, Oracle DB and Hyperledger Fabric, whose driver was retired in 2022. Daml 2.10 is a long-term support release for existing 2.x deployments, but Daml 2 SDK packages cannot run on Canton 3 nodes.

How are Daml smart contracts tested?

Tests use Daml Script to allocate parties, create contracts, exercise choices and check results. The dpm test command runs these scripts and reports coverage. Good tests also cover rejected paths, such as transfers submitted by the wrong party or amounts that fail the ensure clause. The Canton Sandbox provides a full local ledger for integration tests.

What does a Daml code audit check?

A Daml smart contract audit checks authorization, privacy configuration, cross-ledger integration, business logic and test coverage. PixelPlex's audit page gives 1 to 2 weeks for a focused single-template audit and 3 to 4 weeks for multi-party Canton workflows with interoperability testing. The ledger enforces a template's rules but cannot tell whether those rules match the business agreement. That is what reviewers check.

Get updates about blockchain, technologies and our company

We will process the personal data you provide in accordance with our Privacy policy. You can unsubscribe or change your preferences at any time by clicking the link in any email.

Follow us on social networks and don't miss the latest tech news

  • facebook
  • X
  • linkedin
  • instagram
Stay tuned and add value to your feed