The previous method requires two token liquidity providers to come first and then they can manage or allow others to join the same liquidity pool making them a single token liquidity provider. We suggest a second method where User A on an ETH-USDT liquidity pool comes up with ETH while other users join him by bringing USDT to a matching pool, where both the token holders get matched to provide liquidity to the asset. To simplify the process of matching we have created a pool structure.
To elaborate this process, assuming we are working over ETH-USDT pair, User A is long on ETH, and for that, he comes up with USDT over the platform to provide liquidity while User B is short on ETH and comes up with ETH itself. The platform matches both the user and opens up respective positions for them, while internally it takes both the tokens to create a liquidity pool of ETH-USDT.
Both the method allows user to provide single token liquidity, as the platform take ETH when ETH is going down and if the market goes down, the user gets more ETH while if a liquidity position is for ETH to go up the platform takes USDT and if it goes up, it adds more USDT. This process completely eliminates impermanent loss for the user.
The fee generated over the liquidity still works the same way and gets distributed among the LPs, this means the more time the market takes to go directional the more fee users can earn.