Of owners, custodians, issuers, and depositories
In this third post on real-world tokenization with Daml Finance, I’ll take a look at how the roles of owners, custodians, issuers, and depositories are accounted for. As discussed in the introduction to this series of blogs, real-world tokens need to consider these roles, as well as provide other capabilities, if we are to streamline processes, retire legacy systems, and reduce costs.
When we look at the existing finance industry, we see of course that real-world assets such as equities, bonds, derivatives, and even cash have some requirement to identify owners, custodians, issuers, and depositories, and that each of these roles carries specific rights and obligations. By contrast, cryptocurrency tokens only really account for the role of owner, and ownership of the private key that proves ownership is everything—lose it or reveal it, and your money is gone. Many crypto-custody solutions exist, but they are really concerned with management of these private keys, and they are “off-chain” solutions, as they do not leverage any built-in token capabilities concerning custody.
With Daml Finance, owners, custodians, issuers, and depositories are first-class citizens, with their rights and obligations defined within your tokenized assets. For the remainder of this post, we’ll take a look at how this works. We’ll focus on:
Instruments, which define the roles of issuer and depository
Accounts, which define the roles of owner and custodian
Holdings, which define the amounts of instruments held in accounts
Instruments: Issuers and depositories
In Daml Finance, an instrument contract describes the rights and obligations associated with one unit of a financial instrument. There are some built-in types, such as bonds, equities, options, swaps, and tokens; other instrument types can be modeled using the contingent claims library. Any lifecycling logic is encoded in the instrument contract, as illustrated in the lifecycling post.
The full programmability of instrument behavior differs from simpler tokens such as cryptocurrencies, which represent only ownership of a decentralized asset. It is this programmability that allows Daml Finance to cover the full value chain of assets that are used in financial markets today.
Every instrument defines (at least) an issuer and a depository. In Daml terms, the issuer and the depository are parties that are signatories to the instrument contract. This means that both have to agree to the instrument being created and to the rules that it follows.
Accounts: Owners and custodians
In Daml Finance, an account is conceptually similar to an account with a bank or broker. One account may hold multiple instrument types, such as cash, equities, bonds, or derivatives. An owner must have an account before any holdings can be created.
Account contracts are signed by both an owner party and a custodian party. Thus an account is proof of a relationship between an owner and a custodian. Either party may have prerequisites to that relationship being formed; for example, an owner might want to do some due diligence on a custodian, or a custodian might need to perform KYC and AML checks on an owner.
An additional feature of accounts is that they specify who has to authorize incoming transfers and who has to authorize outgoing transfers. This allows very precise control of holdings movements. A few examples are owner controlling outgoing only, owner controlling incoming and outgoing, or custodian controlling incoming and outgoing.
Accounts play a critical role in settlement in Daml Finance. This is an area to be covered in a future blog, but for now I’ll mention that it is through the creation of custody hierarchies that settlement is achieved. Each node in the custody hierarchy is an account. As an example, Alice has an account with Bank A, Bank A and Bank B have accounts with the Central Bank, and Bob has an account with Bank B.
Holdings: Joining instruments to accounts
Our final area of focus is holdings. A holding represents a quantity of an instrument held in an account: For example, 10,000 shares in Microsoft, or €15,000. Similar to an account, a holding defines an owner and a custodian; usually these are the account owner and custodian.
Daml Finance comes with the following holding types, although you are free to create your own as well.
Fungible: Holdings can be split and merged
Non-fungible: Holdings cannot be split and merged
Non-transferable: Holdings cannot be split, merged, or transferred
Most of the commonly used financial instruments (equities, bonds, etc.) are held as fungible holdings.
In addition, holdings can be locked and released. This mechanism is useful and efficient when a holding needs to be retained by an owner but “reserved” for a possible future activity. Examples include locking cash when placing a bid for an asset, and locking an asset when it is used as collateral.
For the technically minded, a holding is represented by a contract specifying an account key, an instrument key, and an amount. If you come from a relational database background, you may find it useful to think of instruments and accounts having a many-to-many relationship, with holdings as the joining records.
Daml Finance supports a wide range of real-world finance use cases by allowing full asset behavior to be modeled “on chain”. One aspect of this is the recognition that assets have more than just an owner: The roles of custodian, issuer, and depository must also be included. Daml Finance achieves this by assigning these roles within smart contracts representing instruments, accounts, and holdings.
The separation between the economic terms of an instrument and the representation of its holdings is important. It allows capabilities such as lifecycling to be managed by issuers and depositories, and to be applied across multiple investor holdings at different custodians.