ClearTrace|← All issues

ClearTrace

DEX Weekly

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

1 · Lead finding

Base's flow is credited to ten rows named after what reads as an escaping test, and the table below still says so

Section 2 names the contracts that carried each chain's volume. Three of the five rows in its Base table are i2451"q: I2451Q at $887.1M, i2451baseline: I2451Base at $486.6M and i2451.dot: I2451D at $298.0M. Ten rows in that family carry $2.14B between them: 44.3% of the $4.83B Base attribution window written 2026-10-26, and 51.8% of the $4.13B in that window that carries any name at all. The family is absent from every committed seed through 2026-10-21 18:39 UTC. The seed written 57 minutes later carries one row of it at $17.3M, by a different route: that seed's attribution stamp is still 2026-10-19, so the table was not refetched and our own labeler had written the name onto a stored row. The 2026-10-26 refresh is where the registry route opens, and it carries ten rows at $2.14B. No issue we have published carries any of them; the last one on the site is 2026-10-15.

They do not name ten venues, and the volume under them is real swap flow that is not in question. Across the ten names the set spells out a double quote, a SQL comment (i2451;--: I2451M), a path traversal (i2451dotdot: ../i2451c), a backtick, a literal space and non-Latin script. The namespace in Dune's per-chain contracts table is free text supplied with the decoding, which is how a string like i2451;-- can be in it at all, and these read as a fixture set for testing how a name is escaped.

resolved_contract_name is a COALESCE over that registry's namespace and name (queries/master_attribution_query.sql:28), so a registry entry arrives attached to the row ahead of anything we hold, and our own labeling never revisits the address, because it only works addresses that are still unknown and a contract carrying any name is not unknown. So far as our rows show, the registry carries it on Base and not on the other three. On Arbitrum and Ethereum the same strings reached only Dune's separate label set, which we apply after our own, so 0x278d858f05b94576c1e6f73285886876ff6ef8d2 still prints there as Anonymous Vault Router (Safe 0xe296…5658), a manual ClearTrace label verified on-chain 2026-08-18. On Base that name is gone: the previous window carried the address at $420.2M under it, this window carries it nowhere, and a row named i2451`b: I2451B carries $220.9M. Our attribution table groups rows by name and stores no address for any of the ten, which all print in the registry's namespace form this window, so no row-to-address match can be shown for them at all, and the one above is an inference rather than a join. The $199M difference does not settle it either way: Base's whole window fell from $6.71B to $4.83B between the two.

Five contracts we had named carried $3.41B of Base in the previous window, 0x83d55acd at $1,471.8M, 0x51c72848 at $667.5M, 0x08fb3354 at $548.5M, 0x278d858f at $420.2M and 0xf5487c30 at $301.3M. Every one of them has zero Base rows in this window. Those three figures do not subtract into each other and are not meant to: $3.41B is the previous window's volume for those five addresses, $2.14B is this window's for the probe rows, and Base's total fell $1.88B between the two, so renaming and a genuine change in flow are mixed in a proportion this table cannot separate.

Section 2 contradicts itself on two addresses, and the contradiction is ours: its Arbitrum carrier table prints our name for 0x278d858f at $69.4M while its "Named this week" row prints the probe string for the same contract, and Optimism does the same for 0xae629b at $7.0M. We found the wider problem on 2026-10-28 and the refusal is written at both ingest points, dropping a registry namespace that is not plain lowercase and the probe family by name. It has not reached the data. The query side takes effect only when the Dune queries are redeployed, which has not happened, and the attribution table refreshes weekly, so what follows is the pre-fix table.

Section 5 shows a second Base move this week, Uniswap up 23.0 points to 50.5% of DEX-category volume and Aerodrome down 24.7 points to 28.9%. It is not the same event. That table reads the project field Dune decodes for each trade, which is set independently of the contract registry namespace section 2 prints, and the daily series behind it turns on 2026-10-22, from 51.4% the day before to 34.7%, and has not gone back, running between 19.1% and 37.6% on every day to 2026-10-28. The naming problem changes who we can say carried the flow, not how much flowed.

So read section 2's Base table by its totals and its counts this week, not by its names. Attribution coverage counts that $2.14B as named, which overstates what we know about Base by the same amount; it is logged against attribution_coverage in our known-defects registry and stays open until a refreshed window shows otherwise.

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-26: $5.36B across 3,149 contracts.

ContractVolume% of chain
MEV Searcher (Atomic Arb) (0x000000…0f594e)$465.9M8.7%
Wintermute (CEX-DEX Searcher) (0x51c728…502a7f)$454.7M8.5%
mevrevolutionx.eth (0x410144…0ea4a3)$328.4M6.1%
Automated Trading Contract (0xbdb3ba…df47b6)$261.1M4.9%
MEV Bot (0x00000f…8a0cac)$206.0M3.8%

18 unnamed contracts over $5M carried $617.6M (11.5% of the chain); 26 contracts carrying $292.0M are withheld under a publication freeze and included in the total.

Base, window written 2026-10-26: $4.83B across 4,105 contracts.

ContractVolume% of chain
i2451"q: I2451Q$887.1M18.4%
uniswap: UniversalRouter$614.7M12.7%
i2451baseline: I2451Base$486.6M10.1%
aerodrome: Swapper (UniversalRouter fork)$375.3M7.8%
i2451.dot: I2451D$298.0M6.2%

27 unnamed contracts over $5M carried $426.1M (8.8% of the chain); 3 contracts carrying $55.7M are withheld under a publication freeze and included in the total.

Arbitrum, window written 2026-10-26: $926.5M across 642 contracts.

ContractVolume% of chain
Market Maker (Wintermute-linked) (0x93c30e…aedd17)$489.7M52.9%
Automated Trading Contract (0x96daa0…caab73)$129.6M14.0%
Anonymous Vault Router (Safe 0xe296…5658) (0x278d85…6ef8d2)$69.4M7.5%
uniswap: UniversalRouter$27.7M3.0%
kyber: MetaAggregationRouterV2$22.1M2.4%

2 unnamed contracts over $5M carried $14.5M (1.6% of the chain); 3 contracts carrying $22.6M are withheld under a publication freeze and included in the total.

Optimism, window written 2026-10-26: $88.2M across 204 contracts.

ContractVolume% of chain
Velodrome Slipstream LP Rebalancer (Bot) (0x5e6adb…9937b9)$15.7M17.8%
Wintermute-linked Market Maker (Bot) (0x1ef354…d539e9)$8.7M9.9%
gnosis_safe: SafeL2_v1_3_0$7.7M8.8%
Automated Trading Contract (0xae629b…b40b3f)$7.0M8.0%
Arbitrage Bot (0x983744…dd4c69)$5.8M6.5%

3 contracts carrying $3.7M 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
EthereumSupervisedLoanPositionManagerSwapBorrowHolderPstOwnable2StepWithShortcut (0xcaf6a1…6d097a)$7.1M$10.0M in the window of 2026-10-19
Ethereumkraken_earn: Balanced_Yield_USDC_manager$5.7M$37.6M in the window of 2026-10-19

Unnamed entrants, by chain: Ethereum: 7 unnamed, $71.6M; Base: 8 unnamed, $98.5M; Arbitrum: 2 unnamed, $14.5M. Their addresses are in the issue manifest and the labeling queue.

Named this week. Labels dated inside the seven days to 2026-10-29, 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
ArbitrumI2451`b: I2451B (0x278d85…6ef8d2)$69.4MDune labels, 2026-10-26
EthereumI2451`b: I2451B (0x278d85…6ef8d2)$19.6MDune labels, 2026-10-26
EthereumManagerWithMerkleVerification (0x38fe60…538753)$12.2MEtherscan, 2026-10-26
OptimismI2451uni: I2451U니 (0xae629b…b40b3f)$7.0MDune labels, 2026-10-26
EthereumPositionManager1InchOwnable2StepWithShortcut (0x6042fa…fd0bea)$5.7MSourcify, 2026-10-26
EthereumPositionManager1InchOwnable2StepWithShortcut (0x66ea3f…69c704)$4.3MSourcify, 2026-10-26
BaseOnlyOwnerMulticaller (0xfc4ef5…c60be2)$4.0MEtherscan, 2026-10-26
EthereumBinance Wallet (0xab830f…d57d5a)$1.3Mbytecode match, provisional, 2026-10-28

A further 2 contracts carrying $3.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.02+0.14+0.04+4.18
SushiSwap+0.00+0.01+0.02+1.48
OKX+0.07+0.04-1.20+0.05
Bebop (RFQ venue; its fee is netted inside the quote, see Fees)+0.00-0.00+0.00-0.26
ParaSwap (charges a fee, see Fees)-1.00-0.95-1.06-1.17
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.45-25.23-22.61-9.71
LI.FI (charges a fee, see Fees)-24.95-24.62-24.90-19.13

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. 1,063 to 3,866 matched windows per printed cell. Sample captured 2026-06-23 to 2026-10-29, 92,236 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. 1 router with fewer than 10 reverted user transactions in the window is not listed: that few events is not a rate.

RouterUser revert rateUser txs
LI.FI0.17%17,256
Sushi0.31%10,320
1inch0.32%68,295
ParaSwap0.50%29,121
Uniswap0.58%152,420
Bitget0.88%15,926
KyberSwap1.10%73,314
OKX1.12%23,727

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-28. The highest rate across the full measured population on this chain, named here or not, is 1.12%.

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,573$95.9M7,864$97.2M
Base2,127$5.9M290,525$96.8M
Arbitrum7$0.0M20$0.0M
Optimism2$0.0M247$0.0M

The largest victims in the window.

ChainVenuePairVictim sizeDate
EthereumUniswapUSDC-USDT$3.8M2026-10-28
EthereumUniswapPYUSD-USDS$3.0M2026-10-23
EthereumUniswapPYUSD-USDS$2.9M2026-10-23
EthereumUniswapPYUSD-USDS$2.1M2026-10-23
EthereumUniswapUSDC-USDT$1.9M2026-10-23
EthereumUniswapPYUSD-USDS$1.8M2026-10-23

Across the four chains: 3,709 attacks for $101.9M with the floor, 298,656 for $194.1M 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. Dune's detector is curated, not ours, and its false-positive rate is not bounded here. Written 2026-10-28.

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$109.5M11.7%
Uniswap V4DEX$56.8M0.0%
Uniswap V3DEX$30.1M25.9%
Meteora DLMMDEX$26.7M9.9%
Raydium AMMDEX$12.7M15.6%
PancakeSwap AMM V3DEX$8.2M32.6%
OKX SwapAggregator$4.5M0.0%
Jupiter AggregatorAggregator$1.8M100.0%
CoWSwapAggregator$1.7M56.5%

DefiLlama's figures and DefiLlama's categories, fetched 2026-10-28; 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.12 bpsfull30,654
Arbitrum0.03 bpsexecution only, excludes the L1 data fee8,869
Base0.01 bpsexecution only, excludes the L1 data fee10,891
Optimism<0.01 bpsexecution only, excludes the L1 data fee9,067

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-28, with the change in points against the seven days to 2026-09-30. 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-28 ($886.5M)

VenueShare4-week change
Uniswap82.5%+3.2 pts
Metric6.6%+1.7 pts
Fluid5.7%-2.2 pts
PancakeSwap3.4%-1.2 pts
Other1.8%

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

VenueShare4-week change
Uniswap50.5%+23.0 pts
Aerodrome28.9%-24.7 pts
PancakeSwap12.8%+1.1 pts
Tessera V3.6%-0.1 pts
Other4.2%

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

VenueShare4-week change
PancakeSwap88.9%-0.5 pts
Uniswap5.5%-1.3 pts
Metric4.8%+3.0 pts
Tessera V0.9%-0.7 pts
Other-0.1%

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

VenueShare4-week change
Uniswap72.1%-1.7 pts
Fluid11.5%+0.1 pts
Curve6.2%-0.4 pts
Metric4.0%+2.9 pts
Other6.2%

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

VenueShare4-week change
Meteora22.3%-1.1 pts
BisonFi12.7%+1.7 pts
PumpSwap12.5%-4.1 pts
Orca Whirlpool9.3%-2.6 pts
Other43.2%

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

VenueShare4-week change
KyberSwap31.9%-12.4 pts
1inch14.9%-4.1 pts
CoW Swap10.6%+5.1 pts
Bebop4.6%+2.5 pts
Other38.0%

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

VenueShare4-week change
CoW Swap23.4%+1.5 pts
KyberSwap19.2%-0.3 pts
ParaSwap (Velora)10.5%+4.1 pts
Bebop8.8%+0.4 pts
Other38.1%

Source: dune_global_market, written 2026-10-28, 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 ($166.3M); BNB Chain Aggregator ($217.6M). A venue under a publication freeze is counted in Other and not named; removing it from the denominator would misstate every other row. 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.