Rates Desk · on-chain interest-rate & basis sleeve
An engine that prices the disagreement between Pendle implied yield, lending rates and perp funding — and refuses books where the high rate is just unpriced tail.
What it is, plainly
Not a "yield finder". It is a pricing engine: it decomposes every quoted rate into genuine carry and tail-risk compensation, and only takes the part that is honest carry.
Status
Paper research. Advisory — it opens no live positions. Every verdict is deterministic and hashed (LLM forbidden in the risk gate). Benchmarked against the ~3.4% RWA floor.
The four trade shapes
Stage and net APY are from the promotion backtest snapshot (backtest / walk-forward), not realized carry. These are candidate figures: in the backtest the working shapes clear the ~3.4% RWA floor. The live paper track is still short (~1 week) and does not yet beat the floor — see the live section below. BasisHedge is shown honestly blocked.
Lock a Pendle fixed (PT) rate that is genuine carry, not unpriced tail. Hold to maturity; no leverage.
The same priced carry, modestly levered against the lending rate when the spread is real and exit liquidity covers the size.
Carry hedged with a forward-funding short — would be β≈0. Blocked: Boros has no keyless/permissionless venue yet, so the hedge never forms. Reported as zero, never fabricated.
Cross-venue rate arbitrage: capture the disagreement between PT-implied, lending and funding rates across the matrix of venues.
Validated on 2.5 yr + 3 stress events
The refusal engine fired early: toxic ezETH / rsETH were vetoed before the depeg events (Aug-2024, Apr-2026), not in hindsight. In the backtest, the survivor book beats the 3.4% floor through every stress (backtest verdict — not the realized live track).
Window
≈2.5 yr history
Stress events
3 (depegs / funding flips)
Refusal fired
before the event
Honest caveat
Deflated Sharpe is degenerate for locked carry (near-zero variance by construction), so the GO does not rest on Sharpe. The GO is a backtest verdict — "net APY beats floor" in-sample, out-of-sample and through stress. It is not a realized track: the live paper carry is still accumulating (see below) and does not yet beat the floor.
Methodology & gate definitions →Live paper track — the rates desk, accruing
source: static / offline · —The validated FixedCarry sleeve now runs live in paper — accruing a forward track.
The validated FixedCarry sleeve runs live in paper (no capital) via com.spa.rates_desk_paper, accruing a forward track. This is advisory research — not the go-live track, not real capital — but it's the same engine that will run live, recorded transparently. From /api/rates-desk/track.
This track just started this sprint — it is an early forward record, not a long history. Below is "N days so far", honestly.
Days accrued
—
Cumulative return
—
Current equity (paper)
—
| Date | Equity (paper) | net APY |
|---|---|---|
| Track starting — no ticks yet. | ||
The refusal log
source: static / offline · —We publish what we refuse, not just what we trade.
This is the credibility artifact. Each row is a hashed gate verdict (ENTRY or REFUSAL) with its yield decomposition haircuts. A live feed from /api/rates-desk/decisions, most recent first.
Loading the decision log…
Proof of refusal — verifiable decision log
source: static / offlineEvery decision — what we harvested AND what we refused — is hashed into a tamper-evident chain.
Anyone can verify we didn't rewrite history. We publish our refusals, not just our wins. The server re-derives the whole chain from /api/rates-desk/proof and reports whether it is intact.
Head hash (fingerprint of the in-window history)
—
Head is a re-based sliding-window mirror (last 2000 decisions): stable across appends, re-bases when old rows are evicted. The immutable all-time ledger is audit_chain.jsonl.
| Verdict | Underlying | Reason | Haircut | Payload hash |
|---|---|---|---|---|
| Loading the proof chain… | ||||
How to verify
The chain is append-only. Each entry hashes the prior head (SHA-256), so flipping any past decision changes its hash — and the next entry no longer links to it, breaking the chain. A green badge means a from-scratch recompute of every hash agreed: history was not rewritten.
RateSurface
source: static / offline · —The current fixed/implied-rate quotes (PT / lending / boros) the engine scans. From /api/rates-desk/surface.
| Underlying | Kind | Venue | Quoted | TVL | Exit liq. | Hedge |
|---|---|---|---|---|---|---|
| Loading the rate surface… | ||||||
Opportunity scan: /api/rates-desk/opportunities — current shapes ranked by net edge.