
Comparison of RWA Tokenization on the Canton Network and EVM-Based Chains
Most Solidity-based contracts that tokenize real-world assets (RWAs) use the ERC20 standard. This article series begins by exploring how ERC20 facilitates tokenization of RWAs and how similar—if not superior—functionality can be implemented using Daml.
ERC20: The Foundation of Tokenization on EVM
The ERC20 standard defines six mandatory functions that allow users to:
Query token balances and total supply
Transfer tokens between accounts
These functions operate over a mutable state model, where a mapping between account addresses and token balances is maintained directly within the smart contract. This structure is analogous to a traditional banking ledger, where a central authority tracks and updates account balances.
On Ethereum Virtual Machine (EVM)-based chains, an address can represent either:
A smart contract
An externally owned account (EOA), such as a user wallet
This dual-purpose nature of addresses can introduce complexity or ambiguity in smart contract logic.
Daml & Canton: Strong Typing and UTXO-Based Ownership
Daml takes a more strongly-typed approach. It clearly distinguishes between:
ContractId: a reference to a smart contract on the ledger
Party: an entity authorized to act on the ledger
This distinction ensures better safety and clarity. You can’t accidentally confuse a contract reference with a party identifier—something that’s possible in Solidity due to its looser type system.
On Canton, the underlying ledger for Daml, asset ownership is modeled using the Unspent Transaction Output (UTXO) model. This approach is also used by Bitcoin and several other non-EVM blockchains.
A Mental Model: The Physical Wallet Analogy
Think of UTXO-based ownership like holding physical cash in a wallet:
You may carry three $1 bills, a $5, two $10s, and a $20 bill.
Your total value is $48, but each bill is a discrete unit that must be spent or transferred individually.
In Daml, this translates into individual contracts representing different quantities of a tokenized asset. For example, you might hold:
One contract with 1.05 MMF shares
Another with 2.3 MMF shares
And another with 0.21 MMF shares
Together, these represent a total ownership of 3.56 shares in the money market fund.
Each contract explicitly contains an owner field of type Party, making ownership an intrinsic part of the asset's definition. This structure eliminates the need for a central balance-tracking mechanism and enhances traceability, granularity, and flexibility.
Add Feedback & Reviews