Daml Finance Documentation

Welcome to the Daml Finance documentation. This page provides an overview of the documentation content as well as suggested starting points. Use the left-hand menu to explore the various sections, or the search bar above for quick navigation. If you are missing content from the documentation, have feedback on the library, or need any help using it, do not hesitate to open an issue on the repository.

Content

  • Overview: description of the purpose of the library, its high-level architecture, as well as targeted use cases
  • Concepts: explanation of the main concepts used throughout the library, and how they fit together
  • Instruments: description of the instruments that are included in Daml Finance and can be used out of the box
  • Packages: documentation for each individual package and its contained modules
  • Tutorials: step-by-step implementation guides across different use cases
  • Reference: glossary as well as code-level documentation for each package

Starting Points

The following is a suggested learning path to get productive quickly:

  1. Get started quickly
  2. Read up on the background, purpose, and intended usage of the library
  3. Understand the fundamental concepts in depth
  4. Learn how to use the instrument packages to model different financial instruments
  5. Explore the Daml Finance Demo Application
  6. Ask questions in the Forum or read existing discussions

Packages

How to Download

Daml Finance is distributed as a set of packages. There are two main ways how to download Daml Finance:

  • New users are recommended to follow the Getting started tutorial, which also contains a get-dependencies script that downloads the Daml Finance packages. This allows you to learn Daml Finance at the same time.
  • Advanced users can download Daml Finance directly from the Releases section of the repo, either the individual packages that your application needs or a bundle containing all packages.

Current Release

Daml SDK 2.10.0

This section details the list of released and deprecated packages, with status information provided for each package according to the Daml Ecosystem convention. Additionally, a section is included to highlight and explain the major updates and enhancements introduced since the last release.

Important Note: The current Daml Finance release was built with Daml SDK 2.10.0 and Daml LF version 1.17 (LF 1.17) to enable Smart Contract Upgrading (SCU). To use this release, ensure your project is using Daml SDK 2.10.0 or later and LF 1.17. By default, SDK 2.10.0 uses LF 1.15, but you can enable LF 1.17 by adding –target=1.17 as build-options in your daml.yaml file.

Smart Contract Upgradeability

Daml Finance is now SCU compatible by relying on Daml SDK 2.10.0 and Daml LF 1.17. As part of this change, each package incorporates its major version number (Vx) into its path, package name, and module name. Consequently, the major version for all Daml Finance packages has been incremented.

Context-Aware Semaphore Lock Release

A fix added to the Daml.Finance.Util package ensures that a holding protected by a semaphore lock will only be released if the lock’s context matches the provided unlock context. This prevents inadvertent releases.

New AutoCallable Instrument

A new AutoCallable instrument AutoCallable has been added to the experimental Daml.Finance.Instrument.StructuredProduct.V1 package. This addition expands the set of available structured product instruments.

Stable Packages
Package Version Status
ContingentClaims.Core.V3 3.0.0 Stable
ContingentClaims.Lifecycle.V3 3.0.0 Stable
Daml.Finance.Account.V4 4.0.0 Stable
Daml.Finance.Claims.V3 3.0.0 Stable
Daml.Finance.Data.V4 4.0.0 Stable
Daml.Finance.Holding.V4 4.0.0 Stable
Daml.Finance.Instrument.Bond.V3 3.0.0 Stable
Daml.Finance.Instrument.Generic.V4 4.0.0 Stable
Daml.Finance.Instrument.Token.V4 4.0.0 Stable
Daml.Finance.Interface.Account.V4 4.0.0 Stable
Daml.Finance.Interface.Claims.V4 4.0.0 Stable
Daml.Finance.Interface.Data.V4 4.0.0 Stable
Daml.Finance.Interface.Holding.V4 4.0.0 Stable
Daml.Finance.Interface.Instrument.Base.V4 4.0.0 Stable
Daml.Finance.Interface.Instrument.Bond.V3 3.0.0 Stable
Daml.Finance.Interface.Instrument.Generic.V4 4.0.0 Stable
Daml.Finance.Interface.Instrument.Token.V4 4.0.0 Stable
Daml.Finance.Interface.Instrument.Types.V2 3.0.0 Stable
Daml.Finance.Interface.Lifecycle.V4 4.0.0 Stable
Daml.Finance.Interface.Settlement.V4 4.0.0 Stable
Daml.Finance.Interface.Types.Common.V3 3.0.0 Stable
Daml.Finance.Interface.Types.Date.V3 3.0.0 Stable
Daml.Finance.Interface.Util.V3 3.0.0 Stable
Daml.Finance.Lifecycle.V4 4.0.0 Stable
Daml.Finance.Settlement.V4 4.0.0 Stable
Daml.Finance.Util.V4 4.0.0 Stable
Early Access Packages
Package Version Status
ContingentClaims.Valuation.V1 1.0.0 Labs
Daml.Finance.Instrument.Equity.V1 1.0.0 Alpha
Daml.Finance.Instrument.Option.V1 1.0.0 Alpha
Daml.Finance.Instrument.StructuredProduct.V1 1.0.0 Alpha
Daml.Finance.Instrument.Swap.V1 1.0.0 Alpha
Daml.Finance.Interface.Instrument.Equity.V1 1.0.0 Alpha
Daml.Finance.Interface.Instrument.Option.V1 1.0.0 Alpha
Daml.Finance.Interface.Instrument.StructuredProduct.V1 1.0.0 Alpha
Daml.Finance.Interface.Instrument.Swap.V1 1.0.0 Alpha
Deprecated Packages
Package Version Status
ContingentClaims.Core 2.* Depr.
ContingentClaims.Lifecycle 2.* Depr.
Daml.Finance.Account 3.* Depr.
Daml.Finance.Claims 2.* Depr.
Daml.Finance.Data 3.* Depr.
Daml.Finance.Holding 3.* Depr.
Daml.Finance.Instrument.Generic 3.* Depr.
Daml.Finance.Instrument.Token 3.* Depr.
Daml.Finance.Interface.Account 3.* Depr.
Daml.Finance.Interface.Claims 3.* Depr.
Daml.Finance.Interface.Data 3.* Depr.
Daml.Finance.Interface.Holding 3.* Depr.
Daml.Finance.Interface.Instrument.Base 3.* Depr.
Daml.Finance.Interface.Instrument.Generic 3.* Depr.
Daml.Finance.Interface.Instrument.Token 3.* Depr.
Daml.Finance.Interface.Lifecycle 3.* Depr.
Daml.Finance.Interface.Settlement 3.* Depr.
Daml.Finance.Interface.Util 2.* Depr.
Daml.Finance.Lifecycle 3.* Depr.
Daml.Finance.Settlement 3.* Depr.
Daml.Finance.Util 3.* Depr.