Treasuries and signers
Anyone whose worst day starts with a valid signature nobody meant to give.
- DAOs and protocol treasuries
- Corporate treasuries
- Foundations
- Funds and asset managers
- Custodians
- Multisig and Safe operators
The organisation around the code, watched as closely as the code. Most large losses no longer begin with clever code. They begin with a signer added to a multisig at three in the morning, a proposal that does something other than its title says, or an endpoint that began returning answers somebody else wrote.
None of this is a transaction, and where it is, it looks routine, which is why a transaction monitor never sees it. Three layers run in a fixed order. First, plain rules over events and calldata: a delegatecall from a multisig is never benign. These own every critical finding and consult no model. Second, a layer that learns what normal looks like for your signers, in maths simple enough to replay line by line. Third, a summary that orders the findings and never sets a severity. That third layer can run inside your own network, on your own model.
Five surfaces, named. Anything outside this list is not covered by this wall; the perimeter page says which one covers it.
Anyone whose worst day starts with a valid signature nobody meant to give.
Anyone who votes on payloads they cannot read.
Anyone whose users trust a page and a script to say what they are signing.
Anyone whose contracts act on data an endpoint handed them.
Public, dated and sourced. Open a row for what happened and for what would have caught or refused it.
The bridge used a single verifier node to check cross-chain messages before releasing funds. Attackers compromised the RPC endpoints that verifier relied on, fed it a message with no matching burn behind it, and drew 116,500 rsETH out of escrow, roughly eighteen per cent of supply. No contract had a bug.
RPC integrity is a named surface here. Independent providers are asked for the same block hash and the same key state reads, and divergence or staleness is itself a critical finding. A verifier reading from endpoints that disagree with the network is the alert, hours before a forged message clears.
It takes more than one wall. An Asset Ratings floor caps a one-of-one verifier outright, whatever else the asset scores, so this configuration is refused at integration rather than discovered at the loss.
OpenZeppelin on the rsETH bridge exploitA Safe{Wallet} developer's workstation was compromised and tampered JavaScript was uploaded to the bucket serving the wallet interface. Seventeen days later the signers approved what that interface showed them, an ordinary transfer, while the payload sent to their hardware devices carried a delegatecall that replaced the cold wallet's implementation.
Two independent checks, either enough. The served bundle changed and its hash no longer matches what was reviewed. And a delegatecall from a Safe is unconditionally critical here, with no model consulted and no threshold to tune, because it is never benign.
NCC Group's technical analysis of the Bybit hackmacOS malware on contributor machines displayed legitimate transaction data in the Safe front end while sending different payloads to the hardware wallets for signature. The procedure was followed exactly, on hardware, by people doing their jobs correctly. Malicious contracts were staged on four chains; two executed.
A per-signer baseline scores time of day, inter-signature latency, signing velocity, submitting address, gas habit and target novelty, so a coerced or spoofed approval breaks a pattern even when the signature is perfectly valid. The ownership transfer it authorised is separately an unconditional critical.
Halborn on the Radiant Capital hackA proposal presented itself as identical to one the DAO had already approved, but carried an extra function. After the vote passed, the proposal contract was destroyed and redeployed at the same address with different code, granting the attacker 1.2 million votes and complete control of governance.
A proposal is judged by what it executes on forked state before the vote closes, not by what its description claims. A payload whose deployed bytecode no longer matches what was reviewed is a critical finding on its own, and the simulated diff reaches voters while voting is still open.
Halborn on the Tornado Cash governance takeoverA compromised Cloudflare API key let an attacker inject a script into the application's own front end. The script quietly added an unlimited spend approval for the attacker's address to transactions users were already making. Around 500 wallets signed one.
The served JavaScript changed and its hash stopped matching the reviewed bundle, which is a critical finding on the front end your users actually load, alongside DNS records and certificate transparency logs. The class is covered chain-agnostically, because a domain does not care which virtual machine you run.
It takes more than one wall. Live Detection's wallet lane closes the other half: an unlimited approval to a spender first seen minutes ago is blocked at the signing screen, even when the site is already compromised.
Halborn on the BadgerDAO hackShared substrate, not features of this wall. Every layer below is already paid for by the first wall in your scope.
Three layers, always in the same order. Deterministic checks own every critical finding and consult no model. Statistical baselines catch what is unusual for you rather than in general. A language-assisted layer summarises and prioritises, and never sets a severity. That layer can run entirely inside your own network, on your own model.
Individually, or bundled with the walls beside it.
Multisig and signer changes, governance read from calldata rather than from the description, frontend and DNS, and RPC integrity, across every chain you run on
Telegram, Discord, Slack or PagerDuty, at the severity floor you set, with a simulated diff on every governance payload before the vote closes
It closes the other half of the attack surface. Live Detection sees the chain; Ops Monitor sees the organisation. Together they cover both routes to the same money on one alert channel, and a signer added an hour ago changes how the ladder reads the anomaly that follows it.
Fuga Labs is read-and-attest, never custody-and-execute.
A scoping call maps this wall against what you run and says where it reaches and where it stops. Nothing is provisioned until that is agreed in writing.