Skip to main content

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.