Independent continuation of Orderflow.art by Flashbots · not affiliated with or endorsed by Flashbots · original blog post

🎨 Orderflow.art

continued by Davide Barone

Illuminating Ethereum's order flow landscape. The original Flashbots definitions, recomputed on current Dune data, with declared fixes and clearly separated extensions.

Free software under AGPL-3.0, forked from flashbots/Orderflow.art. The source code of this version is distributed with it.

/avatars/angela.jpg/avatars/danning.png/avatars/jaden.jpg
Original Orderflow.art authors at Flashbots

Methodology

Last updated 3 November 2026 · applies to the datasets selectable at the top of each page.

This version

This site is an independent continuation of Orderflow.art, built by Flashbots in 2023–2024 to show how Ethereum order flow travels from users and frontends through solvers, mempools, order flow auctions (OFAs) and builders, and where its liquidity comes from. It is maintained by Davide Barone and is not affiliated with or endorsed by Flashbots. The code is a fork of flashbots/Orderflow.art (commit 003d36e) and stays under the AGPL-3.0 licence; the source code of this version is distributed with it.

The pages, Sankey columns and metric definitions are the original ones. The original site read materialized results that are no longer refreshed, so here the public Flashbots SQL is re-run on Dune for every day shown. Changes needed to keep those queries working on today's data are listed as declared fixes; anything that goes beyond the original definitions is kept in a separate extended dataset.

Datasets

DatasetDaysContent
2 Dec 2025 – 16 Feb 2026 · extended + OFA attribution + execution cost77 daysExtended dataset with the non-intent flow re-run day by day for OFA labels and execution cost (over the period).
26 Jul 2025 – 16 Feb 2026 · extended206 complete UTC daysOriginal definitions + fixes + extensions (new routers, CoW app names, PMM venue labels).
Arbitrum · 3 Feb 2026 pilot · extended1 dayPort of the queries to Arbitrum: Flashbots-equivalent router list plus 17 named routers outside it (Relay, Li.Fi Permit2, Camelot, Squid, Zerion, ...), CoW app names (arbitrum_one), PMM venue labels for Native and Clipper. A pilot, not a period.

Also computed but not shown in the selector for now: the same 206 days with the original definitions only (the extended dataset minus its flagged extensions) and 30 Jan 2024 with the original definitions, used for the comparison with orderflow.art (see Validation).

Why this period. It is the longest stretch in which every source is complete or has been repaired. From 17 February 2026 the public Flashbots Protect files shrink to about a third of their size, several March 2026 files are empty and no file exists after 27 May 2026, although the service still runs; the MEV-Share dataset ends on 31 March 2026. On 18–25 July 2025 the public mempool archive itself covers only 13–22 hours a day, and the Protect file of 30 June 2025 is missing. A shorter but complete period was preferred to a longer one with silent gaps.

How the data is computed

Eight public Flashbots views are re-run, one result per query and window:

SankeyFlow familyFlashbots query
Retail trade volume (orderflow)Non-intent routes (aggregators, DEX routers, wallets, bots)3100173
CoW Protocol3079764
UniswapX3076171, 3050748
1inch Fusion3184593, 3178977
Retail liquidity impact (liquidity)Non-intent routes3100226
CoW Protocol3091267
UniswapX3077580
1inch Fusion3179125

They use the Flashbots router and frontend list (3004150), PMM maker list (2812729), Mempool Dumpster (3145549), Flashbots Protect (3023136), MEV Blocker bundles, Hashflow trades (3099694) and builder labels (3184477), with Dune's Spellbook tables (dex.trades, dex_aggregator.trades, prices.usd, protocol tables).

  • Each query runs on one week (CoW and UniswapX liquidity on windows of at most four days). The original “last 7 days” filters are replaced by explicit time bounds, also on large joins. The bounds do not change results, because a transaction's trades, events and block share its block time; this was checked by re-running the same window.
  • Results are aggregated per UTC day and per Sankey path, meaning the six columns plus a pair group. Transaction and user counts are carried as once-per-transaction and once-per-user flags, so they add up across paths.
  • Pairs: the ETH/BTC and peg pairs listed by the original site are kept. Other pairs are grouped as “Other ETH/BTC pairs”, “Other peg pairs” and “Other long-tail pairs”.
  • Every query execution is listed with its Dune execution ID under “Declared gaps and sources” in the notice at the top of each page.

What the charts measure

  • Orderflow Sankey: the width is the USD value of retail trades from the Flashbots SQL, priced with Dune prices. Columns: frontend → meta-aggregator → solver or router → mempool (public/private) → OFA → builder.
  • Liquidity Sankey: columns frontend → meta-aggregator → solver → aggregator → liquidity source → PMM. The first stages carry each transaction's requested volume, counted once per transaction. Later stages carry the USD value of each liquidity leg, so they can exceed the input when a trade is routed through several legs.
  • Frontends page:
    • Volume is the sum of trade USD.
    • Transactions are distinct transaction hashes.
    • Users are distinct transaction senders per frontend. They are exact for a single day; over several days they are sums of daily or weekly counts, hence upper bounds.
    • Median trade size is interpolated from six size buckets.
  • Shares refer to the retail flow captured by the original Flashbots queries, not to all DEX volume on Ethereum. Searcher, market-maker and arbitrage transactions that do not go through the listed frontends, routers and intent protocols are not included.

Declared fixes (all datasets)

  1. Renamed Spellbook projects. 0x API→0x-API, 1inch LOP/1inch Limit Order Protocol→1inch-LOP, paraswap→velora, CoW Protocol→cow_protocol, DODO→DODO X. Without this, those flows would silently drop out of the original filters.
  2. CoW solvers. The solver list used by the CoW liquidity view keeps only solvers active today, so past solvers became “Unlabeled Solver” (74 M$ on 30 Jan 2024). All named solver addresses are used instead, as in the CoW orderflow view.
  3. 1inch Fusion resolver. Resolver 0x8571…a422 never has a name in oneinch.swaps. It is labelled Rizzolver, as in the original data.
  4. CoW liquidity settlements. Settlements are taken from cow_protocol_ethereum.batches instead of “transactions sent to the settlement contract”. By February 2026, 43% of settlements went through solver contracts, and the original filter found only 45% of the CoW volume. On 2024 data the result is identical.
  5. 1inch Fusion market maker. The resolver's own contract is now the transaction target, so the 1inch settlement contracts that forward the tokens are excluded from the maker lookup. This restores, for example, Wintermute's 16.0 M$ on 30 Jan 2024, as in the original.
  6. CoW frontends. In the original-definitions datasets every CoW order is shown under one label, “Cowswap Integrators”, as on the original dashboard. The published SQL would use Dune app names where they exist.

Extensions (extended dataset only)

  • Routers missing from the Flashbots list: 0x Settler, OKX DexRouter v2, Odos v3, LI.FI Permit2 Proxy, Relay, LiquidMesh, SushiSwap RedSnwapper, Enso and Rango. Over the period they raise the non-intent volume from 87.9 to 106.8 billion USD (+21%). Every extended row is flagged, so the original-definitions dataset is exactly the extended one minus those rows.
  • CoW app names. Since mid-2025, Dune has no app name for essentially any CoW order. Names come from the public CoW API instead (one request per appData hash), which names 98.1% of the CoW volume.
    • Apps with at least 1% of CoW volume appear as “CoW · <app>”: CoW Swap, DefiLlama, Aave, CoW Swap-SafeApp and Safe Wallet Swaps.
    • Smaller apps are grouped as “CoW · other apps”.
    • Orders without any name keep the original label “Cowswap Integrators”.
  • PMM labels at venue level for Native and Clipper, where the market maker itself is not visible on-chain.

OFA attribution from builder refunds (pilot, 3 Feb 2026)

The original OFA column can only name Flashbots Protect and MEV Blocker, the two services that publish their transactions. Other private routes (wallet RPCs and OFAs such as Servo, Blink or Nova) publish nothing per transaction, but many of them are paid back by the block builder: the builder refunds part of what the transaction paid it, in the same block and right after the bundle, to an address chosen by the service. Following a suggestion by Christoph Schlegel (Flashbots), this pilot finds those refunds and the transaction they belong to.

  • Exact bundle match. A refund R that follows transaction T must satisfy value(R) = p × reward(T) − gas_used(R) × base_fee, with p a whole percentage and reward(T) the priority fee plus direct coinbase transfers of T, to within 3 wei. This is the rule in Titan's eth_sendBundle documentation. Titan, beaverbuild and Eureka pay the refund right after the bundle; Quasar and BuilderNet batch refunds at the end of the block, so T is searched among all earlier transactions of the block (the adjacent transaction wins when it matches, otherwise exactly one transaction must match). Share of in-block refunds matched on this day: BuilderNet 86%, Titan 91%, beaverbuild 85%, Quasar 88%, Eureka 81%.
  • Which transaction. When the refund is a share of the user's own fee (Servo, bloXroute and some unnamed recipients), T is the user transaction. When it is a share of a backrun's payment (Blink, Nova and others), the user transaction is the one before T, the backrun's target. The role is set per address from the data: a recipient is treated as backrun-paid when the transaction before T is almost never public, which holds for bundle mates but not for unrelated neighbours.
  • BuilderNet delayed refunds. Servo's refunds in BuilderNet blocks are paid later; each one equals 90% of one transaction's priority fee, which identifies the transaction (public refund API of relay.flashbots.net).
  • Labels are added only where the original column is empty; Protect and MEV Blocker keep priority. Intent families keep the original column.
  • By sender (lower certainty). A refund exists only when the transaction paid a tip or was backrun, but the RPC is a wallet setting. A private transaction without a label gets <label> · by sender when its sender has exact attributions to one label only on the day, it landed with a builder that label is seen paying, and the sender has at most 30 retail trades on the day (bots and relayers are left out). Senders are not fully consistent: the other transactions of senders with an exact label went 16.2 M$ through the public mempool and 12.6 M$ through Protect/MEV Blocker, against 18.7 M$ propagated; 4.2 M$ belong to senders seen with two or more labels and are not labelled.
  • Result on 3 Feb 2026: 66.8 M$ of the 313.8 M$ of private non-intent volume without a Protect/MEV Blocker label are attributed (21.3%): 48.1 M$ from exact refunds and 18.7 M$ by sender. The rest pays no refund to a listed address, or is refunded in ways this rule does not match.
LabelCertaintyVolumeAddresses (exact refunds on the day)Evidence
Servonamed (strong)21.9 M$
3,148 tx
+ 6.6 M$ by sender
0xf633…0bbb (735), 0x3391…6ce5 (217), 0x5da1…a408 (18)Safe co-owned with Safes labelled MetaMask/Consensys; BuilderNet delayed refunds = exactly 90% of one transaction's priority fee; flow from MetaMask Swaps and OKX Wallet
Nova? (0x99e0…3589)hypothesis16.0 M$
243 tx
+ 7.3 M$ by sender
0x99e0…3589 (347)EOA receiving 90% backrun refunds in Titan, Quasar and BuilderNet blocks; no other public link. Nova is run by Gattaca (Titan's owner); its only published refund address is for Base. Hypothesis only
Blink (inferred)inferred9.3 M$
400 tx
+ 2.3 M$ by sender
0x22cb…d729 (410), 0x7c17…1d36 (70), 0x6457…8003 (43), 0x87ee…cc60 (26), 0x2528…7999 (15), 0x9945…38cb (8), 0x8ddb…33af (7), 0xd285…4090 (6) and 1 moreGemini deposit contract (creator Gemini: Contract 2 0x485b9a41…2d76) receiving 90% backrun refunds in Titan, Quasar and BuilderNet blocks, Blink's documented builder set; Blink's published kickback address 0x743be0db…9869 also pays into a Gemini deposit contract (0xb0b8b4cb…e634). Inferred, not confirmed by Blink
Other OFA refundsunnamed0.5 M$
120 tx
+ 2.2 M$ by sender
0x6f84…20c0 (495), 0x9c1b…ce96 (291), 0x3b89…8a89 (284), 0x9791…24f9 (38), 0x6403…784d (35), 0xe6f2…2602 (32), 0x6bf9…823f (18), 0x9a44…b9dd (16) and 25 moreThird-party recipient of exact in-block builder refunds whose refunded transactions are private and mostly outside Protect/MEV Blocker; operator unknown
bloXroutenamed (label)0.3 M$
27 tx
+ 0.2 M$ by sender
0x965d…141c (77)Etherscan label «bloXroute: Builder 1»; receives 50% of the user transaction's priority fee
Kolibrionamed (ENS)0.1 M$
12 tx
0x1f48…d6e8 (68)ENS kolibrio.eth (Kolibrio is an OFA); 90% backrun refunds

Recipients left out on purpose:

Related addresses: Blink's published searcher kickback address 0x743b…3869 (Base and Robinhood Chain docs; on Ethereum it receives builder refunds only from June 2026), the Gemini deposit contract it pays into (0xb0b8…e634), Nova's published Base refund address 0xfbfa…99fb (no Ethereum activity) and the forwarder 0xfeee…7ffc through which builders have paid refunds since about August 2026 (the recipient is in its calldata). Names marked inferred or hypothesis are not confirmed by the services.

Tested without result: BuilderNet's public fee-refund API pays one refund per bundle to the bundle's signer, so a service that signs its bundles with a fixed key should show up in the blocks where its refund address is paid. On 12,000 recent blocks (late October 2026, 1,649 built by BuilderNet) no signer is linked to the Blink or Nova addresses beyond its base rate, so signers do not name these services.

Execution cost along the paths (pilot, 3 Feb 2026)

Following a suggestion by Christoph Schlegel: the Sankey shows the realised trades, not what each party on the path keeps. This pilot estimates it for non-intent transactions (dataset «2 Dec 2025 – 16 Feb 2026», which includes this day): tick «Colour by execution cost» above the order flow Sankey to colour each link by its cost + gas (grey when less than 10% of the link's volume is measured), and hover a link for the split.

  • Reference price. Binance spot 1-second prices (ETHUSDT, BTCUSDT, USDCUSDT, opening price of the block's second, from data.binance.vision); USDT is the numeraire, WBTC and cbBTC are valued as BTC.
  • Cost. Value the sender gave minus value received, net per token over all transfers of the transaction, in bp of what was given. Only transactions where the sender moves just ETH/WETH, WBTC, cbBTC, USDC or USDT and receives at least half of what was given (bridges and partial fills are left out); the covered share of the volume is shown with every figure. Gas is reported apart (base fee burned, priority fee to the builder).
  • Who keeps it (only on transactions where every token moved, by anyone, is priced): pools = net gain of the DEX pools the transaction traded with (LP fee plus price impact against the reference); fee recipients = addresses that only receive and get at most 5% of the input (frontend and integrator fees, positive slippage kept by the aggregator); other = every other address (routers, RFQ makers missing from dex.trades). OFA refunds = what the builder paid the OFA address for the transaction, and backrun bids = what the backrun paid the builder, both from the exact refunds above.
  • Limits. A heuristic. Prices move within a second and the CEX–DEX basis enters the cost; intent families (CoW, UniswapX, Fusion), whose surplus and solver margins need other rules, are not covered yet; Servo's BuilderNet delayed refunds have no amount here.

Volume-weighted, all non-intent transactions: cost 18.3 bp, gas 0.8 bp, covered 39% of the volume. Sanity check: MetaMask Swaps shows fee recipients at 90.3 bp, against its published 87.5 bp fee; Blink and Nova kickbacks are 90% of the backrun bids.

OFAVolumeCoveredCost (bp)PoolsFee recip.OtherGasOFA refundBackrun bid
Private, no OFA label247.0 M$38%17.812.212.220.9––
Public mempool81.1 M$44%12.59.74.49.60.53.34.9
Flashbots Protect38.6 M$42%21.9135.35.10.8––
Servo21.9 M$29%10.82.27.41.61.10.60
Nova? (0x99e0…3589)16.0 M$14%31.921.78.60.10.53.74.2
Blink (inferred)9.3 M$79%37.123.13.10.50.27.38.1
Nova? (0x99e0…3589) · by sender7.3 M$40%30.918.55.21.70.4––
Servo · by sender6.6 M$75%1718.18.21.10.5––
Flashbots Protect & MEV Blocker4.9 M$21%3.404.4-0.20.1––
MEV Blocker4.8 M$10%20.511.71.10.11––
Blink (inferred) · by sender2.3 M$66%40.28.118.43.10.6––
Other OFA refunds · by sender2.2 M$67%7.77.83.413.40.2––
BuilderVolumeCoveredCost (bp)PoolsFee recip.OtherGasOFA refundBackrun bid
Titan259.0 M$42%2015.293.50.755.6
BuilderNet102.5 M$35%15.77.48.33.80.95.25.7
Quasar60.0 M$34%176.9142.40.93.23.5
bobTheBuilder8.3 M$60%4.16.312.51.30.2––
Vanilla Validators4.0 M$6%18.4-0.56.313.92.5––
beaverbuild3.7 M$33%42.99.910.631.41.81.1
Frontend (largest)VolumeCoveredCost (bp)PoolsFee recip.OtherGasOFA refundBackrun bid
Kyber Integrators93.2 M$27%1.24.70.93.90.110.111.2
0x API Integrators63.7 M$12%56.126.229.20.80.80.60.6
OKX Wallet50.7 M$80%1.70.60.70.60.45.25.8
Paraswap Integrators47.0 M$53%2.41.12.40.50.14.44.7
Uniswap Website & Wallet: Default43.9 M$54%36.835.91.400.94.44.9
1inch Integrators29.1 M$46%18.811.510.92.70.68.39.2
Li.Fi Integrators18.1 M$17%67.3114336.32.98.29.1
Curvefi Frontend10.8 M$54%2.52.500011.1
Binance Wallet9.9 M$56%0.80.200.20.41014.41130
Tokenlon Integrators9.7 M$67%36.37.6029.10.3––
Odos Frontend9.0 M$17%-4.44.90.13.80.419.922.1
Unknown: Uniswap V3 Router 18.9 M$35%9.59.5001.91.81.7
MetaMask Swaps8.6 M$58%103.59.790.34.16.92.30.1
Relay Frontend6.5 M$23%16.959.50.51.542.4

OFA attribution and execution cost over the period (2025-12-02 – 2026-02-16)

The same rules as the pilot, run day by day (77 days, one Dune query per day). Three things change with a longer window:

  • Address list. Refund recipients appear and fade, so the classification is rerun on one sample day per week (the Tuesdays of 7 weeks, 30 Dec 2025 – 10 Feb 2026) and the window uses the union: 64 addresses, 30 excluded. An address enters when it qualifies on at least one sample day and is excluded on none; listing it on days without its refunds labels nothing. A weekly census of all in-block builder transfers shows whether a named address kept receiving refunds (a stop with no transfers means it ceased, not a data error).
  • Servo is matched in SQL from all BuilderNet delayed refunds to its three Safes (same 90% rule, unique matches); on 3 Feb 2026 this reproduces the pilot exactly.
  • Prices: Binance 1-second prices at every slot second of the window.

On 2025-12-02 no mempool data exists (not even in the public archive): exact refund labels are kept, «by sender» labels are dropped and the day is left out of the shares below.

Over the window, 4644.4 M$ of the 16437.6 M$ of private non-intent volume without a Protect/MEV Blocker label are attributed (28.3%): 2940.5 M$ from exact refunds, 1703.8 M$ by sender.

Label (exact + by sender)Volume
Servo1845.3 M$
Nova? (0x99e0…3589)1815.8 M$
Blink (inferred)621.0 M$
Other OFA refunds326.5 M$
bloXroute22.0 M$
Kolibrio13.8 M$
Named addressLabelwk 1wk 2wk 3wk 4wk 5wk 6wk 7
0xf633…0bbbServo9,8826,2376,5734,0076,2269,8698,0458,7077,7868,1666,704
0x22cb…d729Blink (inferred)2,3092,0812,3061,9762,1511,9812,5083,6832,9822,6532,499
0x99e0…3589Nova? (0x99e0…3589)3,6973,2353,6142,6432,6672,0292,0962,2011,8842,2082,556
0x3391…6ce5Servo1,4481,0771,5891,2171,8032,8342,3292,3292,0212,4022,176
0x965d…141cbloXroute2,0302,2361,2571,4441,0479397181,246597560419
0x1f48…d6e8Kolibrio381350552361506471493489408442205
0x5da1…a408Servo931232001701911201091701871991,281
0x7c17…1d36Blink (inferred)154227454534442269161888021054
0xfa51…aaafBlink (inferred)17813014013517983616162155113
0x87ee…cc60Blink (inferred)1731201701481439383182194153105
0x6457…8003Blink (inferred)9009581,073922903401269792222335349
0xd285…4090Blink (inferred)14411242075695162104158474272
0x8ddb…33afBlink (inferred)212272222208177653036705442
0x9945…38cbBlink (inferred)88731389065485956625846
0x2528…7999Blink (inferred)475167424245239813841205526
0x2fb7…bd47Blink (inferred)004703038393025350
0x81c6…bbfdBlink (inferred)6069136114782000000
0xd6a6…ce4aBlink (inferred)23313200002926750

In-block transfers from builders to each named address per week (weeks start on Tuesday 2025-12-02); unnamed listed addresses qualifying per sample day: 12, 12, 15, 21, 15, 32, 14.

December weeks. The weeks of 2025-12-03, 2025-12-09, 2025-12-16, 2025-12-23 were added after the list was fixed and use it unchanged. Their sample days, classified afterwards as a check, show recipients that are not in the list: 2025-12-03: 0xc609…1d28 (98), 0xa114…8cd1 (52), 0x2c5f…0836 (17), 0x1e43…6564 (10), 0xb489…8d6c (7); 2025-12-09: 0xc609…1d28 (165), 0x5057…5786 (11), 0x722a…f305 (9), 0x13b2…5785 (7), 0x1e43…6564 (6), 0xb489…8d6c (6); 2025-12-16: 0xc609…1d28 (297), 0xe23b…9871 (8), 0xe88f…b996 (8), 0x2c5f…0836 (7), 0xfef3…4ade (6), 0xce8a…70e4 (5), 0xd9ba…309d (5); 2025-12-23: 0xf4a0…84f6 (11); attribution in those weeks is therefore a lower bound. The largest, 0xc609…1d28, receives refunds only in the weeks of 2, 9 and 16 December 2025 and none afterwards (it stopped, it is not a data gap).

OFA · whole windowVolumeCoveredCost (bp)PoolsFee recip.OtherGasOFA refundBackrun bid
Private, no OFA label11796.5 M$30%16.55.6132.71.2––
Public mempool4927.6 M$33%21.917.44.510.80.63.64
Flashbots Protect3500.3 M$43%96.62.34.80.4––
Servo1382.6 M$36%6.51.16.40.711.70
Nova? (0x99e0…3589)978.3 M$41%5.984.21.90.122.3
Nova? (0x99e0…3589) · by sender837.4 M$40%4.95.32.82.40.1––
Flashbots Protect & MEV Blocker830.0 M$27%-1.4-0.10.73.30.1––
Servo · by sender462.3 M$62%8.23.280.80.6––
MEV Blocker448.5 M$46%2.31.611.10.2––
Blink (inferred)377.3 M$53%26.613.414.81.40.28.79.7
Blink (inferred) · by sender242.3 M$48%9.72.5121.20.3––
Other OFA refunds172.9 M$38%59.35.444.810.41.52.62.7
Other OFA refunds · by sender152.4 M$25%31.82.833.66.21.3––
bloXroute15.1 M$13%3.2-1.69.230.60.30
Kolibrio11.0 M$7%6.218.1-0.215.86.5
bloXroute · by sender6.9 M$3%12.62.43.84.52.9––
Kolibrio · by sender2.5 M$39%-3.8-1.75.6-1.10.5––
Builder · whole windowVolumeCoveredCost (bp)PoolsFee recip.OtherGasOFA refundBackrun bid
Titan12488.9 M$36%15.37.79.14.50.83.43.8
BuilderNet8465.5 M$35%11.45.47.83.80.71.61.7
Quasar3744.8 M$31%12.44.493.90.71.71.8
bobTheBuilder361.5 M$46%41.644.64.82.20.2––
beaverbuild333.3 M$40%16.110.911.24.40.72.61.2
BTCS319.3 M$34%29.429.17.47.30.314.916.6
Vanilla Validators131.8 M$27%10.8-0.15.310.61––
Eureka (eurekabuilder.xyz)96.1 M$40%9.81.65.86.10.51.10
shimmerblocks.com41.0 M$15%16.87.64.211.71165.8184.2
Nethermind v1.35.232.6 M$17%14.62.18.813.20.7––
Nethermind v1.35.326.5 M$21%12.42.649.30.8––
besu 25.11.018.7 M$29%8.20.56.65.20.8––
Nethermind v1.36.018.3 M$13%12.222.85.70.9––
besu 25.12-develop-6d109a68.5 M$33%7.433.98.90.5––
reth/v1.9.3/linux8.5 M$12%13.10.62.510.10.7––
Builder+ btcs.com | ethgas.com5.9 M$47%0.434.519.99.40.29.110.1
reth/v1.9.2/linux5.8 M$12%12.81.94.361.7––
Nethermind v1.35.84.3 M$17%18.12.52.615.31.1––
besu 25.12.03.8 M$29%17.25.414.6181––
Frontend (largest) · whole windowVolumeCoveredCost (bp)PoolsFee recip.OtherGasOFA refundBackrun bid
Kyber Integrators5834.4 M$29%-0.6-0.20.43.20.10.50.5
OKX Wallet2780.3 M$67%2.81.11.10.30.51.11.1
0x API Integrators2522.8 M$22%24.17.222.31.90.82.42.6
Paraswap Integrators2380.8 M$36%2.62.42.51.80.10.91
Uniswap Website & Wallet: Default2345.3 M$47%25.720.9500.712.914.3
1inch Integrators1460.4 M$40%208.413.43.60.65.35.8
Odos Frontend1066.7 M$19%-2.2-0.50.220.23.74.1
Li.Fi Integrators899.6 M$19%54.48.826.929.31.92.32.5
Tokenlon Integrators823.3 M$64%34.510.5024.10.31.41.5
Binance Wallet775.0 M$53%00.200.10.22.62.9
Unknown: Uniswap V2 Router716.9 M$0%65.865.8009.727.129
Curvefi Frontend692.4 M$32%3.42000.10.60.7
Relay Frontend620.1 M$42%12.71.310.70.70.73.53.3
Unknown: Uniswap V3 Router 1554.0 M$27%4.74.7001.611.112.1

Completeness and known gaps

Every gap is classified as an error in the data (the activity existed) or as something that no longer exists.

ItemStatusClassification
Mempool, 17 days in Jul–Dec 2025Missing or partial in Dune's copy of Mempool Dumpster; loaded from the public archive, with the look-back days before the period (25 days, 24.5 M transactions). On ordinary days Dune's copy and the archive match row for row.Upload error on Dune; repaired
Mempool, 19 Sep and 2 Dec 2025Absent from the public archive too; shown as "mempool unknown". A missing previous day affects at most 0.6% of the next day's public transactions.Error at the source; not recoverable
OFA columnOnly Flashbots Protect and MEV Blocker can be attributed with public data in the original definitions. Over the period, 82% of private non-intent volume has no OFA (42% on 30 Jan 2024). The volume of that flow, its frontend and its builder are known; the private route it used is not. The OFA attribution pilot names 21.3% of it on 3 Feb 2026 from builder refunds (exact or by sender).Mostly not observable with public data
Flashbots Protect after 16 Feb 2026Public files shrink, then stop on 27 May 2026, while the service still runs.Error at the source; outside the period
CoW app names (extended)1.9% of CoW volume stays unnamed: orders with empty metadata (no name exists), metadata without an app code, and hashes unknown to the CoW API.Mostly no name exists; a small part missing at the source
Liquidity coverageThe liquidity input matches 98.6–100% of the orderflow volume of each family, every week.Complete
Transaction searchRows are aggregated per day and path, so the transaction-hash filter is not available.Design choice

Validation

Against the original site. For 30 January 2024 the full original Sankeys were downloaded from the orderflow.art API and compared link by link with this pipeline:

SankeyOriginal links / hereShare of original volume within 2% / 5% / 10%
Orderflow295 / 30576.3% / 87.9% / 94.8%
Liquidity470 / 52271.4% / 85.2% / 88.6%

All remaining differences above 1 M$ have a named cause:

  • labels updated since the snapshot: CoW solver Otex is now GlueX, UniswapX fillers are now labelled Flow Traders, and some builder labels changed;
  • routers added to the Flashbots list after the snapshot: Pendle, Transit, Bitget;
  • DEX models rebuilt in Spellbook: Curve −6.8 M$ in orderflow and −13 M$ in liquidity, Solidly +3.4 M$;
  • revised Protect and Maestro datasets.

On every week of the period:

  • every Sankey conserves volume (relative error below 10⁻¹³);
  • liquidity input matches orderflow per family;
  • daily series have no breaks;
  • the pilot day 3 Feb 2026, extracted from its weekly run, matches the separate one-day runs: same transactions, same volume to within one part in a million.

Original methodology

The methodology of the original site, written by Flashbots, is still available on Notion, with the launch blog post. It describes the concepts and categories used here. Its statements about data sources and freshness refer to the original 2023–2024 deployment.