 # Adding Liquidity in Blue Lotus DAO

There are some conditions when adding liquidity to the Blue Lotus DAO:
1. 1.
After LP contributions, the token price is unchanged.
2. 2.
$P_{min}$
and
$P_{max}$
are also unchanged after LP contributions.
In Blue Lotus DAO, the pool for pair X-Y needs to maintain 4 parameters:
1. 1.
The initial amount of token
$X$
that is used for amplification, denoted by
$x_0$
2. 2.
The initial amount of token
$Y$
that is used for amplification, denoted by
$y_0$
3. 3.
The change in token
$X$
amount after trading activities, denoted by
$\Delta x_0$
4. 4.
The change in token
$Y$
amount after trading activities, denoted by
$\Delta y_0$
Therefore, the real balances and virtual balances of the reserves are:
Real Balances
$x = x_0 + \Delta x_0 \\ y = y_0 + \Delta y_0$
Virtual Balances
$x' = a \cdot x_0 + \Delta x_0 \\ y' = a \cdot y_0 + \Delta y_0$
where
$a$
The constant product
$x' \cdot y' = (a \cdot x_0 + \Delta x_0) \cdot (a \cdot y_0 + \Delta y_0) = k'$
.
Note that
$P_{min}$
and
$P_{max}$
at this time are:
$\begin{cases} P_{min} = \cfrac{(y_0 \cdot a - y_0)^2}{k'} \\ \\ P_{max} = \cfrac{k'}{(x_0 \cdot a - x_0)^2} \end{cases}$
The current price:
$P = \cfrac{y'}{x'} = \cfrac{a \cdot y_0 + \Delta y_0}{a \cdot x_0 + \Delta x_0}$
Liquidity Providers have to contribute in the same proportion for all 4 amount types. We denote the contribution ratio to be
$b$
. LPs have to contribute
$x_1 + \Delta x_1$
,
$y_1 + \Delta y_1$
in which:
$\begin{cases} x_1 = b \cdot x_0 \\ \Delta x_1 = b \cdot \Delta x_0 \\ y_1 = b \cdot y_0 \\ \Delta y_1 = b \cdot \Delta y_0 \end{cases}$
The real balances and virtual balances of the reserve after contribution are:
Real Balances
$x = (x_0 + x_1) + (\Delta x_0 + \Delta x_1) = (b + 1) \cdot (x_0 + \Delta x_0) \\ y = (y_0 + y_1) + (\Delta y_0 + \Delta y_1) = (b + 1) \cdot (y_0 + \Delta y_0)$
Virtual Balances
$x' = a \cdot (x_0 + x_1) + (\Delta x_0 + \Delta x_1) = (b + 1) \cdot (a \cdot x_0 + \Delta x_0) \\ y' = a \cdot (y_0 + y_1) + (\Delta y_0 + \Delta y_1) = (b + 1) \cdot (a \cdot y_0 + \Delta y_0)$
The constant product, after the LP contribution, becomes:
$x' \cdot y' = (b + 1)^2 \cdot (a \cdot x_0 + \Delta x_0) \cdot (a \cdot y_0 + \Delta y_0) = (b + 1)^2 \cdot k'$
$P_{min}$
and
$P_{max}$
at this time are:
$\begin{cases} P_{min} = \cfrac{((y_0 + y_1) \cdot a - (y_0 + y_1))^2}{(b + 1)^2 \cdot k'} = \cfrac{(y_0 \cdot a - y_0)^2}{k'} \\ P_{max} = \cfrac{(b + 1)^2 \cdot k'}{((x_0 + x_1) \cdot a - (x_0 + x_1))^2} = \cfrac{(x_0 \cdot a - x_0)^2}{k'} \end{cases}$
The current price is updated to be
$P = \cfrac{y'}{x'} = \cfrac{(a \cdot y_0 + \Delta y_0) \cdot (b + 1)}{(a \cdot x_0 + \Delta x_0) \cdot (b + 1)} = \cfrac{a \cdot y_0 + \Delta y_0}{a \cdot x_0 + \Delta x_0}$
We see that after LP contributes, the current price,
$P_{min}$
and
$P_{max}$
are unchanged. It is similar in the case of LPs withdrawals, where the ratio
$b$
is negative.

#### Example

• Initially, the first LP put 100
$X$
and 100
$Y$
to the reserve, we have:
$x = 100, y = 100, \Delta x = 0, \Delta y = 0$
.
• A user trades 20 X for 15 Y, so we have the updated parameters:
$x = 100, y = 100, \Delta x = 20, \Delta y = −15$
.
• Suppose an LP wants to contribute 20% of the current token amounts in the pool, so he should deposit:
$0.2 · 100 + 0.2 · 20 = 24 (X) \\ 0.2 · 100 + 0.2 · (−15) = 17 (Y)$
ie. deposit 24X and 17Y tokens.
The parameters are then updated to be:
$x = 120$
,
$y = 120$
,
$\Delta x = 24$
,
$\Delta y = −18$
.