In this article, we unveil the mechanics of a platform for single-sided multichain liquidity provision. We call it CandyShop.
As announced in the “Graviton ecosystem proposal”, Graviton is aiming to expand into a range of multichain liquidity-centered solutions. When designing systems that would complement the line of products based around Graviton, we mainly concentrate on simplifying liquidity provision in terms of LP and trading experience. A product envisioned in the CandyShop concept would allow users to buy LP tokens “like candies”, where several simple actions are sufficient to start enjoying the sweet compounding yield.
Decentralized exchanges based on the AMM (Automated Market Making) model have secured a central position in DeFi and proven their usefulness. In order for decentralized trading markets to maintain their efficiency, it is necessary to somehow motivate users to supply liquidity into pools: this is usually solved by farming tokens. However, most of the time supplying tokens as LP (liquidity provider) brings a risk of impermanent loss: when one of the two assets in a pool grows significantly in value, it is instantly bought by arbitrage bots. The liquidity provider thus receives no profits from the increase of asset price, which could have been realized otherwise. A system like CandyShop can solve this issue, and more.
Impermanent loss is inherent to DeFi, but some projects, such as e.g. Tokemak, make neutralizing this issue their core feature. Similarly, as a single-sided LP tool, CandyShop would allow users to avoid impermanent loss. In production, CandyShop should support staking of any DeFi asset on a range of supported blockchains to receive farming rewards. GTON can be used as the base token in AMM farms. Liquidity provision via CandyShop is as simple as can be: by purchasing a Candy, you entrust LP management to CandyShop which will be responsible for optimizing yield sources.
Using a system like CandyShop is straightforward and easy for the end user. It only takes three steps to get the most out of liquidity provision on any blockchain and DEX of your taste:
CandyShop dApp uses a decentralized protocol which enables users to stake their assets in the form of LP while avoiding impermanent loss and getting rewards from a supported yield farming dApp.
This protocol is based on the best practices in one-sided liquidity mining which focuses on solving the same conceptual problem as Tokemak: frictionless single sided LP without impermanent loss (IL).
At its core, CandyShop protocol is a smart contract that accepts a user's token, such as $LINK, for instance, and gives $canLINK in return one for one, which is a derivative asset that represents both the original $LINK and the rewards which will be accrued on top of it. This step is called “supplying liquidity”. The user can exchange $canLINK back to $LINK at any time, and on top of the original token receive a reward for farming in a chosen farming reward token, such as $GTON. This step is called “redeem”. More details about these two steps are described below.
When the user sends $LINK to the CandyShop smart contract, the smart contract first verifies that the token that is being sent is supported by the protocol and that there is a sufficient amount of the quote asset (e.g. $ETH, $GTON tokens or even $CANDY itself, which is the governance token of the protocol) on the contract balance that can be put together with $LINK to receive an LP token at a specific DEX. After the liquidity is supplied, the resulting LP token, e.g. $LINK/$GTON, is sent to farming to generate yield in the specified reward token.
The user then receives a $canLINK token, which represents their share in the liquidity managed by the CandyShop protocol.
When the $canLINK owner is planning to take their $LINK back and redeem a reward which was credited on top, it is first necessary to calculate whether the pool has enough original $LINK tokens to give back to the user. In most cases, when there is a sufficient amount of the original token, the liquidity is removed on the AMM, and $LINK is given back. Otherwise, a Deficit Case occurs, which is resolved separately by the governance holders. In addition, when the redeemLiquidity operation occurs, the share of rewards being unlocked is proportional to how much $canLINK the user has already taken out of their total share. For example, if the user owns 100 $canLINK and they have been credited with 20 reward tokens, after withdrawing $10 LINK, 10% of the 20 reward tokens (2) will be made available for claiming.
The CandyShop smart contract always maintains reserve in a treasury, which is replenished by minting $CANDY tokens or by rebalancing liquidity pools in a “surplus” case, when there are many more tokens than may be withdrawn through redeemLiquidity. When there are not enough $LINK tokens to conduct redeemLiquidity, a Deficit Case arises, which must be resolved promptly by governance holders (liquidity directors) managing the project’s treasuries.
The CandyShop governance token $CANDY will be launched in a set of IDOs within the Graviton ecosystem. At launch, the token will be ported to 8 blockchains -- Ethereum, Fantom, BSC, Polygon, Avalanche, Heco, Solana, OEC - via SuSy. $CANDY will be used as a governance token for making DAO governance decisions for determining how much liquidity to put in an AMM and for updating the fundamental parameters of the CandyShop protocol. So-called Liquidity Directors that hold $CANDY will be able to vote for listing/delisting of AMM pools.
The token launch can be conducted as follows. $CANDY can become available in the form of IDO to GTON: during the IDO, $CANDY will be released into an AMM pool with GTON — $CANDY/$GTON, meaning that the only way to buy it is to exchange $GTON to $CANDY. From the get-go, $CANDY needs to be paired to GTON across all established chains and most popular DEXes to maintain sufficient liquidity. Therefore, GTON token holders are offered the most convenient way to buy early allocations in $CANDY. Subscribe to CandyShop Twitter to stay tuned.
Website: coming soon
Telegram Community: https://t.me/CandyDapp_community
Announcement Telegram: https://t.me/CandyShopAnn