Liquidity Mining
Active liquidity mining contracts are all here

How to calculate staking annual yield?

For example, in USX/DF staking pool,
  1. 1.
    Get the price in USD of all assets, in this case, that would be USX and DF, assumption that the price is pUSX and pDF;
  2. 2.
    Get total balance of USX and DF deposited in the LP contract, say tbUSX and tbDF;
  3. 3.
    Calculate 1 LP token value should be:
    vLP = (pUSX * tbUSX + pDF * tbDF) / LP.totalSupply;
  4. 4.
    Get total balance deposited in staking contract, say tbLP, then the total value of deposited LP tokens should be:
    tvLP = vLP * tbLP;
  5. 5.
    Get reward rate from staking contract, this variable represents the distributed amount of reward token per block, in Ethereum Mainnet, the block period is ~13 seconds (for BSC, it's about 3 seconds per block), so distribution value per year is:
    tvR = pDF * RR(RewardRate) * blockPerYear;
    blockPerYear = 3600 * 24 * 365 / block_peroid;
  6. 6.
    The annual yield should be:
    annual_yield = tvR / tvLP * 100%;

Deployed Contracts

Mainnet
BSC
Arbitrum
Optimism
Polygon
Name
Address
Name
Address

Reward Distributor

Function getAllRecipients()

Returns all activated staking contracts.
function getAllRecipients()
public
view
returns (address[] memory _allRecipients)

Staking Pool

Every staking pool shares the same interface for users depositing/withdraw LP tokens and claim their rewards.

Variables

Name
Descriptions
address rewardToken
reward token address.
uint256 rewardRate
amount of reward token will be distributed per block.
uint256 startTime
timestamp for starting to distribute reward,
who deposits before this time will not get any reward.

function rewardDistributed()

Returns the total distributed amount since start time.
function rewardDistributed() public view returns (uint256);

function earned()

Returns the up-to-date amount of reward to be claimed.
function earned(address _account) public view returns (uint256);

function stake()

Deposit LP token into staking pool.
function stake(uint256 _amount) public;

function withdraw()

Withdraw LP token from staking pool.
function withdraw(uint256 _amount) public;

function getReward()

Claim rewards.
function getReward() public;

function exit()

Withdraw all LP tokens and claim rewards.
function exit() external;
Copy link
On this page
How to calculate staking annual yield?
Deployed Contracts
Reward Distributor
Staking Pool