marmot

Marmot 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.

OperationGasCost (ETH)
Create a vault (wallet guardian)2,129,5830.0000427
Create a vault (passkey guardian)2,150,4410.0000431
Deposit ETH (plain transfer)22,4980.00000045
Announce: send ETH122,7030.0000025
Announce: change the wait107,4230.0000022
Whistle by passkey (vetoWithSig)87,2400.0000017
Panic by passkey (panicWithSig)84,5250.0000017
Whistle by wallet guardian (veto)34,7200.0000007
Whistle by wallet signature (vetoWithSig)46,0070.0000009
Cancel (owner)29,9700.0000006
Execute: send ETH74,6430.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.