Contango v3 — A new paradigm of price discovery

This article provides a brief introduction into Contango v3. We’ve recently released a research paper on the subject (it’s a bit heavy — 20 pages of maths and text — so if that’s not your thing, this article is for you).
Contango v3 aims to bring efficient on-chain price discovery through “Continuous Double Dutch auctions” (CDDA). The motivation behind implementing this design is to make Contango competitive in a wider segment of trading pairs, mainly blue chip assets such as ETH/USD and BTC/USD, which are primarily traded on CEX’s.
The CDDA market structure is designed around the message volume constraint that is inherent to blockchains (aka transaction throughput).
One might assume that blockchains could scale vertically to address this issue, yet even the theoretical upper limits of distributed networks fall short. For instance, MegaETH (which hasn’t launched yet) claims it will handle 100,000 transactions per second. However, the NYSE alone processes around 85,000 transactions per second on average. And since message volume is unevenly distributed throughout the day, a 100k TPS blockchain wouldn’t come close to being sufficient for something like the NYSE.
Horizontal scaling — splitting markets across multiple 100k TPS blockchains — raises questions about the purpose of blockchain in this context. It would no longer serve as a universal settlement layer, and fragmenting markets, particularly debt markets, reduces the efficiency of risk pricing. While such a network might share a common open standard like the EVM, the upside potential of blockchains would be limited. In this case, the financial industry might achieve similar benefits by simply agreeing on a common settlement standard.
We believe there’s significant value in having a variety of asset classes and currencies settled on a shared network. Thus, a new price discovery mechanism that drastically lowers message volume is key to unlocking this potential.
Price Discovery
In the traditional limit order book (LOB) model, resting limit orders provide market liquidity. Traders looking to buy or sell immediately can trade against this liquidity, paying the cost of crossing the bid-ask spread. However, takers benefit from price improvement by matching against the best-priced orders first.
Being a liquidity provider in this model has disadvantages. For example, if your bid order gets filled, it often means the price is trending downwards. The market may value the asset at a lower price after your order is filled, either due to gradual or sudden price shifts. Proponents of the LOB model argue that if you placed your bid at a certain price, you must value the asset above that price, so you should be satisfied with the fill regardless of market movement.
However, traders must constantly update their resting orders as their view on an asset’s value changes. When new information invalidates assumptions about the asset’s fair price, swift action is needed. Sudden price changes lead to “stale quote sniping,” where faster participants profit from mispriced orders. This creates a “winner-takes-all” race to exploit these opportunities, driving latency arbitrage — a multibillion-dollar business that incentivizes reducing trading delays.
At Contango, we share the view that this inefficiency in LOBs is harmful to liquidity provision. It fosters an environment where only those with advanced hardware, software, and informational advantages can contribute effectively. This reinforces the central role of market makers, whose informational edge on supply and demand helps markets operate efficiently.
We believe the role of the market maker is especially critical in the limit order book model due to its inherent design flaws. While the CDDA model does not eliminate the need for market makers — since traders still require access to instant liquidity, which necessitates a more informed party to step in when no immediate counterparty is available — it does promote more efficient price discovery between genuine buyers and sellers. This is because traders can directly express their urgency to get filled through the ‘duration’ parameter, explained below.
It’s important to remember that true price discovery comes from genuine buyers and sellers, not market makers. The extreme reliance on market makers is in part the product of flawed market structure rather than an essential feature of efficient trading.
What’s a Continuous Double Dutch Auction?
At the core of the Continuous Double Dutch Auction (CDDA) model are two order types:
- Nominal Dutch Auction Order: Defines a start price, end price, and duration.
- Tethered Dutch Auction Order: Similar to the nominal order but with start and end prices expressed as basis points above or below a reference price (e.g., from an oracle). Both orders share the same duration parameter, which defines how the price moves from start to end over time, measured in blockchain blocks.
In the case of a buy order, the start price is set low enough to avoid immediate fills, while the end price is the limit price — if not reached, the order is canceled. The duration dictates the order’s aggressiveness, adjusting based on the blockchain’s block speed and the asset’s liquidity. This flexibility allows the model to function effectively for both highly liquid and illiquid assets.
The main idea is that, by setting a range of prices (start and end), you can be confident your order will fill within that range during its lifespan.
CDDA as a ‘Follower’ Market
We define a ‘follower’ market as a CDDA market that handles a relatively small portion of the trading volume for a given trading pair compared to the overall market volume.
When CDDA handles a small fraction of the trading volume, fillers (solvers) execute orders by sourcing liquidity from other venues, such as centralized exchanges. The Dutch Auction forces fillers to compete on price, not speed, ensuring traders get competitive fills without worrying about where price discovery occurs.
Unlike most intent-based protocols that act as CEX proxies, Contango v3 can scale to be a primary price discovery venue. Its closest counterpart, UniswapX, also uses Dutch Auction orders, but it lacks minimum price increments, time priority, and programmatic orders, which limits its potential for passive liquidity provision and fair order execution.
If you’re interested in delving deeper into the nuances of market structure design and the comparisons between contango v3 and other solutions, I’d encourage you to read the research paper in full.
CDDA as a ‘Leading’ Market
A ‘leading’ market refers to a CDDA market that handles a significant portion of the overall trading volume for a given trading pair, making it the primary venue for price discovery in that market.
Contango v3 is designed to be robust enough to operate as a primary price discovery venue, not just a proxy to centralized exchanges. It eliminates the race to pick off stale quotes by using Tethered Dutch Auction Orders. These act like stop orders that trigger a Nominal Dutch Auction based on an external reference price.
For instance, if you have a sell order at 12 tethered to a price feed, and the market jumps to 15, your order triggers at 15, entering the aggression phase and filling at a price close to 15. In a traditional limit order book, your order would have filled at 12, subject to stale quote sniping.
This tethering doesn’t require an oracle; it can rely on any arbitrary invariant, such as the last traded price or the highest buy order on the CDDA market, making the design adaptable to various market conditions.
Contango v3 Primary Use Case
We intend to leverage this market design to help deliver our primary objective going into this research: competitive fill prices across all trading pairs.
Our current product, Contango v2, is the DeFi equivalent of a brokerage, with a notable exception being that we’re not a custodian of funds. On the UI side, we also serve a role similar to the business of Bloomberg in TradFi. We aggregate information on yields and prices and present them to the user in a unified user interface.
In traditional financial markets, the role of a broker is at a high level the following:
- Facilitating trades on behalf of the client (order routing)
- Access to margin loans
- Risk management
- Portfolio tracking (accounting)
Contango v2 already delivers on these 4 main functions, to a varying degree.
Facilitate Trades: We facilitate trades through our best-in-class DEX meta-aggregator, which allows us to source the absolute best spot price available in the DEX markets for every single trade performed on Contango.
Access to margin loans: We’ve integrated 17 different DeFi lending markets to deliver the deepest borrowing liquidity of any leveraged trading platform in DeFi.
Risk management: our automation tools allow our users to set take-profit and stop-loss orders to manage their risk (and avoid hefty liquidation penalties on the underlying markets).
Portfolio tracking: Our user interface provides detailed accounting of each trade, aggregated at the position level with FIFO accounting at the individual fill level, as well as a complete transaction history of all trades.
While Contango v2 achieves its high-level goal of being the best DeFi brokerage, there are still market-wide challenges that limit our growth in heavily traded pairs like ETH/USD and wBTC/USD. The main issue is with fill prices — we struggle to offer competitive prices for certain asset pairs, which effectively prices us out of short to medium duration trades.
Despite this, some savvy traders maintain large positions on ‘directional trades’. The advantage of using Contango for these trades lies in the historically lower funding costs offered by DeFi money markets compared to centralised exchanges. For long-term holdings, Contango is already a great option. However, for short to medium-term trades, the uncompetitive prices on DEXs make it less feasible. To compensate for the less favourable entry and exit prices, traders need to hold their positions long enough for the lower funding costs to outweigh those disadvantages. Let me explain:
Toxic Flow
Since the release of Contango v2 about a year ago, we’ve seen rapid growth in trading volumes and open interest, particularly in the last six months. This growth has been driven primarily by trading correlated instruments, which are leveraged trades on yield-bearing derivatives of another asset.
These instruments are mostly traded on DEXs, where on-chain price discovery occurs. This is significant because it highlights the issue of toxic flow, a challenge that affects all markets to varying degrees.
For example, in the ETH/USD trading pair, the dominant price discovery happens on Binance, making its bid-ask spread the market standard. On-chain ETH/USD prices often deviate from Binance’s, leading to arbitrageurs exploiting the difference and forcing the DEX back into equilibrium. This arbitrage activity creates toxic flow, negatively impacting on-chain liquidity provision by widening the bid-ask spread, which reduces LP losses but also hurts trading demand. As a result, DEX swap prices become less competitive compared to centralized exchanges, reducing trading volumes and LP fees.
However, trading pairs like wstETH/ETH experience far less toxic flow. Arbitrage is limited to DEXs, and our system always routes trades to the best possible swap price, delivering competitive pricing to our traders. Though some thinly traded assets may still have wide spreads, we can still ensure our traders receive the best available price.
Implementation
I’ve previously discussed how the Contango v3 design will help us achieve competitive on-chain fill prices, but how does this work in practice?
The key to leveraging the Dutch Auction mechanism for leveraged trading lies in creating a programmatic version of the Dutch Auction order type. Establishing a leveraged position requires access to undercollateralized borrowing during the settlement phase — specifically, through flash loans. This is because only a portion of the swap’s input amount is provided by the trader as the initial margin.
At a high level, the lifecycle of a ‘looping’ order type involves three main stages:
- Entry stage: The full amount of input tokens for the swap is acquired, combining the user’s initial margin and borrowed funds from a flash loan.
- Swap: The swap is submitted by the filler and executed using the tokens acquired in the entry stage. These input tokens now make the funds available for the swap to take place.
- Exit stage: The output tokens from the swap are deposited into a lending market chosen by the user. We then borrow against this collateral to repay the flash loan initiated during the entry stage.
At this point, we’ve created a leveraged position on the lending market — similar to what we do in Contango v2 — but with the advantage of presumably achieving a more competitive fill price than would be possible through traditional DEX aggregators.

Contango v3 Additional Use Cases
This blog post has provided an overview of how the order types in Contango v3 facilitate price discovery and how they can be applied to create leveraged positions in a wide variety of use cases:
- Illiquid assets
- Highly liquid assets
- Functioning as a “follower” market
- Functioning as a “leader” market
What’s particularly exciting, however, is that the Tethered Dutch Auction Order is just a basic example of an invariant-activated order. We refer to these orders, which are triggered by arbitrary conditions, as Multi-stage Dutch Auction Orders in the research paper.
The ability to trigger an order based on an arbitrary invariant unlocks a vast array of potential use cases. By “arbitrary invariant,” we mean any condition that can be cryptographically verified or directly verified on-chain at the time of settlement. The key to unlocking use cases involving invariants that cannot be verified directly on-chain is the advancement of zero-knowledge proof technology.
In the coming days, I’ll be publishing follow-up blog posts that explore these use cases in greater detail. The first will discuss how these orders can be used for lending market liquidations and liquidation protection. Anyone who has experienced liquidation in DeFi lending markets knows how brutal they can be!
About Contango
Contango lets you loop anything on-chain. You can create leverage (re)staking positions, arb rates differentials, farm points, or simply go long or short like a perp at low funding. Ape in like a degen with 1-click on the Simplified page, or trade like a pro on the sleek Advanced interface.