Smart contracts are great tools for storing value in digital form as well as defining the behavior of how that value can be transferred, split, locked or simply destroyed. However, describing smart contract state transitions without specifying who is allowed to perform them and when, is like playing a game of chess where each player can move any piece on the board regardless of their turn. In this regard DAML, the platform-agnostic smart contract programming language developed by Digital Asset, shines.
DAML is a great open source language for modeling rights and obligations between multiple parties.
A DAML agreement between two parties may require the obligor to perform an action such as provide health treatment, paint a fence or transfer an amount of money to the beneficiary. This obligation is conveniently expressed in the
agreement field of a DAML smart contract and is settled off-ledger.
Providing health treatment or painting someone’s fence means interacting with the physical world and therefore such obligations must be settled off-ledger. The same though doesn’t hold true when transferring value between parties, especially digital tokens.