$CRUMBLE Docs

04 · Security

Security

The useful question is not whether we promise to behave. It is what the contract would let us do if we did not.

Independent audit: none yet. The contract is covered by our own unit tests and by fork tests against the live pools. That is not the same thing as an external review, and we are not going to blur the difference. When a report exists it gets linked here, in full.

What the owner can do

The owner is a single key, held by us. Not a multisig — we would rather tell you that than let you assume otherwise. Ownership transfer is two-step, so it can become a multisig later without redeploying anything or moving a single balance. What that key can do is limited to four things:

Ownership transfer is two-step: the current owner nominates, and the new owner has to accept. A typo in an address cannot hand the contract to nobody.

What the owner cannot do

No function exists to

  • Move, transfer or seize a user balance
  • Pause the contract
  • Block, delay or gate a withdrawal
  • Change anyone's basket
  • Raise the fee above 5%
  • Touch what the treasury does not own

And structurally

  • The contract is not upgradeable — the code at that address is the code forever
  • There is no proxy, no implementation slot and no admin behind one
  • Withdrawals do not depend on us being online, solvent or willing

Protections in the swap path

Verify it yourself

The contract is verified on Blockscout, which means the explorer independently confirms that the bytecode at that address was produced by the source shown there, with the compiler and settings shown. That is a stronger guarantee than a code listing on a website — including this one.

Vault addresssee Blockscout
CompilerSolidity 0.8.24, optimizer on, 200 runs
EVM versioncancun