Clovers uses a token called Clover Coin that is inflationary and deflationary. It is inflated when used as a reward in exchange for symmetrical clovers. It is deflationary when any clover is kept by a user (when it is burned). There is a bonding curve to allow Clover Coins to be exchanged for Ether.
Inflation (Rewards)
The reward for symmetrical clovers is calculated based on the rarity of that type of symmetry. This is calculated as follows:
/**
* @dev Calculates the reward of the board.
* @param _symmetries symmetries saved as a uint256 value like 00010101 where bits represent symmetry types.
* @return A uint256 representing the reward that would be returned for claiming the board.
*/
function calculateReward(uint256 _symmetries) public constant returns (uint256) {
(Symmetricals,
RotSym,
Y0Sym,
X0Sym,
XYSym,
XnYSym) = IClovers(clovers).getAllSymmetries();
uint256 base = 0;
if (_symmetries >> 4 & 1 == 1) base = base.add(payMultiplier.mul(Symmetricals + 1).div(RotSym + 1));
if (_symmetries >> 3 & 1 == 1) base = base.add(payMultiplier.mul(Symmetricals + 1).div(Y0Sym + 1));
if (_symmetries >> 2 & 1 == 1) base = base.add(payMultiplier.mul(Symmetricals + 1).div(X0Sym + 1));
if (_symmetries >> 1 & 1 == 1) base = base.add(payMultiplier.mul(Symmetricals + 1).div(XYSym + 1));
if (_symmetries & 1 == 1) base = base.add(payMultiplier.mul(Symmetricals + 1).div(XnYSym + 1));
return base;
}
Currently the payMultiplier is set to 0.327
.
Deflation (Token Sink)
In order to counter-balance the inflation from rewards there is a cost to keep clovers and own them as NFTs. When a user exchanges a Clover for the reward, the Clover is put up for sale in the market place. The cost for the Clover is calculated as follows:
basePrice.add(reward.mul(priceMultiplier));
Where the basePrice is 1
Clover Coin and the priceMultiplier is 10
. Clovers with no symmetry have no reward so the cost is simply the basePrice
.
Bonding Curve
The Clover Coin is generated from a bonding curve contract that uses Bancor’s Formula for price calculation. For more information about Bonding Curves and Bancor’s implementation check out my article here. You can see the parameters used in Clover’s Bonding Curve below:
virtualSupply = 10000 Clover Coins
virtualBalance = 10 ETH
reserveRatio = 0.75
slopeFormula = 0.000062x^(1/3)
When the token is deployed to Mainnet Ethereum there will be ~45 ETH spent on an initial transaction. This will provide a jumpstart to the liquidity for Clovers Network to begin.