RFV & redemption
RFV (Reserve Floor Value) is the on-chain price floor beneath every IndexPad token. A creator-chosen share of all trade fees (rfvShareBps, 0–90% of the total fee) accrues as USDG in the index's dedicated IndexTreasury. Any holder can burn index tokens for their pro-rata share of that reserve, at any time, with no oracle and no permission.
The floor math
RFV per token = treasuryReserve / totalSupply
redeem(amount) pays out: amount × treasuryReserve / totalSupply (rounded down)
Read it on-chain:
IndexTreasury t = IndexTreasury(IIndexToken(index).indexTreasury());
t.reserveBalance(); // total USDG backing
t.rfvPerTokenWad(); // floor per token, 1e18-scaled
t.quoteRedeem(amount); // exact USDG you would receive
Redeeming
IERC20(index).approve(address(treasury), amount);
uint256 usdgOut = treasury.redeem(amount); // burns `amount`, pays USDG
Properties worth knowing:
- Redemption burns. Supply shrinks, so every redemption weakly raises the floor for remaining holders — the mechanism can't be drained below pro-rata.
- Always-on. No oracle, no pause switch, no admin in the redemption path. If the treasury holds USDG, you can redeem.
- Rounds down (in the floor's favor) and refuses zero-payout dust burns.
- Fee-free. The treasury is fee-exempt; redeeming is never taxed.
Why the floor matters
The RFV floor gives every index token an arbitrage-anchored lower bound: if the market price falls below RFV per token, buying and redeeming is risk-free profit, which bids the price back to the floor. Meanwhile every trade fee pushes the floor upward (for indexes with rfvShareBps > 0) — the token's worst case improves monotonically with volume.
A pure RFV index (rfvShareBps = 9000) turns this into the entire product: no stock dividends, all fees compound the floor.