• XTZ's Newsletter
  • Posts
  • Tezos DeFi User Guide: How To Farm Staking Liquidity Tokens On Tezos

Tezos DeFi User Guide: How To Farm Staking Liquidity Tokens On Tezos

Introduction

There have been many new Tezos DeFi platforms start up recently and many of them offer ‘farming’. Farming is where you can stake tokens i.e. a specific token and XTZ in return for rewards, which can then be claimed/harvested. These rewards are often provided in the form of the governance token for the platform i.e. Plenty DAO, Wrap Governance Token, or Crunchy DAO.

These governance tokens can give you a say in the development of the platform, depending on how many tokens you hold. The more governance tokens you hold, the more voting power you will hold when proposals get put forward for these platforms.

Proposals can sometimes be significant, for example, there could be a proposal to reduce the number of tokens in supply, or maybe a proposal regarding the distribution of governance tokens in the treasury.

There have been Farming applications on Tezos where you need to stake LP tokens which are created on the decentralized exchange Quipuswap. It should be noted one of the first farms to start doing this on Tezos was Salsa DAO, and they also have LP farms to this date.

In order to do this these farms require you to first invest liquidity within Quipuswap for two tokens, namely the specific token in question i.e. PLENTY, WRAP, CRUNCH, etc. (50% of the value at the time of investing) and also XTZ (50% of the value at the time of investing).

This process of investing liquidity in Quipuswap then provides liquidity pool tokens that can then be recognized and staked within applications and platforms such as PlentyDeFiWrap Protocol, Crunchy FarmsFlame DeFi, Staker DAOKolibri and Salsa DAO in their liquidity pool farm sections. There are also other farms we have not covered here that use this process.

For these projects, having users provide liquidity to their decentralized exchange pools is positive as it means more active markets trading can develop, where people can trade with less slippage.

This is the most common type of what is generally known as ‘farming’ present on Tezos today, however, there have been other types of staking enabled whereby you only need to stake the token in question to receive the rewards. For example, on Plenty DeFi there are ‘Farms’, ‘Pools’ and ‘Ponds’. These types of staking all have differences.

Farms on Plenty need both the specific token and XTZ to be placed into a liquidity pool on Quipuswap in return for LP tokens (Liquidity Pool Tokens) and then you are able to stake the LP tokens in the Plenty platform in return for Plenty.

Pools only require the specific token to be staked within the platform itself in order to receive rewards in Plenty.

Ponds also only require the specific token to be staked within the platform, however with Ponds you receive rewards in the specific token of choice rather than Plenty.

This article will be focused only on the first one of these options – the farms which require both the specific token and XTZ to be added as liquidity in Quipuswap in return for LP tokens that can be staked within such platforms as Plenty, Wrap, and Crunchy.

For the purposes of this guide, we will use the Plenty liquidity farm as an example, but the same similar process can be used to add liquidity and stake on other Tezos farms too. We will also use the Temple wallet as an example. We will look to add around 30 XTZ  total in liquidity split up using an equal amount (value) of both XTZ and Plenty.

This guide has also been designed for complete beginners to Tezos, so if you already have a Temple wallet setup with XTZ added, you can skip those sections using the quick jump links provided above.

Being Aware Of Impermanent Loss

When dealing with DeFi it’s important to understand impermanent loss. This is when you provide liquidity and the price of your deposited assets changes compared to the original price of when you deposited them.

It is basically a metric to determine if you would have been better off to simply hold on to your assets, rather than deposit into liquidity pools.

According to Binance:

“Impermanent loss happens when the price of your tokens changes compared to when you deposited them in the pool. The larger the change is, the bigger the loss. “

In order to mitigate this decentralized exchanges such as Quipuswap provide users with a percentage of the transaction fees (0.3%) in ratio to the number of users providing liquidity to that pool and the amount of liquidity each of the users added. Users can also stake their XTZ on the platform.

Impermanent loss can happen if assets move price significantly in either direction (Up/Down) and the more divergence in the prices of the assets you deposited into the liquidity pools (in either direction), the greater any impermanent loss will be.

With this in mind, depositing liquidity into more stable assets, such as stablecoins will often result in less impermanent loss, as there will often be less divergence in the price ranges of these pools.

The loss is described as ‘impermanent’ as if the prices of the assets return to the original state as to when you deposited them, then this loss will no longer be relevant and the liquidity provider will still be entitled to their share of the trading fees in the overall pool that had been accumulated in the meantime.

The ‘impermanent loss’ will only become realized once the liquidity provider removes their liquidity from the pool when in an impermanent loss situation.

Impermanent loss can sometimes be counter-acted with the trading fees accrued by being a liquidity provider. In fact, if the pair has enough trading activity it can still be profitable to have added liquidity even with impermanent loss as trading fees accrue to the liquidity provider, but this of course depends on volumes.

Now you understand some of the risks (and we always recommend you do more research on other potential risks too), let’s jump right in.

Creating A Temple Wallet

In order to interact with Tezos DeFi you will need a wallet with some funds in it. As mentioned, we will be using the Temple wallet in our example and first, we will need to create our wallet.

The Temple wallet can at this point be considered a browser-based wallet (although work is being done to bring it to mobile), and it can be accessed via your browser’s extension tab for ease of use. If you are familiar with using Metamask on Ethereum, then Temple is very similar in how you can access it from your browser’s extension bar.

Visit the Temple Wallet download section and choose your browser of choice. 

You will then be taken to the Google Chrome extension page and you will be able to add the Temple wallet extension to your Chrome browser here:

Once added, we recommend that you pin it to your browser extension bar so you can find the wallet easier in the future:

Next you will have to select the option to create a new wallet here:

On the next screen, create a long secure password with lots of variations in letters, numbers, and symbols. Make sure to save this in a safe place so that you can remember it.

There are also online password managers tools such as LastPass, 1password and Bitwarden which you can use to help store these important passwords with the option to add physical 2-factor options such as Yubikey for extra security. Non of these tools are endorsed by XTZ.News and you should do your own research should you pursue them.  

Next, you will have to save your private key seed phrase, to do this you will have to click the box to view it. It is EXTREMELY important that you do not lose access to this phrase, and also that you don’t let anyone else see or access this phrase.

You must keep this phrase in a very secure location. If somebody gets access to this private key phrase they can use it to access your funds.

By the same reasoning, if you lose access to your password, clear your browser’s cache, use a different device, etc. then you will also need access to your seed phrase to restore your wallet.

You will then have created your Temple wallet and you will see your new Tezos wallet public address which you can copy to clipboard and make a note of. This public address (unlike the private key seed phrase) is safe to give to other people so they can send you funds.

This is the public Tezos wallet address that you can use to receive funds from exchanges such as Coinbase. On Coinbase (depending on your area) you can buy XTZ directly with fiat. In our example we will look to buy XTZ directly with fiat before sending the XTZ we bought to our Temple wallet, ready to participate in Tezos DeFi.

Buying XTZ Direct Through Coinbase

In order to buy XTZ on Coinbase, first create a Coinbase account and verify it to a high enough level and add your payment details, so you can purchase cryptocurrency such as XTZ. If you already have a Coinbase account, or Tezos in your Temple wallet you can skip this step.

Once in, you can click the ‘Buy/Sell’ button here:

Here, you can select to buy XTZ and pay with your preferred payment option.

Once you have XTZ in your Coinbase account you will need to send the XTZ to your Temple wallet to participate in Tezos DeFi.

Sending some Tezos to a brand new wallet will also ‘originate’ the account. Once a transation is made from the account the public key will be revealed meaning that your address will become visible on blockchain explorers such as the popular https://tzkt.io/. You will be able to use these block explorers to check the status of transactions you have initiated through your account.

In order to send XTZ to your Temple wallet from Coinbase, first go to your Temple wallet and then copy your Tezos wallet as shown here:

After you have your Tezos Temple wallet copied you can then go back to Coinbase and select the ‘Send/Receive’ button:

Next, enter in the amount of XTZ you would like to send and then paste in the Temple wallet address you copied earlier:

Once your XTZ has been sent, it could take up to 30 minutes to arrive from Coinbase (but Tezos transactions normally complete in under 1 minute, and soon 30 seconds with the next upgrade) once arrived you can then go back to your browsers extension bar, click on the Temple wallet and then you should be able to see your XTZ in the temple wallet.

You can also check to see if your funds have arrived using the Tezos block explorer TZKT.io. Here, visit TZKT.io and then copy your wallet address from your Temple Wallet as shown here:

Once you have copied your address you can paste it into TZKT.io as shown here:

This will take you to your Tezos wallet address on the Tezos blockchain explorer, enabling you to view your balance and all interactions your wallet makes on the Tezos blockchain. This will also help you to identify any failed transactions.

Swapping Tokens In Quipuswap Ready To Add Liquidity 

So, now you have XTZ in your Temple wallet you can begin interacting with Tezos DeFi. Before you can stake in an LP Farm on Tezos you will need to add liquidity. You can do this through a combination of your Temple Wallet and the Quipuswap Decentralized AMM exchange.

As you already have XTZ in your wallet, if you are looking to stake in a LP farm you will need to swap some of your XTZ for the other coin that is represented in the farm. In our example we are looking to add to the PLENTY XTZ farm, so we will need to add equal amounts of both XTZ and PLENTY so that we can add liquidity to the farm.

As we have 30 XTZ in our account, we are first going to swap around half of that XTZ for PLENTY, but bear in mind we always want to leave some XTZ in our wallet to pay for fees.

In our case we will try to leave 2 XTZ in our wallet for fees, so in this instance we will look to swap 14 XTZ for the equivalent PLENTY. In order to do this visit Quipuswap and connect your wallet by clicking the ‘Connect Temple’ option in the top right hand corner:

After this confirm the connection:

Once your wallet is connected, you can then proceed to swap your XTZ for the coin you need for the farm. Make sure you are on the swap tab and then make sure XTZ is selected in the top option and then the coin of your choice in the bottom option.

In our case we want to swap some XTZ for PLENTY so we can have both XTZ and PLENTY in order to add liquidity. 

As you put in your input of the XTZ you want to swap Quipuswap will tell you the amount of the corresponding equivalent of the coin you are trading for too.

Once you are ready click ‘Swap’ and a Temple wallet pop-up box will appear asking you to confirm the transaction:

NOTE: This pop-up box gives you the option to edit the gas fee highlighted. Sometimes if a transaction does not go through, you can try adding more in gas fees here and this can sometimes help push your transaction through. Again you can check your wallet address on TZKT to make sure the transaction went through ok:

You will also be able to see in Quipuswap that you now have Plenty in your wallet, aswell as XTZ:

And also in your Temple wallet:

In our case, PLENTY is ‘whitelisted’ on Quipuswap which means if we select the drop-down menus, we will be able to find PLENTY without having to add the token into Quipuswap manually. But what if the coin we want to farm is not yet whitelisted by Quipuswap? Well, in this case we will need to add it in ourselves…

Adding A ‘Non-Whitelisted’ Token To Quipuswap

In order to add a ‘non-whitelisted’ token to Quipuswap we can use the ‘Better Call Dev’ Tezos smart contract explorer to find the token details that we will need to add into Quipuswap in order to add it.

In order to add a token to Quipuswap we will need both the token address and the Token ID number. For our example, we will take a random coin we have not yet added to Quipuswap that isn’t whitelisted in the Quipuswap system.

It is possible to search for the name of the token in ‘Better Call Dev’ in order to retrieve the contract address for a token, however we recommend that you make sure the contract address is 100% correct by consulting/viewing official sources.

For our example we will use the token ‘Beef’ from the ‘Dos Esposas Restaurante’ group of tokens.

To start the process we would try and find the contract address from Dos Esposas Restaurante official sources to make sure the address is 100% correct.  

Once found we would we need to go to the Better Call Dev website:

Here, you can either try typing in the name of the token you would like to add, or if you know the contract address already you can paste that in.

We can see that this contract address does indeed match the ‘Beef’ token on Better Call Dev:

If you click into this contract and view the ‘Tokens’ tab highlighted, you can find additional token information such as the top 5 holders and the token id. To add a new token into your Quipuswap you will need both the contract address which you should already have from official sources and the token ID.

Here, we can see the token ID for beef is ‘0’, however some tokens might have different token IDs. For example, in with the WRAP tokens i.e. wwBTC, wMatic, wwETH, wLink etc all tokens have the same contract address, but different token IDs.

In the URL, you should see the contract address:

Once you know the contract address and the token ID, you can add these into Quipuswap into this section:

Paste in the Contract address and then it will give you an additional option to add the token ID:

Once added, then you should see the token you are trying to add pop up ready for selection. From this point onwards you will be able to view this token in your Quipuswap as long as you keep your wallet connected to Quipuswap.

As mentioned, Plenty was already whitelisted, so we didn’t need to go through this process here and it’s just to show you for future token pairs that are not yet whitelisted.

Adding ‘Non-Whitelisted’ Tokens To The Temple Wallet

Just like Quipuswap, if there is a new token to be added, which is not already present in the Temple Wallet you will need to add it yourself. This is so you can see the token and the amount you own in your wallet. This involves a similar process to Quipuswap however there are some differences. With the Temple wallet, often the contract address is enough to be able to add the new token.

In order to add a new token to the Temple wallet click on the Temple wallet extension and then select ‘Manage’ here:

This option will allow you to manage your tokens. Once you have clicked ‘Manage’, you will have the option to click ‘Add Token’:

Here, you will need to select what type of token type the token is, is it the older standar of FA 1.2 or is it the new standard of FA 2.0. Most tokens will be FA 2.0, however there are some token types which have yet to upgrade. Once you have selected the token type you will need to add in the address (just like you did when adding to Quipuswap). So, in order to add BEEF, you would add the contract address: ‘KT1M2Ws52krJrwJi1ZFsmVfazBiafWYKZTvd’ here:

Once you paste the address, the Temple wallet will look to match the rest of the fields with the data it has automatically and it will often fill out the rest of the fields for you. In the example of BEEF, you can see the Temple wallet automatically fills in the rest of the fields, so all you have to do is click ‘add token’ at the bottom:

Once added you will be able to see your token and the amount you own in your Temple wallet:

Adding Liquidity To Tokens Via Quipuswap

Once you have equal amounts of XTZ and the token you want to farm via LP tokens then you can proceed to add liquidity for those tokens. In order to do this, visit Quipuswap and then select the ‘Invest’ tab as shown here:

Once selected you will be given the opportunity to add liquidity for the XTZ and token sides of this pair, in our example this will be the XTZ/Plenty pair.

Here, you can select the maximum amount of the token you would like to add and Quipuswap will automatically calculate the amount of XTZ needed (in an XTZ equivalent value) in order to add this much liquidity, as shown here:

NOTE: Make a note of the initial liquidity you have added on both the XTZ and token sides. This will help you understand moving forwards whether you are earning overall after taking into account impermanent loss. This is because you will be able to check on the value of the liquidity you added at a later date using Quipuswap, without removing any liquidity.

Here, you’d simply click the ‘Add Liquidity’ button and then confirm the Temple wallet transaction:

Once done, you will have new Quipuswap LP (liquidity pool) tokens for that particular pair.

Now if you go to the Plenty website, connect your wallet, and click into their XTZ/Plenty farm area you will be able to stake these LP tokens within the Plenty interface. In order to do this go to the Plenty website, connect your Temple wallet and then click on the ‘Farms’ option:

Once you’ve clicked on farms, you can then select the option to stake. 

If you had not yet added liquidity to the XTZ/Plenty pool then you wouldn’t have any LP tokens to stake here, but if you had added liquidity using the steps above you willd see that their will be some ‘LP tokens’ to stake.

Here, you can select the maximum amount of LP tokens to stake and click confirm:

Again, you will have to confirm on the Temple wallet and then the liquidity for those Quipuswap liquidity tokens you gained, through adding liquidity to the pair on Quipuswap will be added.

Once you have staked them, you will receive a successful deposit message:

Once your LP tokens are succesfully staked, you will also be able to see them by going to the Plenty farm:

As time goes on the farm will begin to accrue rewards for you to harvest:

Here, simply click ‘Harvest’ and then confirm on the Temple wallet.

Every day you should have new rewards to harvest from the farm, at varying rates depending on APR% changes etc. Again remember to factor in potential impermanent loss when making assessments on earnings. It’s possible to earn farming, but lose a greater percentage overall through impermanent loss.

Checking Your LP Tokens Current Value In Quipuswap

You could be earning Plenty, but you want to make sure you are also doing ok overall. To do this you will need to check on the value of your LP tokens. You can do this without removing any liquidity from the farm, by gaining an estimation. First you will need to check how many LP tokens you current have staked by going to your farm and finding this number, as shown here:

Here, there are 2.678 Plenty staked, here you can make a note of this figure. Then, head to Quipuswap and click on the ‘Invest’ tab:

After this select the ‘Remove Liquidity’ option and then select the token you would like to check, in this case ‘Plenty’:

After this, you would type in the amount of LP tokens you made a note of that were staked in the farm and this would then show you the corresponding XTZ and token value, or what your liquidity provision is currently worth should you remove liquidity now:

You can then check this number against what you invested at the beginning to see whether you have experienced any significant impermanent loss, or if your rewards from harvesting have put you at an overall advantage (taking into account present liquidity token value).