An external reviewer named a real gap in the standing
planted-twin CI claim: a single-seed green does not
exclude a lucky-seed miss on classes with long triggers.
Same-day fix: a merge gate that requires the planted twin
to fail on all 16 canonical fuzzer seeds. Two cases
certified today, Euler Earn M-01 (Foundry) and Blend V2
H-01 (Rust/Soroban), both green at head. The reachability
job is now the standing receipt behind the docs claim.
CaliperForge is a small AI-augmented contribution agency:
one operator, thirty-nine specialized roles, each in its
own single-context lane, each gated by a distinct
reviewer role. Two weeks ago, one of those rails caught a
gap in our own commit rail: the reconciler ran a secret
scan, logged tainted paths, and committed anyway. Fix
T-wave-c-close-f1-secretscan-2026-07-12
added the partitioning branch that refuses to land
tainted paths, and a regression test pins the floor. Why
the shape matters: same shape as the planted-twin CI
receipts we ship for protocol audit tooling. The org
caught its own gap because it had a rail that could
refuse.
Pashov Audit Group surfaced M-01 in their public Euler
Earn security review (2025-07-25): a share-accounting
drift in PublicAllocator when a strategy’s
share delta reaches the vault outside
EulerEarn.deposit. Euler Labs shipped the
fix at commit f07f6b1c5e1e
(2025-08-11), merged in PR #22. This post walks the
invariants that name the class and the clean/planted
twin in caliperforge/euler-earn-invariants
that fires on it: 256 × 50 fuzz
against the real Euler Earn contracts through
IntegrationTest, deterministic regression
mirroring the auditor’s 4-call sequence, and a
short shrunk counterexample on the planted twin.
OpenZeppelin’s v1.1.0 RC-2 audit surfaced M-01 on
their own BaseDynamicAfterFee:
direction-blind fee arithmetic that computed against the
wrong leg on exactOutput swaps. Commit
2678eb9 shipped the fix in tag
v1.1.0; Zealynx’s Pattern 4 names the
taxonomy. This post walks the direction-integrity
invariant that names the class and the clean/planted
twin in caliperforge/uniswap-v4-invariants
that fires on it: 256 × 50 fuzz
against the real PoolManager, deterministic
regression, and a 1-call shrunk counterexample.
The Uniswap Foundation ships a reference
LiquidityPenaltyHook through OpenZeppelin.
Zealynx surfaced the donation-griefing class (their
Pattern 3); OpenZeppelin’s v1.1.0 audit surfaced it
independently; v1.2.0 already ships the add-time
fee-state guard. This post walks the conservation
invariant that names the class and the clean/planted
twin in caliperforge/uniswap-v4-invariants
that fires on it: 256 × 50 fuzz
against the real PoolManager, deterministic
regression, and a 3-call shrunk counterexample.
On June 7, 2026, the Syscoin bridge lost a reported $8.56M
to a malformed SPV proof accepted as valid: approximately
5 billion SYS minted on the destination side with no
corresponding burn on the source side. The conservation
invariant a bridge must enforce, how a stateful test that
tracks both counters finds the violating call, and how this
maps to CI-verified conservation reference pairs on
Anchor/Solana (cf-invariants-anchor, cf-invariants-jito)
and Cairo/Starknet (cf-invariants).
On June 14, 2026, approximately $2.19M was extracted from
Aztec’s deprecated RollupProcessor
contract. Proof scope and settlement scope diverged: the
ZK proof validated all 32 batch slots; the L1 settlement
loop processed only numRealTxs of them. The
cross-layer conservation class, what CI-verified reference
pairs cover today, and where the Aztec surface sits outside that set.
TrustedVolumes lost a reported $5.87M because the
settlement contract keyed its signature lookup on the
caller (msg.sender) instead of the order’s maker.
The invariant property that catches the class, mapped to
CI-verified access_control reference pairs on
Anchor/Solana and Cairo. No Solidity-rail pair yet, said plainly.
A clean reference where the property holds, a planted
twin where it fires, both on the same CI run:
why a checkable pair beats a claim. hyperevm-safety
v0.1 to M2 in the same week as the worked example,
and the Verus bridge-conservation reference as the
one-line case. Not an audit; not a runtime monitor.
Six real-world hacks across Cairo, Move, Solana, and EVM,
each with a runnable invariant that would have
caught the bug class on the pre-exploit code under CI.
First cross-VM defender-side benchmark of this
shape: pre-deploy CI gate, not a runtime guard, non-EVM-led.
Lending, staking, vesting, timelock, payment
splitter, and oracle join the suite. Twenty-six
GitHub Actions jobs green: paired clean=0 /
planted≥1 across all twelve references, plus a
Caracal static-analysis pre-flight.
cf-invariants-jito-tippayment ports the second
Jito program onto the same anchor-lang 1.0.1 /
Crucible v0.2.0 rails, CI green on first push.
The AI invariant-suggester runs live against both
Jito surfaces under one prompt.
Jito tip-distribution ported from anchor-lang 0.31.1 to 1.0.1,
four invariant classes, four planted-bug twins.
CI: clean=0, planted≥1 across all four.
Three new Voyager-verified Cairo references on
Starknet Sepolia (lending, staking, vesting). A
Foundry + Recon Chimera scaffold for stamping
contest entries.
Anchor IDL in. Crucible-compatible fuzz source out.
CI proves it: clean vault passes, planted twin fails.
A Rust CLI sidecar that adds stateful invariant testing
to Cairo 2.x. Three reference contracts on Starknet
Sepolia, each surfacing a planted bug on cold start.