Coil Spring Guide — How to Add Liquidity
- Start Date:
September 9, 2020
- Reward Pool:
1% of total COIL supply
- Distribution Schedule:
- Stake for 1 month for
- Stake for 2 months for
Once the program goes live you’ll be able to find it here.
- Connect your Web3 wallet (ie. MetaMask) to the Uniswap liquidity pool here
COILinto the Uniswap V2 Pool
- Select Supply
UETHCOIL-V2tokens in return*
- Navigate to the Coil Spring site here
- Choose the Amount and Time Lock Period (days)
- Deposit V2 tokens (Users can set up multiple contracts)**
- Check your Spring stats
APY = Annual Percentage Yield
Ready Contracts = Your # of Liquidity Locked Contracts
Accrued Rewards = Amount of Rewards Earned
To Unstake and Withdraw
- Enter the contract address that you would like to cancel***
- Select Withdraw
*NOTE — V2 TOKENS REFER TO THE UNISWAP LIQUIDITY PAIR TOKEN FOR COIL/ETH (UETHCOIL-V2), AS THIS IS THE STAKING TOKEN USED IN THE SPRING.
**NOTE — YOU WILL FIRST HAVE TO APPROVE A TRANSACTION ALLOWING THE DAPP TO INTERACT WITH YOUR BALANCE. THIS APPLIES TO A USERS FIRST INTERACTION AND WILL NOT BE NEEDED FOR FUTURE CONTRACTS FROM THE SAME ADDRESS. THE DEPOSIT BUTTON WILL SAY “APPROVE FUNDS”, NOT “DEPOSIT” UNTIL THE USER APPROVES.
***NOTE — LONGER TIME LOCK PERIODS RECEIVE LARGER REWARDS. IF USERS WITHDRAW EARLIER THAN THE TIME LOCK PERIOD THEY SIGNED UP FOR, THEY WILL BE PENALIZED FOR UNLOCKING EARLIER THAN AGREED.
Once completed, users can check their tokens and rewards on the Spring stats page. Users have the option to add more Uniswap LP tokens/contracts at anytime they choose. Spring rewards are shared with users when they decide to unstake.
A few important things to note, the COIL Spring is unique and works similarly to a Certificate of Deposit system in a real world bank. When you choose your time lock period, you are agreeing to provide liquidity for this amount of time. If you decide to unlock and pull your liquidity early, you will pay a penalty. The penalty formula is: % of Time Lock Period remaining / 2 * contract Amount
Users will be able to opt into the Coil Spring by providing liquidity into the Uniswap pool. In return for providing the ETH and COIL liquidity they will receive a V2 token which they can then stake and put into the Spring. Users are able to choose how long they would like to provide liquidity (1–90 days). The longer you provide liquidity, the larger the rewards. You will receive a multiplier and start at 1x and add to this each day. After 30 days it goes up to 2x, after 60 days it raises to 3x, which is the max multiplier. If users elect to provide liquidity for 30 days, but stay in the pool longer, you do not accrue higher rewards. The time lock duration chosen is the maximum amount rewards that a user can receive. So staking longer from the start gives you the higher multiplier as you cannot get a 3x if you stake under 60 days. Once your time is served you can withdraw your full balance (also subject to rebases + the rewards). The Spring adds a unique twist to this liquidity not seen in crypto. If you elect for 90 days, but decide to pull your liquidity after 10 days, you will pay a large penalty that can eat into your principle. This penalty is then distributed to all of the good actors in the Spring that provide liquidity for the amount of time they agreed too, increasing their rewards.
What makes this idea of the Spring so powerful, is that it allows liquidity to become more predictable and chartable. People are able to map out when large amounts of liquidity enter or leave the pool and thus make much more logical decisions. This predictability in the liquidity will lead to less volatility, while also solving some of the manipulation issues because it designs a system that rewards good actors of the network and penalizes bad actors.
How to Calculate Stake Weight
Imagine there are two users in the system, Alice and Bob. Alice has staked 10 tokens and promised 10 days, Bob has staked 5 tokens and promised 30 days.
Alice_stake_weight = 10 * tokens * 10 days = 100
Bob_stake_weight = 5 * tokens * 30 days = 150
Global_staking_token_time = (Alice_stake_weight) + (Bob_stake_weight) = 250
Alice owns (100 / 250) = 40%
Bob owns (150 / 250) = 60%
Now we have a few things to note:
Users only receive rewards when they unstake a contract that has fully expired. If a user decides to unstake a contract that is not fully expired, not only do they not receive any portion of the accrued rewards, but it also subtracts a penalty amount from your original principle. The penalty amount is in the form of the V2 token, which is partially in ETH and partially in COIL. Every 7 days the ETH from all penalties is used to buy Coil on the market. Then this Coil and the penalty Coil is all deposited into the the unlocked pool, increasing the ROI for everyone else involved. When a user leaves, the global stake weight goes down as their stake weight is negated, thus increasing everyone else in the Spring’s share of the rewards as well. This is checked on a per contract basis. So, if you cancel all of your contracts at once, and one of them is expired and the other is not, you will receive the reward amount of the other contract, but the whole penalty amount will be taken out of the funds you receive in return. The reward transaction is separate from the transaction that sends user’s original tokens back in return.
How the Penalty Works
1 UETHCOIL-V2 (committed for 60 days, has staked for 30 days)
The penalty is % of time left /2 * contract Amount
In This Case:
% of time left is 50% (30 days/60 days)
contract Amount is 1
Penalty = (0.5 / 2) * 1 = 0.25 UETHCOIL-V2
1 transaction of 0.75 UETHCOIL-V2 back to the owner
1 transaction of 0.25 UETHCOIL-V2 paid out to the penalty address
Thus, by withdrawing early, this contract lost 25% of its original token amount.
The penalty portion of the V2 token goes to the Ecosystem fund, which as mentioned above buys COIL on the market, then adds the COIL to the Spring rewards every week.
COIL rebases all addresses so all pools and balances will be updated proportionally. Users LP token does not change, as it is a placed holder showing their share of the pool. Although, the share of the pool and claim to ETH and COIL will fluctuate.
The penalty system may seem harsh at first, but this is very important. If you elect to serve 90 days you get a large share of the pool and a much higher stake weight, meaning others are losing a large share of the pool and rewards. So when you only serve 45 days out of 90 days agreed, you will lose 25%, but this is to compensate others for the weight and rewards taken away from them. Designing the Spring in this manner encourages good network behavior by rewarding those that keep liquidity locked for the duration they agreed on. In addition, it also discourages bad network behavior leading to more predictable liquidity, less volatility, and less manipulation.
Our YouTube tutorial can be found by clicking here.