Author: Zhixiong Pan
Let's talk about the new protocol CCA jointly released by Uniswap and Aztec, which stands for "Continuous Clearing Auction." It's specifically designed for price discovery and liquidity initialization for new assets. After the auction process, the project team can import the raised funds and tokens into Uniswap v4, connecting them to secondary market trading.
The core objective of this protocol is still to solve the problem of "how to price new assets." Historically, there have been many approaches: team airdrops (essentially free gifts), Dutch auctions, fixed-price sales, and LBP, Bonding Curve, etc., all of which essentially "use some mechanism to sell a portion of tokens to the earliest participants first."
However, in Uniswap's view, these existing mechanisms each have their own pitfalls: some have very arbitrary pricing, some are extremely dependent on timing, and some cannot achieve continuous liquidity.
Therefore, they hope that CCA can simultaneously achieve two things: relatively fair price discovery and a smooth, sustainable liquidity launch. Essentially, CCA is a protocol independent of Uniswap v4, a complete issuance and pricing framework. However, it can also connect with the AMM kernel through Uniswap v4's hooks mechanism, especially after the CCA auction is completed, automatically injecting liquidity into the Uniswap v4 smart contract. So what does this have to do with Aztec? Aztec's involvement in this is actually very deep: they not only participated in the design of the CCA mechanism but also became the first project to use CCA for token auctions. In addition, the CCA protocol itself can also integrate KYC/compliance capabilities. Aztec used an identity verification function called ZKPassport in this auction. This is a project within the Aztec ecosystem, developed using their Noir language, which completes compliance checks through zero-knowledge proofs without exposing user privacy details. Returning to CCA, it's not a fixed set of rules, but rather a configurable auction framework. It can be roughly broken down into the following steps: Configuration Phase: The auction initiator first sets the rules on-chain, such as the start and end times, the total number of "rounds" or time periods, the percentage of tokens released in each time period, the minimum price (floor price), whether whitelisting/authentication is required, and how to import liquidity into Uniswap v4 after the auction ends, etc. Bidding Phase: During the auction, participants can bid at any time. Each bid includes two parameters: the amount of capital invested and the maximum acceptable unit price. Bids can be subsequently increased or adjusted, and each order is recorded independently. **Averaging Phase:** The system automatically amortizes a bid across the remaining "release periods." Therefore, the earlier you bid, the longer the participation period, and the more rounds you have the opportunity to participate in liquidation. **Liquidation Phase:** In each round, the system accumulates all valid bids for that round and uses a unified set of rules to find a price that sells all the tokens to be released in that round. This price becomes the final transaction price for that round. All bids with a max_price higher than or equal to this price will receive their corresponding share in that round according to the rules. **Closing:** When all rounds end, the auction concludes. Participants can claim their acquired tokens and any unsold funds; the protocol then injects the raised assets and the assets prepared by the project team into Uniswap v4 according to a pre-agreed strategy, officially launching the secondary market liquidity pool. I think it's more like a time slice of the traditional "one-off auction": instead of settling everything at once, it breaks down a large round into multiple smaller stages, allowing prices and the game to unfold over time. That's precisely what it is.