DAppCrypto Staking Reward Algorithms

Attention! Staking does not work with tokens that have taxes or other fees. The staking pool must be added to the exclusion list for these fees.

Staking can distribute rewards in the staked token itself, in another token, or in the native cryptocurrency of the current network (ETH, BNB).

DAppCrypto supports 3 reward algorithms. The reward algorithm is selected by the owner when creating a staking pool.

1. Fixed Algorithm

This algorithm calculates a fixed reward rate based on the total supply of issued tokens.

Characteristics:

  • The reward rate is constant (if _totalSupply does not change), which provides high predictability of income for users.
  • Dependence on total supply: user rewards are calculated not only from the staked amount, but from the total number of tokens in the network.
  • A large number of tokens may remain in the pool after staking ends and can be used to extend staking or be removed. (Transfer or removal is specified when creating the staking pool.)

At the moment of reward calculation or display, the following formula is used:

TokensInSec = _totalAmount / _stakingDuration / _totalSupply;
reward = TokensInSec * _holderTokens * _holderDuration;

2. Dynamic Algorithm (User-Based)

This algorithm dynamically adjusts the reward rate. All tokens in the staking pool are divided by the number of users participating in staking.

Characteristics:

  • Dynamic behavior: the reward rate changes depending on the number of staking participants. If there are more stakers, each user’s share decreases (and vice versa).
  • Complexity: the algorithm attempts to distribute all remaining tokens among all users, taking into account their amount and staking time.
  • Special feature: at the moment of entry, the user sees one yield percentage, but receives rewards based on a different percentage.

At the moment of reward calculation or display, the following formula is used:

TokensInSec = (_totalAmount / _stakingDuration / _totalStaked) - (RewardAmountSent / _totalStaked / _stakingDuration);
reward = TokensInSec * _holderTokens * _holderDuration;

3. Dynamic Algorithm (DeFi Standard)

This algorithm is dynamic and the most common in DeFi protocols. It calculates the reward rate based on the total reward pool (_totalRewards) and the current total amount of staked tokens (_totalStaked).

Characteristics:

  • Proportionality: ensures reward distribution strictly proportional to the user’s share of the total staked amount and participation time.
  • Fairness: users with a larger stake receive proportionally higher rewards.
  • Participation dependency: the actual yield (APY) may fluctuate depending on the total number of tokens locked in the protocol, which is a typical feature of staking.
  • Special feature: at the moment of entry, the user sees one yield percentage, but receives rewards based on a different percentage.

At the moment of reward calculation or display, the following formula is used:

TokensInSec = _totalRewards / _stakingDuration / _totalStaked;
reward = TokensInSec * _holderTokens * _holderDuration;

The choice of a specific algorithm depends on the goals of the protocol and the desired predictability of returns.