An easily extendable standard for issuing tokens with transfer restrictions.
Read ERC-1404 to learn more.
Use of the standard lends to writing small, reusable smart contracts that are responsible for enforcing a single transfer restriction pattern.
Tokens implementing the standard are best constructed by composing said restrictions through multiple contract inheritance.
You may have been seeking a way for your issuers to enforce investor limits, control flowback between US and non-US investors, or other similar restrictions.
The standard provides an avenue by which a team of capable engineers may meet those requirements.
Your counsel may have asked you questions similar to the following:
- "How can we limit the number of token holders to 2,000 persons or less?"
- "How can we prevent flowback from non-US token holders to US token holders?"
- "What if a sanctioned persons gets a hold of the token? Can you take it away?"
While this standard does not inherently enable compliance, it does provide the tools necessary to comply with requirements as put forth by counsel.
The standard builds on ERC-20's interface, adding two functions:
// The Simple Restricted Token Standard Interface
contract ERC1404 is ERC20 {
// returns a restriction code, where 0 is reserved for success
function detectTransferRestriction (address from, address to, uint256 value) public view returns (uint8);
// returns a messsage string -- a human-readable message for the passed restriction code
function messageForTransferRestriction (uint8 restrictionCode) public view returns (string);
}
Below are several common transfer restriction patterns implemented on ERC-1404.
These contracts are fully composable with each other. Inherit from one or several to build out a bespoke restricted token contract.
- Account Ownership Percentage
- Account Holding Periods - WIP
- Number of Accounts
- Account Whitelists
- Token Divisibility
We have included example implementations of the following high-profile standards proposals on top of ERC-1404:
- Polymath's ST-20 Token
- Harbor's R-Token
- Delaware General Corporations Law (DGCL) ERC-884 Token - WIP