marmot

Marmot docs

20 pages, from the idea to the error codes

More

FAQ

Short answers.

Is it deployed?

Not yet. The contract is written, tested and checked against the real chain's precompile, but it is not audited and no address is live. When it is, the address will be in the docs and on the official X account only.

Why not a multisig?

A multisig needs another signer for every ordinary payment. Marmot asks nothing of the guardian until something looks wrong, and costs you only time on withdrawals.

Why not a time-locked smart account on EIP-7702?

With 7702 the account keeps its private key, and a key holder can re-delegate the account to anything, skipping the wait. A separate vault contract cannot be bypassed that way.

What if I need money fast?

Keep a spending wallet for small things, and the vault for savings. You can also create a second vault with a short wait for medium amounts.

What if my guardian phone dies?

If the passkey syncs (iCloud or Google), restore it on the new phone. If not, announce a new guardian, wait, execute. See Passkey guardian.

Can I change the wait?

Yes, by an announcement, which itself waits the current delay and can be refused.

Can the guardian steal?

No. Read the contract: no guardian function sends, approves, calls or changes a setting. A guardian can only refuse.

Can I have two guardians?

Make the guardian an ERC-1271 contract, for example a Safe with two of three signers. Marmot validates the signature through the standard interface.

Does it work with any token?

Any ERC-20 sent to the vault can be moved with queueTransfer. NFTs and other assets use queueCall.

Who pays for the veto?

Anyone who submits it. The guardian signs and needs no gas. If nobody does, you can submit it yourself from the CLI or the lookout.

Is there a fee?

No. No fee, no owner of the factory, no tax. Only gas.

What is $MARMOT?

A community coin. The contracts do not use it. See the token page.

Where is the code?

The contracts are in contracts/src, the engine in src/engine, the CLI in cli, and every check described in Verification in tests-js, contracts/test and scripts.