How does POP! work?
The idea of POP! is to have a sweet and exciting product that allows for a simple, yet complete, user experience. Below are detailed breakdowns on the various sections found throughout the POP! universe.
Once partnered projects (A & B) have wisely decided to use POP!, they can then apply for a MLP. After being reviewed and passing a governance vote, the projects can create their MLP through the POP! smart contract (SC) by providing a minimum liquidity threshold of both Token A and B to the SC. Initially this minimum liquidity threshold is set at 100k$ per team (thus an initial liquidity size of 200k$ for the MLP), however it can be later adjusted by the DAO. For the creation of the MLP, the teams are charged a minor fee of 1%, which is taken directly from the liquidity they've introduced. Therefore, in reality, a liquidity size of 198k$ is introduced initially into the MLP. After submitting the liquidity, the LP tokens are locked in a SC, without earning the teams any POP! rewards, for a set duration of time agreed upon by the teams.
Each MLP will be provided with a specific quantity of POP! tokens, which will be available for farming by the MLP liquidity providers (excluding the team's initial liquidity). Furthermore, when the teams create an MLP, they have the choice of adding bonus tokens in the form of their native project tokens, as an extra incentive. These tokens, together with the POP! tokens, are evenly split between farmers, and therefore a farmer can receive rewards in the form of POP! tokens, Token A and Token B (should both Team A and B provide bonus tokens).
In order to ensure linear release of POP! tokens, while allowing for varying distribution rates to active MLPs, POP! utilizes a distribution system similar in nature to the one used by Sushiswap. This entails minting a fixed number of POP! tokens at each block, and rewarding each MLP a % of those tokens, based on the allocation points they were assigned. The allocation points assigned to the MLPs are calculated based on 3 objective measurements. These are only measured once the MLP has been created, and therefore will not be adjusted afterwards. Each measurement is scored and summed up at the end, with a final maximum of 100 allocation points.These measurements include:
- 1.Combined Market Cap of the 2 partnering projects. Scoring - out of 50 a. 0-250M$ Market Cap = 0-50 / 50 b. ≥ 250M$ Market Cap = 50 / 50
- 2.Ratio of the Bonus Tokens provided (in $) by the value of the Liquidity provided (in $). Scoring - out of 25 a. <25% = 0 / 25 b. 25% - 100% = 0-25 / 25
- 3.How long teams are locking their liquidity together for. Scoring - out of 25 a. 30 days = 0 / 25 (Reminder: 30 days is the minimum period) b. 30 - 90 days = 0-25 / 25
Assume we have 2 projects that have been approved for an MLP. Project A has a Market Cap of 100M$, while Project B has a Market cap of 75M$. Team A and B both agree to provide 100k$ of Liquidity each, for a duration of 90 days, in order to create the MLP. Team A also provides 100k$ of Bonus Tokens (A), while Team B provides 75k$ of Bonus Tokens (B). To calculate the allocation number provided to their MLP, we apply the 3 objective measures mentioned above.
- 1.Combined Market Cap: 100M$ (Project A) + 75M$ (Project B) = 175M$ (175M$ / 250M$) x 50 = 35 Points
- 2.Ratio of Bonus Tokens Value to the Total Liquidity Provided: Bonus Tokens Value: 100k$ (Project A) + 75k$ (Project B) = 175k$ Total Liquidity Provided: 100k$ each = 200k$ (175k$ / 200k$) x 25 = 21.875 Points
- 3.Length of liquidity lockup: (90 days / 90 days) x 25 = 25 Points
Therefore, summing the points, we have 35 + 21.875 + 25 = 81.875 / 100 Points.
To better understand what 81.875/100 allocation points means, assume that there are 10 active MLPs, with a sum of 500 allocation points. Now, assume that 1,000 POP! tokens are minted each block. This means that the MLP between Project A and B from our example, will receive (81.875 / 500) x 1,000 POP!/Block = 163.75 POP!/Block.
As soon as an MLP is created, and is live on the POP! Marketplace, users now have the option of participating in one or both sides of the MLP, by providing either Token A or B, or both. In the case of providing single-sided liquidity, a Maker of Token A proposes a farming partnership onto the MLP marketplace, which will remain active for a set duration of time specified by the maker, until a Taker of Token B accepts the partnership. At any point until the offer has been matched, the Maker can remove the order. Furthermore, the Maker also defines the value (in $) of the offer and how long the farming partnership will last (e.g. 20k$ of liquidity locked together for 1 month)
Note: The duration of an offer on the MLP marketplace + the time locked together can not exceed the remaining duration of the MLP.
If an MLP is to remain live for another 31 days and 6 hours, then a Maker can only make an offer onto the MLP marketplace, if the duration of the offer (e.g. 3 days) + the time locked together (e.g. 28 days) is lower than the time remaining for the MLP. In this case, 3 days + 28 days is 31 days, and it is less than 31 days and 6 hours, thus it can be proposed onto the MLP.
As is well understood, in order to provide liquidity on Uniswap, an equal value (in $) of Token A and B must be provided. Therefore, should a Taker choose to partner with a Maker, it is important to verify that sufficient funds are available to match with the offer presented by the Maker. Once the liquidity has been matched, a 2% fee is taken from both the Maker and the Taker, with 20% of the combined fee being sent to the Dev wallet, while the remaining 80% is used to purchase equal amounts (in $) of ETH and POP!, and subsequently added and locked as liquidity to the ETH/POP! LP. This will occur over random periods to ensure feasibility and prevent front-running.
From this point on, both farmers have their liquidity locked together, and the POP! + Bonus Token farming will automatically begin. All the information regarding the farming partnership will be available on the User Dashboard.
At the end of the farming period, should Impermanent Loss (IL) have occurred, one user may have gained a surplus of tokens (compared to the original deposit), whilst the other user will have suffered a reduction. Once the liquidity withdrawal function is called by either user, and if the amount of IL is superior to 1%, then the SC will market-sell the surplus of tokens generated by IL, and use those funds to subsequently buy back as many tokens as possible of the user who suffered a reduction in tokens due to IL.
Note: The first partner to call the withdraw function is the user that pays for the gas fee of the above-mentioned process for both sides. This includes the rebalancing mechanism as well as the distribution of the liquidity tokens.
In essence, if you believe your Token A will outperform Token B, by putting your tokens farming, not only do you receive farming rewards, but through POP!'s rebalancing mechanism you can significantly mitigate IL, thereby making it far more lucrative than simply holding; and on the other hand, should you be on the under-performing side, you will still end up with the same amount of tokens originally deposited and you will have earned sweet farming rewards. Either option provides a more favourable scenario to simply holding your tokens in a wallet where they can't be put to good use.
Note: While there is no guarantee of recovering all tokens lost due to IL, it can be significantly mitigated for the unlucky user. Together with this re-balancing mechanism, rewards in the form of luscious POP! tokens, Bonus tokens (if provided by the Teams), and the standard LP fees can all contributed to dampening the effects of IL.
Finally, once the MLP lock time has completed, the MLP will no longer be available for farming by the users, and the team's LP tokens will be unlocked. As previously stated, farming partnerships will no longer be active on the MLP once this occurs. Should the teams choose to continue the MLP, then they can reapply and get relisted.
The flowchart below depicts a general overview of the entire process:
Initially POP! will be managed by the SC owner, but eventually decisions will be voted upon and governed by the DAO (POP! token stakers).