ERC-1404 Restricted Token Features
Vestascan deploys a production-ready, highly configurable implementation of the ERC-1404 standard. It is designed specifically for Security Tokens, Restricted Assets, and Compliance-Heavy Tokens.
It allows issuers to enforce complex transfer restrictions (Whitelisting, Lockups) while remaining compatible with standard ERC-20 wallets and exchanges.
1. Compliance Core (ERC-1404)
- Atomic Whitelisting: Transfers are only successful if both the Sender AND the Receiver are whitelisted.
- Pre-Flight Checks: Wallets can query
detectTransferRestrictionto see if a transfer will fail before sending it, preventing wasted gas. - Modular Architecture: The compliance logic can be upgraded by pointing to an external
IComplianceModule(e.g., for future ERC-3643 compatibility) without migrating the token.
2. Vesting & Lockups
- Time-Based Locking: Administrators can enforce lockup periods on specific users.
- Granular Control: You can whitelist a user with immediate access or with a specific unlock timestamp.
- Enforcement: Use
setReleaseTime(user, timestamp)to manage locks dynamically.
3. Role-Based Access Control
The contract separates duties to ensure security:
DEFAULT_ADMIN_ROLE(Super Admin):- Can bypass restrictions (if Revocable).
- Can Manage Roles (grant/revoke).
- Can Mint/Burn (if enabled).
- Can Rescue stuck tokens.
COMPLIANCE_ROLE(Compliance Officer):- Can Manage Whitelist (
addToWhitelist,removeFromWhitelist). - Can Set Lockups.
- Limit: Hardcoded limit of 5 Compliance Officers for security.
- Can Manage Whitelist (
PAUSER_ROLE:- Can trigger the Emergency Stop (
pause).
- Can trigger the Emergency Stop (
4. Lifecycle Configuration (Immutable)
These flags are set once at deployment and cannot be changed, providing trust to investors.
| Feature | Flag | Description |
|---|---|---|
| Minting | isMintable | If true, Admin can print new tokens post-deployment. If false, supply is fixed forever. |
| Burning | isBurnable | If true, Users can redeem (burn) their tokens, and Admins can seize (burn) tokens for compliance. |
| Revoking | isRevocable | If true, Admin can force-transfer tokens from any wallet (e.g., lost keys, legal seizure). If false, this is permanently disabled. |
| Max Supply | cap | If Minting is enabled, this Hard Cap prevents inflation beyond a guaranteed limit. |
5. Safety & Operations
- Emergency Stop (Pausable): Freeze all transfers in the event of a critical security threat.
- Token Rescue: Admin can recover any ERC-20 tokens accidentally sent to the contract address.
- Bulk Whitelisting:
batchAddToWhitelistallows adding up to 200 investors in a single transaction to save Gas.