You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/contracts/liquidity-launchpad/01-introduction.md
+29-27Lines changed: 29 additions & 27 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,15 +14,16 @@ The Uniswap Liquidity Launchpad is a comprehensive framework for bootstrapping i
14
14
2.**Liquidity Bootstrapping** - Automatically seed Uniswap V4 pools with auction proceeds at the discovered price
15
15
3.**Token Creation** (Optional) - Deploy new ERC-20 tokens with rich metadata and optional cross-chain capabilities
16
16
17
-
Unlike traditional approaches that rely on centralized market makers or expose participants to timing games and manipulation, the Uniswap Liquidity Launchpad provides a decentralized, mechanism-design-driven approach for establishing deep, sustainable liquidity from day one.
17
+
Unlike traditional approaches that rely on centralized market makers or expose participants to timing games and manipulation, the Uniswap Liquidity Launchpad provides an open mechanismfor boostrapping deepliquidity on decentralized exchanges.
18
18
19
+
The system is composable - it is not limited to the intial set of implementation contracts. Other auction and LBPStrategy implementations are welcome!
19
20
20
21
### Key Benefits
21
22
22
23
-**Fair Price Discovery** - Continuous clearing auctions eliminate timing games and establish credible market prices
23
24
-**Immediate Deep Liquidity** - Seamless transition from price discovery to active Uniswap V4 trading with substantial initial depth
24
25
-**Permissionless** - Anyone can bootstrap liquidity or participate in price discovery without gatekeepers
25
-
-**Transparent** - All parameters set upfront; real-time visibility into price discovery progress
26
+
-**Transparent** - All parameters are immutable after they are set
26
27
-**Composable** - Modular architecture supports multiple auction formats and distribution strategies
27
28
-**Gas Efficient** - Optimized implementations using Permit2, multicall, and efficient data structures
28
29
@@ -40,50 +41,51 @@ Each component is designed to be composable and extensible, allowing you to cust
The liquidity bootstrapping process follows a straightforward sequence from price discovery to active trading:
46
+
The following is a high level overview of how the [LBP Strategy Basic](https://github.com/Uniswap/liquidity-launcher) contracts interface and work with the [Continuous Clearing Auction](https://github.com/Uniswap/continuous-clearing-auction/).
46
47
47
-
1.**Prepare Token** (Optional)
48
-
49
-
Launch a new token using `LiquidityLauncher.createToken()` via the factory, which deploys a UERC20 or UERC20Superchain token and mints the initial supply to the launcher. Alternatively, use an existing token and approve the launcher to distribute it.
48
+
The following actions must be performed atomically within one transaction.
-**Pool parameters**: Token split (max 50% to auction), fee tier & tick spacing, migration delay, and optional hooks
50
+
1.**Prepare Token** (Optional)
56
51
57
-
3.**Start Price Discovery**
52
+
Launch a new token using `LiquidityLauncher.createToken()` via the [UERC20Factory](https://github.com/Uniswap/liquidity-launcher/blob/96860d8239785e717cff1e4189643b9acee925ff/src/token-factories/uerc20-factory), which deploys a UERC20 or UERC20Superchain token and mints the initial supply to the launcher. Alternatively, use an existing token and approve the launcher to distribute it.
58
53
59
-
Call `LiquidityLauncher.distributeToken()` to allocate tokens to the LBP Strategy. This deploys a CCA auction with the allocated tokens, and price discovery begins as participants submit bids.
54
+
2.**Deploy Strategies**
60
55
61
-
4.**Fair Price Discovery**
56
+
Call `LiquidityLauncher.distributeToken()` to deploy a new LBPStrategy instance via factory. The strategy will validate that the auction parameters and eventual pool configuraiton are valid, and if so, it will deploy a CCA auction with the desired amount of tokens to sell. The `LiquidityLauncher` contract will transfer tokens to the LBPStrategy and then they will be transferred into the auction.
62
57
63
-
As bids arrive, the auction continuously clears orders with automatic bid spreading, ensuring a uniform clearing price and real-time transparency for all participants. This establishes the fair market price for the token.
58
+
We use an optimistic transfer then call pattern throughout the contracts to trigger an action after performing an ERC20 transfer.
64
59
65
-
5.**Auction Completion**
60
+
3.**Auction Completion**
66
61
67
-
When the auction ends, the system checks if the graduation threshold was met. If graduated, the process proceeds to liquidity migration. If not, all bidders receive refunds.
62
+
When the auction ends, all of the raised funds will be swept to a specified `fundsRecipient`. The LBPStrategy will ensure that it is the recipient of both the raised funds and any leftover unsold tokens.
68
63
69
-
6.**Liquidity Deployment**
64
+
The LBPStrategy will also read the following data from the `IAuction` interface:
65
+
```solidity
66
+
interface IContinuousClearingAuction {
67
+
function currencyRaised() external view returns (uint256);
68
+
function clearingPrice() external view returns (uint256);
69
+
}
70
+
```
70
71
71
-
After the migration block delay, anyone can trigger `migrate()` to:
72
-
- Initialize the Uniswap V4 pool at the discovered price
73
-
- Deploy full-range liquidity using auction proceeds + reserve tokens
74
-
- Deploy a one-sided position (if remaining tokens exist)
75
-
- Mint the LP NFT to the position recipient
72
+
4.**Seeding Liquidity**
76
73
77
-
7.**Active Liquid Market**
74
+
Anyone can call the `migrate()` function on the `LBPStrategy` after a configured block. This does the following:
75
+
- Initialize a new Uniswap V4 pool at the price from the auction
76
+
- Deploy a full-range LP position using the auction proceeds + reserve tokens
77
+
- (Optionally) deploy a one-sided position with remaining tokens
78
+
- Mint the LP NFT to the a specified `positionRecipient`
79
+
- Sweep any leftover tokens or raised funds to a configured `operator`
78
80
79
-
The pool is now live on Uniswap V4 with deep initial liquidity, making the token immediately tradable across the entire ecosystem with sustainable market depth.
81
+
5.**After Migration**
80
82
83
+
The pool will be live on Uniswap V4 with deep liquidity around the discovered price. Participants in the auction can claim their purchased tokens on the auction after `claimBlock`, and these instances of the LBPStrategy + Auction contracts should hold no funds after all bids are withdrawn and all actions performed.
81
84
82
85
## Next Steps
83
86
84
87
- Learn about the [Continous Clearing Auction](./05-auction-mechanism.md) mechanism
85
88
- Read the <ahref='/whitepaper_cca.pdf'target='_blank'rel='noopener noreferrer'>whitepaper</a> to learn more about the mechanism
86
-
- Dive into the repos below to see the code and start building
- The clearing price is calculated from aggregate demand versus available supply
57
-
- The price can only increase or stay the same (never decrease)
58
-
- All participants active in that interval pay the same uniform clearing price
35
+
### Mechanism overview
59
36
60
-
4.**Auction Completion & Price Established**
37
+
For a detailed overview, please read the [whitepaper](/whitepaper_cca.pdf).
61
38
62
-
When price discovery concludes:
63
-
- The system checks if the graduation threshold was met
64
-
- If graduated: the final clearing price becomes the pool initialization price
65
-
- If not graduated: all bidders receive full refunds and no pool is created
39
+
The most important element to understand about a Continuous Clearing Auction (CCA) is that tokens are sold over time to the current set of active participants. Every bid submitted to a CCA auction is automatically divided across all remaining intervals according to the token release schedule, such that:
66
40
67
-
5.**Liquidity Deployment**
41
+
- No participant can concentrate demand at a single moment
42
+
- Timing of bid submission matters less than valuation
43
+
- Early bidders naturally gain more exposure to lower prices
44
+
- Sniping and last-minute gaming become ineffective
68
45
69
-
After the auction succeeds:
70
-
- Bidders exit to calculate their final fills and claim tokens
71
-
- The raised currency + remaining tokens are deployed as liquidity in a Uniswap V4 pool
72
-
- The pool initializes at the discovered clearing price
73
-
- Deep, sustainable liquidity is established from day one
0 commit comments