Contract Overview
InterestRatePool
The central state and accounting contract.
| Area | Main functions |
|---|---|
| Discovery | getPool, loanToken, seriesKey, borrowerPosition, seriesFees |
| Preview | previewMintFRTFor, previewBurnFRT, previewSupplyPrepaid, freeAssets |
| Creation | createPool, createSeries |
| Settlement | settle, settlePosition, claimSpreadFees |
| FRT | mintFRT, burnFRT, rollFRT, moveFRT, approveFRT |
| VRT | depositVRT, withdrawVRT, approveVRT |
| Prepaid | supplyPrepaid, withdrawPrepaid |
| Authorization | setOperator, setOperatorWithSig, isOperator |
FRT is stored in packed per-borrower state. VRT uses in-contract ERC-6909-style balances. There is no separate active FRT/VRT token contract.
QuoteMarket
Verifies maker-signed EIP-712 quotes and performs atomic two-sided fills.
previewTakeQuoteandtakeQuoteopen exact-notional FRT.previewTakeRollQuoteandtakeRollQuoteroll exact notional.cancelQuoteinvalidates one hash.raiseNonceinvalidates all older maker-nonce quotes.
Execution is restricted to the immutable Bundler3. takeQuote uses Bundler3's initiator as the taker and enforces the wallet-provided maxCost.
KeeperBundler
Stores signed or direct KeeperConfig values and executes keepTopUp, keepAutoRepay, and keepRollover. Third-party actions are limited by the user's configured thresholds, bands, and maximum keeper fee (hard-capped at 5%).
Adapters
ICoreAdapter connects settlement and keeper debt operations to a lending market. Pools can only be created with owner-allowlisted adapters, and each pool pins its loan token at creation.
Approval Boundaries
| Permission | Spender/operator | Purpose |
|---|---|---|
| Maker ERC-20 allowance | QuoteMarket | Pull vrtAmount when a quote fills |
| Taker ERC-20 allowance | QuoteMarket | Pull bond, fee, and initial prepaid up to maxCost |
| Borrower pool operator | QuoteMarket | Mint or roll FRT on behalf of the taker |
| Optional prepaid allowance | InterestRatePool | Pull extra prepaid supplied after a fill |
| Optional keeper operator | KeeperBundler | Run configured maintenance actions |
Bundler3 itself does not need a loan-token allowance or pool operator approval.
