referral 参数记录在链上;分润在链下计算,由 Powfi 团队支付。
流程
1
向团队登记你的渠道地址
约定你要使用的渠道地址、分润比例(y%)和结算周期。
2
用你的地址作为 referral 发起质押
你的前端或集成调用
stakeAlphWithReferral,传入你的渠道地址。每次质押都使用同一个地址。3
质押用户获得收益
随着协议收益的分配,xALPH 的兑换率会上涨。你的质押用户和其他 xALPH 持有者一样获得这部分收益。
4
结算和支付
每个周期,团队计算归属到你的 xALPH 所产生的收益,并以 ALPH 向你支付其中的 y%。
带 referral 质押
stakeAlph 相同(附加 amount + MINIMAL_CONTRACT_DEPOSIT 的 ALPH),用户收到的 xALPH 数量也一样。
Powfi 官方前端目前不支持传入 referral 参数。要把质押归属到你的地址,需要自建质押页面或集成,在其中调用
stakeAlphWithReferral。合约如何处理 referral
- 不校验,链上无需注册。
XAlphToken.stake(amount, referral)接受任意地址,只把它记录在Staked事件里。 - **referral 地址不接收任何代币。**由于没有向它转账,referral 不会出现在浏览器的交易页面中,只能在事件里看到。
- 质押必须由钱包发起。
stake要求调用者是资产(钱包)地址,所以合约不能代替用户质押。 - 事件为
Staked(to, referral, alphAmount, xAlphAmount):质押者、referral、存入的 ALPH、铸造的 xALPH。
验证归属
任何人都可以从节点读取交易事件,查看某笔质押归属到哪个 referral::<group> 后缀,它和不带后缀的是同一个地址。
分润如何计算
每个结算周期:- 归属的 xALPH:把所有
referral为你地址的Staked事件中的xAlphAmount相加。 - 兑换率涨幅:
yieldRateDelta = 本期末兑换率 − 上期末兑换率,其中兑换率 = totalDepositedAlph / totalXAlphSupply(见质押)。 - 总收益:
归属的 xALPH × yieldRateDelta,单位为 ALPH。 - 你的分润:
总收益 × y%。
- **只统计质押时铸造的 xALPH。**之后的 xALPH 转账和解除质押不会被追踪。
- **质押本身不改变兑换率。**新的质押按当前兑换率铸造 xALPH。只有存入奖励时兑换率才会上涨。
- **收益取决于协议收入。**兑换率在
RewardFeeCollector.distributeRewards()执行时上涨。它分配totalDepositedAlph × rewardRate × 经过时间 / 1 年(年化率),上限是费用收集器从交易手续费中获得的 ALPH。先扣除国库份额和销毁份额,剩下的部分用于提高 xALPH 兑换率。如果交易量很少,可分的收益也很少。
支付
分润是链下计算出的应付金额,不是质押时自动触发的链上转账。团队按照协议,从国库以 ALPH 支付。由于所有输入(Staked 事件和 xALPH 兑换率)都在链上公开,你可以独立复算自己的分润。可以向团队索取列出你各期结算的验证页面。