Overview
This is a Security Token smart contract implementation from CoMakery (dba Upside). The core purpose of the token is to enforce transfer restrictions for certain groups while supporting multiple token types (RegS, RegD, RegCF, etc.) based on investor identity and regulatory requirements.
This implementation attempts to balance simplicity and sufficiency for smart contract security tokens that need to comply with regulatory authorities - without adding unnecessary complexity for simple use cases. It implements the ERC-20 token standard with ERC-1404 security token transfer restrictions, enhanced with multi-type token functionality.
This approach takes into account yet-to-be-standardized guidance from ERC-1400 (which has additional recommendations for more complex security token needs) and ERC-1404, which offers an approach similar to ERC-902. Unfortunately, ERC-1404 does not adopt ERC-1066 standard error codes—which this project may adopt in the future. Since no security token standards have reached mass adoption or maturity, and they do not fully agree with each other, the token optimizes for a simple and sufficient implementation.
Simplicity is desirable so that contract functionality is clear. It also reduces the number of smart contract lines that need to be secured (each line of a smart contract is a security liability).