Synthetix模式Solidity质押合约rewardRate设置与APR换算咨询
质押合约rewardRate与目标APR对应计算方法
首先明确该Synthetix架构质押合约的核心参数定义:
rewardRate:全网每秒发放的奖励代币总数量,数值精度与你的奖励代币的decimals保持一致(常见ERC20代币为18位小数,即1枚代币对应数值为1e18)- APR年化收益率:指用户质押1单位价值的代币满一年,可以获得的奖励总价值占质押本金的比例
通用计算公式
前提假设
如果你的质押代币与奖励代币为同一种,二者价值相等,可以直接用以下公式计算:
一年总秒数 = 365 * 24 * 3600 = 31536000 目标rewardRate = (目标APR数值 ÷ 100) * 预期全网质押总代币数量 ÷ 31536000
如果质押代币与奖励代币不是同一种,需要额外乘以二者的价格比值:
目标rewardRate = (目标APR数值 ÷ 100) * 预期全网质押总价值 ÷ 奖励代币单价 ÷ 31536000
计算示例(以18位小数的同本位代币为例)
假设你预期全网质押总规模为100万枚代币:
- 要实现100% APR:
rewardRate = 1 * 1000000 * 1e18 ÷ 31536000 ≈ 3.17e16
对应每秒全网发放约0.0317枚奖励代币。
2. 要实现200% APR:
rewardRate = 2 * 1000000 * 1e18 ÷ 31536000 ≈ 6.34e16
对应每秒全网发放约0.0634枚奖励代币。
注意事项
- 计算时填入的「预期全网质押总规模」为预估值,实际质押量高于预估值时,真实APR会低于目标值,反之则真实APR高于目标值
- 该合约的
rewardRate为固定值,后续可通过changeRate方法动态调整,匹配实际质押情况修正APR - 所有数值计算要和你的代币小数位数对齐,若代币为6位小数,将公式中的
1e18替换为1e6即可
内容的提问来源于stack exchange,提问作者Mohamed Abarri
相关产品推荐
相关产品推荐

