Marmota

Marmota docs

20 pages, from the idea to the error codes

More

Gas and costs

Measured on a local node with the real contract, priced at the live gas price.

Measured by scripts/gas-report.mjs. The price is the chain's live eth_gasPrice on 2026-10-10: 0.020044 gwei. Costs exclude any data-availability fee the chain may add.

Operation Gas Cost (ETH)
Create a vault (wallet guardian) 2,129,583 0.0000427
Create a vault (passkey guardian) 2,150,441 0.0000431
Deposit ETH (plain transfer) 22,498 0.00000045
Announce: send ETH 122,703 0.0000025
Announce: change the wait 107,423 0.0000022
Whistle by passkey (vetoWithSig) 87,240 0.0000017
Panic by passkey (panicWithSig) 84,525 0.0000017
Whistle by wallet guardian (veto) 34,720 0.0000007
Whistle by wallet signature (vetoWithSig) 46,007 0.0000009
Cancel (owner) 29,970 0.0000006
Execute: send ETH 74,643 0.0000015

Reading the table

  • Creating a vault is the only noticeable cost, and it is paid once. The contract's runtime code is about 9.8 KB.
  • Announcing writes a few storage slots (status, ready time, target, amount, calldata), which is why it costs more than refusing.
  • The passkey whistle is about 87,000 gas, of which the P-256 verification is a small part. The same check written in Solidity, without the precompile, would cost several times more.
  • A thief pays to announce too, and gains nothing.