Freezing Capability


I have seen an ERC-20 token that includes the following capability:

Asset Protection Role

As required by our regulators, we have introduced a role for asset protection to freeze or seize the assets of a criminal party when required to do so by law, including by court order or other legal process.

The assetProtectionRole can freeze and unfreeze the token balance of any address on chain. It can also wipe the balance of an address after it is frozen to allow the appropriate authorities to seize the backing assets.

Freezing is something that our entity will not do on its own accord, and as such we expect to happen extremely rarely. The list of frozen addresses is available in isFrozen(address who) ."

Is freezing and seizing specific tokens technically posible? How can it be done?


It seems like you should set permissions for such function, I think you can have a look at this contract: AccessControl.sol | openzeppelin-contracts It can help you set your own permissions.

Yes, I think so. IIRC, USDT has such function, it can freeze tokens, as for seizing, I am not sure, but they can mint new tokens.