Latest News & Articles

Simple issuance and transfer of company shares using DAML smart contracts.

Transforming Australia’s share market infrastructure using distributed ledger technologies.

In about 12 months from now, the Australian Securities Exchange (ASX) will migrate its entire trade clearing and settlement system (CHESS) to a distributed ledger backend developed in conjunction with Digital Asset Holdings.

The change will create meaningful improvements to the current system by providing access to definitive real-time data and enabling new smart contract based workflows using the Digital Asset Modelling Language (DAML). 

The CHESS replacement application will be the first in an ecosystem of many potential DAML applications hosted on the ASX’s distributed ledger technology. Both the CHESS replacement application and the ledger have been designed with the following principles in mind:

  • Must operate for the benefit of issues and end investors
  • Future proof
  • Accessibility
  • Ease of integration and global interoperability
  • Availability, reliability, performance
  • Privacy and security
  • Operational efficiencies
  • Compliance

Digital Asset Modelling Language Overview

The distributed ledger will support smart contracts written in DAML, the programming language created by Digital Asset for authoring digital contracts that can natively encode the conceptual ideas of contracts, rights, parties, authorisation and privacy at the base layer. 

DAML allows the abstraction of many traditional distributed ledger and smart contract concepts, such as access control and transaction privacy, which results in contract code that is more human readable than other major smart contracting languages in use today, as well as being compatible with any ledger that supports a DAML environment.

Code example: Representing shares using DAML contracts.

In the following example, we see how simple it can be to represent a company’s shares as a smart contract using just a few lines of DAML code.

First, we need to define the relevant parties and the amount of shares in the contract using the following parameters:

  • issuer : Party - the party that has issued shares
  • owner : Party - the party that owns the shares
  • amount: Decimal - amount of shares in the contract


Next, we add some conditional checks and define who is authorised to create the contract with:

  • ensure amount > 0.0 - ensures that the contract representing the shares has a balance greater than zero.
  • signatory issuer, owner - lists two signatories that are both necessary to create the contract, one signature is required from the share issuer and one from the share owner


Finally, we set choices that allows the owner to initiate a transfer request by creating a new transfer offer contract, called ShareTransfer using the following variables:

  • controller owner can - this specifies which party or parties can exercise this choice on the contract. Here it is specified that the owner is the only one able to exercise the choice on this contract
  • Share_Transfer: ContractId ShareTransfer - lists the name of the choice (Share_Transfer) and the return value (ShareTransfer) and type (ContractId)
  • with newOwner : Party - the parameters the choice takes, in this case a single parameter called newOwner of type Party
  • do create ShareTransfer with - The actions that are applied when the choice is exercised, in this case the creation of a new contract of different template, called ShareTransfer.
  • share = this; newOwner - the parameters for the creation of the ShareTransfer contract, which are the contents of this contract, and the newOwner that it is to be transferred to.


Putting it all together, we get our full DAML share contract below. This example is kept intentionally simple by excluding certain functions, such as the ability to transfer the entire amount of shares in each transfer, and the need for a second contract to initiate a transfer request. Further iterations would add an ‘amount’ parameter to the share transfer as well as appropriate conditional logic.


As a world-first innovation, the coming ASX DLT will create many new opportunities for businesses to leverage the benefits of this new technology. As one of Australia’s leading blockchain and distributed ledger experts, DigitalX is ready to help your organisation identify where to take advantage of these opportunities today.