What is live

Part by part, not a blanket disclaimer

"Nothing here works" is easy to write and tells a reader nothing about which part to trust.

PartStateWhat that means
contractexecutedCompiled and run on Robinhood Chain through eth_call. 27 properties, 12 sabotages. Not audited.
leewayexecutedThe sandwich is performed against real Uniswap V3 pools on this chain, inside one eth_call, with real tokens.
laddermeasuredRead live from every tokenised-equity market on the chain. Recomputable in your browser on /soundings.
appliveDeploys a vault from your own wallet and drives every entry point. Nothing here holds a key.
canonicalundeployedNo canonical Plimsoll vault is deployed. Deploying costs gas from a funded wallet and this repository holds no key, so /app deploys one from yours.
fuzzexecutedThousands of randomised operations with nine invariants re-checked after every one, on this chain's own EVM.
walletPathexecutedThe app's whole write path driven in a real browser against a replayed history. Everything up to the signature.
auditnoneAdversarially self-reviewed by its author. That is a test suite, not an audit, and no third party has looked at it.

Photographs

Every photograph on this site is Creative Commons, used unmodified except for scaling and the CSS grade noted below, and credited here.

WhereAuthorLicenceSource
heroGordon HattonCC BY-SA 2.0 Wikimedia Commons
loadlineDavid WrightCC BY-SA 2.0 Wikimedia Commons
discRobert Brook on FlickrCC BY 2.0 Wikimedia Commons

How the numbers on this site were produced

  • The laddertools/discover.mjs reads every PoolCreated log where one side is USDG, then tools/scan.mjs reads each pool's price and liquidity and computes the swing with js/swing.js, the module the browser also imports.
  • The sandwichtools/verify-leeway.mjs installs contracts/Leeway.sol at a fixed address by state override and executes the whole attack in one eth_call against live pools.
  • The contracttools/verify-contract.mjs runs each property as its own eth_call, then recompiles the contract with one defect at a time.
  • The apptools/verify-app.mjs executes the front end's own calldata against real USDG, with negative controls; tools/verify-wallet.mjs then drives the real page in a real browser through the whole write path.
  • The long testtools/fuzz.mjs runs 3,360 randomised operations with 9 invariants after every one, and requires 6 deliberate breaks to be caught by the invariant named for each.
  • Whether a vault existstools/find-vaults.mjs asks the chain for the event every vault emits in its own constructor and reads each candidate back through the whole interface. 21 log(s) matched that topic and 0 were vaults, which is why a topic match is treated as a candidate rather than an answer.

No key, no proxy, no backend

rpc.mainnet.chain.robinhood.com answers the browser preflight, which is why the live panels here are pages rather than serverless functions. Nothing on this site holds an API key and nothing here can sign.