marmot

Marmot docs

20 pages, from the idea to the error codes

Trust

Threat scenarios

Ten things that can go wrong, and what happens.

#ScenarioOutcome
1Owner key stolen, guardian awakeThe thief's announcements are refused. You rotate the owner (announce, wait, execute), and the thief's leftovers die. Funds stay.
2Owner key stolen, guardian asleepThe announcement ripens and runs. The wait gave you time, and you did not use it. This is why the lookout exists.
3Guardian passkey stolen (device and biometric)The thief can refuse your announcements and freeze the vault, but cannot move anything. Funds are safe and stuck until you change the guardian, which they can also refuse. For large sums, use a multi-signer ERC-1271 guardian.
4Both stolenFunds can be taken. Keep the two on different devices.
5Owner key lostFunds are locked forever. Use a smart-account owner with its own recovery if that worries you.
6Guardian lostNothing can be refused. Announce a new guardian and wait. Until it executes you rely on luck.
7You are phished into announcing an unlimited approveThe lookout flags it "UNLIMITED APPROVAL". The guardian refuses before it runs.
8A relayer ignores your signed vetoAnyone can submit it. Use the CLI relay or your wallet. The signature stays valid until the epoch changes.
9Someone front-runs your veto signatureHarmless: the effect is exactly the veto you wanted.
10The thief announces a shorter delay firstThat is an announcement too. It waits the full old delay, and you refuse it.

The race to rotate

If the key is stolen, the thief and you share it. Both of you can announce. You announce a new owner; the thief announces a withdrawal. The guardian, who is you, refuses the withdrawal and lets your rotation ripen. When it runs, the old key is dead and every earlier announcement dies with it. The guardian is what breaks the tie.

The freeze

A compromised guardian can refuse every announcement forever. The contract has no unvetoable path, because one would also be a path for the thief. That is a deliberate trade: freezing is bad, theft is worse. It is the reason for the guardian options above.