ClearTrace|← All issues

ClearTrace

DEX Weekly

October 15, 2026  ·  Attribution: Ethereum, Base, Arbitrum, Optimism

1 · Lead finding

The quote gap we publish was never a comparison, and the control it implied was not there

On October 13 we corrected a sentence from the October 1 issue. It was the second correction to that one paragraph in two weeks: the first, on October 8, had the sign of a gap backwards. This one matters more, because the fault is in the instrument rather than in the wording.

The sentence said that four of the six venues in its table sat at or under 1.00 bps at every size, and that OKX was the exception. Three of them did, and there were three exceptions rather than one. The sentence was also short by a venue on its own arithmetic, since four plus one exception accounts for five of six.

The second fault is structural. Those figures were published as a comparison against the Uniswap default route, and they are not one. The metric subtracts the baseline's own quote gap in each matched window, and that baseline sits at zero because the route being simulated is the route that was quoted: our simulator posts the stored quote object back to Uniswap's swap endpoint (app/quote_realized.py:1049). On the committed sample, 59.4% of Uniswap's Ethereum rows are exact zeros, and the rows that are not zero carry a median and a 90th-percentile absolute value of 0.0000 bps, with a 99th percentile of 2.99 and a maximum of 25.72. Measured on Ethereum at the October 1 cutoff, across ten venues and four size cohorts, the largest divergence between the differenced figure and the raw one is 0.0193 bps, and that bound is on the cohort medians rather than on any single window.

What the subtraction was meant to do is cancel the market movement common to both venues between the moment a quote is read and the moment it is simulated. A baseline that is zero on three rows in five, and worth under 0.02 bps to the windowed median, cancels almost none of it, so in practice the quote gap has never carried a drift control, for any venue. The simulation also ran at tag latest (app/quote_realized.py:1412) and wrote no block to the row, so no row captured before this week can be asked which state it saw.

That left two live explanations for a figure such as OKX's, whose quote gap, as published on October 1, rises with size from +1.89 bps at $1,000 to +10.22 bps at $1M. A positive gap is a simulated fill below the venue's own quote, so either the quote overstated what its route would deliver, or the market moved underneath the measurement. The scale is readable against a venue whose fee is known: ParaSwap read +1.00 bps at all four sizes in that same table, which is its published 1 bp fee. These are quote-gap figures and not the realized comparison in section 3, which measures a different thing and is the only one of the two that carries a price level.

Since October 13 each row pins a named block and carries three timestamps, for the quote, the swap request and the simulation. 3,895 rows now carry them, and the exposure window of our own measurement is a measured quantity for the first time: on Ethereum it runs to a median of 0.90 seconds and a 99th percentile of 4.56, with 99.94% of 1,547 rows inside twelve seconds, which is one block.

Two limits on that. It bounds how much of a quote gap could be drift rather than quoting, and it does not settle it: a venue can compute a quote against a state older than the request we timed, and the rows captured before October 13 carry no block and cannot be re-asked. It also says nothing about section 3, whose realized figures match a venue against the baseline inside a 30-minute window, a far looser bound than the seconds described here; those cells carry whatever moved inside those windows, and the block now recorded on each row is what will let that be measured rather than asserted. No figure already published moves: on the Ethereum cohorts where that bound was measured, each cell stands as the venue's own quote gap rather than as a comparison against Uniswap.

2 · Who carried the flow

The contracts behind this week's volume, named where we can name them

Attribution volume by the contract that carried the trade, per chain, for the attribution window written on the date shown (the refresh is weekly, usually a Monday, and a missed one is forced on the next sync). A name is printed only when our labeling has one; the rest is in the totals and in the count below each table.

Ethereum, window written 2026-10-12: $5.58B across 3,671 contracts.

ContractVolume% of chain
Wintermute (CEX-DEX Searcher) (0x51c728…502a7f)$443.7M7.9%
MEV Searcher (Atomic Arb) (0x000000…0f594e)$434.2M7.8%
Automated Trading Contract (0xbdb3ba…df47b6)$246.4M4.4%
safe_test: Safe_v_4_1$241.4M4.3%
mevrevolutionx.eth (0x410144…0ea4a3)$235.2M4.2%

20 unnamed contracts over $5M carried $420.5M (7.5% of the chain); 28 contracts carrying $364.8M are withheld under a publication freeze and included in the total.

Base, window written 2026-10-12: $6.55B across 4,734 contracts.

ContractVolume% of chain
Wintermute-linked Market Maker (Bot) (0x83d55a…7490d5)$1.02B15.6%
uniswap: UniversalRouter$886.5M13.5%
Automated Bot Fleet (disposable EOAs) (0x08fb33…d9fc35)$504.4M7.7%
aerodrome: Swapper (UniversalRouter fork)$402.1M6.1%
Wintermute (CEX-DEX Searcher) (0x51c728…502a7f)$382.4M5.8%

36 unnamed contracts over $5M carried $517.0M (7.9% of the chain); 3 contracts carrying $82.1M are withheld under a publication freeze and included in the total.

Arbitrum, window written 2026-10-12: $748.8M across 750 contracts.

ContractVolume% of chain
Market Maker (Wintermute-linked) (0x93c30e…aedd17)$317.4M42.4%
Automated Trading Contract (0x96daa0…caab73)$98.3M13.1%
Anonymous Vault Router (Safe 0xe296…5658) (0x278d85…6ef8d2)$64.1M8.6%
kyber: MetaAggregationRouterV2$27.7M3.7%
UniversalRouter (0x2d0141…c4fe65)$16.4M2.2%

1 unnamed contract over $5M carried $20.1M (2.7% of the chain); 3 contracts carrying $26.5M are withheld under a publication freeze and included in the total.

Optimism, window written 2026-10-12: $121.7M across 205 contracts.

ContractVolume% of chain
Velodrome Slipstream LP Rebalancer (Bot) (0x5e6adb…9937b9)$24.3M19.9%
Wintermute-linked Market Maker (Bot) (0x1ef354…d539e9)$11.3M9.3%
gnosis_safe: SafeL2_v1_3_0$11.3M9.2%
Automated Trading Contract (0xae629b…b40b3f)$9.6M7.9%
kyber: MetaAggregationRouterV2$6.7M5.5%

1 unnamed contract over $5M carried $5.6M (4.6% of the chain); 3 contracts carrying $6.3M are withheld under a publication freeze and included in the total.

Percentages are of the chain's attribution total in the window; the five rows are the largest named carriers, not the whole.

Entrants that persisted. A contract over $5M this window that was also in the previous attribution window and not in the one before. A contract seen in one window only is churn and is not listed.

ChainContractThis windowPrevious
Ethereum7702 Delegated EOA (0x6ef6…76c9) (0x50560a…faab6a)$7.7M$1.9M in the window of 2026-10-05
Ethereum7702 Delegated EOA (0xb24c02…88a77c)$5.2M$1.8M in the window of 2026-10-05
BaseWintermute (CEX-DEX Searcher) (0x51c728…502a7f)$382.4M$38.0M in the window of 2026-10-05
BaseJitBotBaseV3 (0x202461…b2125e)$6.7M$4.6M in the window of 2026-10-05

Unnamed entrants, by chain: Ethereum: 2 unnamed, $17.7M; Base: 9 unnamed, $120.5M. Their addresses are in the issue manifest and the labeling queue.

Named this week. Labels dated inside the seven days to 2026-10-15, on contracts carrying at least $1M in the current window, that were not already in the seed of the previous ATTRIBUTION window. A label the labeler merely revisited is not new and is not listed.

ChainContract namedVolumeHow, when
Ethereumsstone.eth (0xc2fdb7…b5e18b)$1.8Mdeployer, 2026-10-14
EthereumPendleV2FarmV3 (0xe9e44c…b5c71a)$1.4MSourcify, 2026-10-14
OptimismSwapRouter (0xba3aee…5041ca)$1.2MSourcify, 2026-10-14
BaseBundler (0xf45588…31357c)$1.1MSourcify, 2026-10-14

A further 4 contracts carrying $8.2M received a role label (proxy shape, delegated EOA, bot, bucket) rather than a name; they count as attributed in coverage and are not listed as names.

3 · Execution scoreboard

Realized fill against the Uniswap default, and who reverts

Each venue's realized output against the same trade routed through the Uniswap default, on Ethereum, matched on pair, size cohort and 30-minute window. This is the realized comparison, not the quote gap: a quote gap measures a venue against its own quote and carries no price level.

Venue$1k$10k$100k$1m
KyberSwap+0.03+0.17+0.03+3.58
SushiSwap+0.00+0.01+0.02+1.44
OKX+0.13+0.08-1.12+0.06
Bebop (RFQ venue; its fee is netted inside the quote, see Fees)+0.00-0.00+0.00-0.17
ParaSwap (charges a fee, see Fees)-1.00-0.93-1.04-1.13
1inch (flat per-pair shortfall; our stablecoin measurement matches the 10 bps row of 1inch's published per-plan API fee table and no other row in it, which is how the plan is identified rather than from any key we hold; the non-stable pair is explained only in part, see the correction of October 6)-27.39-25.10-22.52-9.81
LI.FI (charges a fee, see Fees)-24.95-24.54-24.86-19.48

Median basis points of realized output against the Uniswap default route. Positive means the taker receives more than the default route delivers, negative less. A cell is printed only when rated: at least 30 matched windows spanning at least 7 days and not stale; n/a otherwise. 880 to 3,479 matched windows per printed cell. Sample captured 2026-06-23 to 2026-10-15, 83,240 successful Ethereum captures. Venues under a publication freeze or wound down are not shown.

Router revert rates, Ethereum, 7 days. Every router we measure that we may name, best first. RFQ and intent venues are not routers (the user does not submit the swap), and a venue whose execution model is unclassified is not compared either. 2 routers with fewer than 10 reverted user transactions in the window are not listed: that few events is not a rate.

RouterUser revert rateUser txs
1inch0.29%101,997
LI.FI0.39%20,682
ParaSwap0.39%27,240
Sushi0.42%11,548
Bitget0.43%36,059
Uniswap0.99%113,968
KyberSwap1.68%133,677
OKX1.69%40,607

User revert rate is the revert rate over senders whose own transactions to these routers succeeded at least 90% of the time over the window. It is a threshold on each sender's own outcomes, not a classification of who the sender is. Data written 2026-10-14. The highest rate across the full measured population on this chain, named here or not, is 1.69%.

Largest sandwiched trades, 7 days. From Dune's curated sandwich table. Totals count victims of at least $1,000; the unfloored figure is printed beside each so the floor's effect is visible.

ChainAttacksVictim volumeAttacks, no floorVolume, no floor
Ethereum1,372$47.1M8,013$48.5M
Base6,130$17.9M1,458,671$667.6M
Optimism44$0.2M447$0.2M
Arbitrum8$0.1M28$0.1M

The largest victims in the window.

ChainVenuePairVictim sizeDate
EthereumUniswapUSDC-USDG$1.6M2026-10-13
EthereumUniswapPYUSD-USDS$1.1M2026-10-09
EthereumUniswapPYUSD-USDS$1.1M2026-10-08
EthereumUniswapPYUSD-USDS$1.0M2026-10-12
EthereumUniswapPYUSD-USDS$1.0M2026-10-09
EthereumUniswapRLUSD-USDS$1.0M2026-10-14

Across the four chains: 7,554 attacks for $65.3M with the floor, 1,467,159 for $716.5M without it. The gap is almost entirely sub-$1,000 rows on Base that the detector books as sandwiches; whether those are one operator or many is not something this table can say. The floor makes the VOLUME describe MEV rather than that pattern; it does less for the count. 69% of the floored count is still one pair, USDC-XDP on Base (5,236 of 7,554), so read the count as that pair plus a market rather than as a market. Dune's detector is curated, not ours, and its false-positive rate is not bounded here. Written 2026-10-14.

4 · Fees, declared and undeclared

What we have reproduced, what DefiLlama reports, and what gas costs

Only a fee we have reproduced from our own quote sample is called a fee here. A flat shortfall we have not reproduced is a parameter we have not attributed, and section 3 labels it that way.

Explicit fees we have reproduced.

VenueFeeWhere it is takenVerified
Bebop~100 bps on self-execution PMMv3 routes, disclosed as protocolFeeUsd and already deducted from the quoted buy amount; JAMv2 routes carry none, and bebop_best_route picks JAM whenever it is offerednetted inside the quote before it is returned2026-08-06
CoW Swapgas-cost fee taken from the sell token before routing, disclosed as quote.feeAmount; size-dependent in bps, not a fixed percentagetaken from the sell token before routing2026-09-08
LI.FIflat 25 bps of the sell amount, a 'LIFI Fixed Fee' taken before routing under the default lifi-api integrator, on every same-chain swaptaken from the sell token before routing2026-09-03
OpenOcean1 bp on stables, 10 bps on volatile pairs, to a named collector addresstaken from the output token, visible as a skim2026-07-31
ParaSwapflat 1 bp on every major pair, to a named collector addresstaken from the output token, visible as a skim2026-07-31

Protocol fees, 30 days, as DefiLlama reports them.

ProtocolCategory30d feesTake rate
PumpSwapDEX$118.5M14.6%
Uniswap V4DEX$81.6M0.0%
Meteora DLMMDEX$45.2M10.0%
Uniswap V3DEX$42.8M23.8%
Raydium AMMDEX$24.9M15.2%
PancakeSwap AMM V3DEX$10.5M32.4%
OKX SwapAggregator$3.7M0.0%
Jupiter AggregatorAggregator$2.9M100.0%
CoWSwapAggregator$2.1M56.0%

DefiLlama's figures and DefiLlama's categories, fetched 2026-10-14; take rate is the share of fees DefiLlama books as protocol revenue. Shown for context; nothing here is reproduced by us. Venues under a publication freeze or wound down are not shown.

Gas as a fraction of a $10,000 trade.

ChainMedian gasScopeRows
Ethereum0.13 bpsfull27,741
Arbitrum0.03 bpsexecution only, excludes the L1 data fee7,476
Base0.01 bpsexecution only, excludes the L1 data fee9,168
Optimism<0.01 bpsexecution only, excludes the L1 data fee7,633

Median of realized gas valued in USD over the trade notional, for successful captures at the $10k cohort with a valued gas price. On the L2s the figure is a lower bound: it covers execution gas and not the L1 data fee.

5 · Market context

Share of volume, inside one category at a time

Seven days to 2026-10-14, with the change in points against the seven days to 2026-09-16. Each table is one category of one chain: the DEX category reads pool-level fills and the Aggregator category reads aggregator-routed fills, and because an aggregator's fills also appear at the pool, the two overlap and are never summed. Total volume; no organic-versus-bot split is published.

Share of DEX-category volume, Arbitrum, 7 days to 2026-10-14 ($876.3M)

VenueShare4-week change
Uniswap77.5%-3.6 pts
Fluid8.6%+4.7 pts
Metric7.3%+0.4 pts
PancakeSwap4.0%-0.6 pts
Other2.6%

Share of DEX-category volume, Base, 7 days to 2026-10-14 ($7.22B)

VenueShare4-week change
Aerodrome49.5%+0.3 pts
Uniswap35.8%+5.9 pts
PancakeSwap7.5%-4.2 pts
Metric3.6%-0.8 pts
Other3.6%

Share of DEX-category volume, BNB Chain, 7 days to 2026-10-14 ($7.75B)

VenueShare4-week change
PancakeSwap91.1%+3.4 pts
Uniswap5.3%-1.8 pts
Tessera V1.8%+0.8 pts
Metric1.7%-0.9 pts
Other0.1%

Share of DEX-category volume, Ethereum, 7 days to 2026-10-14 ($6.47B)

VenueShare4-week change
Uniswap73.7%+5.0 pts
Fluid11.0%+2.2 pts
Curve5.8%-2.4 pts
Native2.3%+0.1 pts
Other7.2%

Share of DEX-category volume, Solana, 7 days to 2026-10-14 ($14.46B)

VenueShare4-week change
Meteora25.9%-0.7 pts
PumpSwap14.2%+1.2 pts
BisonFi11.6%+0.1 pts
Orca Whirlpool9.7%+1.1 pts
Other38.6%

Share of Aggregator-category volume, Base, 7 days to 2026-10-14 ($493.0M)

VenueShare4-week change
KyberSwap31.7%-10.7 pts
1inch24.8%+14.4 pts
CoW Swap5.0%-0.7 pts
ParaSwap (Velora)2.7%-0.7 pts
Other35.8%

Share of Aggregator-category volume, Ethereum, 7 days to 2026-10-14 ($3.02B)

VenueShare4-week change
KyberSwap20.4%-3.3 pts
CoW Swap20.1%-2.9 pts
1inch14.9%+3.6 pts
Bebop7.9%-1.6 pts
Other36.7%

Source: dune_global_market, written 2026-10-14, which reads dex.trades for the DEX category and dex_aggregator.trades for the Aggregator category, both collapsed to one notional per transaction. Venue-days under $1M are not in the source. Optimism is not in this source; its attribution appears in section 2. Below the $250.0M floor for tabulating a chain and category, and so not shown: Arbitrum Aggregator ($157.9M); BNB Chain Aggregator ($166.6M). A venue under a publication freeze is counted in Other and not named; removing it from the denominator would misstate every other row. Dune backfilled Lista SmartSwap into Ethereum's base trades on 2026-10-09 (spellbook #9988), adding history that ran to 2026-09-19. Only one of the two windows compared here covers that period, so its denominator carries volume the other does not and part of the Ethereum change column is that asymmetry rather than the market. The venue has no volume in the current window. The same 2026-10-09 Lista SmartSwap backfill (spellbook #9988) reaches BNB, where it is larger: $1.73B of added history against $1.15B on Ethereum, over the same period ending 2026-09-19. Only one of the two windows compared here covers it, so it was 1.21% of this chain's volume in the earlier window and nothing in the current one, and part of the change column is that asymmetry rather than the market. Other absorbs rounding, so each table sums to 100.0.

The dashboard carries the full attribution tables and the methodology notes set out the difference between the quote gap and the realized comparison, and what the user-only revert rate does and does not say.

Open the dashboard   Methodology

ClearTrace · Cross-chain DEX attribution. The issue manifest committed beside this issue lists each venue, contract, share and rate figure with its source table, filter and as-of date. It does not carry every number printed here: chain and category totals, contract counts, withheld-row counts and the sample-window counts are in the sections and not the manifest. Sections 2 to 5 are generated from the data; section 1 is written.

Get these findings in your inbox

Periodic data on DEX execution quality, aggregator benchmarks, and attribution coverage. We send one confirmation email and nothing else until you click it.