Please note: This feature is only available from version 1.10.0 of the Safe web interface.
Over the last two years, many applications started implementing off-chain signature flows that allow you to interact with them without creating an on-chain transaction and without the consequential need to pay network fees. With our signed messages feature we now enable our users to utilize this gasless signature flow with dApps that are compatible with EIP-1271 smart contract signatures.
What is a signature?
Each EOA has a private key and this private key can be used to sign messages. The resulting signature verifies the integrity of the message signed and the account it was signed by.
However, smart contracts like the Safe have no private key. In order to create a signature via the Safe, an on-chain signature transaction needs to be executed or each owner needs to individually sign the same message and those signatures be combined into one.
What is a signature used for?
Signatures are used for a variety of things. The Safe uses signatures to verify that owners have confirmed a transaction, for example. dApps use signatures for authorisation and verification of ownership; confirmation of DEX orders, voting on proposals, etc.
How do I create a signed message?
Signing into OpenSea, for example, will open the following signing window:
The initiator of the signing request needs to keep this window open until enough signatures have been collected. Signing this message with sufficient owner wallets verifies that you (in this case) agree to the OpenSea login requirements. If your Safe has a 1/n policy, the signature will be immediately valid.
This signed message will then be added to your "Messages" in the "Transactions" section of the Safe UI.
Can I still sign on-chain?
If the Safe App supports off-chain signatures, signing off-chain will work by default. However, certain applications if you experience issues when signing a message, it is still possible to revert to on-chain signatures instead. A toggle for this can be found in the "Safe Apps" section of the Safe "Settings". After enabling this, signing from all Safe Apps instead signs on-chain. We cannot guarantee that on-chain signatures compatibility
Signing this message with your wallet will verify that you agree to (in this case) the execution of the respective order. If your Safe has a 1/n policy, the order will be immediately valid.