MonoX is creating an ecosystem that will be the home to the next generation of builders, liquidity providers and traders. With the Monoswap protocol, we have taken a different route in designing our liquidity pools. Instead of using regular liquidity pool pairs, we utilize Single Token Liquidity pools.
Our protocol optimizes the capital inefficiencies created by liquidity pool pairs, giving users a more cost-effective end product. At the same, by deploying a two tired liquidity pool system, we can protect users from scams and rug pulls, while supporting and promoting genuine innovators in DeFi.
Single Token Liquidity pools function by grouping the deposited token into a virtual pair with our virtual USD stablecoin (vUSD), instead of having the liquidity provider deposit multiple pool pairs, they only have to deposit one. In essence, liquidity providers only need to deposit “Token A” to the pool reserve and each token is paired with the vUSD stablecoin. There is no pool weighting, only an amount of Token A reserve in the pool based upon how much liquidity has been provided to the pool.
AMMs like Uniswap use the constant product algorithm xy=k. Where x is Token A, y is Token B and k is the invariant.
Monoswap uses a similar ratio as Uniswap which forms a price curve. However, ours is based on a starting price and a would be price. When users first add liquidity to the pool they set a starting price, the assets are backed by vUSD only when someone initially buys at the starting price. This is because the vUSD balance needs to be positive for trustless listing pools.
If a user sells from the starting price the asset depreciates in value, if someone buys from the starting price the asset appreciates in value. As such, we use starting price and would be price instead of the ratio between Token A and Token B in the xy=k constant product formula. Our pricing algorithm is based on Uniswap’s model found here.
Users only need to supply one token (Token A) to be an LP
Projects can launch their token with zero capital (no ETH needed to create the pair)
More capital efficient: 1. As a Liquidity Provider there is no need to deposit multiple tokens. This increases decentralization because being an LP is much less capital intensive
Lower trading fees: 1. All the pools/pairs are in the same ERC1155 contract. It is much cheaper to interact with the same contract internally, than involving multiple other contracts. 2. Lengthy transaction paths are avoided because thanks to our vUSD stablecoin, Token A will not go through a ‘path’ of pairs to swap into Token B. 3. Every trade is one swap and a flat 0.3% fee.
Less capital siloed in multiple pool pairs: 1. As there is no need for multiple pool pairs, more capital is unlocked and free to use.
Allows for borrowing and lending from same pool: 1. The borrowing and lending process is more optimized as users do not have to withdraw/reserve two tokens to keep the ratio (price) the same.
Adding Liquidity on Monoswap works exactly the same as in paired liquidity pools:
When an LP adds liquidity to the pool for token A, the price stays the same. The amount of Token A increases in the pool, and therefore the liquidity pool reserve increases. In exchange for providing liquidity, the LP receives their share of the liquidity reserve and the ERC1155 LP token. Liquidity providers receive a share of the fees proportional to their share of the liquidity reserve.
Removing Liquidity works exactly the same as a paired pool:
When one removes liquidity from the pool for Token A, the price of the token stays the same. The pool burns the liquidity provider’s ERC 1155 LP token. In exchange, the pool transfers to the user their share of Token A’s virtual pair’s net value. When the vUSD balance is positive, the user will get their share of vUSD plus their share of Token A. When the vUSD balance is negative, the user will receive their share of Token A, minus their share of vUSD debt valued in Token A.
The mechanics of impermanent loss work the same way.
As a liquidity provider, if Token A’s price appreciates in value relative to the price at which you supplied liquidity, you will lose some of your Token A value. However, you will gain the equivalent vUSD value.
When you remove liquidity, if the pool vUSD balance is above 0, then you will receive the vUSD stablecoin.