Small companies often have statutory transfer restrictions in place. As they grow, they typically tend to get rid of these restrictions and abandon them entirely once they are publicly traded. This allowlist implementation is designed to flexibly and efficiently accompany the company on this journey. It is possible to have freely transferrable tokens and tokens that are subject to the allowlisting in parallel, thereby supporting an incremental path from a completely controlled state to freely transferrable token with a gradually increasing free float. If necessary, the process also can be reverted again.
Generally, there are four types of addresses:
We distinguish between two token types, whereas their type depends on the address they reside on:
The token type is not stored anywhere but implied by the address they reside on. So a free float token becomes a restricted token if sent to an allowlisted address! However, there is a function to suspend all restrictions, making all tokens free float tokens.
The use-case of having a limited free float is somewhat extraordinary and of special interest. Starting with all shares being restricted, a company could start setting some selected addresses to the 'free' type, thereby making the tokens on these addresses freely transferrable (at least until they are transferred to an allowlisted address again). For example, a company could declare all its treasury shares free float and then start selling them while keeping transfer restrictions for the existing shareholders in place.