A comparison of different security token standards
by Jean-Philippe Aumasson and Ryan Sauge
We propose a comparison of CMTAT with other tokenization smart contract frameworks, namely:
- ERC-1400, as supported by Polymath’s https://github.com/PolymathNetwork/polymath-core.
- ERC-3643, also known as “T-REX Protocol”, whose reference implementation is at https://github.com/TokenySolutions/T-REX.
We compare these with CMTAT’s Solidity version 2.3.0. Note that, unlike those frameworks, CMTAT is a blockchain-agnostic tokenization standard, of which implementations exist of other, non-EVM blockchains.
Disclaimer: The comparison points are not exhaustive. The absence of a feature is not necessarily a negative point but may just be a design choice. Each tokenization framework has its unique properties, and different use cases may call for different technology choices. We also restrict our comparison to Solidity, EVM-compatible smart contracts, and thus do not include, for example, the Polymesh network technology. This comparison was carried out as of January 2024.
Comparison of tokenization smart contract frameworks |
|||
---|---|---|---|
CMTAT Solidity code | ERC-1400 | ERC-3643 | |
Version compared | CMTAT 2.3.0 (https://github.com/CMTA/CMTAT/releases/tag/v2.3.0) | polymath-core (https://github.com/PolymathNetwork/polymath-core) | Tokeny's T-Rex (https://github.com/TokenySolutions/T-REX) |
ERC-20 | |||
Transfer restriction | |||
On-chain identity management | |||
Document management | |||
Whitelist management | |||
Token contract pause | |||
Snapshots/checkpoints | |||
Explicit support of debt instruments | |||
Third-party security audit | |||
Role-based access control | Partial (only one role Agent) |
||
Security identifiers | |||
Mint & burn to any address | |||
Forced transfer function | Realized as burn-and-mint | ||
Partially fungible token support | |||
Contract version tracking | |||
Gasless support (ERC-2771) | |||
Customizable modular design | |||
License | MPL 2.0 (permissive) |
Apache 2.0 (permissive) |
GPL 3.0 (copyleft) |