In traditional multisigs, all confirmations/rejections for multisig transactions are stored on-chain. This is not ideal because it is (1) slow, (2) costs fees for every signature and (3) has privacy impacts because anyone would see a multisig transaction intend on-chain before it was executed.
With Safe, users can collect all required signatures for a new multisig transaction off-chain and after the confirmation threshold is reached, use all collected signatures to execute the transaction.
This results in multiple benefits for the user including:
No need to have ETH on the owner wallet
How does it work?
The user signs a multisig transaction intend using eth_signTypedData / eth_sign / signPersonalMessage signatures. Instead of the signatures being stored on the blockchain, they are collected in the transaction service. The last signer takes the partially signed transaction from the service, adds his/her signature and broadcasts the transaction to the blockchain in one go.
How trustless is this?
Gas-less signatures depend on the transaction history service. For the hosted web app (https://app.safe.global/) and the Safe Desktop App, Safe runs this indexer. While not able to do anything with partially signed transactions, the user depends on this service running to access existing signatures for not-yet-executed transactions. Advanced users might want to run their own indexer to mitigate this risk.
To use gas-less signatures, your Safe contract version needs to be v1.1.1. or higher and the interface must be v.1.9.0. or higher.
While most wallets support off-chain signatures including Metamask, Ledger and Trezor, there are a few exceptions.
This feature is currently not supported using smart-contract based owner wallets such as Argent, Authereum and Unilogin.
Gas-less signatures do not work properly when using a hardware wallet connected through the Metamask browser extension. We recommend using the native hardware wallet integrations for Ledger and Trezor devices.