PropAMMs on Ethereum: the story so far
Published 2026-09-01 · data as of 2026-08-31
tl;dr
- PropAMMs are onchain markets priced by a market maker. On Ethereum this structure is enabled by block builders, who include required pricing updates ahead of any trades.
- Launched in May, PropAMMs reached $1.15B of weekly volume by the end of August, across five active market makers, though a quarter of the last week's volume was internal arbitrage cycling across FermiSwap pairs for cents at a time.
- An onchain PropAMM router comparing pricing from multiple PropAMMs processed $97M in the most recent week, while introducing a standard interface which should accelerate integration and unlock composability.
- There is diversity across PropAMMs in terms of pricing methodology and supported markets, but all demonstrate higher capital efficiency compared to traditional AMMs.
This investigation is experimental, any feedback or corrections are very welcome, please get in touch: adam@azfuller.com
Background
Automated Market Makers (AMMs) are onchain markets, for example for ETH-USD, where the price is defined by available liquidity, and moved by trading activity. This means that in the absence of activity, an AMM's price might diverge from the wider market price, leading to arbitrage opportunities (and value leakage for liquidity providers).
A proprietary AMM (PropAMM) is a market where pricing parameters can be dynamically updated by a trusted party before trades land, removing this arbitrage opportunity. This allows market makers to offer tighter buy-sell spreads, improving execution price.
The challenge is how to ensure that these pricing updates land before user trades. On Solana, where PropAMMs first gained traction in 2025, this is made possible by short block times and low transaction fees, so PropAMMs can feasibly continuously update their pricing. Ethereum has longer block times (12 seconds) and higher transaction fees, which would seem to make PropAMMs unviable, but PropAMMs successfully launched in May 2026 via an elegant integration with the block building pipeline.
Professional block builders are responsible for almost all blocks on Ethereum, with the largest builder Titan determining which transactions are included in 44% of all blocks over the past week. Block builders are therefore well placed to act as the coordination layer for PropAMMs, streaming prices to consumers, and ensuring that PropAMM's pricing updates are made just-in-time when a user makes a trade.
While there is a growing literature about PropAMMs (an Ethresear.ch post by Mike Neuder and Maryam Bahrani, a Lambda Class announcement), and the Credible Commitments podcast has featured several of the key players recently, this is a fast moving space, so it warrants a closer look.
Outpacing the market
The headline is one of growth, with PropAMMs going from ~$100M of weekly volume in June to $750M and then $1.15B in the last two weeks of August. There was an uptick in overall market activity over the same timeframe, but PropAMMs traded ~10% of DefiLlama's total DEX volume by the end of the month, up from ~2-3% in July.
Weekly PropAMM volume on Ethereum mainnet by venue (bars, left axis), and PropAMM volume as a % of all Ethereum DEX volume (line, right axis; denominator from DefiLlama). Complete weeks only, from 2026-05-13.
The PropAMMs
The largest venue is FermiSwap, which makes up 64% of all time volume, with Metric coming in second at 31% of volume. Kipseli, Tempest and bopAMM make up the remainder, with TaurusFi apparently inactive.
Total volume counts from 2026-05-13, when pamm.wtf history begins. Average trade size uses the trailing week.
The taker side
Early trading was predominantly ETH pairs, but now USDC/USDT makes up 53% of volume, while BTC pairs have also grown.
On the taker side, the top-5 executor contracts were $762M of the $1.15B total in the last week of August, while identifiable aggregators and wallets (e.g. CoW Protocol, KyberSwap) made up $94M. Another 8% of volume was via the onchain PropAMM Router, developed by Lambda Class (more on the details of the router in a later section).
Weekly PropAMM volume split by trade type (left) and by taker group (right), decoded from every fill event since 2026-05-13.
Not all of that taker volume is what it looks like. Four of the five executor contracts send transactions whose PropAMM legs bring them straight back to the asset they started with: as an example this transaction sells 16.7041 ETH for USDC, swaps the USDC to USDT, and buys 16.7057 ETH back with the USDT, all via FermiSwap. It is a triangular arbitrage on the maker's own quotes: the USDC/USDT rate on the direct lane and the rate implied by the ETH and BTC lanes differ by about a quarter of a basis point.
This is only negligibly profitable (a median of $0.57 per cycle, about $3,000 gross across 3,172 cycles in the week of August 24), but it is accounting for a meaningful share of volume: round trips were 3% of FermiSwap's volume in the week of August 17 and 34% in the week of August 24, accounting for about a quarter of all PropAMM volume that week.
Weekly PropAMM volume, all venues, split into round-trip cycles and everything else. A round trip is a transaction whose fills all sit on one venue and net to zero in every token. Transactions that close a leg at another venue are counted as everything else. Complete weeks only, decoded from every fill event since 2026-05-13.
So this slightly tempers the growth story - net of these round-trip cycles, the last week is about $850M, up around 16% on the week before rather than up 54%. But it is also an inevitable test as PropAMMs scale. It will be interesting to see how FermiSwap and other players react to this kind of challenge going forward.
A battery of builders
PropAMM fills are carried by multiple builders, with Titan, Quasar, BuilderNet and bombora.build carrying paired updates and fills (Titan, Quasar and BuilderNet have said so publicly; bombora.build is inferred from the chain). Interestingly one PropAMM also sees fills on other builders (Eureka, bobTheBuilder.xyz) - see the price updates for more insight.
Bars show each builder's share of PropAMM fills over the trailing week. The white tick marks that builder's share of all 50,400 blocks, for context.
The overall flow
You can visualise an overall snapshot in the following Sankey diagram, where Titan is the largest builder and FermiSwap is the largest venue, but there is sufficient diversity to call this an ecosystem, rather than an integrated product:
So far, so interesting. What do we see when we look a little more closely?
Zooming in on a block
It is instructive to look at how PropAMM fills land in a block. Block 25848547, built by Titan, features five PropAMM fills across three PropAMMs, each with a maker-signed price update transaction immediately before it in the block. The five updates all pay 0 gwei priority fee (four write to the shared DATAFEED registry, one to Metric's own store); the fills range from $1.2k to $22.5k and all execute within two basis points of the Binance mid at the block timestamp.
Block 25848547: the priority fee of each of its 373 transactions by position. The gold dots are maker price updates. The red dots are the five PropAMM fills.
Notably, none of these fills is at the very top of the block. The important thing for the PropAMM is that the price update is immediately before the fill transaction; it matters less where exactly in the block they are. The following chart from the trailing 7 days does show that fills skew towards the top of the block, but 1,146 fills were in the final 5% of their block's transactions.
Relative position of all 50,567 PropAMM fills over the trailing week. The median fill lands about a quarter of the way into its block, and fewer than one in ten fills land in the first five positions. The per-venue distributions are nearly identical.
The price updates
Each PropAMM is responsible for its own pricing, but on closer inspection, four of them use the same DATAFEED registry contract to store their pricing update, with only Metric using a separate pricing store. Notably both Metric and Kipseli also reference Chainlink's pricing updates as a point of comparison:
Four venues read the shared DATAFEED registry. Metric reads its own store and checks the result against Chainlink deviation bands. Kipseli reads the registry but also checks Chainlink as a guardrail (dashed).
bopAMM also previously had a standalone pricing store, but migrated to the DATAFEED approach around August 30th.
For all but one PropAMM, pricing updates need to happen in the same block as the fill. Only Metric takes a different approach, tolerating a stale store, with the aforementioned Chainlink guardrail. This means that Metric is the only PropAMM whose fills can be found in blocks built by non-participating builders, where they show up without a pricing update.
Every Metric fill over 450 blocks (about 90 minutes), frozen 2026-09-01. The grey fills (84 of 91) have a store update earlier in their block. The red fills have no update in their block.
The onchain router
As well as the offchain builder interface, there is an onchain PropAMM Router developed by Lambda Class. This compares prices from multiple PropAMMs, quoting Uniswap V3 alongside them, and executing wherever the price is best (with Uniswap V3 also serving as the fallback if the chosen venue fails). This introduces a standardised PropAMM interface, which supported PropAMMs need to implement:
interface IPropAMM {
function quote(address tokenIn, address tokenOut, uint256 amountIn)
external view returns (uint256 amountOut);
// push-payment: the router transfers tokenIn to the venue first;
// the venue delivers tokenOut straight to recipient
function swap(address tokenIn, address tokenOut, uint256 amountIn,
uint256 amountOutMin, address recipient, uint256 deadline) external;
}
In practice some PropAMMs implement this in their core, while others have shipped adapters (Metric's router adapter, Kipseli's wrapper).
Weekly volume that goes through the onchain PropAMM Router, split by venue. Complete weeks only. The router has processed $246M since it went live in June, 7.1% of all PropAMM volume in that window.
This obviously requires price updates for all supported PropAMMs. Block 25882303 shows how this happens: a batch update writes three maker-signed prices to the shared registry at index 13, a second update refreshes Metric's own price store at index 14, and the router trade executes at index 18 (after two token approvals and an ETH fee payment).
Five pricing curves
This standardised interface gives us a clean way to compare the spreads offered by these different market makers, as you can call quote() with variable size to see how venues compare at a given moment:
Live quote curves for ETH/USDC, frozen 2026-09-01. Each venue answers at its own fill block. The y axis shows the quoted price against that venue's own mid; asks sit above zero, bids below.
As you can see, there is variety in the size and spread. FermiSwap quotes smoothly to at least $250k, the top of our size grid. Metric shows the tightest spread and reaches $123k. Tempest and bopAMM stop at $25k, while Kipseli stops near $49k. But this is a single moment: these curves are dynamic and configurable, and on the quieter venues they may reflect a maker pulling back rather than the design, so we can expect more variety and competition as the market matures.
Capital against volume
Finally, it is instructive to look at the capital required by these PropAMMs, as capital efficiency is a key concern for any market maker.
Capital that rests on each venue against the volume it fills per day. The Uniswap row is a like-for-like(ish) contrast: every V3 fee-tier pool for the same four pairs (16 pools), with TVL from token balances and volume decoded from a trailing week of swap events.
Once again, the PropAMMs take different approaches. FermiSwap has the highest TVL at $5.35M, while Metric sees an impressive 61x turns on $555K. Meanwhile bopAMM and Tempest draw on liquidity from external maker wallets, rather than having specific locked capital. But in all cases, this is a pretty capital efficient approach, compared to traditional AMMs (Uniswap numbers provided for reference).
What next?
While it is still early days for PropAMMs on Ethereum, the approach is gaining significant traction and should continue to do so, particularly if the market continues to strengthen. The immediate benefits are clear, in terms of better pricing for takers, and improved efficiency for market makers, which should drive increasing share of spot trading over time. But what is unknown is what bringing this activity onchain might enable, both due to the standardisation of the PropAMM interface, as well as the composability with the broader DeFi ecosystem.
The pricing is nice, but the possibility enabled by bringing PropAMMs onchain is what makes this new thing so exciting. As Kubi Mensah of Gattaca, the company behind Titan, put it on Credible Commitments [43:06]:
"The beautiful thing about prop AMMs [is] that they are on the ledger, and then anyone that interacts with the chain and routes across what exists on the chain can discover best prices."
We can expect further growth, more hardening, new entrants and hopefully creative experimentation over the coming months. Watch this space.
Method
Methodology & reference numbers
Sources & scope. The snapshot was frozen on 2026-08-31 from four sources. Volume history comes from pamm.wtf, the public dashboard that Titan runs. Fill counts, positions, quotes, traces and the full-history decode come from our own reads of an Ethereum archive node. The specimen block adds Binance public trade data for the reference mid. Total Ethereum DEX volume, the denominator of the share line, comes from DefiLlama. The share is approximate: the numerator and the denominator come from different trackers, and DefiLlama lists FermiSwap inside the total.
Counting fills. We count fills by event signature on the contracts that emit them. The venue list comes from Titan's documentation and pamm.wtf's own swap feed. We also sweep the shared fill event across all addresses, which finds emitters the dashboard does not list; the two large ones turned out to be router adapters that wrap tracked pools, so their fills re-emit events the dashboard already counts, and the flow decode joins them by transaction hash to avoid double counting. We reconcile our counts against the dashboard for every venue on every full UTC day in the census window. The worst disagreement is 0.3 percent; day boundaries explain a drift of a few swaps.
Full-history decode. The composition and router charts decode every fill event since the dashboard's first day (280,022 fills over 17 weeks) from raw logs, with amounts valued by a fixed token registry and spot prices read from the venues' own live price lanes. Two malformed events above a $50M per-fill sanity cap are dropped. The round-trip split groups the token-carrying legs of each transaction and labels the transaction a round trip when all of its legs sit on one venue and every token nets to within 0.5% of zero across them (a closed cycle on that venue's own lanes). Transactions that leave a stablecoin position open are not round trips: their receipts show the position closed at an outside pool, which is cross-venue arbitrage. The evidence and per-cycle economics are in pipelines/propamms/notes-roundtrips.md. The decode runs chunked eth_getLogs in parallel (10 workers, adaptive 10,000-block ranges) and takes about two minutes against an archive endpoint.
Positions, builders, flows. The position and builder charts use a trailing 7-day window (50,567 fills, blocks 25827174 to 25877573) with every block header fetched for the builder baseline, so fill shares compare against true block shares. The Sankey tags each fill's effective caller (after the adapter join) and the block's builder from extraData. Taker labels are address lists, not measured behavior: "top-5 executors" are the five largest executor addresses, and "unlabeled takers" is the catch-all.
Quotes, curves, windows. The curve figure calls each venue's quote() over a size grid at that venue's own most recent fill block, the moment its price is guaranteed readable, and normalises to the venue's own mid, so the figure compares shapes, not price levels. The grid tops out at 100 ETH and $250k; FermiSwap is the only venue that answers everywhere inside it, and at its frozen block it kept quoting to about 1,000 ETH and $1M, so its depth is a floor, not a limit. Metric is quoted through its router adapter because its pool has no standard quote interface. Freshness windows are not inferred from probes: we traced recent fills per venue and decoded the registry-read bounds their fill paths actually pass (exact block second for FermiSwap and Kipseli; a 15-second span on some Tempest and bopAMM lanes; our own earlier wide-window probes only proved data presence, a method error the notes record).
Update cadence. The pairing strip collects every fill and every price-update transaction for FermiSwap and Metric over one shared 450-block window and marks each fill by whether an update to its price source sits earlier in the same block. FermiSwap pairs 131 of 131; Metric pairs 84 of 91, and all 65 of its store updates landed in blocks that also carry its fills.
Capital contrast. The Uniswap row in the capital table is like-for-like: every Uniswap V3 fee-tier pool for the four pairs the PropAMMs trade (16 pools, derived from the factory rather than hardcoded), with TVL measured from token balances and volume decoded from a trailing week of swap events, the stable leg valued at $1. Comparing against all of Uniswap mainnet would flatter the PropAMMs by diluting the denominator with long-tail pools they do not compete with.
Specimen. The single-block figure dissects one block from the trailing week. A scan over every block in the position sample keeps those whose PropAMM fills are single-venue transactions (one fill event, no Uniswap leg, so not an executor's multi-venue bundle) from several different callers, and ranks them by user-path callers; the pick is the top block. We fetch its full receipt strip, decode every fill and every price update, compute every transaction's priority fee, pair each fill with the last update to its venue's price source before it, and pull Binance aggregate trades around the block timestamp, taking the last trade before it as our reference mid per instrument.
Contracts & operators. Mechanism claims rest on verified source where it exists (the DATAFEED registry, the FermiSwap swapper, the PropAMMRouter, Kipseli's wrapper, checked on Blockscout) and on traces, calldata decodes and bytecode fingerprints where it does not (the pricing engines, Metric's pools and store). Operator attribution follows deployer funding trails; the notes in pipelines/propamms/ record the evidence chain for each claim, including the ones we corrected along the way.
Podcast quotes. Quotes reference the transcripts in the repo, with timestamps. We transcribed the audio with ElevenLabs Scribe v2; raw transcripts are never hand-edited, corrections live in an errata file that generates the cleaned copies. Check quotes against audio before publication.
Reproducing. The pipeline (fetch, analyze, QA) lives in pipelines/propamms/, transcripts in pipelines/propamm-podcasts/. Charts render only from the frozen snapshot data/propamm.json. An 81-check QA suite gates the snapshot: totals reconcile across breakdowns, the census matches the dashboard per venue-day, the Sankey conserves flow at every node, and the specimen, curves, cadence and router aggregates satisfy internal-consistency bands.
The numbers
| All-time volume / fills | $3.35B / 277,834 swaps (dashboard series, from 2026-05-13) |
| Last 7 days | $1,120M · peak weekly share of Ethereum DEX volume 11.0% |
| Census reconciliation | 6 venues x 7 full days; worst venue-day disagreement 0.3% |
| Venue split (all-time) | FermiSwap 64% · Metric 31% · Kipseli, Tempest, bopAMM ~5% · TaurusFi inactive |
| Builders (trailing week) | Titan 69% of fills on 44% of blocks; four integrated builders carry all venues, every builder carries Metric |
| Freshness windows (traced) | FermiSwap and Kipseli exact block second · Tempest and bopAMM same block, 15s span on some lanes · Metric in-band stale store |
| Pairing (450-block strip) | FermiSwap 131/131 fills with same-block update · Metric 84/91, updater rides with the flow |
| Spreads (ETH/USDC, own mid) | Metric 0.86 bps · Tempest 1.38 · FermiSwap 2.34 (to at least $250k, the top of the grid) · Kipseli 2.56 · bopAMM 4.20 |
| Router | $246.5M carried all-time = 7.1% of decoded volume · FermiSwap wins 54%, Metric 31% |
| Capital vs volume | FermiSwap vault $5.35M (~23 turns/day) · Metric $0.56M · Kipseli $0.28M · like-for-like Uniswap V3 contrast (16 pools, same four pairs): $319M TVL, 0.61 turns/day |