你把代币锁进合约,你的份额随之增值。下面是它此刻实际给出的收益、这些利息真正的来源,以及退出要付出什么。全部由链上数据算出,每分钟更新。
池子规模按天计,从合约启用的第一天算起。每个点都是在历史区块上对 totalPooledRnbw() 的一次直接链上查询;两个互不相干的节点给出了相同的结果。
虚线是纯粹的算术:它按最近 30 天同样的代币增量延长池子。速度取决于有多少人进出,而这在一周内就会变;这条线不对未来作出任何承诺。
自 3 月 31 日以来全部的质押记录。退出另有下方的表格,那里逐笔算出了扣除额。确切条数显示在表格下方,并会自动更新。地址和交易哈希在 Basescan 中打开。历史被切成每块 250 条事件,浏览器只取当前显示的那一页——大约 13 KB,而不是一兆字节。
增长并不是连续的。合约已经运行 … 天,其中大约每八天就有一天池子在缩小——那是退出压过进入的日子。四月的陡升是发放计划启动:两周内池子从 20 万涨到了 570 万。
这是已经躺在合约里、正在发给留在池中的人的部分。数值是活的:它随合约事件更新,不是手工写死在页面上的。
为什么待分配池总是不大。它不积累:每一笔新的退出费都会把七天的释放重新启动一次,币均匀地流向留下来的人。存着两三天的量是正常的工作状态,而不是钱要见底的信号。它只靠退出来补充:走的人越多,里面就越多,留下来的人收益率就越高。
返现储备不是一回事。它支付的是兑换手续费的返还,而不是质押利息,而且由团队来补充。两个口袋里通常都存着不到两天的量,所以这些支出靠的是定期补充,而不是已经攒下的存量。
按实际发放算出的年化收益率,而不是按承诺。两条线回答不同的问题:月线显示趋势走向,瞬时线显示合约此刻正在发放多少。两者都在有人退出时上升、有人进入时下降:奖励要分给池中所有人。
蓝线是 30 天窗口:一个月里份额涨了多少,折算成年化。绿线是合约的瞬时发放速度:它是阶梯状的,每有大额退出就跳上去,再用七天随着留存的流出慢慢回落。它不是承诺。
最初几周没有计算的意义。四月池子里只有几十万枚代币,而发放照旧,所以折成年化就成了三位数。那是分母太小的性质,不是当时真能指望的收益率。请看最近几个月的月线。
该序列由退出费历史和每日池子规模复原。以 /api/apr.json 提供:各列分别是 7 天、30 天和 90 天。
待分配池是从退出者身上扣下、合约还没来得及分发的那部分退出费。它并不会一次性发完:币会以恒定速度从池子里滴进质押池,滴的过程中,所有人的份额价格同时上涨。所以这个数字一直在动——别人的退出把它填上去,释放把它磨下来。
历史上的每一笔退出。「发生了什么」这一列不是我们的推测:合约状态是在退出前一个区块和退出所在区块各读一次,对比之后得出的结论。把速度给所有人提上去的大额退出在这里屈指可数,其余的只是延长了时长。
并不是每一次退出都会加快释放——这是最该弄明白的一点。只有当「待分配池除以七天」得出的速度高于当前速度时,合约才会重算:那时速度提升,七天的窗口重新开始。小额退出费根本不会动速度,它只延长速度能维持多久。代码里这是一道防护:rewardRate can only stay flat or increase。没有它,任何人都可以用极小的份额反复退出,每退一次就把其他人的收益压低一点。
要退出多少,速度才会被重算。眼下大约是 … RNBW。这个数不是固定的:只要没有大户退出,池子就会变干,门槛也就一小时比一小时高。作为对照,最近 245 次退出里最大的一笔是 460,126 RNBW——也就是说,平常日子里速度是不动的,变的只是持续时间。
池子见底意味着什么。释放窗口一到期,剩余部分会一次性倒进质押池,速度归零,下一笔退出重新把它定下来——这次按它自己的规模来定。所以这里的收益率不是平滑的:它在少数几次大额退出时向上跳,然后在池子变干的过程中回落。图上的锯齿就是这么来的。
该序列通过在历史区块上调用归档接口 undistributedFees() 重建,每小时一个点,并由采集器继续记录。以 /api/pothist.json 对外提供。机制已对照合约源码核验,函数为 _addFees。
Base 网络每两秒出一个区块,而合约是连续计息的——也就是说,在费率改变之前,每个区块都往池子里加上同样的一份。图表按小时显示合约启用以来的这个数值。那些台阶是质押和退出:每发生一次,费率就重算一遍。
图上的数值,是两秒内一次性加到合约中全部代币上的量。你拿到的那一份,正好等于你的仓位占池子的比例:用你的金额除以池子规模,再乘以图上的高度。
最初几周的费率是零。合约在 2026 年 3 月 31 日开始工作,而发放从四月才开始——在那之前无可计息。在「全部」视图里,这表现为最开头那段贴着零的平直线。
Rainbow 返还一部分兑换手续费——最低等级 10%,最高等级 100%。智能合约把 RNBW 放入池子,并当场给收款方发放整个池子中的一份份额。图上是每天发放了多少。
返现是个人的,质押者的收入是共同的——它来自退出。返现发放时按比例铸造份额 —— sharesToMint = rnbwCashback × totalShares / totalPooledRnbw —— 所以份额单价不变:池子变大了,变大的那部分属于获得返现的那个人。
它是这样运作的:任何一个质押者退出时,他整个仓位的 10% 会留在池子里,并在七天里均匀滴给所有留下的人。这才会抬高份额单价,于是落到池子里每个人手里。退出的人越多,您的收益越高——而这是池子唯一的收入。
Basic 等级不质押也适用——只是付款方式不同。Rainbow 应用里一共五个等级,最低的 Basic 在卡片上写得明明白白:「Stake to unlock: 0 RNBW」,返现 10%。也就是说,10% 这个比例是一样的,无论您是否质押。不同的只是钱怎么到手,而那是合约的性质,不是等级的:
— 完全没有质押:合约直接拒绝(if (shares[user] == 0) revert NoStakePosition),Rainbow 改用另一个合约 RNBWRewards 直接转账。币落在地址上,从不进入池子。这类付款不在下面的表格里。
— 质押了任意数量:合约把 RNBW 放进池子并给接收者铸造份额。这些记录在表格里,标注为 Basic。已验证:仓位 1.005 RNBW 就能发放,没有最低门槛。
这个分界毫无例外:我们在每一笔直接转账所在的区块上读取了收款人的质押仓位——七十九笔全部为零。由此对本表有一个推论:表中的接收者比 Rainbow 实际有返现的用户要少。不质押的人绕过池子拿到他们的 10%,在这里看不到。
数据来源:质押合约的 CashbackAllocated 事件(合约地址 0x288ea8Bcb51d53aD361D786EFa904C401904aF70)。发放是成批进行的:后端每五分钟签名并发送已累积的部分 —— 98% 的发放正好落在五分钟整点上,一笔交易里最多可达三十笔。究竟因何发放,链上并未记录:事件只带有地址和金额。 表格和图表中的时间均为 UTC。
等级由仓位大小决定:质押的 RNBW 越多,返还的手续费比例越高。点击地址数即可查看名单。门槛取自应用——合约对等级一无所知,它只是发放后端签名的那笔金额。 每张图各有自己的刻度:要比较的是曲线的形状,而不是高度。横轴是自合约上线以来的时间,纵轴是当天处在该等级的地址数。
本表按所有持仓地址的当前仓位计算:直接读取合约,每五十个地址一次调用。
来源只有一个,这比数字本身更重要。让您的仓位变大的一切,都来自待分配的留存费用,别无他处。
退出的人要留下整个仓位的 10%。这些币进入待分配的留存费用,并在整整七天里均匀滴给留下的人:您的份额数量不会增加,而是每一份都变得更值钱。这是池子内部的再分配——没有一枚币被从市场上抽走。整个历史上这样汇集了 1 212 973 RNBW,约合每年 240 万。
返现和由项目出资的质押同样会把 RNBW 放进池子,但合约会立刻按照所加入的币精确成比例地给接收者铸造份额。比例没变,于是份额价格分毫未动。这样已经向 1 912 个地址发出 7 425 873 RNBW——但那是给特定接收者的礼物,而不是其他质押者的收入。
由此得出最重要的推论。这里的收益取决于有多少人退出。退出越多,留下的人利率越高;退出一旦枯竭,收益就会归零,无论项目发出多少返现。所以利率会摆动:一周 …,三个月 …。
返现靠什么支撑。流经管理 Safe 的 7 122 135 RNBW 中,有 3 237 348 是在市场上回购的,即 45%。其余来自国库和旧有储备。这不影响池子的收益,但显示了项目用什么来支付这个计划。
这套质押内置了一个反馈回路,它解释了收益率数字为什么跳得这么厉害。奖励要分给池内所有人,所以池子规模处在分母上。在此之上,有三股力量把收益率推向不同方向。
当新代币进入池子而奖励流量不变时,分到每一枚 RNBW 头上的就更少。什么都没坏——只是同一个饼要分给更多张嘴。
离开的人留下整个仓位的 10%。这些币归留下来的人——分子变大。同时池子本身按整个离场仓位缩小——分母变小。两个动作方向一致,所以邻座的退出,比他的进场更容易被察觉。
于是回路闭合。所以这里的收益率是围绕某个水平摆动,而不是保持平直:当前 …,对比月度平均 …。
量级大致如此。按现在 … RNBW 的池子规模,按金额计算有 5% 的池子退出,会在合约里留下约 11.9 万枚代币。对留下来的人而言,在这笔退出费被滴完的过程中,这大约是一周 0.53%——折成年化,约为常规收益率之上再加 27%。10% 的人离开就是这个数的两倍。这个数字本身相当可观,质押收益率的曲线之所以呈锯齿状,正是因为它。
这是拿什么换来的。这套机制不创造任何东西:退出费是从离开者的口袋挪进留下者的口袋,一枚对一枚。长期持有者确实靠退出的人多拿到了 RNBW——但拿到多少,他们就正好损失多少。流通中的代币总量并不因此改变,所以不该指望它推高价格:这里的好处是再分配,不是赚钱。
还有另一面。同一套机制也意味着,参与者越安分,第一个来源出的钱就越少。如果有一天所有人都成了长期持有者,退出费就归零,剩下的只有项目方转进来的部分——而它并没有义务这么做。把「靠别人折腾赚来的收益」当成一个恒定值来指望是不行的:折腾在,它才在。
部分提取被禁止——allowPartialUnstake 返回 false。取走一部分做不到,只能一次全取。
连同已攒下的部分一起算,而不只是利润部分。exitFeeBps 等于 1000,取整时向上,归协议一方。
释放本身每秒往池子里加上一个固定的量——就它而言,增长是线性的。与此同时也没什么可以手动再投的:你的份额数量不变,变的是份额的价格。
而从退出者身上收来的费用,是按份额价值分配的——到那一刻,你的份额已经因为此前的计息而涨过了。也就是说,赚到的东西开始自己赚钱,不需要你做任何动作。这就是复利,只不过给它计息的不是日历,而是别人的退出:为什么是这样的构造。
池子增长的是 RNBW。如果币价跌幅超过攒下的利息,按美元算的结果就是亏的。
trustedSignerCount 等于一。第二条奖励分支依赖后端,而不只依赖合约代码:这既是一个信任点,也是一个故障点。
Base 网络上的合约 0x288ea8Bcb51d53aD361D786EFa904C401904aF70,源代码已验证。上面写的一切,都不需要你相信我们。
| 看什么 | 合约函数 |
|---|---|
| 池子规模 | totalPooledRnbw() |
| 退出费的释放速度 | rewardRate()、undistributedFees() |
| 项目方发放所用的储备 | cashbackReserve() |
| 退出罚金的比例 | exitFeeBps() |
| 是否允许部分退出 | allowPartialUnstake() |
| 有多少个受信任签名者 | trustedSignerCount() |
| 你的仓位 | shares(地址)、getPosition(地址) |