Liquidity Pool Overview
The Auto Market Maker (AMM) is the core of pool models and liquidity pools. Instead of using the Oracle price, AMMs determine the prices by the algorithm.
Classic Pool
The Classic Pool is built for general-purpose trading and utilizes the constant product algorithm, also known as ( x \cdot y = k ).
x×y=kx×y=k
Classic Pool supports virtually any assets and maintains 50%-50% balanced reserves. However, it is not optimized for stable assets, and the Stable Pool is a better choice for stables like USDC/USDT.
Stable Pool
The Stable Pool is optimized for stablecoin trading and utilizes a hybrid algorithm of both the constant product and the constant sum.
The pool model performs as a constant sum AMM when the price is pegged around 1:1 to support highly efficient trading.
x+y=kx+y=k
And falls back to perform as the constant product AMM when the price is de-pegged.
x×y=kx×y=k
Stable Pool is optimized for assets like USDC/USDT that are pegged tightly around 1:1. The pool is highly efficient when two tokens are pegged at 1:1, but it is inefficient for uncorrelated assets like ETH/USDC.
Aqua Pool
The Aqua Pool in SyncSwap is inspired by Curve's Crypto Pools, providing efficient liquidity for volatile assets using advanced market-making algorithms.
Aqua Pool adjusts liquidity dynamically around the market price based on price movements, offering 5-10 times higher liquidity compared to traditional models. It combines principles from both constant product and stable swap algorithms.
Core Algorithm
The Aqua Pool uses a sophisticated invariant formula that dynamically adapts to internal price oracles:
KDN−1∑xi+∏xi=KDN+(DN)NKDN−1∑xi+∏xi=KDN+(ND)N
where:
K0=∏xiN/NDN,K=AK0γ2(γ+1−K0)2K0=DN∏xiN/N,K=AK0(γ+1−K0)2γ2
( A ): Amplification factor controlling the shape of the price curve.
( N ): Number of assets in the pool.
( x_i ): Amount of the (i)th asset.
( D ): Total amount of assets, representing the pool's equilibrium.
( \gamma ): Parameter determining the distance between curves.
Dynamic Fees
Fees range dynamically between a midpoint ( f_{mid} ) and an outer value ( f_{out} ):
f=g⋅fmid+(1−g)⋅foutf=g⋅fmid+(1−g)⋅fout
where ( g ) depends on the pool's balance distribution and the parameter ( \gamma_{fee} ).
Aqua Pool is optimized for trading pairs with significant price fluctuations. Users can provide liquidity to earn trading fees. The pool maintains efficient trading through dynamic adjustments in liquidity and fees. Its design and mechanisms make it highly efficient for handling volatile assets, ensuring higher liquidity and stability.
For more technical details, please refer to the specific documentation for each type of liquidity pool. This includes comprehensive explanations of the algorithms, dynamic fee structures, and usage scenarios for Classic Pools, Stable Pools, and Aqua Pools.
Last updated