The functionality of the Safe contracts can be extended via modules and via transaction guards.
Modules allow to bypass the classic multi-signature n-out-of-m access control scheme in order to cover all kinds of other schemes. Learn more about modules here.
Transaction guards allow to add additional access control checks on top of the n-out-of-m scheme. Learn more about transaction guards here.
You see an overview of enabled modules and transaction guards in the settings of your Safe. It is currently not possible to easily add a module or a transaction guard via the UI. Instead, direct contract interaction has to be used. Please refer to the respective help center articles to learn how:
Why does this inconvenience exist?
Both modules as well as transaction guards have a direct effect on the security of the Safe and all assets it holds.
A malicious module can potentially drain all assets from a Safe and/or change the owner structure.
A bad transaction guard can make a Safe unusable without a way to recover.
Currently, the scope of all actions that the UI currently supports in a nice way such as sending assets or changing the owner structure is relatively limited. The impact of a bad action is visible on the transaction review screens beforehand.
When enabling a module or a transaction guard this impact is not that easily displayable, since they can vary greatly in their nature. Besides, most modules require anyway a UI extension in order to be usable, for instance the spending limit module. Since a custom UI is required anyway, we think that this custom UI should be used to enable the module as well. The same is true for transaction guards.