0x documents two patterns where propAMM operators on Base systematically deliver worse execution than quoted, backed by empirical data across thousands of fills.
March 20, 2026
Under the Hood

PropAMMs are a legitimate innovation in the world of DEX design. They give market makers new tools for fighting toxic flow, and enable tighter spreads and better pricing than traditional AMMs with passive liquidity. However, their flexibility and opaque inner workings have been seen to proliferate harmful behaviors that systematically degrade execution quality at the expense of traders.
On Base, Flashblocks have made propAMMs viable in the context of the EVM. 0x currently integrates five propAMMs on Base, with five more under evaluation. They drive 40–50% of Swap API volume on the chain, with a single propAMM generating $1.25 billion of volume over a recent three-month period.
.png)
While the spoofing techniques documented in this article don’t violate the blockchain protocol rules, they are unacceptable to any company or trader who values accurate execution over headline quotes. 0x monitors execution quality because we believe it’s important for our customers and their users to be able to trust the quotes shown to them.
The patterns documented below make it harder for aggregators to deliver reliable quotes. In each case, the prices observed by DEX aggregators while identifying the optimal route do not persist to settlement. The gap between quoted and executed price is consistent, measurable, and always moves in the operator's favor.
Two distinct patterns result in traders receiving worse prices than quoted. The first is a propAMM-specific pattern tied to Base's Flashblock architecture: Aggregator Spoofing via Flashblocks (Pattern 1). The second is a propAMM repricing pattern that exploits the latency between quote and settlement on any chain: Random Spread Fluctuations (Pattern 2).
.png)
Aggregators route based on end-of-block chain state, specifically the state at Flashblock 10, the final ~200ms sub-block in each 2-second window. PropAMM operators can reprice between each Flashblock.
An operator publishes a competitive price in the last Flashblock of block N. The aggregator snapshots that price and routes accordingly. In the first Flashblock of block N+1, the operator reprices worse. The trader's transaction, queued for inclusion in block N+1, settles at the worse price. Slippage tolerance absorbs the difference.
The operator's final price update lands in the last 10% of the block 97.4% of the time, regardless of what trades are present. At the moment the aggregator snapshots, the propAMM's price is better than the reference AMM 100% of the time. The propAMM's price is consistently worse when the trader's transaction actually settles.
.png)
If this were a legitimate response to market conditions, the operator's repricing would respond to trade characteristics like size, direction, or counterparty. Instead, it responds to block position. The positioning is the same in 97.4% of observed blocks, regardless of what trades are present.
0x analyzed a major trading pair on Base over approximately one month, sampling prices at the top, middle, and bottom of each block. One propAMM averaged 3 basis points worse than a single reference AMM pool; another averaged 6 basis points worse, with outliers reaching 40 bps.
Competing quotes on liquid pairs are often within 1 basis point of each other. At $1 billion in monthly volume, consistently overquoting 5 basis points means traders receive approximately $500,000 less per month, from a single source. A single basis point can determine which source wins the route.
0x simulated propAMM fills at different positions within a block as well as across sequential blocks, measuring the price deviation between them. Under normal market conditions, price variance within a block should be lower than variance between blocks, since the time interval is shorter. For both propAMMs exhibiting this behavior, the inverse is true.
.png)
.png)
.png)
Every swap has latency between the moment an aggregator reads a price and the moment a trader's transaction is included onchain. A propAMM operator can update prices faster than the trader's transaction settles. If the spread widens between quote and settlement, the trader absorbs the difference.
A propAMM operator maintains a tight spread of approximately 2 basis points, competitive enough to win the routing decision. The spread then snaps wide to 8, 12, or 16 basis points with no corresponding move in the underlying market. The widening is sudden and brief. The spread returns to tight shortly after.
.png)
When a trader's swap gets routed based on the 2 basis point quote, and the transaction is already in flight — signed, submitted, and waiting for inclusion, the operator then widens the spread to 12 basis points and the transaction lands at a significantly worse price. Slippage tolerance absorbs the difference.
Whether intentional or a byproduct of how the propAMM operator rebalances, traders receive the same outcome — filled at a worse price than the quote that won the routing decision.
The Solana Foundation's trading research division documented the same outcome on Solana, though the piece was quickly removed. PropAMMs quoting sub-3 bps at top-of-book while actual fills execute 20+ bps wide.
This pattern requires only two things: an operator that can reprice faster than the quote-to-settlement pipeline, and an aggregator that routes based on a price that can change before settlement. Both conditions exist on every chain where propAMMs operate.
The outcome is the same in both cases. The price a trader sees when their aggregator makes a routing decision is not the price they receive at settlement. Whether the divergence comes from a propAMM operator repricing between Flashblocks, spreads fluctuating randomly while transactions are in flight, the cost is borne by the trader on every affected swap.
Aggregators compete primarily on quoted price. The aggregator showing the best number wins volume, regardless of whether that number reflects what traders actually receive at settlement. An aggregator that cuts a misbehaving source shows less competitive quotes on every comparison tool, even if its traders get better fills. Every other aggregator then faces a choice.
.png)
This creates a prisoner's dilemma. Either all aggregators police misbehaving propAMMs, or the one that tolerates them ends up winning. On Solana, one propAMM raised concerns about a competitor's pricing behavior. The dominant aggregator declined to act. Within a month, the party that raised the concern adopted the same practices.
0x has taken a different position on Base, monitoring execution quality and confronting the behaviors documented above. As the largest aggregator on the chain, 0x cuts off liquidity sources until issues are remedied, even when it makes quotes appear less competitive. This position is viable at current scale, but becomes harder to sustain with every new aggregator willing to compete on quoted price alone. Institutional participants are entering onchain markets and they will not tolerate this level of execution quality.
Sustaining it long-term requires something the industry does not yet have: a shared operational standard for measuring fill quality, not just quoted price.
Subscribe to 0x Insights for future research on DEX execution quality and onchain market structure.
This pattern is not propAMM-specific. It is included here because it produces the same outcome for traders through a different mechanism tied to Flashblock architecture.
This pattern is structurally different: the liquidity provider is farming LP rewards, not facilitating trades. Worse execution for traders is a byproduct.
The contracts governing LP rewards on Base are not Flashblock-aware. The EVM has no visibility into Flashblock position because Flashblocks are a sequencer-level construct the virtual machine cannot see. From the contract's perspective, a position held at the end of a block was held for the entire block. This is what makes the pattern possible: 200ms of liquidity provision earns the same rewards as 2 seconds. 0x has observed addresses executing this pattern with millions of dollars at block cadence, continuously for months.
.png)
Aggregators price routes based on end-of-block chain state showing deep liquidity. Trader transactions land after that liquidity has been withdrawn. The trade executes against a shallow pool where the depth that justified the routing decision no longer exists. The same trade that would have moved price 2 bps on the deep pool moves it 8+ bps on the shallow one.
This is phantom liquidity: depth that appears at the moment an aggregator prices a route and disappears before a trader's transaction can settle against it.
Contents
Subscribe to newsletter