Authors: Me, a solo investor concerned by physical threats. Web developer, solidity experience.
Abstract
As an individual, I’d like to prevent myself from moving funds instantly, while keeping the ability to make swaps without delay. The main goal is to produce credible and compelling arguments in case of duress situation / ransom.
Proposal details
Must have:
- Ability to delay all transactions (including wallet configuration changes) for several days (e.g. 7 days)
- Ability to swap any amount of assets without delays, using a whitelist of swaping contracts addresses
- Retain compatibility with existing Safe features like spending limits and social recovery
Nice to have:
- Native integration in the Safe{Wallet} UI.
Purpose and Background
Recent security incidents, such as kidnappings and significant data breaches targeting individuals, highlight the need for enhanced personal asset protection measures like the one proposed. This can be considered as an additional layer of security that can improve peace of mind.
Effects and Impact Analysis
Funds are to be blocked for 7 days (configurable) without any bypass mechanism. One should only transfer amounts intended for long-term storage. However, swapping is allowed without delay in order to manage investment portfolio reactively.
Alternative Solutions
It seems that the Zodiac delay implementation could be put in place, but there is no whitelist feature, and I’m not sure of the non-bypassness capability of this solution.
Implementation
Safe Guards alone are insufficient as they are stateless; a reverted transaction would mean any state change intended by the guard (like starting a delay timer) would also be reverted.
Safe Modules can implement the delay and whitelist logic. However, because modules can be removed by the Safe owner, a Module-only solution could be bypassed.
A hybrid approach, combining a Guard and a Module, appears to be feasible. The Guard would enforce that all transactions (except whitelisted transactions) must pass through the Delay Module. The Module would then manage the delay logic and the transaction queue. An accompanying application could provide a user interface for interacting with the module (e.g., initiating transactions, viewing pending transactions, managing the whitelist with the inherent delay for additions)
Own implementation possible
Own implementation but with funding (how much % to implementation)
Too soon to say, maybe for auditing the smart contracts.
Open Questions
Are there other existing solutions, either within the Safe ecosystem or in other wallet platforms, that offer a similar combination of transaction delays with whitelisting capabilities for specific actions like swaps?
Is the combination of a Zodiac Scope guard, and Delay module could also work? I’m not sure the UI will be adequate.