This report contains the oracle-side measurements referenced in the post-mortem. It reports service metrics, rates, and volumes; aggregate loss figures and their attribution are presented in the post-mortem itself. Everything here derives from public on-chain data and is independently recomputable; methodology and supporting data are described at the end. We make no claim in this report about the cause of any individual mechanism inside the oracle system, and these findings have been shared with Chainlink, whose feeds are discussed throughout. We welcome corrections.
Metronome's synthetic swap venue prices msETH/msUSD trades against the Chainlink ETH/USD Data Feed on each chain it operates on. We parsed the protocol's complete transaction history: 241,292 swaps across Ethereum, Optimism and Base, $3.60B gross volume, 100% priced coverage, and joined every swap to the exact Chainlink round it executed against, with same-block transaction-index resolution, validated at floating-point precision. Every swap is then compared to a 1-second Binance mid at its block. Chainlink round history was rebuilt from raw AnswerUpdated logs (568k rounds across the three chains).
Adverse flow in this report means value transacted away from the concurrent market mid: the venue-side cost of trading against a lagging price. It is a measured flow quantity, not an attributed loss.
Five findings follow. In brief: adverse flow on this venue is almost entirely an out-of-band phenomenon (§1); its rate is a function of how stale the feed was at the moment of execution (§2), and not of the deviation-band setting (§3); alternative feeds in the same block space, and the same feed on a sister network, delivered materially fresher service over the same months (§4-5); the production feed has repeatedly published after sibling aggregators in its own feed family (§6); and cadence on both L2s deteriorated through 2026 to the worst levels in the protocol's history (§7), the service-side counterpart of the loss acceleration described in the post-mortem.
Each chain's feed publishes a deviation parameter, the price move at which an update should be triggered (0.15% on Base and Optimism; 0.50% on Ethereum). At each swap we measured whether the on-chain price was inside or outside that band relative to the concurrent market mid, and when outside, for how long it had been continuously outside.
Base (0.15% band), complete history:
Feed state at execution | Share of swap volume | Adverse flow, % of volume |
|---|---|---|
In-band | 3.5% ($51M) | 0.050% |
Beyond band, 0-30s | 6.4% | 0.51% |
Beyond band, 30-60s | 3.4% | 0.46% |
Beyond band, 1-2 min | 39.4% | 0.81% |
Beyond band, 2-5 min | 35.7% | 0.77% |
Beyond band, 5 min + | 11.5% | 0.81% |
The feed was outside its band 18.5% of the time, but 96.5% of all swap volume, carrying 99.8% of adverse flow, executed inside those windows, and 87% of all volume executed a minute or more after the band had been crossed. Flow on this venue was overwhelmingly adversarial: it arrived precisely when the on-chain price had detached from the market, and it barely arrived at any other time. When the feed was in-band, the venue leaked only 0.050%.

The same decomposition on Ethereum (0.50% band) shows 29.7% of volume in-band at a 0.32% adverse-flow rate, a wider band admits more flow "in spec," and in-spec flow still leaks in proportion to the band's width, while beyond-band flow leaks 0.8-1.2% on both chains regardless of band width. Optimism, where Metronome's flow is small and mostly organic rather than arbitrage, is the natural control: 59% of its volume executed in-band, at 0.046%.
The decomposition above says where the flow was; this section measures the dose-response. Each of the 178,358 Base swaps was priced against both the Chainlink production feed and, as a control, Pyth's actual on-chain state at the same block: 356,716 swap × feed observations (each swap appears once per feed, so the volume column below counts each dollar once per observation). Binned by that feed's staleness at execution (seconds since its last on-chain update), volume-weighted:
Feed staleness at swap | Observations | Gross volume | Adverse flow, % of volume |
|---|---|---|---|
0-2s | 1,407 | $18M | 0.363% |
2-5s | 13,745 | $190M | 0.328% |
5-10s | 38,482 | $447M | 0.326% |
10-20s | 61,869 | $522M | 0.509% |
20-30s | 51,990 | $399M | 0.703% |
30-60s | 64,901 | $493M | 0.683% |
60-180s | 73,156 | $534M | 0.687% |
180s+ | 51,166 | $352M | 0.765% |

Three regimes: flat below roughly 10 seconds; a near-doubling between 10 and 30 seconds; a plateau beyond 30 seconds. Losses accelerate past 10 seconds of staleness and the damage rate is fully developed by about half a minute. Chainlink's median round age at our swap moments on Base was 54 seconds, beyond the point where the curve has already plateaued. Note that “plateau” refers to the rate of adverse flow, greater staleness continues to contribute significantly to total unbacked flow, as persists through each bucket of staleness.
Four feed configurations, spanning a 3.3× range of deviation band:
Feed / chain | Deviation band | Median staleness at execution | Adverse flow, % of volume |
|---|---|---|---|
Chainlink / Base | 0.15% | 54s | 0.740% |
Chainlink / Ethereum | 0.50% | ~7 min volume-weighted (~11 min unweighted) | 0.726% |
Pyth / Base, lifetime | ~0.5% (operator-defined) | 22s | 0.434% |
Pyth / Base, calendar 2025 | ~0.5% (operator-defined) | 10s | 0.342% |
Outcomes are uncorrelated with band width: Chainlink's own two chains run bands 3.3× apart and leak at materially the same rate per dollar. Outcomes order by staleness: Pyth's Base feed, on a band roughly three times wider than Chainlink's on the same network, produced less than half the adverse flow. Band width tells you when an update should fire; staleness at execution tells you what a trader actually traded against. The second significantly influences the outcome.
This is consistent with published research: Nadler, Schuler & Schär (Journal of Corporate Finance 96:102908) find across 40 Chainlink feeds that a 4bp widening of the deviation corridor produces only ~1bp of additional realised deviation, while tightening the heartbeat from 24h to 1h improves accuracy by 12bp. Publication cadence is by far the stronger lever.
On Pyth's band: Pyth's Base ETH/USD push wrapper is maintained by third-party operators; thresholds are operator-defined rather than standardized. The typical price-pusher configuration is 0.5% deviation / 60-second heartbeat, and the 60-second heartbeat signature is visible in the feed's 2026 update-gap distribution.
Pyth's Base feed published into the same network, the same block space, and the same months as the Chainlink feed. Over full calendar year 2025 (no month selection, including the October crash) repricing every Base swap at Pyth's real on-chain state yields an adverse-flow rate of 0.342% against Chainlink's 0.772%, a difference of 0.43% of gross volume. Median staleness at execution over that year: 10 seconds against 46.
The cadence gap behind that: between August and December 2025, Pyth's Base feed recorded 143,000-205,000 updates per month, at median inter-update gaps of 7-9 seconds in four of the five months (September: 18s), against 5,300-10,000 updates per month on the Chainlink Base feed over the same period.
Pyth's Base coverage has since thinned considerably: median update gaps widened to 234 seconds by July 2026, and its advantage decayed accordingly. And on Optimism the comparison reverses: Pyth's pusher there was abandoned in November 2025, and repricing Optimism's flow at Pyth's state would have been 28% worse (a $3,835 swing on Optimism's small book). Both facts demonstrate the comparison is not vendor-selected: push-feed service level tracks operational effort, not architecture. The same product, on the same chain, delivered a 7-10-second feed when its operators were active and a 234-second feed when they weren't.
On other providers: RedStone's listed ETH/USD push feeds on these networks were dormant during the study period, and Chronicle's ETH/USD feed is Ethereum-only with ~1% / ~12h empirical behaviour. Neither offers a comparable same-chain benchmark.
Limit of the counterfactual: order flow is held fixed, so an adaptive counterparty would re-target the alternative feed's residual staleness; the repricing figure is an upper bound on benefit. The direction is robust; the magnitude is not.
Optimism and Base run the same Chainlink product at the same parameters (0.15% deviation, 1,200s heartbeat) on the same OP-stack architecture with the same 2-second block time. Over the 28 months both feeds have coexisted:
Metric | Base | Optimism |
|---|---|---|
Average monthly median update gap | 251s | 184s |
Ratio, Optimism / Base | — | median 0.73× |
Months Optimism faster | — | 28 of 28 |
Months Optimism lower out-of-band share | — | 28 of 28 |
Independent corroboration for 10 October 2025 (Sevim & Ferreira Torres, arXiv:2606.03434): 611 Optimism updates against 480 on Base, median gaps of 44s versus 62s, and Optimism leading Base at Aave health-factor crossings in 63.5% of windows by an average of 26.65 seconds, described there as a "systematic directional advantage." Our own round data reproduces that day's update counts and maximum gaps to the second.
Two same-configuration deployments of the same product, on the same architecture, deliver measurably different cadence, month after month. Note the comparison is relative, not exculpatory in either direction: measured against its own 2025 baseline, Optimism has deteriorated more than Base (+102% against +72% on the volatility-normalised measure in §7). Both L2 feeds show 2026 degradation; Base is consistently the slower of the two in absolute terms.
Chainlink's ETH/USD feed families include, alongside the production aggregator that venues read, sibling aggregator contracts that receive the same signed price report (on Base: the two SVR-routed aggregators listed on Chainlink's Atlas searcher-onboarding documentation, 0xD772F6D9…17BF9 and 0x83f3425A…41794; on Ethereum: three sibling contracts, one of which pre-dates SVR entirely). Comparing the production aggregator to its siblings uses no external price reference at all.
We identify 232 price-matched events on Base (Oct 2025 - Jul 2026; median gap 18s, 45 events at or beyond 30s, maximum 126s) and 3,197 on Ethereum (since Jan 2025, roughly six per day, in every single month) in which a sibling contract published a price while the production feed still showed a stale one. Approximately $547,000 of net adverse flow (post-fee) executed inside such windows across both chains, a deliberately conservative floor: strict price-matching, gaps capped at 175s, fast-moving windows excluded except four individually documented ones.¹
A representative sequence, Base, 25 June 2026 (all times UTC):
Time | Feed | Price |
|---|---|---|
13:59:51 | Production 0x1e0b | $1,531.19 |
13:59:51 | Aave-SVR 0xd772 | $1,530.94 |
14:00:17 | SVR 0x83f3 | $1,538.07 |
14:00:19 | wstETH-class 0x71e0 (non-SVR) | $1,743.91 |
14:00:21 | Aave-SVR 0xd772 | $1,542.46 |
14:00:41 | BTC/USD production 0x0e3d (non-SVR) | $58,541.94 |
14:00:47 | SVR 0x83f3 | $1,550.43 |
14:00:49 | wstETH-class 0x71e0 (non-SVR) | $1,756.03 |
14:00:51 | Production 0x1e0b | $1,549.81 |
Six Chainlink writes across four feeds within sixty seconds, including two feeds outside the SVR routing entirely, while the production ETH/USD feed held a stale value.
Controls, stated in full because they matter more than the count:
Raw multi-write counts are not evidence. Across 195,767 events, the Aave-SVR channel printed two or more rounds inside one production gap 13,864 times (19.5%); and production printed two or more inside a sibling gap 14,170 times (20.1%). Near-symmetric: the channels run independent cadences. Only the price-matched subset above is probative.
In healthy windows production prints first, by 2-6 seconds, or effectively ties (median offsets ~0; 37% of violent-move prints within 2s). The reverse ordering concentrates in the stall windows.
An Ethereum sibling channel that pre-dates SVR entirely exhibits the same pattern.
Optimism carries no SVR feeds at all, which is among the reasons we make no claim that SVR routing, the Atlas auction, or any mechanism causes the behaviour described here. We report the ordering as measured.
Chainlink's published design states that the standard feed transmits in parallel via the public mempool and is not delayed. The measurements above appear inconsistent with that description as we understand it; we have shared them with Chainlink and welcome an explanation or correction.
¹ Composition: $40,005 across the 232 Base events + $483,482 across the 3,197 Ethereum events ($146.8M of swap volume executed inside the Ethereum windows) + ~$23.5k across the four documented fast-moving Base windows.
We measure service as band-time share divided by realised volatility, so that a volatile month cannot be mistaken for a badly-served one. On that measure, March-July 2026 is the worst five-month window in the protocol's history on both L2s, under every baseline tested: roughly 30-50% below launch-era service (Base +33%, Optimism +48%) and 70-100% below the March-September 2025 baseline (+72% and +102% respectively). May, June and July 2026 are the three worst consecutive months on record.
The tail moved the most. The p90 breach response on Base (time from a deviation-band crossing to the next feed update, for the slowest decile of episodes) ran 4:36-5:37 in May-July 2026, against a 2025 norm of 1:10-1:44. Optimism shows the same 2026 pattern at a faster absolute level.

Ethereum mainnet's volatility-normalised band-time sits on its 2024-25 baseline (the concentration of 2026 degradation is an L2 finding) though mainnet's raw p90 tail has also drifted, from roughly 2 minutes toward 3. General out-of-band frequency has risen on both L2s through 2026 (lifetime averages: Base 18.5%, Optimism 13.9%, Ethereum 2.3% of minutes beyond each feed's own band), with Base above Optimism in every one of the 28 common months.

This is the service-side context for the loss acceleration described in the post-mortem: through 2026, update cadence on the chains carrying most of Metronome's flow degraded to the worst levels on record at the same time as adversarial flow volume grew sharply (Base swap counts peaked near 57,000 in February 2026). Per §2, slower cadence raises the loss rate on every adversarial dollar; the post-mortem quantifies the resulting impact. This report does not attribute shares of the total loss between service level, flow growth, and venue design; it establishes the measured service facts.
All figures derive from a single ledger built from SyntheticTokenSwapped event logs across Ethereum, Optimism and Base, joined server-side to exact per-transaction Chainlink rounds with same-block transaction-index resolution and validated at floating-point precision. Chainlink round history is rebuilt from raw AnswerUpdated logs; lifetime out-of-band shares reproduce exactly across independent rebuilds (Ethereum 2.32%, Optimism 13.89%, Base 18.50%), and 110 monthly values reproduce to within 0.006 percentage points. The market reference is the Binance ETHUSDT 1-second mid: the benchmark used in both cited studies; any USDT basis affects both sides of every comparison identically. Note that Binance 1-second mid offers a suitable proxy to Chainlink’s proprietary aggregate pricing data. We have requested Chainlink’s aggregate pricing history and have not received it. The independent studies referenced both also use Binance ETHUSDT 1-second mid as a proxy. The sibling-channel analysis in §6 uses no external reference at all. Breach-window ages in §1 are measured on a 1-minute grid with the crossing second interpolated; sub-minute excursions are folded into the 0-30s bucket.
As external checks on the pipeline rather than on any claim: our Ethereum out-of-band share of 2.32% sits within a quarter-point of the 2.48% violation share published across 40 feeds in Journal of Corporate Finance 96:102908, and our Optimism figures for 10 October 2025 (611 updates; maximum heartbeat overrun 1,934s) match the values derivable from arXiv:2606.03434 to the second.
Scope and limitations. Adverse flow is measured flow, not attributed loss. The Pyth repricing holds order flow fixed and is an upper bound on benefit. The staleness-response relationship in §2 carries the stated endogeneity confound, which biases it toward understatement. §6 makes no causal claim about any routing or auction mechanism. Aggregate losses, their attribution, and the protocol's remediation are addressed in the accompanying post-mortem.
Supporting workbooks, per-swap ledgers and query identifiers are available on request.
