EthCC[8] Cannes 2025
Co-presented with Brad Bachu (Research Scientist, Uniswap Labs — Google Scholar).
UniswapX is an intent-based trading protocol where searchers compete to execute user orders on-chain. Dutch auctions are a natural fit for pricing intents — the price starts high and decays until a searcher steps in — but parameterizing them well is hard. Starting prices, decay rates, and auction durations need to vary across tokens and chains, and manual tuning doesn't scale. This talk, presented at the Ethereum Community Conference (EthCC) in Cannes, introduced Unimind, a machine learning system for optimizing Dutch auction parameters in real time using only on-chain feedback.
The key insight is that two easily observable on-chain signals — fill wait time and auction success rate — encode enough information about searcher willingness and market volatility to drive parameter optimization without relying on oracles, RFQ systems, or external price feeds. Wait time reveals whether starting prices are set too aggressively or too conservatively; success rate captures how well auction duration accounts for market movement. By treating each auction as an experiment and applying stochastic gradient descent over batches of results, the system continuously walks toward target outcomes across any token pair.
The approach also solves a higher-level routing question: should a given trade be sent through a Dutch auction at all, or routed directly to an AMM? Because the model can predict the expected price improvement of UniswapX for a trade, it can compare the auction path against the AMM counterfactual and route accordingly. This makes Unimind not just an optimizer but a universal pricing layer — adaptive, data-driven execution for UniswapX across any chain, with no external trust assumptions.
In a traditional AMM swap, the user locks in a specific execution path — a set of pools, a routing algorithm, a slippage tolerance. With UniswapX, that changes. The user signs an off-chain message (an intent) expressing what they want: "swap 1 ETH for at least 2,500 USDC." Searchers (also called fillers) then compete to fulfill that intent on-chain, and the best execution wins. This pattern, secured by Permit2, has been live since July 2023.
The key property of intents is that price doesn't need to be fixed at signing time — it can be determined at execution. This unlocks flexible pricing mechanisms. On priority-ordered chains, a MEV tax can set price as a function of the transaction's priority fee. For Dutch auctions, price decays over time from a starting point until a filler steps in. These mechanisms can even be combined, and the intent infrastructure makes switching between them seamless from the user's perspective.
Dutch auctions raise two fundamental questions. First: should this trade go through an auction at all, or would the user be better off swapping directly on an AMM? Running an auction introduces latency and the risk that no filler fills the order before it expires. If the auction doesn't outperform the AMM, it shouldn't run. Second: if an auction is the right path, how should it be parameterized — starting price, ending price, decay rate, duration?
These parameters are token-specific and chain-specific. A configuration that works well for ETH-USDC on one chain may perform poorly for a long-tail pair on another. Manual tuning doesn't scale. The talk argued that machine learning — specifically a feedback loop built on stochastic gradient descent — is the right tool for this problem, because auction dynamics are inherently non-stationary and context-dependent.
The natural metric for auction quality is price improvement: how much better did the auction execution price compare to what the user would have gotten from an AMM? But price improvement is hard to measure directly. The benchmark requires simulating a counterfactual AMM execution at the time of order submission, accounting for changing gas prices, liquidity distributions, and routing paths. Brad Bachu’s research with Xin Wan and Ciamac Moallemi explores this measurement challenge in their paper “Quantifying Price Improvement in Order Flow Auctions”.
The talk presented an alternative: two on-chain signals that are trivially observable and together encode the information needed to optimize auctions. Fill wait time — how many blocks until a filler fills the order — reveals whether the starting price is too aggressive or too conservative. If an auction fills instantly, the price was set too low; if it takes many blocks, the price was too high. Success rate — what fraction of auctions fill before expiry — captures market volatility and whether auction duration is appropriate for current conditions.
These signals require no oracles, no off-chain price feeds, and no permissioned participants. They are purely on-chain and universally available.
The core reframing of the talk was that every Dutch auction is an experiment. You set parameters, observe the outcome (wait time and success rate), and update. By running batches of auctions and measuring the average outcomes against target values — for example, a target fill time of two to three blocks and a success rate around 90% — stochastic gradient descent can walk the parameter space toward optimal configurations.
The talk showed results from a live experiment on an open filler network, where a bot repeatedly traded a fixed token pair and let the learning system adjust parameters over successive batches. The parameters converged, the system hit its target wait time and success rate, and — crucially — price improvement increased over time as the system learned the right auction configuration for that pair.
The ability to predict expected price improvement before an auction runs unlocks a higher-level decision. When a user submits a trade, Unimind can estimate whether a Dutch auction will outperform a direct AMM swap for that specific token pair and trade size. If the predicted improvement is negative, the user is routed to the AMM. If positive, Unimind sets the auction parameters and sends the order to the open filler network.
This makes Unimind a universal execution layer for UniswapX — adaptive, data-driven routing across any token and any chain, with no RFQs, no oracles, and no manual configuration. The vision presented is that as new chains and tokens are added, Unimind can be plugged in to provide optimized execution automatically, learning from the public on-chain data that DeFi makes available by design.