Farming

The STRIP Farming program is designed to incentivize the addition of liquidity to strengthen the tokenomics.

The launch date will be announced later.

"Farming" as a term means "staking your LP tokens". Within this article the terms "rewards" and "incentives" are used interchangeably, as well as the terms "farming", "yield farming", "LP staking", "liquidity farming", "liquidity staking".

If this is your first time farming, you can follow the Step-By-Step Tutorial at the bottom of this page. Please read through the documentation on this page to understand the mechanics of farming.

Farming incentives, Round 1

Total Incentives Allocation

25,000,000,000 STRIP

Incentives Period Duration

3 months

Incentives Period Start

????

Allocated rewards will be distributed to farmers pro-rata in relation to their share of the total supplied amount. This means that if a lot of farmers add high amounts of liquidity, less rewards are distributed per farmer. Complementary each farmer earns more rewards if fewer people with smaller positions are there to compete for the rewards.

You will earn more if:

  • if you stake your LP tokens for a longer period.

  • if you stake a higher amount of LP tokens.

  • if other farmers stake with a lesser total amount of LP tokens.

The full incentives allocation of 25 billion STRIP tokens will be distributed to farmers regardless of other variables, the other variables only determine who gets what percentage of the allocation.

STRIP/ETH UniV2 LP token

The STRIP/ETH UniV2 LP token will be referred to as "the LP token" for short in this article.

The smart contract address for the LP token is 0xa759ca7117deae729b035bee2edfda46b279c939 . You can view it on Etherscan here:

The LP token represents a share of the liquidity pool on Uniswap for the STRIP/ETH trading pair.

You can mint new LP tokens by adding liquidity to the liquidity pool. The liquidity pool provides liquidity for the STRIP/ETH trading pair. The pool will always hold 50/50 valued shares of Ether (ETH) and STRIP tokens (STRIP). Traders can trade in and out of the pool, resulting in the price changing. The price is simply the ratio of STRIP to ETH held by the pool. The price changes at every trade, and the exact price impact of any trade is determined the mathematics of the constant product bonding curve X * Y = k. The simple take-aways from this are that you need equally valued amounts of ETH and STRIP to add liquidity, and you'll need to be aware of the mechanics of liquidity pools such as "impermanent loss" to make the investment decision of adding liquidity.

You can add liquidity here:

Once you've added liquidity, you can remove it at any time to redeem your share of the ETH and STRIP represented by the LP tokens. If you stake your LP tokens to the STRIP Farming program, you must first unstake them before you can remove your LP position.

APR, Annual Percentage Rate

This metric gives you rough idea of the scale of rewards to expect on top of your staked amount, if the total staked amount were to stay the same and if the rewards period were to last a full year.

However, in reality the total staked amount will keep changing as people stake and unstake over time. At any given moment the APR only shows a very hypothetical, instantaneous estimation. Note also that the APR shows an estimation for the hypothetical case where the rewards would stay the same for a year, while the Round 1 staking program only lasts for 3 months. So the rate on top of your staked amount if you were to stake from start to finish would be 1/4th of the APR.

There is no way to additionally compound the rewards, so APR equals APY for this staking program.

Smart Contracts

The STRIP Farming smart contract is deployed on Ethereum mainnet. The smart contract addess is 0x385dE61Fcedd62f8F573a84e46F2ee7c9F79916e . You can view it on Etherscan here:

The smart contracts used for STRIP Farming Round 1 are based on this GitHub repository:

These contracts are based on widely used Synthetics staking contracts, with modernized design to improve readability, optimize gas fees, etc.

Due to the design, Etherscan pages for the pool contracts cannot be verified.

The pools are created by cloning 'mother contracts', which will be verified and which you can inspect in detail. You can also review the factory contract and the method of cloning, so you should be able to confirm the validity of the contracts.

Since the pool contracts cannot be verified on Etherscan, you can't interact with them with direct method calls via Etherscan's WRITE tab. This is why ABIs will be provided on this page, here:

STRIP Farming Pool Contract ABI:

[{"inputs":[],"name":"Error_AlreadyInitialized","type":"error"},{"inputs":[],"name":"Error_AmountTooLarge","type":"error"},{"inputs":[],"name":"Error_NotRewardDistributor","type":"error"},{"inputs":[],"name":"Error_ZeroOwner","type":"error"},{"inputs":[],"name":"Ownable_NewOwnerZeroAddress","type":"error"},{"inputs":[],"name":"Ownable_NotOwner","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdrawn","type":"event"},{"inputs":[],"name":"DURATION","outputs":[{"internalType":"uint64","name":"DURATION_","type":"uint64"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"earned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"exit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isRewardDistributor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastTimeRewardApplicable","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastUpdateTime","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"reward","type":"uint256"}],"name":"notifyRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"periodFinish","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardPerToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardPerTokenStored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardToken","outputs":[{"internalType":"contract ERC20","name":"rewardToken_","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"rewardDistributor","type":"address"},{"internalType":"bool","name":"isRewardDistributor_","type":"bool"}],"name":"setRewardDistributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakeToken","outputs":[{"internalType":"contract ERC20","name":"stakeToken_","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userRewardPerTokenPaid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

Step-By-Step Tutorial

NOTES: 1) if you have your STRIP vested, you must first WITHDRAW your withdrawable STRIP from the vesting contract before you can add it to liquidity. Ignore this if you bought your STRIP from Uniswap. 2) you need an equally valued amount of ETH to pair with your STRIP to add liquidity to the STRIP/ETH liquidity pool. So prepare by adding enough ETH to your wallet before proceeding.

How to Add Liquidity to the STRIP/ETH liquidity pool:

  1. Make sure your wallet is connected (if not, click on CONNECT WALLET).

  2. Input the amount of STRIP or ETH you wish to add to the liquidity pool. The interface automatically shows you how much of each asset you need to supply to maintain the 50/50 ratio.

  3. If this is your first time adding STRIP/ETH liquidity, click on the APPROVE STRIP button and confirm the transaction in your wallet.

  4. Click on the SUPPLY button and confirm the transaction in your wallet.

  5. Wait for the transaction to complete. If it fails, try again.

You should now be holding newly minted STRIP/ETH UniV2 LP tokens. Proceed to staking your LP tokens into the STRIP Farming program by following the next phase of steps below.

How to Stake your LP tokens to the STRIP Farming program:

  1. Make sure your wallet is connected (if not, click on CONNECT WALLET).

  2. Input the amount of STRIP you wish to stake in the first input field. You can click on MAX to input your entire wallet balance.

  3. Click on the STAKE button. If this is your first time staking STRIP, then you will need to confirm two transactions in your wallet software, first one approving spending, second one actually staking. If you have already staked earlier, you only need to confirm one transaction.

  4. Wait for the transactions to get confirmed on the blockchain. This shouldn't take much longer than a minute.

Your LP tokens should now be succesfully staked. You will now be earning farming incentives in the form of STRIP tokens. You can claim your accrued rewards at any time by clicking on the CLAIM REWARDS button and confirming the transaction in your wallet.

On mobile (MetaMask):

On mobile the procedure is the same as on desktop, but depending on your mobile device settings, you might need to manually copy-paste the addresses into your MetaMask Browser.

  1. Copy the address you need to visit (either the address for the Uniswap LP addition page, or the STRIP Farming page address).

  2. Open the MetaMask application in your mobile device.

  3. Open the menu by clicking on the top-left icon.

  4. Open the BROWSER.

  5. Select the address bar.

  6. Paste the address, and click the ENTER button.

Now that you've opened the page in your mobile MetaMask Browser, you can follow the steps laid above.

How to Unstake your LP tokens:

After you have farmed enough, and wish to unstake from the Farming program, follow the steps below. Note that there are two phases to the process: Unstaking your LP tokens from the farming program, and then removing your liquidity from the Uniswap liquidity pool.

  1. Make sure your wallet is connected (if not, click on CONNECT WALLET).

  2. Input the amount of LP tokens you wish to unstake in the second input field under the UNSTAKE title. You can click on MAX to input your entire wallet balance.

  3. Click on the UNSTAKE button if you only want to unstake your LP tokens without claiming rewards, or EXIT if you wish to both claim your rewards and unstake all your LP tokens. You will need to confirm the transaction in your wallet software.

  4. Wait for the transactions to get confirmed on the blockchain. This shouldn't take much longer than a minute.

You should now have successfully unstaked, and you should see LP tokens in your wallet again. To remove your liquidity position and to redeem back your share of the STRIP and ETH within the liquidity pool, follow the next phase of steps below:

  1. Select the STRIP/ETH position. If you don't automatically see your position, click on the "Import Pool" button and input the smart contract address of STRIP and ETH as the pair to manage.

  2. Select 100%.

  3. Click REMOVE and confirm the transaction in your wallet.

You should now have redeemed your share of the ETH and STRIP from the liquidity pool. Note that the amounts you'll redeem will likely differ from the amounts you supplied, this is due to trading activity having had an impact on the price, giving you a different ratio compared to the ratio you used to add liquidity.

Questions?

If you have remaining questions, see if they are answered in the FAQ:

pageFAQ

Last updated