• Daml Documentation

Home

  • Introduction to Multi-Party Applications and Daml
    • Multi-Party Applications
    • Why Do Multi-Party Applications Matter?
    • What Is a Multi-Party Application?
    • Important Concepts in Multi-Party Applications
    • Key Architectural Concepts in Daml
    • Transfer Example Using Daml
    • Next Steps

Set Up Your Developer Environment

  • System Requirements
    • Feature/Component System Requirements
  • Install the SDK
    • Install the Dependencies
    • Choose Daml Enterprise or Daml Open Source
    • Install Daml Open Source SDK
      • Windows 10
      • Mac and Linux
    • Install Daml Enterprise
    • Download Manually
    • Next Steps
  • Set JAVA_HOME and PATH Variables
    • Windows
      • Set the JAVA_HOME Variable
      • Set the PATH Variable
    • Mac OS
    • Linux
      • Set the JAVA_HOME Variable
      • Set the PATH Variable
      • Verify the Changes
  • Manual Installation
    • Install the SDK from a Tarball
    • Verify the Integrity of a Tarball

Tutorial: Write Your First Daml App

  • Getting Started with Daml
    • Prerequisites
    • Run the App
  • App Architecture
    • The Daml Model
    • TypeScript Code Generation
    • The UI
  • Your First Feature
    • Daml Changes
    • Messaging UI
      • MessageList Component
      • MessageEdit Component
      • MainView Component
    • Run the Updated UI
    • Next Steps
  • Test Your App
    • Set Up the Tests
    • Example: Log In and Out
    • Accessing UI Elements
    • Writing CSS Selectors
    • The Full Test Suite

Create Daml Apps

  • Important Considerations When Building Applications With Daml
    • Overall Considerations
    • Developer Considerations
    • Operational Considerations
    • Next Steps
  • Write Smart Contracts with Daml
    • An Introduction to Daml
    • Basic Contracts
      • Daml Ledger Basics
      • Daml Modules and Files
      • Templates
      • Signatories
      • Next Up
    • Test Templates Using Daml Script
      • Script Basics
      • Run the Scripts
      • Test for Failure
      • Archive Contracts
      • View the Ledger and Ledger History
      • Exercises
      • Next Up
    • Data Types
      • Native Types
      • Assemble Types
        • Tuples
        • Lists
        • Records
        • Variants and Pattern Matching
      • Manipulate Data
      • Contract Keys
      • Next Up
    • Transform Data Using Choices
      • Choices as Methods
      • Choices as Delegation
      • Choices In the Ledger Model
        • The Archive Choice
      • A Simple Cash Model
      • Next Up
    • Add Constraints to a Contract
      • Template Preconditions
      • Assertions
      • Time on Daml Ledgers
        • Time in Test Scripts
      • Actions and do Blocks
        • Pure Expressions Compared to Actions
        • Actions and Impurity
        • Chain Actions With do Blocks
        • Wrap Values in Actions
      • Failing Actions
      • A Sample Action
      • Errors
      • Next Up
    • Parties and Authority
      • Preventing IOU Revocation
      • Use Propose-Accept Workflows for One-Off Authorization
      • Use Role Contracts for Ongoing Authorization
      • Daml’s Authorization Model
        • An Authorization Example
      • Next Up
    • Composing Choices
      • Daml Projects
      • Project Structure
      • Project Overview
      • Composed Choices and Scripts
      • Daml’s Execution Model
      • Observers
      • Privacy
        • Divulgence
      • Next Up
    • Daml Interfaces
      • Context
      • Interface Definition
      • Interface Instances
      • Using an Interface
    • Exception Handling
      • Next Up
    • Work With Dependencies
      • DAR, DALF, Daml-LF, and the Engine
      • Hashes and Identifiers
      • Dependencies and Data Dependencies
      • Structuring Projects
      • Building Multiple Packages
      • Next Up
    • Functional Programming 101
      • The Haskell Connection
      • Functions
        • Function Application
        • Infix Functions
        • Type Constraints
        • Pattern Matching in Arguments
        • Functions Everywhere
        • Lambdas
      • Control Flow
        • Branching
        • Looping
      • Next Up
    • The Daml Standard Library
      • The Prelude
      • Important Types From the Prelude
        • Lists
        • Tuples
        • Optional
        • Either
      • Typeclasses
      • Important Typeclasses From the Prelude
        • Eq
        • Ord
        • Show
        • Functor
        • Applicative Functor
        • Actions
        • Semigroups and Monoids
        • Additive and Multiplicative
      • Important Modules in the Standard Library
      • Search the Standard Library
        • Search for Functions by Name
        • Search for Functions by Signature
      • Next Up
    • Good Design Patterns
      • The Propose and Accept Pattern
        • Motivation
        • Implementation
        • Trade-offs
      • The Multiple Party Agreement Pattern
        • Motivation
        • Implementation
      • The Delegation Pattern
        • Motivation
        • Implementation
      • The Authorization Pattern
        • Motivation
        • Authorization
      • The Locking Pattern
        • Motivation
        • Implementation
        • Lock by Archiving
        • Lock by State
        • Lock by Safekeeping
      • Diagram Legends
    • Test Daml Contracts
      • Daml Test Tooling
      • Debug, Trace, and Stacktraces
      • Diagnose Contention Errors
        • Common Errors
        • Avoid Race Conditions and Stale References
        • Collisions Due to Ignorance
      • Checking Coverage
        • Flags Controlling Test Set
        • Flags Controlling Serialization
        • Flags Controlling Report
        • Define templates, choices, and interfaces
        • Start testing
        • Template creation coverage
        • Template choice exercise coverage
        • Interface choice exercise coverage
      • Checking Coverage of External Dependencies
        • Definitions
        • Local Definitions
        • External Definitions
        • External, Internal, and “Any” Coverage
        • Serializing Results Workflows
        • Single Test Iteration
        • Multiple Test Aggregation
        • Test Failure Recovery
      • Excluding Choices from the Coverage Report
        • Example: Excluding Archive Choices
        • Example: Excluding Choices from a Specific Module
        • Excluding Choices from Serialized Reports
      • Next Up
    • Next Steps
  • Integrate Daml with Off-Ledger Services
    • Build Applications
    • Daml Application Architecture
      • Backend
      • Frontend
      • Authorization
      • Developer Workflow
        • Command Deduplication
        • Deal With Failures
        • Deal With Time
    • Parties and Users On a Daml Ledger
      • Parties in SDK 2.0 and Subsequent
      • Party ID Hints and Display Names
      • Authorization and User Management
      • Working with Parties
        • Daml Script
        • Daml Triggers (Deprecated)
        • Navigator (Deprecated)
        • Java Bindings
        • Create-daml-app and UIs
    • Access Active Contracts with the HTTP JSON API Service
      • HTTP JSON API Service
        • Run the JSON API
        • HTTP Status Codes
        • Create a New Contract
        • Create a Contract with a Command ID
        • Exercise by Contract ID
        • Exercise by Contract Key
        • Create and Exercise in the Same Transaction
        • Fetch Contract by Contract ID
        • Fetch Contract by Key
        • Get All Active Contracts
        • Get All Active Contracts Matching a Given Query
        • Fetch Parties by Identifiers
        • Fetch All Known Parties
        • Allocate a New Party
        • Create a New User
        • Get Authenticated User Information
        • Get Specific User Information
        • Delete Specific User
        • List Users
        • Grant User Rights
        • Revoke User Rights
        • List Authenticated User Rights
        • List Specific User Rights
        • List All DALF Packages
        • Download a DALF Package
        • Upload a DAR File
        • Metering Report
        • Streaming API
        • Healthcheck Endpoints
      • Daml-LF JSON Encoding
        • Codec Library
        • Type-directed Parsing
        • ContractId
        • Decimal
        • Int64
        • Timestamp
        • Party
        • Unit
        • Date
        • Text
        • Bool
        • Record
        • List
        • TextMap
        • GenMap
        • Optional
        • Variant
        • Enum
      • Query Language
        • Fallback Rule
        • Simple Equality
        • Comparison Query
        • Appendix: Type-aware Queries
        • Appendix: Known Issues
      • Use JavaScript Client Libraries with Daml
        • Use the JavaScript Code Generator
        • @daml/react
        • @daml/ledger
        • @daml/types
      • JSON API Production Setup
        • Production Setup
        • Query Store
        • Security and Privacy
        • Architecture
        • Scaling and Redundancy
        • Logging
        • Metrics
    • Build Integration with the Ledger API
      • What’s in the Ledger API
      • How to Access the Ledger API
      • Daml-LF
        • When You Need to Know About Daml-LF
      • The Ledger API Services
        • Overview
        • Submit Commands to the Ledger
        • Read From the Ledger
        • Utility Services
        • Testing Services
      • Java Bindings
        • Overview
        • Reference Documentation
        • Get Started
        • Example Projects
        • Generate Java Code from Daml
        • Java Bindings Example Project
        • Iou Quickstart Tutorial
        • Open Tracing in Ledger API Client Applications
      • Python Bindings
      • Use the Ledger API With gRPC
        • Get Started
        • Protobuf Reference Documentation
        • Example Project
        • Daml Types and Protobuf
        • Error Handling
      • Ledger API Reference
        • ActiveContractsService, v1
        • CommandInspectionService, v1/admin
        • ConfigManagementService, v1/admin
        • IdentityProviderConfigService, v1/admin
        • MeteringReportService, v1/admin
        • PackageManagementService, v1/admin
        • ParticipantPruningService, v1/admin
        • PartyManagementService, v1/admin
        • UserManagementService, v1/admin
        • CommandCompletionService, v1
        • CommandService, v1
        • CommandSubmissionService, v1
        • EventQueryService, v1
        • LedgerConfigurationService, v1
        • LedgerIdentityService, v1
        • PackageService, v1
        • TimeService, v1/testing
        • TransactionService, v1
        • VersionService, v1
        • CommandCompletionService, v2
        • CommandService, v2
        • CommandSubmissionService, v2
        • EventQueryService, v2
        • PackageService, v2
        • StateService, v2
        • TimeService, v2/testing
        • UpdateService, v2
        • VersionService, v2
        • Scalar Value Types
      • How Daml Types are Translated to Protobuf
        • Notation
        • Records and Primitive Types
        • Variants
        • Contract Templates
      • How Daml Types are Translated to Daml-LF
        • Primitive Types
        • Tuple Types
        • Data Types
        • Type Synonyms
        • Template Types
        • Names with Special Characters
      • Create Your Own Bindings
        • Build Ledger Commands
        • Summary
        • Links
    • Write Off-Ledger Automation Using Daml
      • Overview
      • React to Off-Ledger Events: Daml Script
        • Usage
        • Use Daml Script for Ledger Initialization
        • Use Daml Script with the IDE Ledger
        • Use Daml Script in Canton
        • Run Daml Script Against Ledgers with Authorization
        • Run Daml Script Against the HTTP JSON API
      • React to On-Ledger Events: Daml Triggers
        • How To Think About Triggers
        • Sample Trigger
        • Daml Trigger Basics
        • Run a No-Op Trigger
        • Diversion: Updating Message
        • AutoReply
        • Command Deduplication
        • Authorization
        • When Not to Use Daml Triggers
        • Trigger Service
        • Auth Middleware
        • OAuth 2.0 Auth Middleware
    • Handle Errors
      • Command Deduplication
        • How Command Deduplication Works
        • How to Use Command Deduplication
    • Authorization
      • Introduction
      • Acquire and Use Access Tokens
      • Access Tokens and Rights
      • Access Token Formats
        • User Access Tokens
        • Custom Daml Claims Access Tokens
        • Encoding and Signature
    • Explicit Contract Disclosure
      • Contract Read Delegation
        • Read delegation using explicit contract disclosure
      • How do stakeholders disclose contracts to submitters?
      • Attaching a disclosed contract to a command submission
      • Trading the stock with explicit disclosure
      • Safeguards
        • Contract authentication
        • Business logic safeguards
  • Resource Management in Daml Application Design
    • Managing Latency and Throughput
      • Problem Definition
        • Possible Throughput Bottlenecks in Order of Likelihood
        • Solutions
    • Avoid Contention Issues
      • Contention in Daml
      • Reduce Contention
      • Example Application with Techniques for Reducing Contention
        • The Example Minimal Settlement System
        • Prepare Transactions for Contention-Free Parallelism
        • Non-UTXO Alternative Ledger Models
        • Simple Strategies for UTXO Ledger Models
        • Shard Asset Positions for UTXO Ledger Models
    • Managing Active Contract Set (ACS) Size
      • Problem Definition
      • Relational Databases
        • Solutions
      • HTTP JSON API Service
  • Upgrading and Extending Daml Applications
    • Extending Daml Applications
    • Upgrading Daml Applications
      • Daml Upgrade Overview
      • Structure Upgrade Contracts
      • Build and Deploy carbon-1.0.0
      • Create carbon-1.0.0 Certificates
      • Build and Deploy carbon-2.0.0
      • Build and Deploy carbon-upgrade
      • Upgrade Existing Certificates from carbon-1.0.0 to carbon-2.0.0
      • Further Steps
    • Smart Contract Upgrade
      • Overview
        • What is Smart Contract Upgrade (SCU)?
        • Requirements
        • Smart Contract Upgrade Basics
        • Upgrading Across the Stack
        • Limitations
      • The Programming Model by Example
        • Writing Your First Smart Contract Upgrade
        • Deploying Your First Upgrade
        • Continuing to Write Your Upgrades
        • Developer Workflow
        • The Upgrade Model in Depth - Reference
      • Package Selection in the Ledger API
        • Package Preference
        • Dynamic Package Resolution in Command Submission
        • Dynamic Package Resolution in Ledger API Queries
      • Migrating to SCU
      • Best Practices
        • Separate Interfaces/Exceptions from Templates
        • Remove Retroactive Instances
        • Avoid Contract Metadata Changes
        • Breaking Changes via Explicit Package Version
        • Avoid Depending on LF 1.15 Packages
        • Avoid Depending on Daml Script Packages
        • Operational Design Guideline for Upgrading Daml Apps
      • Testing
        • Standalone Upgradeability Checks
        • Dry Run Uploading to a Test Environment
        • Daml Script Testing
        • Multi-package builds for upgrades
        • Workflow Testing
      • SCU Support in Daml Tooling
        • Codegen
        • JSON API Server
        • PQS
        • Daml Shell
        • Daml-Script
        • Daml Studio support
    • Automating the Upgrade Process
      • Structure the Upgrade
      • Implementation of the Daml Script
      • Implementation of the Daml Trigger
      • Deploy and Execute the Upgrade
  • Developer Tools
    • Daml Assistant
      • Command Help
      • Configuration Files
        • Global Config File (daml-config.yaml)
        • Project Config File (daml.yaml)
        • Recommended build-options
        • Multi-Package Config File (multi-package.yaml)
        • Environment Variable Interpolation
      • Manage SDK Versions
      • Build Daml Projects
        • Build a project
        • Build multiple packages
      • Run Assistant Commands
        • Terminal command completion
        • Run commands outside of the project directory
    • Daml Shell
      • Getting started
        • Prerequisites
        • Running Daml Shell
        • Commands
        • Filters
      • Configuration
        • Command line arguments
        • Configuration file
        • Interactive configuration
      • Usage
        • Connecting
        • Offsets
        • Summary information
        • Payloads by fully qualified name
        • Filtering with where clauses
        • Contract lookup
        • Transaction lookup
        • Exercise lookup
      • Transforming and exporting command output
        • Setting offset bounds
        • Finding transactions that created or archived a contract
      • FAQ
        • Why don’t I see any archived contracts?
        • Why don’t I see any choices?
        • Why don’t I see any interface views?
        • Why do all contracts show the same ledger offset?
    • Canton Console
      • Introduction
      • Run the Canton Console Against the Sandbox
      • Built-in Documentation
      • Interact With the Sandbox
    • Deploy to Generic Daml Ledger
      • Connect via TLS
      • Configure Request Timeouts
    • Experiment: Daml REPL (Deprecated)
      • Usage
      • What Is in Scope at the Prompt?
      • Using Daml REPL Without a Ledger
      • Connecting via TLS
      • Connection to a Ledger With Authorization
      • Using Daml REPL to Convert to JSON
    • Write: Daml Studio
      • Install
      • Create Your First Daml File
      • Supported Features
        • Symbols and Problem Reporting
        • Hover Tooltips
        • Daml Script Results
        • Daml Snippets
      • Common Script Errors
        • Abort, Assert, and Debug
        • Missing Authorization on Create
        • Missing Authorization on Exercise
        • Contract Not Visible
      • Multi-Package Support
        • Multi-package.yaml Location
        • Package Environments and Hot-Loading
        • Multiple Daml SDK Versions
        • Directory Envrionment Tools (direnv)
        • Limitations in 2.10.0-rc
        • Setting Multi-IDE SDK Version
        • Deactivating Multi-IDE
    • Test: Daml Sandbox
      • Run With Authorization
        • Generate JSON Web Tokens (JWT)
        • Generate RSA keys
        • Generate EC keys
      • Run With TLS
      • Command-line Reference
      • Metrics
        • Enable and Configure Reporting
        • Types of Metrics
        • List of Metrics
    • Visualize: Daml Navigator (Deprecated)
      • Navigator Functionality
      • Starting Navigator
      • Logging In
        • Logging in as a Party
      • Viewing Templates or Contracts
        • Listing templates
        • Listing contracts
        • Viewing contracts based on a template
        • Viewing template and contract details
      • Using Navigator
        • Creating contracts
        • Exercising choices
        • Advancing time
      • Authorizing Navigator
      • Advanced Usage
        • Customizable table views
        • Using Navigator with a Daml Ledger
    • Measure: Daml Profiler
      • Usage
      • Caveats
    • Daml Codegen
      • Introduction
      • Run the Daml Codegen
        • Command Line Configuration
        • Project File Configuration (Java)

Daml Finance

  • Daml Finance Documentation
  • Overview
    • Introduction
    • Architecture
    • Building Applications
    • Extending Daml Finance
  • Concepts
    • Asset Model
    • Settlement
    • Lifecycling
  • Instruments
    • Token Instrument
    • Bond Instrument
    • Equity Instrument
    • Option Instrument
    • Structured Product
    • Swap Instrument
    • Generic Instrument
      • Contingent Claims
  • Packages
    • Interface Packages
      • Daml.Finance.Interface.Holding.V4
        • Changelog
      • Daml.Finance.Interface.Account.V4
        • Changelog
      • Daml.Finance.Interface.Settlement.V4
        • Changelog
      • Daml.Finance.Interface.Lifecycle.V4
        • Changelog
      • Daml.Finance.Interface.Instrument.Base.V4
        • Changelog
      • Daml.Finance.Interface.Claims.V4
        • Changelog
      • Daml.Finance.Interface.Data.V4
        • Changelog
      • Daml.Finance.Interface.Types.Common.V3
        • Changelog
      • Daml.Finance.Interface.Types.Date.V3
        • Changelog
      • Daml.Finance.Interface.Util.V3
        • Changelog
      • ContingentClaims.Core.V3
        • Changelog
      • Daml.Finance.Interface.Instrument.Bond.V3
        • Changelog
      • Daml.Finance.Interface.Instrument.Equity.V0
        • Changelog
      • Daml.Finance.Interface.Instrument.Generic.V4
        • Changelog
      • Daml.Finance.Interface.Instrument.Option.V0
        • Changelog
      • Daml.Finance.Interface.Instrument.StructuredProduct.V0
        • Changelog
      • Daml.Finance.Interface.Instrument.Swap.V0
        • Changelog
      • Daml.Finance.Interface.Instrument.Token.V4
        • Changelog
      • Daml.Finance.Interface.Instrument.Types.V2
        • Changelog
    • Implementation Packages
      • Daml.Finance.Holding.V4
        • Changelog
      • Daml.Finance.Account.V4
        • Changelog
      • Daml.Finance.Settlement.V4
        • Changelog
      • Daml.Finance.Lifecycle.V4
        • Changelog
      • Daml.Finance.Data.V4
        • Changelog
      • Daml.Finance.Claims.V3
        • Changelog
      • Daml.Finance.Util.V4
        • Changelog
      • ContingentClaims.Lifecycle.V3
        • Changelog
      • ContingentClaims.Valuation.V0
        • Changelog
      • Daml.Finance.Instrument.Bond.V3
        • Changelog
      • Daml.Finance.Instrument.Equity.V0
        • Changelog
      • Daml.Finance.Instrument.Generic.V4
        • Changelog
      • Daml.Finance.Instrument.Option.V0
        • Changelog
      • Daml.Finance.Instrument.StructuredProduct.V0
        • Changelog
      • Daml.Finance.Instrument.Swap.V0
        • Changelog
      • Daml.Finance.Instrument.Token.V4
        • Changelog
  • Tutorials
    • Getting Started
      • Holdings
      • Transfer
      • Settlement
      • Lifecycling
    • Settlement
      • Enhanced Transfers
      • Internal Settlement
      • Intermediated Settlement
    • Lifecycling
      • Time-based lifecycling (using a fixed rate bond)
      • Observations (using a floating rate bond)
      • Election-based lifecycling (using a callable bond)
    • Upgrade
      • Account Upgrade
      • Holding Upgrade
    • Payoff Modeling
      • Basic Builders
      • Observations
    • Advanced Topics
      • Intermediated Lifecycling of an Instrument
      • Leverage Contingent Claims in Custom Instrument Implementations
      • Date Utility Functions: Calendar, Schedule, and Day Count
  • Reference
    • Glossary
    • Patterns
    • Daml Finance
      • ContingentClaims.Core.V3.Builders
      • ContingentClaims.Core.V3.Claim
      • ContingentClaims.Core.V3.Internal.Claim
      • ContingentClaims.Core.V3.Observation
      • ContingentClaims.Core.V3.Util.Recursion
      • ContingentClaims.Lifecycle.V3.Lifecycle
      • ContingentClaims.Lifecycle.V3.Util
      • ContingentClaims.Valuation.V0.MathML
      • ContingentClaims.Valuation.V0.Stochastic
      • Daml.Finance.Account.V4.Account
      • Daml.Finance.Claims.V3.Lifecycle.Rule
      • Daml.Finance.Claims.V3.Util
      • Daml.Finance.Claims.V3.Util.Builders
      • Daml.Finance.Claims.V3.Util.Date
      • Daml.Finance.Claims.V3.Util.Lifecycle
      • Daml.Finance.Data.V4.Numeric.Observation
      • Daml.Finance.Data.V4.Reference.HolidayCalendar
      • Daml.Finance.Data.V4.Time.DateClock
      • Daml.Finance.Data.V4.Time.DateClock.Types
      • Daml.Finance.Data.V4.Time.DateClockUpdate
      • Daml.Finance.Data.V4.Time.LedgerTime
      • Daml.Finance.Holding.V4.BaseHolding
      • Daml.Finance.Holding.V4.Factory
      • Daml.Finance.Holding.V4.Fungible
      • Daml.Finance.Holding.V4.Transferable
      • Daml.Finance.Holding.V4.TransferableFungible
      • Daml.Finance.Holding.V4.Util
      • Daml.Finance.Instrument.Bond.V3.Callable.Factory
      • Daml.Finance.Instrument.Bond.V3.Callable.Instrument
      • Daml.Finance.Instrument.Bond.V3.FixedRate.Factory
      • Daml.Finance.Instrument.Bond.V3.FixedRate.Instrument
      • Daml.Finance.Instrument.Bond.V3.FloatingRate.Factory
      • Daml.Finance.Instrument.Bond.V3.FloatingRate.Instrument
      • Daml.Finance.Instrument.Bond.V3.InflationLinked.Factory
      • Daml.Finance.Instrument.Bond.V3.InflationLinked.Instrument
      • Daml.Finance.Instrument.Bond.V3.Util
      • Daml.Finance.Instrument.Bond.V3.ZeroCoupon.Factory
      • Daml.Finance.Instrument.Bond.V3.ZeroCoupon.Instrument
      • Daml.Finance.Instrument.Equity.V0.Factory
      • Daml.Finance.Instrument.Equity.V0.Instrument
      • Daml.Finance.Instrument.Generic.V4.Factory
      • Daml.Finance.Instrument.Generic.V4.Instrument
      • Daml.Finance.Instrument.Generic.V4.Lifecycle.Rule
      • Daml.Finance.Instrument.Option.V0.BarrierEuropeanCash.Factory
      • Daml.Finance.Instrument.Option.V0.BarrierEuropeanCash.Instrument
      • Daml.Finance.Instrument.Option.V0.Dividend.Factory
      • Daml.Finance.Instrument.Option.V0.Dividend.Instrument
      • Daml.Finance.Instrument.Option.V0.Dividend.Election
      • Daml.Finance.Instrument.Option.V0.EuropeanCash.Factory
      • Daml.Finance.Instrument.Option.V0.EuropeanCash.Instrument
      • Daml.Finance.Instrument.Option.V0.EuropeanPhysical.Factory
      • Daml.Finance.Instrument.Option.V0.EuropeanPhysical.Instrument
      • Daml.Finance.Instrument.StructuredProduct.V0.AutoCallable.Factory
      • Daml.Finance.Instrument.StructuredProduct.V0.AutoCallable.Instrument
      • Daml.Finance.Instrument.StructuredProduct.V0.BarrierReverseConvertible.Factory
      • Daml.Finance.Instrument.StructuredProduct.V0.BarrierReverseConvertible.Instrument
      • Daml.Finance.Instrument.StructuredProduct.V0.Util
      • Daml.Finance.Instrument.Swap.V0.Asset.Factory
      • Daml.Finance.Instrument.Swap.V0.Asset.Instrument
      • Daml.Finance.Instrument.Swap.V0.Asset.DistributionRule
      • Daml.Finance.Instrument.Swap.V0.CreditDefault.Factory
      • Daml.Finance.Instrument.Swap.V0.CreditDefault.Instrument
      • Daml.Finance.Instrument.Swap.V0.Currency.Factory
      • Daml.Finance.Instrument.Swap.V0.Currency.Instrument
      • Daml.Finance.Instrument.Swap.V0.ForeignExchange.Factory
      • Daml.Finance.Instrument.Swap.V0.ForeignExchange.Instrument
      • Daml.Finance.Instrument.Swap.V0.Fpml.Factory
      • Daml.Finance.Instrument.Swap.V0.Fpml.Instrument
      • Daml.Finance.Instrument.Swap.V0.Fpml.Util
      • Daml.Finance.Instrument.Swap.V0.InterestRate.Factory
      • Daml.Finance.Instrument.Swap.V0.InterestRate.Instrument
      • Daml.Finance.Instrument.Token.V4.Factory
      • Daml.Finance.Instrument.Token.V4.Instrument
      • Daml.Finance.Interface.Account.V4.Account
      • Daml.Finance.Interface.Account.V4.Factory
      • Daml.Finance.Interface.Account.V4.Util
      • Daml.Finance.Interface.Claims.V4.Claim
      • Daml.Finance.Interface.Claims.V4.Dynamic.Instrument
      • Daml.Finance.Interface.Claims.V4.Types
      • Daml.Finance.Interface.Data.V4.Numeric.Observation
      • Daml.Finance.Interface.Data.V4.Numeric.Observation.Factory
      • Daml.Finance.Interface.Data.V4.Reference.HolidayCalendar
      • Daml.Finance.Interface.Data.V4.Reference.HolidayCalendar.Factory
      • Daml.Finance.Interface.Data.V4.Reference.Time
      • Daml.Finance.Interface.Holding.V4.Factory
      • Daml.Finance.Interface.Holding.V4.Fungible
      • Daml.Finance.Interface.Holding.V4.Holding
      • Daml.Finance.Interface.Holding.V4.Transferable
      • Daml.Finance.Interface.Holding.V4.Util
      • Daml.Finance.Interface.Instrument.Base.V4.Instrument
      • Daml.Finance.Interface.Instrument.Bond.V3.Callable.Factory
      • Daml.Finance.Interface.Instrument.Bond.V3.Callable.Instrument
      • Daml.Finance.Interface.Instrument.Bond.V3.Callable.Types
      • Daml.Finance.Interface.Instrument.Bond.V3.FixedRate.Factory
      • Daml.Finance.Interface.Instrument.Bond.V3.FixedRate.Instrument
      • Daml.Finance.Interface.Instrument.Bond.V3.FixedRate.Types
      • Daml.Finance.Interface.Instrument.Bond.V3.FloatingRate.Factory
      • Daml.Finance.Interface.Instrument.Bond.V3.FloatingRate.Instrument
      • Daml.Finance.Interface.Instrument.Bond.V3.FloatingRate.Types
      • Daml.Finance.Interface.Instrument.Bond.V3.InflationLinked.Factory
      • Daml.Finance.Interface.Instrument.Bond.V3.InflationLinked.Instrument
      • Daml.Finance.Interface.Instrument.Bond.V3.InflationLinked.Types
      • Daml.Finance.Interface.Instrument.Bond.V3.ZeroCoupon.Factory
      • Daml.Finance.Interface.Instrument.Bond.V3.ZeroCoupon.Instrument
      • Daml.Finance.Interface.Instrument.Bond.V3.ZeroCoupon.Types
      • Daml.Finance.Interface.Instrument.Equity.V0.Factory
      • Daml.Finance.Interface.Instrument.Equity.V0.Instrument
      • Daml.Finance.Interface.Instrument.Generic.V4.Factory
      • Daml.Finance.Interface.Instrument.Generic.V4.Instrument
      • Daml.Finance.Interface.Instrument.Option.V0.BarrierEuropeanCash.Factory
      • Daml.Finance.Interface.Instrument.Option.V0.BarrierEuropeanCash.Instrument
      • Daml.Finance.Interface.Instrument.Option.V0.BarrierEuropeanCash.Types
      • Daml.Finance.Interface.Instrument.Option.V0.Dividend.Factory
      • Daml.Finance.Interface.Instrument.Option.V0.Dividend.Instrument
      • Daml.Finance.Interface.Instrument.Option.V0.Dividend.Types
      • Daml.Finance.Interface.Instrument.Option.V0.Dividend.Election.Factory
      • Daml.Finance.Interface.Instrument.Option.V0.EuropeanCash.Factory
      • Daml.Finance.Interface.Instrument.Option.V0.EuropeanCash.Instrument
      • Daml.Finance.Interface.Instrument.Option.V0.EuropeanCash.Types
      • Daml.Finance.Interface.Instrument.Option.V0.EuropeanPhysical.Factory
      • Daml.Finance.Interface.Instrument.Option.V0.EuropeanPhysical.Instrument
      • Daml.Finance.Interface.Instrument.Option.V0.EuropeanPhysical.Types
      • Daml.Finance.Interface.Instrument.Option.V0.Types
      • Daml.Finance.Interface.Instrument.StructuredProduct.V0.AutoCallable.Factory
      • Daml.Finance.Interface.Instrument.StructuredProduct.V0.AutoCallable.Instrument
      • Daml.Finance.Interface.Instrument.StructuredProduct.V0.AutoCallable.Types
      • Daml.Finance.Interface.Instrument.StructuredProduct.V0.BarrierReverseConvertible.Factory
      • Daml.Finance.Interface.Instrument.StructuredProduct.V0.BarrierReverseConvertible.Instrument
      • Daml.Finance.Interface.Instrument.StructuredProduct.V0.BarrierReverseConvertible.Types
      • Daml.Finance.Interface.Instrument.StructuredProduct.V0.Types
      • Daml.Finance.Interface.Instrument.Swap.V0.Asset.Factory
      • Daml.Finance.Interface.Instrument.Swap.V0.Asset.Instrument
      • Daml.Finance.Interface.Instrument.Swap.V0.Asset.Types
      • Daml.Finance.Interface.Instrument.Swap.V0.CreditDefault.Factory
      • Daml.Finance.Interface.Instrument.Swap.V0.CreditDefault.Instrument
      • Daml.Finance.Interface.Instrument.Swap.V0.CreditDefault.Types
      • Daml.Finance.Interface.Instrument.Swap.V0.Currency.Factory
      • Daml.Finance.Interface.Instrument.Swap.V0.Currency.Instrument
      • Daml.Finance.Interface.Instrument.Swap.V0.Currency.Types
      • Daml.Finance.Interface.Instrument.Swap.V0.ForeignExchange.Factory
      • Daml.Finance.Interface.Instrument.Swap.V0.ForeignExchange.Instrument
      • Daml.Finance.Interface.Instrument.Swap.V0.ForeignExchange.Types
      • Daml.Finance.Interface.Instrument.Swap.V0.Fpml.Factory
      • Daml.Finance.Interface.Instrument.Swap.V0.Fpml.FpmlTypes
      • Daml.Finance.Interface.Instrument.Swap.V0.Fpml.Instrument
      • Daml.Finance.Interface.Instrument.Swap.V0.Fpml.Types
      • Daml.Finance.Interface.Instrument.Swap.V0.InterestRate.Factory
      • Daml.Finance.Interface.Instrument.Swap.V0.InterestRate.Instrument
      • Daml.Finance.Interface.Instrument.Swap.V0.InterestRate.Types
      • Daml.Finance.Interface.Instrument.Token.V4.Factory
      • Daml.Finance.Interface.Instrument.Token.V4.Instrument
      • Daml.Finance.Interface.Instrument.Token.V4.Types
      • Daml.Finance.Interface.Instrument.Types.V2.FloatingRate
      • Daml.Finance.Interface.Lifecycle.V4.Effect
      • Daml.Finance.Interface.Lifecycle.V4.Election
      • Daml.Finance.Interface.Lifecycle.V4.Election.Factory
      • Daml.Finance.Interface.Lifecycle.V4.Event
      • Daml.Finance.Interface.Lifecycle.V4.Event.Distribution
      • Daml.Finance.Interface.Lifecycle.V4.Event.Replacement
      • Daml.Finance.Interface.Lifecycle.V4.Event.Time
      • Daml.Finance.Interface.Lifecycle.V4.Observable.NumericObservable
      • Daml.Finance.Interface.Lifecycle.V4.Observable.TimeObservable
      • Daml.Finance.Interface.Lifecycle.V4.Rule.Claim
      • Daml.Finance.Interface.Lifecycle.V4.Rule.Lifecycle
      • Daml.Finance.Interface.Settlement.V4.Batch
      • Daml.Finance.Interface.Settlement.V4.Factory
      • Daml.Finance.Interface.Settlement.V4.Instruction
      • Daml.Finance.Interface.Settlement.V4.RouteProvider
      • Daml.Finance.Interface.Settlement.V4.Types
      • Daml.Finance.Interface.Types.Common.V3.Types
      • Daml.Finance.Interface.Types.Date.V3.Calendar
      • Daml.Finance.Interface.Types.Date.V3.Classes
      • Daml.Finance.Interface.Types.Date.V3.DateOffset
      • Daml.Finance.Interface.Types.Date.V3.DayCount
      • Daml.Finance.Interface.Types.Date.V3.RollConvention
      • Daml.Finance.Interface.Types.Date.V3.Schedule
      • Daml.Finance.Interface.Util.V3.Common
      • Daml.Finance.Interface.Util.V3.Disclosure
      • Daml.Finance.Interface.Util.V3.InterfaceKey
      • Daml.Finance.Interface.Util.V3.Lockable
      • Daml.Finance.Lifecycle.V4.Effect
      • Daml.Finance.Lifecycle.V4.Election
      • Daml.Finance.Lifecycle.V4.ElectionEffect
      • Daml.Finance.Lifecycle.V4.Event.Distribution
      • Daml.Finance.Lifecycle.V4.Event.Replacement
      • Daml.Finance.Lifecycle.V4.Rule.Claim
      • Daml.Finance.Lifecycle.V4.Rule.Distribution
      • Daml.Finance.Lifecycle.V4.Rule.Replacement
      • Daml.Finance.Lifecycle.V4.Rule.Util
      • Daml.Finance.Settlement.V4.Batch
      • Daml.Finance.Settlement.V4.Factory
      • Daml.Finance.Settlement.V4.Hierarchy
      • Daml.Finance.Settlement.V4.Instruction
      • Daml.Finance.Settlement.V4.RouteProvider.IntermediatedStatic
      • Daml.Finance.Settlement.V4.RouteProvider.SingleCustodian
      • Daml.Finance.Util.V4.Common
      • Daml.Finance.Util.V4.Date.Calendar
      • Daml.Finance.Util.V4.Date.DayCount
      • Daml.Finance.Util.V4.Date.RollConvention
      • Daml.Finance.Util.V4.Date.Schedule
      • Daml.Finance.Util.V4.Disclosure
      • Daml.Finance.Util.V4.Lockable

Deploy Daml

  • Canton
    • Introduction to Canton
    • Overview and Assumptions
      • Canton 101
        • A Basic Example
        • Transaction Processing in Canton
        • Conflict Detection
        • Time in Canton
        • Subtransaction Privacy
      • Synchronization Domain Entities
        • Sequencer
        • Mediator
        • Topology Manager
      • Participant-Internal Canton Components
      • Trust Assumptions
        • General Trust Assumptions
        • Assumptions Relevant for Privacy
        • Assumptions Relevant for Liveness
    • Canton Demo
    • Getting Started
      • Installation
      • Starting Canton
      • The Example Topology
      • Connecting The Participant Nodes and Synchronization Domains
      • Canton Identities and Provisioning Parties
      • Creating Parties
      • Extracting Identifiers
      • Provisioning Smart Contract Code
      • Executing Smart Contracts
      • Privacy
      • Your Development Choices
      • Automation Using Bootstrap Scripts
      • What Next?
    • Daml SDK and Canton
      • Starting Canton
      • Running the Create Daml App Example
        • Connecting to participant2
      • What Next?
    • Composability
      • Part 1: A multi-synchronization-domain workflow
        • Setting up the topology
        • Creating the IOU and the paint offer
        • Contracts and Their Synchronization Domains
        • Transferring a contract
        • Atomic acceptance
        • Completing the workflow
        • Performing transfers automatically
        • Takeaways
      • Part 2: Composing existing workflows
        • Existing workflows
        • Required changes
        • Preparation using the existing workflows
        • The paint offer-accept workflow
        • Continuing the existing workflows
        • Takeaways
    • Versioning
      • Canton release version
      • For application developers and operators
      • For Canton participant and synchronization domain operators
        • Canton protocol version
        • Features and protocol versions
        • Configuring the protocol version
        • Minimum protocol version
        • Support and bug fixes
  • Download and Install Canton
    • Choosing Open-Source or Enterprise Edition
    • Downloading the Open Source Edition
    • Downloading the Enterprise Edition
    • Install Canton
      • Hardware Resources
      • Downloading Canton
      • Your Topology
      • The Config Directory Contents
      • Selecting your Storage Layer
        • Persistence using Postgres
      • Generate the TLS Certificates
      • Setting up a Participant
        • Secure the APIs
        • Configure Applications, Users and Connection
      • Setting up a Synchronization Domain
        • Using an Embedded Synchronization Domain
        • Using Microservices
        • Secure the APIs
        • Next Steps
      • Multi-Node Setup
    • Work With the Docker Containers
      • Obtaining the Docker Images
      • Starting Canton
      • Configuring Logging and Health Probes
      • Administrating the Running Node
      • Exposing the Ledger API or Admin API to the host machine
      • Supplying custom configuration and DARs
      • Running Postgres in Docker
    • Set Configuration Options
      • Configuration reference
      • Configuration Compatibility
      • Advanced Configurations
      • Configuration Mixin
      • Multiple Synchronization Domains
      • Fail Fast Mode
      • Init Configuration
    • Set Up A Daml Domain With Enterprise Drivers
      • Oracle Domain
      • Fabric Domain
        • Tutorial
        • User Manual
        • Fabric Setup
      • Ethereum Domain
        • Introduction
        • The Ethereum Demo
        • Error Codes
        • TLS Configuration
        • Ethereum Accounts and Wallets
        • Deployment of the Sequencer Contract
        • Requirements for the Ethereum Network
        • Trust Properties of the Ethereum Sequencer Integration
        • High Availability
  • High Availability (HA)
    • Intro to HA in Canton
      • Overview
        • Participant Nodes
        • Synchronization Domains
        • Replication
        • Databases
        • Health Check
      • Active-Passive Participant Node Configuration
        • High-Level System Design
        • Leader Election
        • Prevent Passive Node Replica Activity
      • HA on the Synchronization Domain
        • Sequencer
        • Mediator
    • HA for Production Systems
      • HA and Horizontal Scaling
        • Introduction
      • High Availability From a Business Perspective
        • Availability
        • Resiliency
        • Other Common Metrics / RTO and RPO
        • HA Cost Trade-Offs
      • Use Cases By Role
        • Distributed Application Provider
        • Distributed Application User
        • Site Reliability Engineer (SRE)
      • Implementing HA and Scaling Deployments
        • Basic Daml Deployment
        • Architecture for HA and Scaling
        • HTTP JSON API and Participant Node Services
        • Sequencer Service
        • Mediator Service
        • Synchronization Domain Manager Service
        • Trigger Service (Deprecated)
      • HA Deployment Solution for Production
      • HA in the Cloud
        • Database Options
    • High Availability Usage
      • Synchronization Domain Manager
      • HA Setup on Oracle
      • Mediator
        • Running a Stand-Alone Mediator Node
        • HA Configuration
      • Sequencer
        • Total node count
        • External load balancer
        • Client-side load balancing
      • Participant
        • Synchronization domain connectivity during fail-over
        • Manual trigger of a fail-over
        • Load balancer configuration
  • Disaster Recovery (DR)
  • Persistence
    • Postgres
      • SSL
      • Sizing and Performance
      • Predictability of Shared Environments
      • Postgres Configuration
    • Oracle
      • Installation and Setup of Oracle
        • Default Character Set and Collations
        • Database Replication
        • Setup Oracle Schemas
      • Configuring Canton Nodes for Oracle
      • Performance Tuning
        • Operating System Modifications
        • System Container Configuration (CDB)
    • General Settings
      • Max Connection Settings
      • Queue Size
    • Backup and Restore
      • Order of Backups
      • Restore Caveats
        • Incomplete Command Deduplication State
        • Application State Reset
        • Private Keys
      • Postgres Example
    • Database Replication for Disaster Recovery
      • Synchronous Replication

Operate a Daml Ledger

  • Canton Administration Quick Start
    • Use the Canton Command Line
      • Selecting a Configuration
      • Run Modes
        • Interactive Console
        • Daemon
        • Headless Script Mode
        • Interactive Server Process using Screen
      • Java Virtual Machine Arguments
    • Canton Console
      • Remote Administration
        • TLS and Authorization
      • Node References
      • Help
      • Lifecycle Operations
      • Timeouts
      • Code-Generation in Console
      • Canton Administration APIs
    • Console Commands
      • Top-level Commands
      • Participant Commands
        • Database
        • Health
        • Domain Connectivity
        • Packages
        • DAR Management
        • Party Management
        • Key Administration
        • Topology Administration
        • Ledger API Access
        • Composability
        • Ledger Pruning
        • Bilateral Commitments
        • Participant Repair
        • Resource Management
        • Replication
      • Multiple Participants
      • Domain Administration Commands
        • Health
        • Database
        • Participants
        • Sequencer
        • Mediator
        • Key Administration
        • Parties
        • Service
        • Topology Administration
      • Domain Manager Administration Commands
        • Setup
        • Health
        • Database
        • Sequencer Connection
        • Key Administration
        • Parties
        • Service
        • Topology Administration
      • Sequencer Administration Commands
        • Sequencer
        • Health
        • Database
      • Mediator Administration Commands
        • Mediator
        • Health
        • Database
        • Sequencer Connection
  • Monitoring Best Practices
    • Introduction
      • Hands-On with the Daml Enterprise - Observability Example
    • Golden Signals and Key Metrics Quick Start
    • Set Up Metrics Scraping
      • Enable the Prometheus Reporter
      • Prometheus-Only Metrics
      • Deprecated Reporters
    • Metrics
      • Participant Metrics
        • canton.<domain>.conflict-detection.sequencer-counter-queue
        • canton.<domain>.conflict-detection.task-queue
        • canton.<domain>.protocol-messages.confirmation-request-creation
        • canton.<domain>.protocol-messages.confirmation-request-size
        • canton.<domain>.protocol-messages.transaction-message-receipt
        • canton.<domain>.request-tracker.sequencer-counter-queue
        • canton.<domain>.request-tracker.task-queue
        • canton.<domain>.sequencer-client.application-handle
        • canton.<domain>.sequencer-client.delay
        • canton.<domain>.sequencer-client.event-handle
        • canton.<domain>.sequencer-client.handler.actual-in-flight-event-batches
        • canton.<domain>.sequencer-client.handler.max-in-flight-event-batches
        • canton.<domain>.sequencer-client.submissions.dropped
        • canton.<domain>.sequencer-client.submissions.in-flight
        • canton.<domain>.sequencer-client.submissions.overloaded
        • canton.<domain>.sequencer-client.submissions.sends
        • canton.<domain>.sequencer-client.submissions.sequencing
        • canton.<domain>.traffic-control.event-above-traffic-limit
        • canton.<domain>.traffic-control.event-delivered
        • canton.<domain>.traffic-control.extra-traffic-credit-available
        • canton.<domain>.traffic-control.traffic-state-topology-transaction
        • canton.commitments.catchup-mode-enabled
        • canton.commitments.compute
        • canton.commitments.sequencing-time
        • canton.db-storage.<service>.executor.exectime
        • canton.db-storage.<service>.executor.load
        • canton.db-storage.<service>.executor.queued
        • canton.db-storage.<service>.executor.running
        • canton.db-storage.<service>.executor.waittime
        • canton.db-storage.<storage>
        • canton.db-storage.<storage>.load
        • canton.db-storage.alerts.multi-domain-event-log
        • canton.db-storage.alerts.single-dimension-event-log
        • canton.dirty_requests*
        • canton.max_dirty_requests*
        • canton.prune
        • canton.prune.max-event-age
        • canton.updates-published
        • daml.cache.evicted_weight*
        • daml.cache.evictions*
        • daml.cache.hits*
        • daml.cache.misses*
        • daml.commands.delayed_submissions
        • daml.commands.failed_command_interpretations
        • daml.commands.max_in_flight_capacity
        • daml.commands.max_in_flight_length
        • daml.commands.reassignment_validation
        • daml.commands.submissions
        • daml.commands.submissions_running
        • daml.commands.valid_submissions
        • daml.commands.validation
        • daml.db.commit.duration.seconds*
        • daml.db.compression.duration.seconds*
        • daml.db.exec.duration.seconds*
        • daml.db.query.duration.seconds*
        • daml.db.translation.duration.seconds*
        • daml.db.wait.duration.seconds*
        • daml.execution.cache.contract_state.register_update
        • daml.execution.cache.key_state.register_update
        • daml.execution.cache.read_through_not_found
        • daml.execution.cache.resolve_divulgence_lookup
        • daml.execution.cache.resolve_full_lookup
        • daml.execution.engine
        • daml.execution.engine_running
        • daml.execution.get_lf_package
        • daml.execution.lookup_active_contract
        • daml.execution.lookup_active_contract_count_per_execution
        • daml.execution.lookup_active_contract_per_execution
        • daml.execution.lookup_contract_key
        • daml.execution.lookup_contract_key_count_per_execution
        • daml.execution.lookup_contract_key_per_execution
        • daml.execution.retry
        • daml.execution.total
        • daml.execution.total_running
        • daml.executor.runtime.completed*
        • daml.executor.runtime.duration*
        • daml.executor.runtime.idle*
        • daml.executor.runtime.running*
        • daml.executor.runtime.submitted*
        • daml.index.active_contracts_buffer_size
        • daml.index.completions_buffer_size
        • daml.index.db.active_contract_keys_lookup.batch.active_contract_lookup.batch_size
        • daml.index.db.active_contract_keys_lookup.batch.active_contract_lookup.buffer_capacity
        • daml.index.db.active_contract_keys_lookup.batch.active_contract_lookup.buffer_delay.duration.seconds
        • daml.index.db.active_contract_keys_lookup.batch.active_contract_lookup.buffer_length
        • daml.index.db.active_contract_lookup.batch.active_contract_lookup.batch_size
        • daml.index.db.active_contract_lookup.batch.active_contract_lookup.buffer_capacity
        • daml.index.db.active_contract_lookup.batch.active_contract_lookup.buffer_delay.duration.seconds
        • daml.index.db.active_contract_lookup.batch.active_contract_lookup.buffer_length
        • daml.index.db.compression.create_argument_compressed
        • daml.index.db.compression.create_argument_uncompressed
        • daml.index.db.compression.create_key_value_compressed
        • daml.index.db.compression.create_key_value_uncompressed
        • daml.index.db.compression.exercise_argument_compressed
        • daml.index.db.compression.exercise_argument_uncompressed
        • daml.index.db.compression.exercise_result_compressed
        • daml.index.db.compression.exercise_result_uncompressed
        • daml.index.db.flat_transactions_stream.translation
        • daml.index.db.lookup_active_contract
        • daml.index.db.lookup_key
        • daml.index.db.reassignment_stream.translation
        • daml.index.db.translation.get_lf_package
        • daml.index.db.tree_transactions_stream.translation
        • daml.index.flat_transactions_buffer_size
        • daml.index.ledger_end_sequential_id
        • daml.index.lf_value.compute_interface_view
        • daml.index.package_metadata.decode_archive
        • daml.index.package_metadata.view_init
        • daml.index.transaction_trees_buffer_size
        • daml.indexer.current_record_time_lag
        • daml.indexer.events*
        • daml.indexer.last_received_record_time
        • daml.indexer.ledger_end_sequential_id
        • daml.indexer.metered_events*
        • daml.lapi.streams.acs_sent
        • daml.lapi.streams.active
        • daml.lapi.streams.completions_sent
        • daml.lapi.streams.transaction_trees_sent
        • daml.lapi.streams.transactions_sent
        • daml.lapi.streams.update_trees_sent
        • daml.parallel_indexer.archivals
        • daml.parallel_indexer.creates
        • daml.parallel_indexer.input_buffer_length
        • daml.parallel_indexer.inputmapping.batch_size
        • daml.parallel_indexer.output_batched_buffer_length
        • daml.parallel_indexer.seqmapping.duration
        • daml.parallel_indexer.updates
        • daml.services.index.<operation>
        • daml.services.index.in_memory_fan_out_buffer.prune
        • daml.services.index.in_memory_fan_out_buffer.push
        • daml.services.index.in_memory_fan_out_buffer.size
        • daml.services.read.<operation>
        • daml.services.write.<operation>
        • daml.services.write.submit_transaction.count
      • Synchronization Domain Metrics
        • canton.<component>.sequencer-client.application-handle
        • canton.<component>.sequencer-client.delay
        • canton.<component>.sequencer-client.event-handle
        • canton.db-storage.<service>.executor.exectime
        • canton.db-storage.<service>.executor.load
        • canton.db-storage.<service>.executor.queued
        • canton.db-storage.<service>.executor.running
        • canton.db-storage.<service>.executor.waittime
        • canton.db-storage.<storage>
        • canton.db-storage.<storage>.load
        • canton.db-storage.alerts.multi-domain-event-log
        • canton.db-storage.alerts.single-dimension-event-log
        • canton.mediator.event-rejected
        • canton.mediator.max-event-age
        • canton.mediator.outstanding-requests
        • canton.mediator.requests
        • canton.mediator.sequencer-client.handler.actual-in-flight-event-batches
        • canton.mediator.sequencer-client.handler.max-in-flight-event-batches
        • canton.mediator.sequencer-client.submissions.dropped
        • canton.mediator.sequencer-client.submissions.in-flight
        • canton.mediator.sequencer-client.submissions.overloaded
        • canton.mediator.sequencer-client.submissions.sends
        • canton.mediator.sequencer-client.submissions.sequencing
        • canton.sequencer.block.event-bytes
        • canton.sequencer.block.events
        • canton.sequencer.block.height
        • canton.sequencer.db-storage.<storage>
        • canton.sequencer.db-storage.<storage>.load
        • canton.sequencer.db-storage.alerts.multi-domain-event-log
        • canton.sequencer.db-storage.alerts.single-dimension-event-log
        • canton.sequencer.db-storage.general.executor.exectime
        • canton.sequencer.db-storage.general.executor.load
        • canton.sequencer.db-storage.general.executor.queued
        • canton.sequencer.db-storage.general.executor.running
        • canton.sequencer.db-storage.general.executor.waittime
        • canton.sequencer.db-storage.locks.executor.exectime
        • canton.sequencer.db-storage.locks.executor.load
        • canton.sequencer.db-storage.locks.executor.queued
        • canton.sequencer.db-storage.locks.executor.running
        • canton.sequencer.db-storage.locks.executor.waittime
        • canton.sequencer.db-storage.write.executor.exectime
        • canton.sequencer.db-storage.write.executor.load
        • canton.sequencer.db-storage.write.executor.queued
        • canton.sequencer.db-storage.write.executor.running
        • canton.sequencer.db-storage.write.executor.waittime
        • canton.sequencer.max-event-age
        • canton.sequencer.processed
        • canton.sequencer.processed-bytes
        • canton.sequencer.sequencer-client.handler.actual-in-flight-event-batches
        • canton.sequencer.sequencer-client.handler.max-in-flight-event-batches
        • canton.sequencer.sequencer-client.submissions.dropped
        • canton.sequencer.sequencer-client.submissions.in-flight
        • canton.sequencer.sequencer-client.submissions.overloaded
        • canton.sequencer.sequencer-client.submissions.sends
        • canton.sequencer.sequencer-client.submissions.sequencing
        • canton.sequencer.subscriptions
        • canton.sequencer.time-requests
        • canton.sequencer.traffic-control.event-delivered-cost
        • canton.sequencer.traffic-control.event-received-size
        • canton.sequencer.traffic-control.event-rejected-cost
        • canton.topology-manager.sequencer-client.handler.actual-in-flight-event-batches
        • canton.topology-manager.sequencer-client.handler.max-in-flight-event-batches
        • canton.topology-manager.sequencer-client.submissions.dropped
        • canton.topology-manager.sequencer-client.submissions.in-flight
        • canton.topology-manager.sequencer-client.submissions.overloaded
        • canton.topology-manager.sequencer-client.submissions.sends
        • canton.topology-manager.sequencer-client.submissions.sequencing
      • Health Metrics
        • daml_health_status
      • gRPC Metrics
        • daml_grpc_server_duration_seconds
        • daml_grpc_server_messages_sent_total
        • daml_grpc_server_messages_received_total
        • daml_grpc_server_started_total
        • daml_grpc_server_handled_total
        • daml_grpc_server_messages_sent_bytes
        • daml_grpc_server_messages_received_bytes
      • HTTP Metrics
        • daml_http_requests_duration_seconds
        • daml_http_requests_total
        • daml_http_websocket_messages_received_total
        • daml_http_websocket_messages_sent_total
        • daml_http_requests_payload_bytes
        • daml_http_responses_payload_bytes
        • daml_http_websocket_messages_received_bytes
        • daml_http_websocket_messages_sent_bytes
      • Pruning Metrics
        • daml_services_pruning_prune_started_total
        • daml_services_pruning_prune_completed_total
      • JVM Metrics
        • runtime_jvm_gc_time
        • runtime_jvm_gc_count
        • runtime_jvm_memory_area
        • runtime_jvm_memory_pool
    • Logging
      • Viewing Logs
      • Detailed Logging
    • Tracing
      • Sampling
      • Known Limitations
      • Traces
    • Node Health Status
    • Health Checks
      • gRPC Health Check Service
      • HTTP Health Check
    • Health Dumps
      • Remote Health Dumps
    • Example Monitoring Setup
      • Container Setup
        • Intended Use
        • Network Configuration
        • Postgres Setup
        • Synchronization Domain Setup
        • Participant Setup
        • Logstash
        • Elasticsearch
        • Kibana
        • cAdvisor
        • Prometheus
        • Grafana
        • Dependencies
        • Docker Images
        • Running Docker Compose
      • Connecting to Nodes
        • Remote Configurations
        • Getting Started
      • Kibana Log Monitoring
      • Grafana Metric Monitoring
      • Monitoring Choices
        • Use Docker Log Drivers
        • Use GELF Docker Log Driver
        • Use Logstash
        • Use Elasticsearch/Kibana
        • Use Prometheus/Grafana
      • Logging Improvements
    • Glossary
      • cAdvisor
      • Docker Log Driver
      • Docker Plugins
      • ECS
      • Elasticsearch
      • ELK
      • GELF
      • Grafana
      • Graylog
      • Logstash
      • Loki
      • Loki Log Driver
      • MinIO
      • OpenTelemetry
      • Prometheus
      • Syslog
  • Participant Query Store
    • Introduction
      • Audience
      • Purpose
      • Operational Architecture
      • Key Feature Summary
      • Sections
    • Getting Started
      • Pre-requisites
      • Running PQS
        • Daml Platform Support
        • Preparing the Database
        • Running the Pipeline
        • Auth
    • Database
      • Ledger Source
      • Transaction Data Source
      • PostgreSQL Schema
        • Objectives
        • Design
    • Configuration
      • PQS Configuration
        • Applying Configuration Changes
      • Contract Filters
      • Party Filtering
      • Java Virtual Machine (JVM) Configuration
      • PostgreSQL Configuration
      • PostgreSQL Users
      • Host Infrastructure
      • Host Environment
      • Testing
    • Resilience
      • High Availability
      • Retries
        • Configuration
        • Logging
        • Metrics
        • Retry Counters Reset
        • Exit codes
      • Ledger Streaming & Recovery
    • Read API
      • How The Ledger Models Time
        • Offset
        • Ledger Time
        • Tranasction ID
        • Which should I use?
      • Time Model
      • Offset Management
      • JSONB Encoding
        • Primitive Types
        • User-Defined Types
      • Querying Patterns
      • Summary functions
      • Lookup functions
      • Optimization
        • Indexing
        • Pagination
        • psql Tips
        • Query Analysis
    • Pruning
      • Data Deletion and Changes
      • Constraints
      • Pruning from the command line
      • Example with Timestamp and Duration
      • Pruning from SQL
    • Authentication
      • Audience-Based Token
      • Scope-Based Token
      • Custom Daml Claims Tokens
      • Static Access Token
      • Ledger API Users and Daml Parties
      • Token expiry
    • History Slicing
    • Reset Procedure
      • Reset
      • Constraints
    • Logging
      • Log Level
      • Per-Logger Log Level
      • Log Pattern
      • Log Format for Console Output
      • Log Format for File Output
      • Destination File for File Output
      • Log Format and Log Pattern Combinations
    • Database Schema Evolution
      • Baselining
      • Schema Upgrades
      • Schema Dump
      • Monitoring Progress
      • Troubleshooting
        • Problem 1: An application’s Flyway conflicts with PQS’s Flyway
      • Mapping Daml Models to Relational World
      • Considerations
      • Definitions
      • Queries & Results
      • Performance Optimizations
        • Materialized Views
        • Custom Triggers
      • Trade-Offs Summary
    • Observability
      • Underlying Mechanism
      • Provided Metrics
      • Example Dashboard
      • Health Check
      • Tracing of Pipeline Execution
      • Trace Context Propagation
    • Redaction
      • Conditions for Redaction
      • Examples
        • Redacting an Archived Contract
        • Redacting a Choice Exercise
      • Accessing Redaction Information
  • Identity Management
    • Introduction
      • What is a Canton Identity?
      • Unique Identifier
      • Topology Transactions
      • Legal Identities
      • Life of a Party
      • Participant Onboarding
      • Default Initialization
      • Identity Setup Guide
    • User Identity Management
    • Cookbook
      • Manage Users
        • Create
        • Update
        • Inspect
        • Decommission
        • Configure a default Participant Admin
      • Adding a new Party to a Participant
      • Client Controlled Party
      • Replicate Party to Another Participant Node
      • Party on Multiple Nodes
  • Common Operational Tasks
    • Manage DARs and Packages
      • Uploading DARs
      • Inspecting DARs and Packages
      • Understanding Package Vetting
        • DAR vetting lifecycle
        • Advanced vetting concepts
    • Upgrade To a New Release
      • Upgrade Canton Binary
        • Preparation
        • Back Up Your Database
        • Test your Configuration
        • Migrating the Database
        • Test Your Upgrade
        • Version Specific Notes
      • Change the Canton Protocol Version
        • Upgrade the Synchronization Domain to a new Protocol Version
        • Hard Synchronization Domain Migration
      • One-Step Migration
        • One-Step Migration Recipe for 2.10
    • Security & Key Management
      • Cryptographic Key Usage
        • Supported Cryptographic Schemes in Canton
        • Key Generation and Storage
        • Public Key Distribution using Topology Management
        • Common Node Keys
        • Participant Node Keys
        • Synchronization Domain Topology Manager Keys
        • Sequencer Node Keys
        • Mediator Node Keys
        • Synchronizer Domain Node Keys
        • Canton Console Keys
      • Cryptographic Key Management
        • Rotating Canton Node Keys
        • Deleting Canton Node Keys
        • Namespace Intermediate Key Management
        • Moving the Namespace Secret Key to Offline Storage
        • Identifier Delegation Key Management
      • Ledger-API Authorization
    • Key Management Service (KMS) Setup
      • Canton Configuration of a KMS
        • Configure Amazon Web Services (AWS) KMS
        • Configure Google Cloud Provider (GCP) KMS
      • Configure Encrypted Private Key Storage with a Key Management Service (KMS)
        • Configure Encrypted Private Key Storage with AWS KMS
        • Configure Encrypted Private Key Storage with GCP KMS
      • Configure External Key Storage with a Key Management Service (KMS)
        • Configure External Key Storage with AWS KMS
        • Configure External Key Storage with GCP KMS
        • Interoperability with other nodes
        • Participant Node Migration to KMS
        • Manual KMS key rotation
      • Canton KMS Driver API Developer Guide
        • Introduction
        • KMS Driver API
        • Develop and Test a KMS Driver
        • Run Canton with a KMS Driver
  • Scaling and Performance
    • Network Scaling
    • Node Scaling
    • Performance and Sizing
    • Batching
    • Asynchronous Submissions
    • Storage Estimation
    • Set Up Canton to Get the Best Performance
      • System Design / Architecture
      • Hardware and Database
      • Configuration
    • Model Tuning
      • Reduce the Number of Views
        • Strategy for Protocol Version 6
        • Strategy for Protocol Versions 5 and Lower
      • Reduce Ledger Events
  • Advanced Ledger Operations
    • Manage Domains
      • Permissioned Synchronization Domains
      • Synchronization Domain Rules
      • Dynamic synchronization domain parameters
      • Recover From a Small Max Request Size
    • Manage Domain Entities
      • Manual vs Automatic Initialization
      • Keys Initialization
        • Embedded Synchronization Domain Initialization
      • Set up a Distributed Synchronization Domain With a Single Console
      • Set Up a Distributed Synchronization Domain With Separate Consoles
      • Add New Sequencers to a Distributed Synchronization Domain
    • Manage Participants
      • Manual vs Automatic Identity Initialization
      • Keys Initialization
      • Participant Manual Initialization
    • Ledger Pruning
      • Enable Automatic Pruning
      • Schedule format
        • Advanced schedule formatting
      • Monitor Pruning Progress
      • Best Practices
      • Current Limitations
    • Participant Pruning
      • Impacts on Daml Applications
      • How the Daml Ledger API is Affected
      • Other Limitations
      • How Pruning Affects Index DB Administration
      • Determine a Suitable Pruning Offset
    • Participant Metering
      • Generate a Metering Report
      • Example
      • Output
    • Api Configuration
      • Default Ports
      • Administration API
      • TLS Configuration
      • Keep Alive
      • Max Inbound Message Size
      • Participant Configuration
        • Ledger Api
      • Synchronization Domain Configurations
        • Public API
      • Usage of native libraries by Netty
    • Sequencer Connections
      • Participant Connections
        • Connect Using Macros
        • Inspect Connections
        • Modify Connections
        • Enable and Disable Connections
      • Mediator and Synchronization Domain Manager
    • Repair Nodes
      • Preparation
      • Importing an actual Ledger
        • Repairing Participants
      • Recovering from a Lost Synchronization Domain
      • Repairing an actual Topology
        • Repair Macros
      • Clone Identity
      • Importing Existing Contracts
    • Decommission Nodes
      • Decommissioning a Participant Node
        • Prerequisites
        • Decommissioning a participant once the prerequisites are met
      • Decommissioning a Sequencer
        • Disconnecting all nodes from the sequencer to be decommissioned
        • Decommissioning the sequencer
      • Decommissioning a Mediator
  • Troubleshooting Guide
    • Introduction
    • Enable Information Gathering
    • Key Knowledge
    • Log Files
    • Using LNAV to View Log Files
    • Setup Issues
    • Timeout Errors
    • Auth Errors
    • Disconnections
    • Performance Issues
      • How to Measure Database Performance
      • How to Diagnose Slow Database Queries
      • How to find the Bottleneck
        • Theory
        • Practical
    • Contention
      • Why do you get contention
      • How To Change Your Model To Avoid Undesired Contention
      • How To Find Contention
    • Use Bisection to Narrow Down the Root Cause
  • Support Checklist
    • Remote Console Access
    • Logging
    • Metrics
    • Configuration and Patching
    • Database Access

Help

  • Error Codes
    • Overview
    • Glossary
    • Anatomy of an Error
      • Error Description
      • Additional Machine-Readable Information
      • Prevent Security Leaks in Error Codes
      • Work With Error Codes
    • Error Codes In Canton Operations
    • Error Categories
    • Machine Readable Information
    • Example
    • Error Categories Inventory
      • TransientServerFailure
      • ContentionOnSharedResources
      • DeadlineExceededRequestStateUnknown
      • SystemInternalAssumptionViolated
      • AuthInterceptorInvalidAuthenticationCredentials
      • InsufficientPermission
      • SecurityAlert
      • InvalidIndependentOfSystemState
      • InvalidGivenCurrentSystemStateOther
      • InvalidGivenCurrentSystemStateResourceExists
      • InvalidGivenCurrentSystemStateResourceMissing
      • InvalidGivenCurrentSystemStateSeekAfterEnd
      • BackgroundProcessDegradationWarning
      • InternalUnsupportedOperation
    • Error Codes Inventory - Daml
      • 1. ParticipantErrorGroup
      • 1.1. ParticipantErrorGroup / CommonErrors
        • REQUEST_TIME_OUT
        • SERVER_IS_SHUTTING_DOWN
        • SERVICE_INTERNAL_ERROR
        • SERVICE_NOT_RUNNING
        • UNSUPPORTED_OPERATION
      • 1.2. ParticipantErrorGroup / IndexErrors
      • 1.2.1. ParticipantErrorGroup / IndexErrors / DatabaseErrors
        • INDEX_DB_SQL_NON_TRANSIENT_ERROR
        • INDEX_DB_SQL_TRANSIENT_ERROR
      • 1.3. ParticipantErrorGroup / LedgerApiErrors
        • LEDGER_API_INTERNAL_ERROR
      • 1.3.1. ParticipantErrorGroup / LedgerApiErrors / AdminServices
        • CONFIGURATION_ENTRY_REJECTED
      • 1.3.1.1. ParticipantErrorGroup / LedgerApiErrors / AdminServices / IdentityProviderConfigServiceErrorGroup
        • IDP_CONFIG_ALREADY_EXISTS
        • IDP_CONFIG_ISSUER_ALREADY_EXISTS
        • IDP_CONFIG_NOT_FOUND
        • INVALID_IDENTITY_PROVIDER_UPDATE_REQUEST
      • 1.3.1.2. ParticipantErrorGroup / LedgerApiErrors / AdminServices / PartyManagementServiceErrorGroup
        • CONCURRENT_PARTY_DETAILS_UPDATE_DETECTED
        • INVALID_PARTY_DETAILS_UPDATE_REQUEST
        • PARTY_NOT_FOUND
      • 1.3.1.3. ParticipantErrorGroup / LedgerApiErrors / AdminServices / UserManagementServiceErrorGroup
        • CONCURRENT_USER_UPDATE_DETECTED
        • INVALID_USER_UPDATE_REQUEST
        • TOO_MANY_USER_RIGHTS
        • USER_ALREADY_EXISTS
        • USER_NOT_FOUND
      • 1.3.2. ParticipantErrorGroup / LedgerApiErrors / AuthorizationChecks
        • INTERNAL_AUTHORIZATION_ERROR
        • PERMISSION_DENIED
        • STALE_STREAM_AUTHORIZATION
        • UNAUTHENTICATED
      • 1.3.3. ParticipantErrorGroup / LedgerApiErrors / CommandExecution
      • 1.3.3.1. ParticipantErrorGroup / LedgerApiErrors / CommandExecution / Interpreter
        • CONTRACT_DOES_NOT_IMPLEMENT_INTERFACE
        • CONTRACT_DOES_NOT_IMPLEMENT_REQUIRING_INTERFACE
        • CONTRACT_ID_COMPARABILITY
        • CONTRACT_ID_IN_CONTRACT_KEY
        • CONTRACT_NOT_ACTIVE
        • CREATE_EMPTY_CONTRACT_KEY_MAINTAINERS
        • DAML_AUTHORIZATION_ERROR
        • DISCLOSED_CONTRACT_KEY_HASHING_ERROR
        • FETCH_EMPTY_CONTRACT_KEY_MAINTAINERS
        • NON_COMPARABLE_VALUES
        • TEMPLATE_PRECONDITION_VIOLATED
        • UNHANDLED_EXCEPTION
        • VALUE_NESTING
        • WRONGLY_TYPED_CONTRACT
      • 1.3.3.1.1. ParticipantErrorGroup / LedgerApiErrors / CommandExecution / Interpreter / LookupErrors
        • CONTRACT_KEY_NOT_FOUND
      • 1.3.3.2. ParticipantErrorGroup / LedgerApiErrors / CommandExecution / Preprocessing
        • COMMAND_PREPROCESSING_FAILED
      • 1.3.4. ParticipantErrorGroup / LedgerApiErrors / ConsistencyErrors
        • CONTRACT_NOT_FOUND
        • DUPLICATE_COMMAND
        • DUPLICATE_CONTRACT_KEY
        • INCONSISTENT_CONTRACT_KEY
        • SUBMISSION_ALREADY_IN_FLIGHT
      • 1.3.5. ParticipantErrorGroup / LedgerApiErrors / PackageServiceError
        • DAR_NOT_SELF_CONSISTENT
        • DAR_VALIDATION_ERROR
        • PACKAGE_SERVICE_INTERNAL_ERROR
      • 1.3.5.1. ParticipantErrorGroup / LedgerApiErrors / PackageServiceError / Reading
        • INVALID_DAR
        • INVALID_ZIP_ENTRY
        • ZIP_BOMB
      • 1.3.6. ParticipantErrorGroup / LedgerApiErrors / RequestValidation
        • INVALID_ARGUMENT
        • INVALID_DEDUPLICATION_PERIOD
        • INVALID_FIELD
        • LEDGER_ID_MISMATCH
        • MISSING_FIELD
        • NON_HEXADECIMAL_OFFSET
        • OFFSET_AFTER_LEDGER_END
        • OFFSET_OUT_OF_RANGE
        • PARTICIPANT_PRUNED_DATA_ACCESSED
      • 1.3.6.1. ParticipantErrorGroup / LedgerApiErrors / RequestValidation / NotFound
        • LEDGER_CONFIGURATION_NOT_FOUND
        • PACKAGE_NOT_FOUND
        • TEMPLATES_OR_INTERFACES_NOT_FOUND
        • TRANSACTION_NOT_FOUND
      • 1.3.7. ParticipantErrorGroup / LedgerApiErrors / WriteServiceRejections
        • DISPUTED
        • OUT_OF_QUOTA
        • PARTY_NOT_KNOWN_ON_LEDGER
    • Error Codes Inventory - Canton
      • 1. GrpcErrors
        • ABORTED_DUE_TO_SHUTDOWN
      • 2. ParticipantErrorGroup
      • 2.1. LedgerApiErrorGroup
      • 2.1.1. AuthorizationChecksErrors
        • ACCESS_TOKEN_EXPIRED
        • INTERNAL_AUTHORIZATION_ERROR
        • PERMISSION_DENIED
        • STALE_STREAM_AUTHORIZATION
        • UNAUTHENTICATED
      • 2.1.2. CommandExecutionErrors
        • FAILED_TO_DETERMINE_LEDGER_TIME
        • INTERPRETATION_TIME_EXCEEDED
      • 2.1.2.1. Package
        • ALLOWED_LANGUAGE_VERSIONS
        • PACKAGE_VALIDATION_FAILED
      • 2.1.2.2. Preprocessing
        • COMMAND_PREPROCESSING_FAILED
      • 2.1.2.3. Interpreter
        • CONTRACT_DOES_NOT_IMPLEMENT_INTERFACE
        • CONTRACT_DOES_NOT_IMPLEMENT_REQUIRING_INTERFACE
        • CONTRACT_ID_COMPARABILITY
        • CONTRACT_ID_IN_CONTRACT_KEY
        • CONTRACT_NOT_ACTIVE
        • CREATE_EMPTY_CONTRACT_KEY_MAINTAINERS
        • DAML_AUTHORIZATION_ERROR
        • DAML_INTERPRETATION_ERROR
        • DAML_INTERPRETER_INVALID_ARGUMENT
        • DISCLOSED_CONTRACT_KEY_HASHING_ERROR
        • FETCH_EMPTY_CONTRACT_KEY_MAINTAINERS
        • INTERPRETATION_DEV_ERROR
        • INTERPRETATION_USER_ERROR
        • NON_COMPARABLE_VALUES
        • TEMPLATE_PRECONDITION_VIOLATED
        • UNHANDLED_EXCEPTION
        • VALUE_NESTING
        • WRONGLY_TYPED_CONTRACT
      • 2.1.2.3.1. LookupErrors
        • CONTRACT_KEY_NOT_FOUND
      • 2.1.2.3.2. UpgradeError
        • CONTRACT_NOT_UPGRADABLE
        • INTERPRETATION_UPGRADE_ERROR_DOWNGRADE_DROP_DEFINED_FIELD
        • INTERPRETATION_UPGRADE_ERROR_DOWNGRADE_FAILED
        • INTERPRETATION_UPGRADE_ERROR_VALIDATION_FAILED
        • INTERPRETATION_UPGRADE_ERROR_VIEW_MISMATCH
      • 2.1.3. AdminServicesErrorGroup
      • 2.1.3.1. PartyManagementServiceErrors
        • CONCURRENT_PARTY_DETAILS_UPDATE_DETECTED
        • INTERNAL_PARTY_RECORD_ALREADY_EXISTS
        • INTERNAL_PARTY_RECORD_NOT_FOUND
        • INVALID_PARTY_DETAILS_UPDATE_REQUEST
        • MAX_PARTY_DETAILS_ANNOTATIONS_SIZE_EXCEEDED
        • PARTY_NOT_FOUND
      • 2.1.3.2. UserManagementServiceErrors
        • CONCURRENT_USER_UPDATE_DETECTED
        • INVALID_USER_UPDATE_REQUEST
        • MAX_USER_ANNOTATIONS_SIZE_EXCEEDED
        • TOO_MANY_USER_RIGHTS
        • USER_ALREADY_EXISTS
        • USER_NOT_FOUND
      • 2.1.3.3. IdentityProviderConfigServiceErrors
        • IDP_CONFIG_ALREADY_EXISTS
        • IDP_CONFIG_BY_ISSUER_NOT_FOUND
        • IDP_CONFIG_ISSUER_ALREADY_EXISTS
        • IDP_CONFIG_NOT_FOUND
        • INVALID_IDENTITY_PROVIDER_UPDATE_REQUEST
        • TOO_MANY_IDENTITY_PROVIDER_CONFIGS
      • 2.1.4. AdminServiceErrors
        • CONFIGURATION_ENTRY_REJECTED
        • INTERNALLY_INVALID_KEY
        • PACKAGE_UPLOAD_REJECTED
      • 2.1.5. ConsistencyErrors
        • CONTRACT_NOT_FOUND
        • DISCLOSED_CONTRACT_INVALID
        • DUPLICATE_COMMAND
        • DUPLICATE_CONTRACT_KEY
        • INCONSISTENT
        • INCONSISTENT_CONTRACTS
        • INCONSISTENT_CONTRACT_KEY
        • INVALID_LEDGER_TIME
        • SUBMISSION_ALREADY_IN_FLIGHT
      • 2.1.6. PackageServiceErrors
        • DAR_NOT_SELF_CONSISTENT
        • DAR_NOT_VALID_UPGRADE
        • DAR_VALIDATION_ERROR
        • KNOWN_DAR_VERSION
        • PACKAGE_SERVICE_INTERNAL_ERROR
        • SHUTDOWN_INTERRUPTED_PACKAGE_VETTING
      • 2.1.6.1. Reading
        • DAR_PARSE_ERROR
        • INVALID_DAR
        • INVALID_DAR_FILE_NAME
        • INVALID_LEGACY_DAR
        • INVALID_ZIP_ENTRY
        • ZIP_BOMB
      • 2.1.7. WriteServiceRejectionErrors
        • DISPUTED
        • OUT_OF_QUOTA
        • PARTY_NOT_KNOWN_ON_LEDGER
        • SUBMITTER_CANNOT_ACT_VIA_PARTICIPANT
        • SUBMITTING_PARTY_NOT_KNOWN_ON_LEDGER
      • 2.1.7.1. Internal
        • INTERNALLY_DUPLICATE_KEYS
        • INTERNALLY_INCONSISTENT_KEYS
      • 2.1.8. RequestValidationErrors
        • INVALID_ARGUMENT
        • INVALID_DEDUPLICATION_PERIOD
        • INVALID_FIELD
        • LEDGER_ID_MISMATCH
        • MISSING_FIELD
        • NON_HEXADECIMAL_OFFSET
        • OFFSET_AFTER_LEDGER_END
        • OFFSET_OUT_OF_RANGE
        • PARTICIPANT_PRUNED_DATA_ACCESSED
      • 2.1.8.1. NotFound
        • LEDGER_CONFIGURATION_NOT_FOUND
        • NO_TEMPLATES_FOR_PACKAGE_NAME_AND_QUALIFIED_NAME
        • PACKAGE_NAMES_NOT_FOUND
        • PACKAGE_NOT_FOUND
        • TEMPLATES_OR_INTERFACES_NOT_FOUND
        • TRANSACTION_NOT_FOUND
      • 2.2. Errors
        • ACS_COMMITMENT_INTERNAL_ERROR
      • 2.2.1. MismatchError
        • ACS_COMMITMENT_ALARM
        • ACS_COMMITMENT_MISMATCH
        • ACS_MISMATCH_NO_SHARED_CONTRACTS
      • 2.2.2. DegradationError
        • ACS_COMMITMENT_DEGRADATION
        • ACS_COMMITMENT_DEGRADATION_WITH_INEFFECTIVE_CONFIG
      • 2.3. TransactionErrorGroup
      • 2.3.1. TransactionRoutingError
        • AUTOMATIC_TRANSFER_FOR_TRANSACTION_FAILED
        • ROUTING_INTERNAL_ERROR
        • UNABLE_TO_GET_TOPOLOGY_SNAPSHOT
      • 2.3.1.1. MalformedInputErrors
        • DISCLOSED_CONTRACT_AUTHENTICATION_FAILED
        • INVALID_DISCLOSED_CONTRACT
        • INVALID_DOMAIN_ALIAS
        • INVALID_DOMAIN_ID
        • INVALID_PARTY_IDENTIFIER
        • INVALID_SUBMITTER
      • 2.3.1.2. TopologyErrors
        • INFORMEES_NOT_ACTIVE
        • NOT_CONNECTED_TO_ALL_CONTRACT_DOMAINS
        • NO_COMMON_DOMAIN
        • NO_DOMAIN_FOR_SUBMISSION
        • NO_DOMAIN_ON_WHICH_ALL_SUBMITTERS_CAN_SUBMIT
        • SUBMITTERS_NOT_ACTIVE
        • SUBMITTER_ALWAYS_STAKEHOLDER
        • UNKNOWN_CONTRACT_DOMAINS
        • UNKNOWN_INFORMEES
        • UNKNOWN_SUBMITTERS
      • 2.3.1.3. ConfigurationErrors
        • INPUT_CONTRACT_HAS_UNAUTHENTICATED_ID
        • INVALID_PRESCRIBED_DOMAIN_ID
        • MULTI_DOMAIN_SUPPORT_NOT_ENABLED
        • SUBMISSION_DOMAIN_NOT_READY
      • 2.3.2. SubmissionErrors
        • CHOSEN_MEDIATOR_IS_INACTIVE
        • CONTRACT_AUTHENTICATION_FAILED
        • DOMAIN_BACKPRESSURE
        • DOMAIN_WITHOUT_MEDIATOR
        • MALFORMED_REQUEST
        • NOT_SEQUENCED_TIMEOUT
        • PACKAGE_NOT_VETTED_BY_RECIPIENTS
        • PARTICIPANT_OVERLOADED
        • SEQUENCER_REQUEST_FAILED
        • SUBMISSION_DURING_SHUTDOWN
        • UNKNOWN_CONTRACT_DOMAIN
      • 2.3.3. SyncServiceInjectionError
        • COMMAND_INJECTION_FAILURE
        • NODE_IS_PASSIVE_REPLICA
        • NOT_CONNECTED_TO_ANY_DOMAIN
      • 2.3.4. LocalReject
      • 2.3.4.1. MalformedRejects
        • LOCAL_VERDICT_BAD_ROOT_HASH_MESSAGES
        • LOCAL_VERDICT_CREATES_EXISTING_CONTRACTS
        • LOCAL_VERDICT_FAILED_MODEL_CONFORMANCE_CHECK
        • LOCAL_VERDICT_MALFORMED_PAYLOAD
        • LOCAL_VERDICT_MALFORMED_REQUEST
      • 2.3.4.2. ConsistencyRejections
        • LOCAL_VERDICT_DUPLICATE_KEY
        • LOCAL_VERDICT_INACTIVE_CONTRACTS
        • LOCAL_VERDICT_INCONSISTENT_KEY
        • LOCAL_VERDICT_LOCKED_CONTRACTS
        • LOCAL_VERDICT_LOCKED_KEYS
      • 2.3.4.3. TimeRejects
        • LOCAL_VERDICT_LEDGER_TIME_OUT_OF_BOUND
        • LOCAL_VERDICT_SUBMISSION_TIME_OUT_OF_BOUND
        • LOCAL_VERDICT_TIMEOUT
      • 2.3.4.4. TransferInRejects
        • TRANSFER_IN_ALREADY_COMPLETED
        • TRANSFER_IN_CONTRACT_ALREADY_ACTIVE
        • TRANSFER_IN_CONTRACT_ALREADY_ARCHIVED
        • TRANSFER_IN_CONTRACT_IS_LOCKED
      • 2.3.4.5. TransferOutRejects
        • TRANSFER_OUT_ACTIVENESS_CHECK_FAILED
      • 2.3.5. CommandDeduplicationError
        • MALFORMED_DEDUPLICATION_OFFSET
      • 2.4. SyncServiceError
        • PARTY_ALLOCATION_WITHOUT_CONNECTED_DOMAIN
        • SYNC_SERVICE_ALARM
        • SYNC_SERVICE_ALREADY_ADDED
        • SYNC_SERVICE_DOMAIN_BECAME_PASSIVE
        • SYNC_SERVICE_DOMAIN_DISABLED_US
        • SYNC_SERVICE_DOMAIN_DISCONNECTED
        • SYNC_SERVICE_DOMAIN_MUST_BE_OFFLINE
        • SYNC_SERVICE_DOMAIN_MUST_NOT_HAVE_IN_FLIGHT_TRANSACTIONS
        • SYNC_SERVICE_DOMAIN_STATUS_MUST_BE_INACTIVE
        • SYNC_SERVICE_DOMAIN_STATUS_NOT_ACTIVE
        • SYNC_SERVICE_INTERNAL_ERROR
        • SYNC_SERVICE_UNKNOWN_DOMAIN
      • 2.4.1. SyncDomainMigrationError
        • BROKEN_DOMAIN_MIGRATION
        • INVALID_DOMAIN_MIGRATION_REQUEST
      • 2.4.2. DomainRegistryError
        • DOMAIN_REGISTRY_INTERNAL_ERROR
        • TOPOLOGY_CONVERSION_ERROR
      • 2.4.2.1. ConfigurationErrors
        • CANNOT_ISSUE_DOMAIN_TRUST_CERTIFICATE
        • DOMAIN_PARAMETERS_CHANGED
        • INCOMPATIBLE_UNIQUE_CONTRACT_KEYS_MODE
        • INVALID_DOMAIN_CONNECTION
        • MISCONFIGURED_STATIC_DOMAIN_PARAMETERS
        • SEQUENCERS_FROM_DIFFERENT_DOMAINS_ARE_CONFIGURED
      • 2.4.2.2. HandshakeErrors
        • DOMAIN_ALIAS_DUPLICATION
        • DOMAIN_CRYPTO_HANDSHAKE_FAILED
        • DOMAIN_HANDSHAKE_FAILED
        • DOMAIN_ID_MISMATCH
        • SERVICE_AGREEMENT_ACCEPTANCE_FAILED
      • 2.4.2.3. ConnectionErrors
        • DOMAIN_IS_NOT_AVAILABLE
        • FAILED_TO_CONNECT_TO_SEQUENCER
        • FAILED_TO_CONNECT_TO_SEQUENCERS
        • GRPC_CONNECTION_FAILURE
        • PARTICIPANT_IS_NOT_ACTIVE
      • 2.5. AdminWorkflowServices
        • CAN_NOT_AUTOMATICALLY_VET_ADMIN_WORKFLOW_PACKAGE
      • 2.6. RepairServiceError
        • CONTRACT_PURGE_ERROR
        • CONTRACT_SERIALIZATION_ERROR
        • IMPORT_ACS_ERROR
        • INCONSISTENT_ACS_SNAPSHOT
        • INVALID_ACS_SNAPSHOT_TIMESTAMP
        • INVALID_ARGUMENT_REPAIR
        • UNAVAILABLE_ACS_SNAPSHOT
        • UNSUPPORTED_PROTOCOL_VERSION_PARTICIPANT
      • 2.7. CantonPackageServiceError
        • DAR_NOT_FOUND
        • PACKAGE_MISSING_DEPENDENCIES
        • PACKAGE_OR_DAR_REMOVAL_ERROR
      • 2.8. LedgerApiErrors
        • HEAP_MEMORY_OVER_LIMIT
        • LEDGER_API_INTERNAL_ERROR
        • MAXIMUM_NUMBER_OF_STREAMS
        • PARTICIPANT_BACKPRESSURE
        • THREADPOOL_OVERLOADED
      • 2.9. IndexErrors
      • 2.9.1. DatabaseErrors
        • INDEX_DB_INVALID_RESULT_SET
        • INDEX_DB_SQL_NON_TRANSIENT_ERROR
        • INDEX_DB_SQL_TRANSIENT_ERROR
      • 2.10. PruningServiceError
        • INTERNAL_PRUNING_ERROR
        • NON_CANTON_OFFSET
        • NO_INTERNAL_PARTICIPANT_DATA_BEFORE
        • PRUNING_NOT_SUPPORTED_IN_COMMUNITY_EDITION
        • SHUTDOWN_INTERRUPTED_PRUNING
        • UNSAFE_TO_PRUNE
      • 2.11. ParticipantReplicationServiceError
        • PARTICIPANT_REPLICATION_INTERNAL_ERROR
        • PARTICIPANT_REPLICATION_NOT_SUPPORTED_BY_STORAGE
      • 2.12. CommonErrors
        • REQUEST_DEADLINE_EXCEEDED
        • REQUEST_TIME_OUT
        • SERVER_IS_SHUTTING_DOWN
        • SERVICE_INTERNAL_ERROR
        • SERVICE_NOT_RUNNING
        • UNSUPPORTED_OPERATION
      • 3. EthereumErrors
      • 3.1. ConfigurationErrors
        • AHEAD_OF_HEAD
        • ATTEMPT_TO_CHANGE_IMMUTABLE_VALUE
        • BESU_VERSION_MISMATCH
        • ETHEREUM_CANT_QUERY_VERSION
        • MANY_BLOCKS_BEHIND_HEAD
        • NOT_FREE_GAS_NETWORK
        • WRONG_EVM_BYTECODE
      • 3.2. TransactionErrors
        • ETHEREUM_TRANSACTION_INVALID
        • ETHEREUM_TRANSACTION_RECEIPT_FETCHING_FAILED
        • ETHEREUM_TRANSACTION_SUBMISSION_FAILED
      • 4. TopologyManagementErrorGroup
      • 4.1. TopologyManagerError
        • DUPLICATE_TOPOLOGY_TRANSACTION
        • ILLEGAL_REMOVAL_OF_DOMAIN_TRUST_CERTIFICATE
        • INCREASE_OF_LEDGER_TIME_RECORD_TIME_TOLERANCE
        • INSUFFICIENT_KEYS
        • INVALID_DOMAIN
        • INVALID_THRESHOLD
        • INVALID_TOPOLOGY_TX_SIGNATURE_ERROR
        • INVALID_TRAFFIC_LIMIT
        • NO_APPROPRIATE_SIGNING_KEY_IN_STORE
        • NO_CORRESPONDING_ACTIVE_TX_TO_REVOKE
        • PUBLIC_KEY_NOT_IN_STORE
        • REMOVING_KEY_DANGLING_TRANSACTIONS_MUST_BE_FORCED
        • REMOVING_LAST_KEY_MUST_BE_FORCED
        • SECRET_KEY_NOT_IN_STORE
        • SERIAL_MISMATCH
        • TOPOLOGY_MANAGER_ALARM
        • TOPOLOGY_MANAGER_INTERNAL_ERROR
        • TOPOLOGY_MAPPING_ALREADY_EXISTS
        • UNAUTHORIZED_TOPOLOGY_TRANSACTION
        • UNKNOWN_MEMBERS
      • 4.1.1. DomainTopologyManagerError
        • ALIEN_DOMAIN_ENTITIES
        • FAILED_TO_ADD_MEMBER
        • MALICOUS_OR_FAULTY_ONBOARDING_REQUEST
        • PARTICIPANT_NOT_INITIALIZED
        • WRONG_DOMAIN
        • WRONG_PROTOCOL_VERSION
      • 4.1.2. ParticipantTopologyManagerError
        • CANNOT_VET_DUE_TO_MISSING_PACKAGES
        • DANGEROUS_KEY_USE_COMMAND_REQUIRES_FORCE
        • DANGEROUS_VETTING_COMMANDS_REQUIRE_FORCE
        • DEPENDENCIES_NOT_CHECK_ONLY_OR_VETTED
        • DEPENDENCIES_NOT_VETTED
        • DISABLE_PARTY_WITH_ACTIVE_CONTRACTS_REQUIRES_FORCE
        • MAIN_DAR_PACKAGE_REFERENCED_EXTERNALLY
        • PACKAGE_TOPOLOGY_STATE_UPDATE_TIMEOUT
        • UNINITIALIZED_PARTICIPANT
      • 4.1.3. Domain
        • DOMAIN_NODE_INITIALISATION_FAILED
      • 4.1.3.1. GrpcSequencerAuthenticationService
        • CLIENT_AUTHENTICATION_FAULTY
        • CLIENT_AUTHENTICATION_REJECTED
      • 4.2. DomainTopologySender
        • TOPOLOGY_DISPATCHING_DEGRADATION
        • TOPOLOGY_DISPATCHING_INTERNAL_ERROR
      • 5. ConfigErrors
        • CANNOT_PARSE_CONFIG_FILES
        • CANNOT_READ_CONFIG_FILES
        • CONFIG_SUBSTITUTION_ERROR
        • CONFIG_VALIDATION_ERROR
        • GENERIC_CONFIG_ERROR
        • NO_CONFIG_FILES
      • 6. CommandErrors
        • CONSOLE_COMMAND_INTERNAL_ERROR
        • CONSOLE_COMMAND_TIMED_OUT
        • NODE_NOT_STARTED
      • 7. DatabaseStorageError
        • DB_CONNECTION_LOST
        • DB_STORAGE_DEGRADATION
      • 8. HandshakeErrors
        • DEPRECATED_PROTOCOL_VERSION
        • DEPRECATING_PROTOCOL_VERSION
      • 9. EnvelopeOpenerError
        • EVENT_DESERIALIZATION_ERROR
      • 10. FabricErrors
      • 10.1. ConfigurationErrors
        • FABRIC_AHEAD_OF_HEAD
        • FABRIC_MANY_BLOCKS_BEHIND_HEAD
      • 10.2. TransactionErrors
        • FABRIC_TRANSACTION_INVALID
        • FABRIC_TRANSACTION_PROPOSAL_SUBMISSION_FAILED
        • FABRIC_TRANSACTION_SUBMISSION_FAILED
      • 11. SequencerError
        • INVALID_ACKNOWLEDGEMENT_SIGNATURE
        • INVALID_ACKNOWLEDGEMENT_TIMESTAMP
        • INVALID_ENVELOPE_SIGNATURE
        • INVALID_LEDGER_EVENT
        • INVALID_SEQUENCER_PRUNING_REQUEST_ON_CHAIN
        • INVALID_SUBMISSION_REQUEST_SIGNATURE
        • MAX_REQUEST_SIZE_EXCEEDED
        • MAX_SEQUENCING_TIME_EXCEEDED
        • MISSING_SUBMISSION_REQUEST_SIGNATURE_TIMESTAMP
        • MULTIPLE_MEDIATOR_RECIPIENTS
        • PAYLOAD_TO_EVENT_TIME_BOUND_EXCEEDED
      • 12. EnterpriseGrpcVaultServiceError
        • INVALID_KMS_KEY_ID
        • NO_ENCRYPTED_PRIVATE_KEY_STORE_ERROR
        • REGISTER_KMS_KEY_INTERNAL_ERROR
        • WRAPPER_KEY_ALREADY_IN_USE_ERROR
        • WRAPPER_KEY_DISABLED_OR_DELETED_ERROR
        • WRAPPER_KEY_NOT_EXIST_ERROR
        • WRAPPER_KEY_ROTATION_INTERNAL_ERROR
      • 13. MediatorError
        • MEDIATOR_INTERNAL_ERROR
        • MEDIATOR_INVALID_MESSAGE
        • MEDIATOR_RECEIVED_MALFORMED_MESSAGE
        • MEDIATOR_SAYS_TX_TIMED_OUT
      • 14. ProtoDeserializationError
        • PROTO_DESERIALIZATION_FAILURE
      • 15. SequencerErrors
        • SEQUENCER_AGGREGATE_SUBMISSION_ALREADY_SENT
        • SEQUENCER_AGGREGATE_SUBMISSION_STUFFING
        • SEQUENCER_MAX_SEQUENCING_TIME_TOO_FAR
        • SEQUENCER_NOT_ENOUGH_TRAFFIC_CREDIT
        • SEQUENCER_SIGNING_TIMESTAMP_AFTER_SEQUENCING_TIMESTAMP
        • SEQUENCER_SIGNING_TIMESTAMP_MISSING
        • SEQUENCER_SIGNING_TIMESTAMP_TOO_EARLY
        • SEQUENCER_SUBMISSION_REQUEST_MALFORMED
        • SEQUENCER_SUBMISSION_REQUEST_REFUSED
        • SEQUENCER_TOMBSTONE_PERSISTED
        • SEQUENCER_UNKNOWN_RECIPIENTS
      • 16. ResilientSequencerSubscription
        • SEQUENCER_FORK_DETECTED
        • SEQUENCER_SUBSCRIPTION_LOST
      • 17. SequencerSubscriptionError
        • SEQUENCER_TOMBSTONE_ENCOUNTERED
      • 18. Clock
        • SYSTEM_CLOCK_RUNNING_BACKWARDS
  • Troubleshooting
    • Error: “<X> is not authorized to commit an update”
    • Error: “Argument is not of serializable type”
    • Error: “Recursion limit overflow in module”
      • Solving script recursion limits
      • Solving datatype recursion limits
    • Modeling Questions
      • How To Model an Agreement With Another Party
      • How To Model Rights
      • How To Void a Contract
      • How To Represent Off-ledger Parties
      • How To Limit a Choice by Time
      • How To Model a Mandatory Action
      • When to Use Optional
    • Testing Questions
      • How To Test That a Contract Is Visible to a Party
      • How To Test That an Update Action Cannot Be Committed
  • Get Help
    • Support Expectations
  • Portability, Compatibility, and Support Durations
    • Ledger API Compatibility: Application Portability
      • List of Ledger API Versions Supported by Daml
      • Summary of Ledger API Changes
    • Driver and Participant Compatibility: Network Upgradeability
      • Participant database migration
    • SDK, Runtime Component, and Library Compatibility: Daml Upgradeability
    • Ledger API Support Duration
  • Daml Ecosystem Overview
    • Architecture
    • Daml Networks
      • Daml drivers
    • Participant Nodes
    • Ledger API
    • Daml Components
      • Runtime components
      • Libraries
      • Generated code
      • Developer tools / SDK
    • Status Definitions
      • Early Access Features
      • Deprecation
      • Comparison of Statuses
  • Releases and Versioning
    • Versioning
    • Cadence
    • Support Duration
    • Release Notes
    • Process

Reference

  • Glossary of Concepts
    • Key Concepts
      • Daml
      • Daml Language
      • Daml Ledger
        • Canton Ledger
      • Canton Protocol
      • Synchronization Technology
      • Daml Drivers
    • Daml Language Concepts
      • Contract
        • Active Contract, Archived Contract
      • Template
      • Choice
        • Consuming Choice
        • Nonconsuming Choice
        • Disjunction Choice, Flexible Controllers
      • Party
        • Signatory
        • Observer
        • Controller
        • Choice Observer
        • Stakeholder
        • Maintainer
      • Authorization, Signing
      • Standard Library
      • Agreement
      • Create
      • Exercise
      • Daml Script
      • Contract Key
      • DAR File, DALF File
    • Developer Tools
      • Assistant
      • Studio
      • Sandbox
      • Navigator (Deprecated)
        • Navigator GUI
    • Building Applications
      • Application, Ledger Client, Integration
      • Ledger API
        • Command Submission Service
        • Command Completion Service
        • Command Service
        • Transaction Service
        • Active Contract Service
        • Package Service
        • Ledger Identity Service
        • Ledger Configuration Service
      • Ledger API Libraries
        • Java Bindings
        • Python Bindings
      • Reading From the Ledger
      • Submitting Commands, Writing To the Ledger
        • Commands
      • Participant Node
      • Sub-transaction Privacy
      • Daml-LF
      • Composability
      • Trust Domain
    • Canton Concepts
      • Synchronization Domain
      • Private Contract Store
      • Virtual Global Ledger
      • Mediator
      • Sequencer
      • Synchronization Domain Identity Manager
      • Consensus
  • Daml Example Applications
  • Daml Language References
    • Daml Language Cheat Sheet
    • Language Reference
      • Overview: Template Structure
        • Template Outline Structure
        • Choice Structure
        • Choice Body Structure
      • Reference: Templates
        • Template Name
        • Template Parameters
        • Implicit Record
        • this and self
        • Template-local Definitions (Deprecated)
        • Signatory Parties
        • Observers
        • Choices
        • Serializable Types
        • Agreements (Deprecated)
        • Preconditions
        • Contract Keys and Maintainers
        • Interface Instances
      • Reference: Choices
        • Choice Name
        • Controllers
        • Choice Observers
        • Preconsuming Choices
        • Postconsuming Choices
        • Non-consuming Choices
        • Choice Arguments
        • Choice Body
      • Reference: Updates
        • Background
        • Binding Variables
        • do
        • archive
        • create
        • exercise
        • exerciseByKey
        • fetch
        • fetchByKey
        • visibleByKey
        • lookupByKey
        • abort
        • assert
        • getTime
        • return
        • let
        • this
      • Reference: Data types
        • Built-in Types
        • Lists
        • Records and Record Types
        • Type Synonyms
        • Algebraic Data Types
      • Reference: Built-in functions
        • Work with Time
        • Work with Numbers
        • Work with Text
        • Work with Lists
      • Reference: Expressions
        • Definitions
        • Arithmetic Operators
        • Comparison Operators
        • Logical Operators
        • If-then-else
        • Let
      • Reference: Functions
        • Defining Functions
        • Partial Application
        • Functions are Values
        • Generic Functions
      • Reference: File structure
        • File Structure
        • Imports
        • Libraries
        • Comments
        • Contract Identifiers
      • Reference: Packages
        • Building Daml Archives
        • Inspecting DARs
        • Import Daml Packages
        • Handling Module Name Collisions
      • Reference: Contract keys
        • What Can Be a Contract Key
        • Specify Maintainers
        • Contract Lookups
        • exerciseByKey
        • Example
      • Reference: Exceptions
        • Builtin Errors
        • User-defined Exceptions
        • Throw Exceptions
        • Catch Exceptions
      • Reference: Interfaces
        • Configuration
        • Interface Declaration
        • Interface Instances
        • Interface Functions
        • Required Interfaces
    • The Standard Library
      • Prelude
        • Typeclasses
        • Data Types
        • Functions
      • DA.Action
        • Functions
      • DA.Action.State
        • Data Types
        • Functions
      • DA.Action.State.Class
        • Typeclasses
      • DA.Assert
        • Functions
      • DA.Bifunctor
        • Typeclasses
      • DA.BigNumeric
        • Functions
      • DA.Date
        • Data Types
        • Functions
      • DA.Either
        • Functions
      • DA.Exception
        • Typeclasses
        • Data Types
      • DA.Foldable
        • Typeclasses
        • Functions
      • DA.Functor
        • Functions
      • DA.Internal.Interface.AnyView
        • Typeclasses
        • Functions
      • DA.Internal.Interface.AnyView.Types
        • Data Types
      • DA.List
        • Functions
      • DA.List.BuiltinOrder
        • Functions
      • DA.List.Total
        • Functions
      • DA.Logic
        • Data Types
        • Functions
      • DA.Map
        • Functions
      • DA.Math
        • Functions
      • DA.Monoid
        • Data Types
      • DA.NonEmpty
        • Functions
      • DA.NonEmpty.Types
        • Data Types
      • DA.Numeric
        • Functions
      • DA.Optional
        • Functions
      • DA.Record
        • Typeclasses
      • DA.Semigroup
        • Data Types
      • DA.Set
        • Data Types
        • Functions
      • DA.Stack
        • Data Types
        • Functions
      • DA.Text
        • Functions
      • DA.TextMap
        • Functions
      • DA.Time
        • Data Types
        • Functions
      • DA.Traversable
        • Typeclasses
        • Functions
      • DA.Tuple
        • Functions
      • DA.Validation
        • Data Types
        • Functions
      • GHC.Show.Text
        • Functions
      • GHC.Tuple.Check
        • Functions
    • Daml Script Library
      • Daml.Script
        • Data Types
        • Functions
    • Daml Trigger Library
      • Daml.Trigger
        • Typeclasses
        • Data Types
        • Functions
      • Daml.Trigger.Assert
        • Data Types
        • Functions
      • Daml.Trigger.LowLevel
        • Typeclasses
        • Data Types
        • Functions
  • Daml Ledger References
    • Daml Ledger Model Concepts
      • Structure
        • Actions and Transactions
        • Ledgers
      • Integrity
        • Valid Ledgers
        • Consistency
        • Conformance
        • Authorization
        • Valid Ledgers, Obligations, Offers and Rights
      • Causality and Local Daml Ledgers
        • Causality Examples
        • Causality Graphs
        • Local Ledgers
      • Privacy
        • Contract Observers and Stakeholders
        • Choice Observers
        • Projections
        • Privacy Through Authorization
        • Divulgence: When Non-Stakeholders See Contracts
      • Daml: Define Contract Models Compactly
      • Exceptions
        • Structure
        • Consistency
        • Transaction Normalization
        • Authorization
        • Privacy
        • Relation to Daml Exceptions
      • Identity and Package Management
        • Identity Management
        • Package Management
      • Time on Daml Ledgers
        • Ledger Time
        • Record Time
        • Guarantees
        • Ledger Time Model
        • Assign Ledger Time
      • Smart Contract Upgrade In Depth
        • Static Checks
        • Data Transformation: Runtime Semantics
        • LF 1.17 Values in the Ledger API
    • Canton Advanced Architecture
      • Contract Keys in Canton
        • Synchronization Domains with Uniqueness Guarantees
        • Non-Unique Contract Keys Mode
      • Domain Architecture and Integrations
        • Synchronization Domain-Specific Requirements
        • Synchronization Domain-Internal Components
        • Drivers
        • Canton Domain on Ethereum
        • Canton Domain on Fabric
      • Identity Management
        • Identity Providing Service
        • Identity Management Design
        • Implementation
      • Canton High-Level Requirements
        • Functional requirements
        • Resource limits
        • Non-functional requirements
        • Known limitations
        • Requirement Exceptions: Notes
      • Research Publications
      • Security Architecture
        • Secure Cryptographic Private Key Storage
        • Resilience to Malicious Participants
        • Consensus & Transparency
      • System Architecture FAQ
        • What does the Sequencer do?
        • How does Canton process a transaction?
        • How does Canton ensure privacy?
        • Where does “the golden source” of Daml Ledger data live in Canton?
        • How is Canton able to recover from data loss?
    • Canton Frequently Asked Questions
      • Log Messages
        • Database task queue full
        • Serialization Exception
      • Console Commands
        • I received an error saying that the DomainAlias I used was too long. Where I can see the limits of String types in Canton?
      • Bootstrap Scripts
        • Why do you have an additional new line between each line in your example scripts?
        • How can I use nested import statements to split my script into multiple files?
        • How do I write data to a file and how do I read it back?
      • Why is Canton complaining about my database version?
        • Postgres
        • Oracle
        • Using non-standard database versions
      • How do I enable unsupported features?
      • How do I enable beta features?
      • How to troubleshoot included configuration files?
  • Test Evidence

Early Access

  • Daml Ledger Interoperability
    • Interoperability Examples
      • Topology
      • Aggregation at the Participant
      • Enter and Leave Events
      • Cross-ledger Transactions
    • Multi-ledger Causality Graphs
      • Consistency
      • Minimality and Reduction
      • From Multi-ledger Causality Graphs to Ledgers
    • Ledger-aware Projection
    • Ledger API Ordering Guarantees
  • Non-repudiation
    • Architecture
    • Run the Server-side Components
    • Use the Client
    • Non-repudiation Over the HTTP JSON API
    • TLS Support
Download as PDF

Developers
Products
Company
Documentation Version 
Please enter at least 3 letters.

Getting started

Go

Writing Daml

Go

Building applications

Go

SDK tools

Go

Background concepts

Go

Examples

Go