Skip to content

How It Works ​

Interest Exchange adds a fixed-rate accounting layer to an existing variable-rate loan. Borrowers hold FRT notional; backers hold VRT shares backed by loan-token assets at one rate of one maturity.

Pools, Expiries and Rates ​

A pool represents a supported lending market and its fixed-rate risk settings, including the variable-rate cap, minimum position size, the grid of available fixed rates, and settlement coverage rules.

Each pool has many expiries (maturities). Within an expiry:

  • a borrower holds one position that can contain several fixed rates (legs) sharing one prepaid balance; and
  • backers back exactly one rate, in that rate's book.

A series key names one rate of one expiry. The app handles it automatically.

RFQ Matching and Opening ​

The quote service runs short request-for-quote auctions. Connected backers respond with signed quotes for a particular market, maturity, rate, exact notional, and reserve amount. Each quote is one-shot, has a deadline, and may be restricted to the requesting wallet. Current quotes do not support partial fills.

Before acceptance, previewTakeQuote validates the signature and nonce, then returns the origination bond, fee, initial prepaid, total borrower cost, capacity status, and operator status. The wallet submits takeQuote through Bundler3 so QuoteMarket can recover the original initiator. The fill:

  1. pulls vrtAmount of the loan token from the maker;
  2. deposits it as VRT in the quoted rate's book for the maker;
  3. pulls no more than the taker's maxCost (bond, fee and the chosen prepaid); and
  4. adds the exact notional as a leg of the taker's position for that expiry.

Settlement ​

Each expiry accrues continuously up to maturity. It reads the adapter's debt index, ignores downward moves, and caps floating growth at the pool cap. A borrower's cost since its last update is its fixed interest minus the capped floating credit on its notional, taken from its prepaid. Backers earn the same fixed rate minus the capped floating on their active notional, less the protocol's cut.

Because cost depends only on total notional and the notional-weighted rate, a position with several legs behaves like one position at its average rate.

Prepaid Coverage and Sweeps ​

Each position sits in a cell: its average-rate column and the funding tick its prepaid reaches. When a column's level passes a cell's tick, the cell is broke and settle(poolId, expiry, budget, recipient) sweeps it. Every position in the cell is closed together, its bond is forfeited, and the caller may earn a bounded sweep incentive. A 4-ary tree over the columns finds broke cells without scanning every borrower.

There is no separate public liquidate function. A swept borrower collects what is left on its next action or through settlePosition. This is liquidation of the Interest Exchange overlay, not liquidation of collateral in the underlying lending protocol.

Exiting and Rolling ​

  • burnFRT repays part or all of one leg and returns its share of prepaid plus the vested portion of its bond. exitFRT closes every leg of an expiry. The bond is fully refundable at or after expiry; before that it vests over the second half of the position's term.
  • withdrawVRT burns VRT shares at the book's value while keeping the reserve for its active notional, after sweeping any liquidations that are due.
  • rollFRT moves a leg to another rate or expiry. The bond and its vesting clock carry over and no opening fee is charged.
  • QuoteMarket.takeRollQuote atomically adds maker reserve to the destination and rolls the leg using either borrower or keeper funding.

Optional Keeper Automation ​

Borrowers can configure KeeperBundler per expiry position. With the required operator and adapter permissions, keepers can top up prepaid, use surplus prepaid to repay underlying debt, or roll within a borrower-defined expiry/rate band.

Interest Exchange Protocol