Start
Overview
A vault where every withdrawal waits, and a guardian who can say no.
Normally, whoever holds your key can empty your wallet in one transaction. On Robinhood Chain a block takes about a tenth of a second, so by the time you notice something is wrong, it is over. Marmot adds the one thing a wallet does not have: time.
A Marmot vault is a small contract that holds your ETH and tokens. To take anything out, the owner first announces the withdrawal. The announcement sits in a public waiting room for a period you choose (from 5 minutes to 30 days). While it waits, a second party, the guardian, can refuse it. When the wait is over, anyone can run it. A thief with a stolen key can announce, but cannot skip the wait, and cannot silence the guardian.
The problem
- A leaked seed phrase, a phishing page or a malicious signature gives an attacker the same power as you, instantly.
- Hardware wallets protect the key, but not you from being tricked into signing.
- Multisigs add a second person, but make every ordinary payment a chore.
The idea in five lines
- Create a vault with an owner key, a guardian and a waiting time.
- Deposit by sending ETH or tokens to the vault address, like any address.
- Announce a withdrawal. It is public, stamped, and cannot run yet.
- Wait. The guardian reads it in plain words and can refuse it with one tap, using a passkey (Face ID, fingerprint, device PIN).
- Execute. After the wait, anyone can run the announcement, for 14 days.
The guardian has no function that moves money. The owner key cannot skip the wait. Even settings (the wait itself, the guardian, the owner) are announcements, so they wait and can be refused too. There is no admin key, no pause button, no upgrade path.
What you get on Robinhood Chain
- The guardian signs with a passkey. The chain verifies that P-256 signature natively through the precompile at address
0x100(checked live on chain 4663), for about 87,000 gas. - Anyone can carry the guardian's signature on chain, so the guardian needs no ETH and no wallet.
- Gas is very cheap: announcing costs roughly 0.0000025 ETH, whistling about 0.0000017 ETH.
Where it stands
The contract is written and heavily tested (43 Foundry tests, a random differential test, a run against the real chain's precompile, an end-to-end run of the CLI). It is not audited and not deployed yet. The demo on the website runs on a pretend ledger. See Limits and risks.