Radiant V2 IR curves: peer benchmarking and loop economics analysis

Hi all — first time posting on this forum. Sharing an independent, data-driven analysis of Radiant V2’s current IR curves and the economics of loop farming under the present incentive structure. This complements the ongoing discussion in [esports4053’s thread on IR curves and RDNT incentives]( Interest rate curves and rdnt incentives approach changes ) but is presented as a standalone write-up for community review.

All data is from public sources (DefiLlama + Arbitrum RPC, snapshot 2026-04-21) and the full analysis is reproducible — scripts and CSVs available on request.

**Competitive rate gap**

| Asset | Radiant borrow | Peer median | Gap |

|—|—|—|—|

| USDC | 11.18% | 3.28% | **+790 bps** |

| WETH | 8.51% | 1.58% | **+693 bps** |

| ARB | 10.51% | 5.45% | +506 bps |

| WBTC | 1.80% | 1.76% | +3 bps |

At +500 to +800 bps above market, rational borrowers self-select into peers (Aave V3, Compound V3, Morpho, Silo). The 68–75% utilization visible on USDC and WETH therefore cannot be demand-driven — it has to be reflexive supply.

[attach: fig3_tvl_comparison.png]

**Loop economics make the incentive structure concrete**

With LTV = 0.8, a 5-round compounded loop, current USDC rates, and an approximate ε_s (supply-side emission APR) derived from on-chain `rewardsPerSecond` × RDNT TWAP × a 50% allocation assumption:

- dLP-eligible wallets: **loop APR ≈ +11.5%** (profitable)

- non-eligible wallets: **loop APR ≈ −15.5%** (unprofitable)

This matches the diagnosis already circulating in the existing thread: the borrow side is sustained by a closed set of locked-dLP holders recycling emissions, not by organic demand.

[attach: fig4_loop_economics.png]

**Minimum condition to eliminate loops**

Setting ε_b = 0 (as proposed in governance), the loop becomes unprofitable when:

```

r_s + ε_s < L · r_b

```

For peer-matched USDC (r_b ≈ 3.3%, L = 0.8), this gives:

```

ε_s < ~1.0% APR

```

So the ε_b = 0 change alone is necessary but not sufficient — the supply-side emission ceiling also matters, and it comes out to roughly 1% APR on USDC for loops to be structurally unprofitable. Similar derivations per asset are in the full write-up.

**Recommended curve parameters**

Fit via weighted least-squares to the per-U median of Aave V3 and Compound V3 on Arbitrum, using their actual on-chain curve parameters:

| Asset | U* | r0 | s1 | s2 | Rate at kink |

|—|—|—|—|—|—|

| USDC / USDT | 0.90 | 0.75% | 3.25% | 23% | 4.00% |

| WETH | 0.90 | 1.02% | 0.50% | 10% | 1.52% |

| ARB | 0.45 | 0.00% | 7.00% | 300% | 7.00% |

| WBTC | 0.80 | 0.50% | 4.00% | 300% | 4.50% |

Effect at current live utilization:

- USDC: 11.18% → 3.44% borrow rate (**−774 bps**)

- WETH: 8.51% → 1.40% (**−711 bps**)

- ARB: 10.51% → 5.45% (**−506 bps**)

- WBTC: 1.80% → 1.13% (already roughly competitive)

[attach: fig1_curve_overlay_usdc.png]

[attach: fig2_curve_overlay_weth.png]

**Honest limitations**

- Radiant’s own on-chain curve parameters could not be read in this pass — the pool proxy uses a non-standard implementation slot (EIP-1967 and older patterns all returned zero). Comparison is against peer curves only.

- Per-asset allocation point (supply vs borrow split) was approximated at 50/50 rather than read from `ChefIncentivesController.poolInfo`. Worth tightening before any governance vote.

- Demand elasticity for post-change utilization shift has not been fit (Radiant’s post-hack history has too few clean rate-change events). Any forward projections should be treated as order-of-magnitude.

- Historical 90-day utilization timeseries per asset was not pulled in this pass.

None of these change the direction of the recommendation, but they cap the confidence on exact magnitudes.

**What this analysis is and isn’t**

- Independent work, no prior engagement with Radiant or any named peer protocol

- Offered as input to the ongoing IR curve review — the team is free to adopt, adapt, or set aside any part of it

- Full section-by-section write-up (§1–§8), CSVs of all inputs, and the Python scripts that produced the figures are available — happy to share the repo link in a follow-up or DM if useful

- Happy to iterate on any assumption the team would set differently (allocation split, ε_s cap target, peer-set choice, demand-elasticity model, etc.)

Questions and pushback welcome.