Welcome to yield.vote’s documentation!

yield.vote is a liquidity mining and staking platform that provides users of token ecosystems with yield opportunities in return for supporting the creation of decentralised markets. Yield has tuneable governance parameters that can be modified by a DAO.

docs-yield missing

About yield.vote

If you felt confused on yield.vote site then you are in the right place.
We’ll try to simply explain how to play and to not get confused again.

This is what you see right after entering yield.vote:

A

_images/mainpage_1.png
_images/mainpage_1.jpg
We truly hope that this part is not confusing, but to be absolute clear, let us explain what are you looking at.

The most important thing here is to understand that this is kind of a template which will be created for every partner who would like to create its own pools.
In the finance.vote pools section there are 3 boxes for 3 different types of pools. We called them basic, resident and tycoon(which is actually a type of resident pool).

As you can see, our partner’s pools are named completely different (ITG Blue Lagoon Pool, ITG Reef Pool and ITG Krill Pool) but their working is based on the same mechanics as finance.vote pools.

B

_images/1_mainppage_templ2.jpg
_images/1_mainppage_templ.jpg

Basic pools

When you first enter basic pool you probably think that there is too much information. But keep calm, we will go through this together.
Actually it is not that complicated, since most of the elements are just informational, but yes, that could be overwhelming at first.

Basic pool is an ultra simple financial primitive for those who don’t want to be LPs, but want to get FVT token yield.
The contract opens at a specified time(start date) and reaches maturity at a specified time(maturity date). You see a quote for the yield(APY) you will receive on maturity and as long as you send your tokens before the pool cap is full, you get your quoted yield guaranteed from the timestamp of the block in which your transaction is mined.

Let’s take a look on Basic Pool site:

A

_images/2_basic1.png
_images/2_basic1.jpg
Hovering on the image releases another graphics which probably is a little disturbing for now, but don’t worry, once you’ll understand what’s what, the schema becomes more helpful.
Let’s start decrypting every element of the site:
  1. On the left side there is a menu panel with shortcuts to all available pools.

  2. Right below the name of the pool, there are 3 parameters:

    • Total Value Locked is a total amount of FVT currently deposited in the pool (from all user total).

    • APY stands for “Annual Percentage Yield”. It is the amount of yield you would get on your principal (what you put in) annualised. In Basic Pool, your quotes are literal. What you see is what you get.

    • Filled stands for percentage of current pool filling (from all user total).

  3. Pool details field

    • Maximum Pool Size - information on the pool size, meaning how much FVT can be deposit in the pool

    • Volume - information on how much FVT where deposited into the pool in the last 24 hours (from all user total)

    • Current Yield - information on current percentage (how much user will get at the maturation). (!) This parameter decreases with pool maturing.

    • Start Date - time when contract opens

    • Maturity Date - time when contract reaches maturity and gets closed

  4. Deposit field is something like a bank window, where you cen deposit your FVT and send them to the pool. MAX button allows deposit a maximum allowed amount of FVT, considering your FVT balance and pool capacity.

  5. List of open and closed transactions shows only yours open and closed positions (not other users):

    1. Open Positions elements:

      • Transaction - hash of deposit transaction

      • Deposit - amount of FVT deposited

      • Current Yield - amount of yield that has grown till this moment (what you would get right now if you would make a withdrawal)

      • Additional Rewards - amount of any additional rewards

      • Yield at Maturity - amount of the yield you will get when the pool reaches maturity

      • Withdraw button used for funds withdrawals

    _images/2_basic_example4.jpg
    1. Closed Positions elements:

      • Deposit Transaction - hash of deposit transaction

      • Deposit - amount of FVT deposited

      • Yield - amount of yield collected

      • Withdraw Transaction - hash of withdraw transaction

    _images/2_basic_example5.jpg

Deposit into Basic Pool

  1. Enter deposit amount or use MAX button.

  2. Hit Deposit button.

  3. Confirm transaction fees in MetaMask pop up window.

  4. If no error occurs, A deposit has been made! notification will pop up.

  5. Finished transaction will be shown on list of open transactions.

Let’s explain this more detailed over an example:

Example

Carla enters the Basic Pool and she sees that maximum pool size is 10,000,000 FVT but currently only 43,672 FVT are deposited into the pool (and that’s 0.437% filled).

She sees that if she deposit now her yield at pool maturation will be 12.93%, so she decides to deposit 100 FVT (which will give her additional 12.93 FVT at pool maturity).

_images/2_basic_example2.jpg

She enters 100 FVT into Deposit Amount field and hits Deposit button. MetaMask notification pops up and she has to confirm transaction fees.

She waits a while till deposit is send to the pool and then she can see her transaction on the list of open transactions.

_images/2_basic_example3.jpg

She also noticed that Volume field and Total Value Locked (TVL) has changed and now are enlarged by her deposit.

Withdraw from Basic Pool

  1. Hit Withdraw button on the open positions list.

  2. Information on deposit funds, current yield, yield at pool maturity and additional rewards will be shown as a pop up window. Read them carefully and keep in mind that once you’ll withdraw your funds you won’t be able to enter the pool on the same conditions again.

  3. Click Withdraw.

  4. Confirm transaction fees in MetaMask pop up window.

  5. If no error occurs, Successful payout notification will pop up.

  6. Withdrawn position will be shown on list of closed positions.

Let’s explain this more detailed over an example:

Example

Carl entered the Basic Pool much sooner than Carla, that’s why his yield at maturity percent was higher (14.23%). Now he wants to withdraw his funds from the pool.

_images/2_basic_withdraw1.jpg

He hits Withdraw button on the open positions list, which opens a pop up window with information on deposit funds, current yield, yield at pool maturity and additional rewards. He should take a minute and think whether he really needs to take out his fund because once he’ll done it, there will be no coming back. And what’s more, any further deposits will be less profitable since yield percent decreases as pool matures.

_images/2_basic_withdraw2.jpg

Carl however is decided and clicks Withdraw button and confirms transaction fees in popped up MetMask window.

He waits a while and then he sees that his transaction disappeared from open transactions list but appeared on the closed positions list instead.

withdraw1 withdraw2

He also noticed that Total Value Locked (TVL) has changed and now is reduced by his withdrawal.

Resident Pools

Once you’ve learned how Basic Pool works, it shouldn’t be too hard to understand how Resident Pool works.

Resident Pool is a new kind of liquidity mining.
As a user you will gain access to network emission by holding a protocol property.
Protocol property is a slot in a smart contract that provides you access to the liquidity incentive token inventory of the finance.vote protocol.
Resident Pool uses ‘Harberger Taxes’ to broker ownership of these slots in an on-going manner.

Main Resident Pool page looks alike to Basic Pool page.

A

_images/3_residenthover.png
_images/3_residenthover.jpg
Hovering on the image above releases another graphics but you shouldn’t be surprised with this anymore.
Again, let’s decrypt every element of this site, as we did before:
  1. On the left side there is a menu panel with shortcuts to all available pools.

  2. Right below the name of the pool, there are 2 parameters:

    • Total Liquidity is a total amount of LP Tokens staked in the pool (from all user total).

    • Average APE PY stands for “Average Pulse Expected Percentage Yield”.

    • Average APY stands for “Average Annual Percentage Yield”.

  3. Pool details field

    • Volume - how much LP Tokens where staked in the last 24 hours (from all user total)

    • Minimum Deposit - minimum amount of LP Tokens that can be staked

    • Maximum Deposit - maximum amount of LP Tokens that can be staked

    • Lots filled - number of currently occupying lots

    • Current Pulse Length - how many blocks will be in the current pulse

    • Slot Rewards / Pulse - rewards distributed per pulse

  4. Below Pool details there is a field with two information:

    • Lots - number of yours occupied lots.

    • Total rewards - a sum of rewards from all your currently occupying lots. If you’ll pay out any rewards total rewards won’t change, but will if you’ll vacate a Lot or get kicked out from it (Total rewards decrease by the number of total rewards from that Lot).

  5. On the right side there is a chart showing rewards in the current pulse. Since it’s not a flat rate, it starts off higher and then lowers quadratically. So the earlier you get in, the more you’ll earn.

  6. Last element is the list of Occupied Lots. Here you can see every occupied Lot, regardless of whether it is occupied by you or not. To see only yours lots (if you have any) choose My Lots tab. Elements of list of Occupied lots:

    • Lot No - occupied property number

    • Occupant - wallet address of occupant

    • Deposit - current Lot price (initial deposit constantly decreasing by burn rate per pulse). This is also minimal amount of LP Tokens required to claim this Lot

    • Burn rate - amount of LP tokens that are burned per pulse

    • Rewards - the amount of profit from the property occupying. It is calculated from the start of Lot occupying and if you withdraw some funds during occupying the total amount won’t change.

    • APEPY - Average Pulse Expected Percentage Yield for the specific Lot

    • Claim Lot - button used for taking over the Lot

    • Withdraw (button shown only on your Lots) - button used for withdraw current available rewards

    _images/3_residentlot.jpg

Staking LP Tokens (Occupying Lot)

Before we dive into this, you can see how Resident Pool works in Dr Nick’s short overview video:

To become a property owner you’ll have to stake LP tokens. We assume you’ve already have them (if not, see here how to gain some).
  1. Hit Stake LP Tokens button.

  2. From the left column choose number of Lot you would like to occupy (every number has its own personalized image).

    _images/4_staking4.png
    _images/4_staking4.jpg

    You can occupy either vacant or already occupied Lot. The difference between them is initial minimum LP tokens deposit and initial Burn Rate. With the vacant Lots, those indexes are set by pool. With the occupied ones they are set by occupant and you have to outbid both of that to take over the Lot.

    _images/4_staking1.png
    _images/4_staking1.jpg
  3. Set Deposit Amount (or New Deposit in occupied Lot).

  4. Set Burn Rate (or New Burn Rate in occupied Lot). This index is the amount of LP tokens that are burned per pulse and it is strictly connected with the ‘Harberger Tax’.

    _images/4_staking2.png
    _images/4_staking2.jpg
  5. Current APEPY (or New APEPY) will calculate automatically. If you are not satisfied with its rate, you can try to set different Burn Rate. hint: the smaller Burn Rate, the better APEPY is.

  6. Hit Claim Lot button.

  7. Confirm transaction fees in MetaMask pop up window.

  8. If no error occurs, A deposit has been made! notification will pop up.

  9. Claimed Lot will be shown on the list in My Lots tab.

    _images/4_staking3.jpg

Withdraw or Vacate

  1. Press withdraw button

    _images/5_withdrawal.jpg

2. Window with details will pop up. Here you can check what was your initial deposit, how much LP was burned till now and how many blocks till the end of current pulse left. You can either withdraw available rewards or vacate the lot. When you vacate the lot, you gain available rewards and all unburned LP that has left (if there is any). Withdrawal lets you gain rewards while keeping the lot.

_images/5_withdrawal2.png
_images/5_withdrawal2.jpg
  1. Press Withdraw Rewards or Vacate Lot button.

  2. Confirm transaction fees in MetaMask pop up window.

  3. If no error occurs, Successful payout! or Successful vacate! notification will pop up. Either option, Total Rewards field will enlarge by the amount of gained rewards. If you chose to Vacate option, besides Total Rewards enlarge, the Lots counter will also decrease by 1.

    _images/5_totalrewards.jpg
    _images/5_withdrawaltotal2.png
    _images/5_withdrawaltotal.jpg

Tycoon Pools

Not available yet :)

Setting up

Clone following repository:

Prerequisites:

  • Created an account on GitLab via invite

  • Code editor installed

  1. In the yield.vote terminal:

    git checkout develop
    
  2. In the main yield.vote folder create .env.local file and put in there:

    REACT_APP_MAINNET_PROVIDER_URL='wss://mainnet.infura.io/ws/v3/822386a234764efbb051a77ae93c1e79'
    REACT_APP_ROPSTEN_PROVIDER_URL='wss://ropsten.infura.io/ws/v3/822386a234764efbb051a77ae93c1e79'
    REACT_APP_BSC_PROVIDER_URL='https://bsc-dataseed.binance.org/'
    REACT_APP_LOCAL_PROVIDER_URL='ws://localhost:8545'
    
  3. Install dependencies:

    npm install
    
  4. Run application:

    npm start
    

Tokens gaining

Important

Below descriptions concern receiving test tokens and providing liquidity on ropsten testnet BUT it works the same on the mainnet and those instructions can be used to gain FVT and LP tokens in mainnet as well.

To test our app, first of all, you’ll have to have some ether on ropsten testnet. To gain some, you can use one of the ropsten ethereum faucet. Unfortunately, faucets dries out fast, so it is a challenge to find a running one.
Happily, this one is running for now: Faucet here ( we assume, you’ve already have MetaMask added to your browser and do have a wallet address. If not, just go here and do that).
Copy your address wallet by simply clicking on your Account name…
_images/metamask.jpg
…and enter it into field on the faucet site. It can take from several minutes to few hours of waiting, depending on how long address queue is.

We’ve created two tokens in purpose of testing providing liquidity, resident pools working and so on. We’ve named them TSST and BeSt.
Within yield.vote we use 3 kind of pools:
  1. Basic

  2. Resident

  3. Tycoon (not available yet)

Basic pool requires FVT to play, while Resident requires LP tokens to do so.

Swapping for FVT (or TSST and BeSt)

On the main yield.vote page, click Buy FVT Tokens button.
_images/0_howto_main.jpg
It will redirect you to Uniswap app where you can exchange ETH for FVT, TSST or BeSt.

Important

Make sure you are on Uniswap V2, otherwise you’ll get “No liquidity” message.

_images/1_howto_v2.png
Don’t spend all of your ether, because you’ll need some to cover transaction fees. We recommend swapping 1 or less Ether for now.

If there is no token in the bottom field or there is different than FVT, then simply click in the wrong or missing currency button and from the list choose FVT or one of the test tokens TSST or BeSt…
_images/1_howto_uniswap1.png
…but if it is not there you’ll need to add it manually.

Tokens Addresses

FVT token address:

0xf7ef90b602f1332d0c12cd8da6cd25130c768929

TSST token address:

0xBFe5C40d16Be2EC652A627b1c2922B076DE267fD

BeSt token address:

0x46a0b72f44c0B380e85BE1215E3F7CAb1efaF046
Click on Manage token list:

Steps

UNI1 —> UNI2 —> UNI3

To use test tokens, do the same for TSST and/or BeSt.

When it’s done, you should be able to swap ETH for FVT, TSST or BeSt:

  1. Simply put interesting you amount of ETH in the ETH field (like 0.8 for example), the value of the exchanged cryptocurrency will be calculated automatically.

  2. Click on swap button.

  3. In the pop up window there are information on Liquidity Provider Fee, Price Impact, Minimum received and slippage tolerance. You can take a minute to analyse them, then hit confirm swap button.

  4. Now confirm transaction in MetaMask.

  5. After it’s confirmed and no error occurs, in the upper right corner you should see Pending notice. Wait several seconds (sometimes it is a little longer than that), then check on your balance if ETH were substracted from it. If so, you should have exchanged cryptocurrency in your wallet.

Important

You will probably want to add FVT, TSST and BeSt tokens to your MetaMask wallet, as you added to swap form. Simply hit Add Token button in Assets tab in MetaMask, then put token address in there. MM

Getting LP tokens

To receive LP tokens, user needs to provide liquidity to one of the pools.
We operate on uniswap and sushiswap pools.

Before you enter the pool, you’ll have to get some TSST and BeSt tokens. Below list of our test pools and information on token they are using:
  1. Basic:

    * FVT Basic      -   FVT
    
  2. Resident:

    * FVT Resident   -   LP token     (FVT/ETH)
    * TSST sushi     -   SLP token    (TSST/ETH sushiswap pool)
    * TSST uni       -   UNI-V2 token (TSST/ETH uniswap pool)
    * BeSt uni       -   UNI-V2 token (BeSt/ETH uniswap pool)
    * Resident new   -   UNI-V2 token (BeSt/ETH uniswap pool)
    

Warning

Even when they take the same pair of tokens, pools on sushiswap and uniswap ARE NOT THE SAME POOLS. LP tokens gained from them won’t sum together. You’ll have SLP gained from sushi pool and UNI-V2 gained from uni pool listed separately on your token list.

Also You’ll have 2 separated UNI-V2 positions in wallet, since their pools takes different pairs of tokens.

Uniswap pool

  1. To access uniswap pool you can click on the main yield.vote site provide liquidity for FVT button or click here or in uniswap app choose pool -> view v2 liquidity -> add v2 liquidity.

  2. From bottom token selector choose BeSt or TSST (depending which LP token you need, see list above).

  3. Type in either ETH value or BeSt(or TSST) value, the second one will calculate itself automatically. If everything will be okay then you should be able to see “Approve BeSt” (or TSST) button.

    _images/2_howto_unipool.jpg
  4. MetaMask pop up window will appear. Click confirm.

  5. When BeSt/TSST will get approved (it could take up to several minutes) you can supply to the pool.

    _images/2_howto_unipool2.jpg
  6. Confirmation window will pop up with additional information on LP tokens amount receive, rates, share of the pool and amount of tokens supplied. Click Confirm supply button.

    _images/2_howto_unipool3.jpg
  7. Another confirmation window will pop up, confirm in MetaMask. You can click “Add Uni-V2 token to MetaMask”, which we recommend to click.

  8. When transaction gets approved LP tokens will be added to your balance.

Sushiswap pool

For now, we only use TSST/ETH pool on sushiswap. If you don’t see TSST token on token selector list, check manage token list in swapping tokens section. Method to add TSST token in sushiswap is identical to method in uniswap.
  1. To access sushipool click here or in sushi app choose pool -> add.

  2. From bottom token selector choose TSST.

  3. Type in either ETH or TSST value, the second one will calculate itself automatically. If everything will be okay then you should be able to see “Approve TSST” button.

  4. MetaMask pop up window will appear. Click confirm.

  5. When TSST will get approved (it could take up to several minutes) you can supply to the pool, by clicking Confirm Adding Liquidity button.

    Important

    If ETH or TSST value will be too high, Adding Liquidity button won’t appear. Make sure you are not trying to add funds above your limit.

    SU1 SU2

  6. Confirmation window will pop up with additional information on LP tokens amount receive, rates, share of the pool and amount of tokens supplied. Click Confirm supply button.

  7. Waiting for confirmation window will be shown and MetaMask confirmation window will pop up. Click confirm.

  8. When transaction gets approved LP tokens will be added to your balance.

LP Tokens Addresses

In case you didn’t add LP tokens to your wallet after liquidity providing confirmation or it didn’t work, here we give LP tokens addresses:

LP tokens addresses

TSST/ETH sushi (SLP):

0x485345705b85a416fa1276fbca7fb81f3ebd9d13

BeSt/ETH sushi (SLP):

0xc3795a945923914f0e5e4cf45c68f523fe835238

TSST/ETH uni (UNI-V2):

0xf5a9c4e4fc81a9f628058c18322fd1d7f51452a0

BeSt/ETH uni (UNI-V2):

0xa34cab81aa58cef453a73cdfe5600b9b699f9d66

Indices and tables

Our products

Back to main page