Reference
CLI reference
Every command of marmot, with real examples.
Run with node cli/marmot.mjs <command>. Defaults: RPC=https://rpc.mainnet.chain.robinhood.com. The key comes from MARMOT_PRIVATE_KEY or --key-file. Passing a key as an argument is refused on purpose.
Setup
| Command | What it does |
|---|---|
deploy | Deploys the factory and prints MARMOT_FACTORY |
create --guardian 0x.. --delay 24h | Creates your vault with a wallet guardian |
create --guardian-passkey 0xX,0xY --rp host --delay 24h | Creates your vault with a passkey guardian made on host |
Durations are written 30m, 12h, 3d. A random salt is used unless you pass --salt.
Owner
| Command | Announces |
|---|---|
queue-eth <vault> --to 0x.. --amount 0.5 | Send ETH |
queue-token <vault> --token 0x.. --to 0x.. --amount 100 [--decimals 18] | Send a token |
queue-call <vault> --to 0x.. [--value 0] [--data 0x..] | Any call |
queue-delay <vault> --delay 3d | Change the wait |
queue-guardian <vault> --guardian 0x.. | Replace the guardian (wallet) |
queue-owner <vault> --owner 0x.. | Rotate the owner key |
cancel <vault> <id> | Withdraws your own announcement |
Anyone
| Command | What it does |
|---|---|
status <vault> | Owner, guardian, wait, balance, every announcement with its phase |
execute <vault> <id> | Runs a ripe announcement |
relay <vault> --id N --sig 0x.. | Submits a veto signed on the site. You pay the gas. |
relay-panic <vault> --sig 0x.. | Submits a panic signed on the site |
Guardian (wallet)
| Command | What it does |
|---|---|
veto <vault> <id> | Refuses one announcement |
panic <vault> | Kills everything pending |
Watcher
marmot watch <vault> [--interval 5] [--notify-url URL] [--auto-veto --allow 0xA,0xB]
A real session
Output from scripts/anvil-e2e.mjs, which runs the actual CLI on a local node:
$ marmot queue-eth --to friend --amount 1
announced #0: Send 1.0 ETH to 0xA7E1...A6C1
ready at 2026-10-10T13:11:16.000Z tx 0x23efa5...
$ marmot status
vault 0x020d9b50...fCbD
owner 0xbEc82557...A72C
guardian 0xbb834c15...c8e5
delay 1 h epoch 0
balance 5.0 ETH
announcements
#0 WAITING Send 1.0 ETH to 0xA7E1...A6C1 ready in 1 h
#1 WAITING Send 4.0 ETH to 0x21f3...a831 ready in 1 h
$ marmot veto 1
vetoed #1 tx 0x3fe566...