Allowlist: Flexible Transfer Restrictions
Overview & Motivation
Section titled “Overview & Motivation”Small companies often enforce statutory transfer restrictions to control their shareholder base. As these companies grow — and particularly when approaching public markets — they typically relax or abandon such restrictions entirely.
Aktionariat’s allowlist implementation enables a flexible and gradual transition:
- From tightly controlled transferability,
- To partial or full free float,
- With the option to reverse course if needed.
The system supports both restricted and freely transferable tokens in parallel, empowering companies to manage shareholder mobility with precision.
Address Types
Section titled “Address Types”Four address types determine how token transfers are governed:
Allowed
Section titled “Allowed”- Can receive tokens from anyone
- Can send tokens only to allowed or admin addresses
- Behave like allowed addresses
- Additionally, automatically allowlist any address they send tokens to
- The null address (
0x0) is admin by default — this allows minting without allowlisting the recipient, and prevents newly minted tokens from entering the free float unintentionally
Frozen
Section titled “Frozen”- Cannot receive tokens from anyone
- Can send tokens only to admin addresses
Default
Section titled “Default”- Can send to default, allowed, and admin addresses
- Can receive only from other default addresses
- This is the type assigned to all new addresses by default
Token Types
Section titled “Token Types”Tokens are implicitly categorized based on the address type they reside on:
| Token Type | Description |
|---|---|
| Frozen tokens | Reside on frozen addresses. Can only be sent to allowed addresses. |
| Free float tokens | Reside on default addresses. Can be sent to any address except frozen ones. |
A dedicated function exists to suspend all restrictions entirely, effectively turning all tokens into free float tokens.
Limited Free Float: A Strategic Use Case
Section titled “Limited Free Float: A Strategic Use Case”The allowlist enables a partial free float — a valuable mechanism for growth-stage companies that want to bring in external investors while maintaining control over their existing cap table.
Example scenario:
- All shares start as restricted tokens held by allowlisted shareholders.
- The company designates its treasury wallet as a default address.
- Tokens in the treasury are now freely transferable, while existing shareholders remain restricted.
- Over time, additional wallets can be declared free to gradually increase the free float.
This approach enables:
- Controlled onboarding of external investors
- Gradual liberalization of share transferability
- Preservation of strategic control throughout the process
Flexibility & Reversibility
Section titled “Flexibility & Reversibility”The allowlist architecture supports:
- Granular permissioning — different rules for different shareholder types
- Coexistence — restricted and freely tradable tokens can exist simultaneously
- Reversibility — companies can re-impose restrictions at any time by reassigning address types
For Developers & Integrators
Section titled “For Developers & Integrators”The allowlist is enforced at the smart contract level. You can programmatically:
- Change address types via
setAddressType - Suspend or re-enable all restrictions via
suspendRestrictions - Monitor transfer behavior via emitted on-chain events