In the claimAndSwap function across all three strategy variants (StrategyArb.sol, StrategyMainnet.sol, StrategyOp.sol).
The balance check is performed after claiming WETH from the transmuter, this means balBefore includes only alETH balance but not the claimed WETH, the profitability comparison becomes unreliable because it doesn't account for the total value before the swap. A keeper could execute a swap that appears profitable due to this accounting error but actually results in a loss
StrategyOp#claimAndSwap function
The profitability check is fundamentally flawed because:
It claims WETH from the transmuter before recording balBefore
The balance comparison (balAfter - balBefore) only tracks alETH changes
The true economic value of the claimed WETH is not factored into the profitability calculation
Impact Across Implementations:
These strategies handle WETH/alETH pairs which should maintain specific price relationships based on the Alchemix protocol's design.
Arbitrum (StrategyArb.sol):
Ramses Router swaps could execute at unfavorable rates while appearing profitable
Optimism (StrategyOp.sol):
Velodrome Router swaps could result in value loss while passing the check
Mainnet (StrategyMainnet.sol):
Curve Router swaps could lead to economic losses despite satisfying the requirement
Affects all three chains because the core logic of claiming before balance comparison is shared across implementations. This allows keepers to execute technically valid but economically unfavorable swaps, potentially leading to value extraction from the strategy.
In the strategy contracts, the profitability verification is broken because
The root cause is that the balance comparison ignores the economic value of the claimed WETH. Since WETH is claimed before recording balBefore, the profitability check becomes
When it should actually be
This incorrect accounting allows trades that appear profitable in terms of alETH balance changes but are actually losing value when considering the full position.
This ensures keepers can only execute genuinely profitable trades that benefit the strategy's total value position.
Tracks total economic value before and after the swap
Enforces a minimum 1% premium on trades
Considers all forms of value (alETH, claimable WETH, unexchanged balance)
Prevents value-losing trades by requiring strict profitability
The solution works across all implementations (Arbitrum, Optimism, Mainnet) because it focuses on the fundamental economic relationship between WETH and alETH rather than specific AMM implementations.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.