Skip to main content
Helpful?

UniswapX V2 Overview

UniswapX V2 improves price execution and minimizes quoter gaming by redesigning the flow of order quote information. The primary goal is to make trading on UniswapX more efficient and more reliable.

V1 Overview​

In V1, the RFQ flow operates entirely pre-signature. Users request a swap quote, which is parameterized using an RFQ quote. If they accept the quote, they sign the order. This approach is straightforward but causes quoters in the network to be uncertain about when a quote request will convert into a signed order. This uncertainty leads to occasional unfilled orders and degraded performance.

image

V2 Overview​

V2 rearchitects the flow such that the time between a quoter submitting their quote and being required to fill the order is minimized. This enforces a near 100% fill rate and causes most orders to fill almost instantly.

Two achieve this, the quoting flow is divided into two phases:

  1. Indicative Quotes: Provided pre-signature when the swapper is exploring quotes but has not committed to trading. Quoters can participate here without being held fully accountable.
  2. Hard Quotes: Provided post-signature when the swapper has committed to trading. Quoters are held fully accountable for these quotes.

Since hard quotes are provided post-signature, they are instantly executable by fillers removing the risk of market movements causing the order to fail.

To prevent gaming, quoters cannot distinguish between indicative and hard quotes. As a result, they must always assume all quotes are hard and provide competitive prices.

V2 Flow​

image

  1. The user requests a quote from the interface.
  2. The Uniswap Backend (URA) runs an indicative RFQ auction, soliciting quotes for the best price. (Note: Quoters do not know whether the RFQ is indicative or hard, forcing them to always provide competitive prices.)
  3. The quotes from the RFQ process parameterize an initial quote order shown to the user.
  4. The user signs the order and submits it for execution.
  5. The Uniswap Backend (GPA) runs a second “hard” RFQ process, soliciting new quotes.
  6. Quoters return their best prices again.
    • If the price is within or improves on the user’s signed parameters, it is finalized and added to the order’s CosignerData.
    • If the price moves outside the signed parameters, the order fails, and the user must try again.
  7. The finalized order containing CosignerData is posted to the filler network for execution.
  8. The winning filler executes the order.

Why is a cosigner needed?​

In UniswapX V2, users commit to a range of prices when signing their order. Without safeguards, a malicious auctioneer could provide users the worst price within their range.

image

The cosigner field allows users to designate an auctioneer they trust to run the auction fairly, ensuring the best executable price within the signed parameters. Currently, the trading API sets the cosigner to Uniswap Labs, though this could be updated in the future.

Current Status

UniswapX V2 is currently the default version of the protocol running on Mainnet across Uniswap's interfaces.

Smart Contracts

Helpful?