Notes from the people who shipped it.
Vulnerability classes we keep finding, engineering we had to work out ourselves, and research from further upstream. No gated PDFs.
Security
Vulnerability classes, audit method and the bugs that keep coming back.
Anatomy of an oracle manipulation
Almost every oracle exploit is the same four steps. The interesting question is not how the attack works, it is why the price was trusted in the first place.
TestingInvariant testing: writing properties that find real bugs
Unit tests check the cases you thought of. Invariants check the cases you did not, which is where the money goes.
SecurityReentrancy did not die, it moved
Checks-effects-interactions solved the version of this bug from 2016. The versions that are still draining protocols look nothing like it.
VaultsThe ERC-4626 rounding bug that keeps coming back
A vault with no bugs in its logic can still round a depositor's shares to zero. The standard does not stop you, and the fix is not obvious.
RWA and compliance
Tokenising real-world assets, and the rules that decide whether a transfer is allowed.
What real-world assets actually need from an oracle
Price is the easy part. Attestation, permissioning and dispute resolution are where RWA designs fail.
StandardsERC-3643 in practice: what it solves and what it leaves to you
The standard gives you permissioned transfers and an identity hook. Everything that makes a security token actually compliant is still your design problem.
ComplianceDesigning transfer restrictions a regulator will accept
The requirement is not to block bad transfers. It is to prove, years later, that every transfer that happened was permitted at the time it happened.
DeFi engineering
Protocol mechanics: liquidations, oracles, MEV and accounting.
Recapturing OEV without breaking your oracle
Why oracle-extractable value leaks, and the auction designs that return it to the protocol.
LendingReading liquidation risk across two very different lending designs
Pooled and isolated markets answer the same question differently. Normalising them without flattening what matters.
Infrastructure
Nodes, indexers, cross-chain messaging and the data underneath.
CCIP in production: what we learned running cross-chain messaging
Lane configuration, failure modes and the monitoring you need before going live.
InfrastructureReorgs, backfills and the indexer problems nobody warns you about
Everything is fine until the chain reorganises under you at block 40,000 of a backfill.
Research
Work from further upstream, before it becomes anybody's roadmap.