跳转至主要内容

ADA Rewards

Staking rewards are distributed to stMADA holders on a pro-rata basis every epoch (~5 days) in the Cardano Mainnet. These rewards are calculated based on several factors, including the number of blocks created by the staking pool, the pool's performance, and the total amount of ADA staked in the pool.

The Milkomeda DAO charges a 5% fee on the Cardano staking rewards, which is used to support the development and maintenance of the Milkomeda ecosystem. The remaining 95% of the rewards are then distributed to the holders of stMADA tokens.

Calculating Rewards

The rewards earned by each mADA holder are directly proportional to the amount of mADA they have staked in the Milkomeda Liquid Staking smart contract. These rewards are accumulated on-chain as accrued rewards.

备注

Formula for determining ADA Rewards:

rewards = (userShares / totalShares) x (totalRewards + totalDeposited) - userDeposit

where:

  • userShares - total amount of stMADA balance for user
  • totalShares - total staked mADA representing shares that has been minted to stakers (ie, stMADA)
  • totalRewards - total amount of unclaimed rewards for all users
  • totalDeposited - amount of totalShares + claimed rewards
  • userDeposit - total amount of stMADA + claimed rewards for that user

Example

Staking proportion

Consider a scenario with only two stakers in the Liquid Staking smart contract, with the following shares:

Shares (stMADA)BalanceRewards
User A75750
User B25250
Total1001000

After 8 ADA rewards are deposited in the liquid staking contract, the distribution becomes:

Shares (stMADA)BalanceRewards
User A75756
User B25252
Total1001008

UserA reward = (75/100) * (8 + 100) - 75 = 6

UserB reward = (25/100) * (8 + 100) - 25 = 2

When only one user (User A) claims their rewards, the value will be added to his balance, but it won't change the proportion of the pool, which will ultimately determine future reward distributions.

Shares (stMADA)BalanceRewards
User A75810
User B25252
Total1001062

With a new distribution of 8 ADA rewards, each user would have unclaimed rewards of:

UserA reward = (75/100) * (8 + 2 + 106) - 81 = 6

UserB reward = (25/100) * (8 + 2 + 106) - 25 = 4

(ie, userB would have his previous rewards of 2 plus a new distribution of 2)

备注

Users don't actually need to claim their rewards, because that will not affect the reward distribution and they will automatically be claimed when the user unstakes his shares.

stMADA Transfer

Holders of stMADA can transfer any part of their holdings to other users as they would with any ERC20 token. However, rewards must be claimed before being sent.

Consider in the following example that User B wants to make a transfer to User C.

Shares (stMADA)BalanceRewards
User A75810
User B25252
User C000
Total1001062

Although, User B has a total amount of 27 (accrued rewards + balance), he may only transfer 25 until he claims the rewards. After doing so, he may then send the amount of 27.