Interest Rates
PredMart uses a kinked (two-slope) interest rate model to determine borrowing costs and lending yields. This model dynamically adjusts interest rates based on how much of the lending pool is currently being utilized by borrowers. The design ensures that interest rates are low when capital is abundant, moderate during normal usage, and very high when the pool is nearly depleted — creating natural economic incentives that balance supply and demand.
This page provides a complete explanation of the interest rate model: how it works mathematically, why it's designed this way, what each parameter means, and how to interpret the rates you see on the PredMart interface.
The Utilization Rate
The foundation of PredMart's interest rate model is the utilization rate — the percentage of the pool's total assets that are currently borrowed:
Utilization Rate = Total Borrowed / Total Assets
Where: - Total Borrowed = The total amount of USDC currently lent out to borrowers (including accrued interest) - Total Assets = Total Borrowed + Available USDC in the pool
The utilization rate ranges from 0% (nothing is borrowed, all USDC is idle) to 100% (everything is borrowed, no USDC is available for withdrawals).
Example: - Pool has $500,000 in total assets - $300,000 is currently borrowed - Utilization = $300,000 / $500,000 = 60%
The utilization rate determines the borrow interest rate, which in turn determines the supply yield. Higher utilization means higher rates for both borrowers and lenders.
The Kinked Rate Model
PredMart uses a two-slope (kinked) interest rate model, which is the same general approach used by major lending protocols like Aave and Compound. The model defines a kink point — a target utilization level at which the interest rate curve changes slope dramatically.
Below the Kink (Normal Operations)
When utilization is at or below the kink point (80%), interest rates increase gradually:
Borrow Rate = BASE_RATE + (Utilization × SLOPE1)
This creates a gentle, linear increase in rates as more of the pool is borrowed. The goal is to keep rates competitive and predictable during normal operations.
Above the Kink (High Utilization)
When utilization exceeds the kink point (80%), interest rates increase steeply:
Borrow Rate = RATE_AT_KINK + ((Utilization - KINK) × SLOPE2)
The steep slope above the kink creates urgency: it becomes very expensive to borrow, incentivizing borrowers to repay quickly. Simultaneously, the high rates attract new lenders to deposit USDC, increasing available liquidity.
The Parameters
For exact values of BASE_RATE, KINK, SLOPE1, SLOPE2, and MAX_RATE, see Protocol Constants.
Rate Behavior
Rates increase gradually below the 80% kink (e.g., ~34% at 60% utilization). Above the kink, rates spike dramatically — going from 42% at 80% utilization to ~180% at 90% — creating strong incentives for borrowers to repay and lenders to deposit.
Why the Kink Exists
The kink serves a critical purpose: it protects lenders' ability to withdraw their funds.
If the interest rate were simply a straight line from 0% utilization to 100% utilization, rates at high utilization wouldn't be high enough to strongly discourage borrowing. The pool could easily reach 95%+ utilization, leaving very little liquidity for lenders to withdraw.
The steep slope above 80% creates a natural equilibrium:
-
For borrowers: Rates above 80% utilization are painfully expensive. A borrower paying 100%+ APR has a strong incentive to repay immediately. Very few borrowers will maintain positions when rates are this high.
-
For lenders: The extremely high yields above 80% utilization attract new deposits quickly. If lenders see a 50%+ supply APY, many will rush to deposit USDC, increasing available liquidity and pushing utilization back down.
-
The equilibrium: Through these opposing forces, the pool naturally gravitates toward utilization below the kink point (80%). Temporary spikes above 80% resolve themselves quickly through market forces.
This design has been battle-tested across DeFi — major lending protocols use the same kinked model (with different specific parameters).
Supply APY vs. Borrow APR
Borrow APR (Annual Percentage Rate)
The Borrow APR is the interest rate that borrowers pay on their outstanding loans. It is calculated directly from the utilization rate using the kinked model described above. The APR is expressed as an annualized rate but accrues per-second.
Supply APY (Annual Percentage Yield)
The Supply APY is the yield that lenders earn on their deposited USDC. It is derived from the borrow APR, the utilization rate, and the reserve factor:
Supply APY = Borrow APR × Utilization Rate × (1 - Reserve Factor)
The supply APY is always lower than the borrow APR for two reasons:
-
Utilization dilution: Interest income from borrowers is spread across all deposited USDC — including the portion that's not currently borrowed. If only 60% of the pool is utilized, the interest from that 60% is shared among 100% of depositors.
-
Reserve factor: A portion of the interest income goes to the protocol's reserves, not to lenders.
The Reserve Factor
A portion of interest income (the reserve factor) goes to the protocol's reserves; the rest goes to lenders. Additionally, lenders receive a share of the 10% profit fee collected when leveraged positions close with gains (split between lenders and the protocol — see Protocol Constants).
The reserves serve as a small buffer against bad debt and also generate revenue for the protocol's ongoing development and operation. The admin can withdraw reserves via the withdrawReserves() function on the smart contract.
Examples
| Utilization | Borrow APR | Supply APY |
|---|---|---|
| 60% (below kink) | 34% | 18.36% |
| 85% (above kink) | 110.75% | 84.72% |
Supply APY jumps dramatically above the 80% kink. By design — high yields rapidly attract new lenders when the pool needs liquidity.
How Interest Accrues
Per-Second Compounding
Interest in PredMart accrues continuously at the per-second level. The smart contract uses the following process:
-
Each time a state-changing function is called (borrow, repay, deposit, withdraw, liquidate), the contract calculates how many seconds have elapsed since the last accrual.
-
The borrow rate is converted from an annual rate to a per-second rate:
Per-Second Rate = Annual Rate / SECONDS_PER_YEARWhereSECONDS_PER_YEAR = 365.25 days × 86400 seconds = 31,557,600 seconds -
Interest for the elapsed period is calculated:
Interest = Total Borrowed × Per-Second Rate × Elapsed Seconds -
The interest is added to
totalBorrowAssets, increasing the total debt owed by all borrowers. -
A portion (10%) of the interest is added to the protocol's reserves.
The Borrow Index
To efficiently track individual borrower debts, PredMart uses a borrow index — a monotonically increasing number that represents the cumulative interest factor since the pool's inception.
When you borrow, your position records the borrow index at that time. Your debt at any future point is:
Current Debt = Original Borrow × (Current Borrow Index / Index at Borrow Time)
This avoids the need to iterate over all borrowers to update their individual debts — the index applies equally to everyone.
Practical Implications
- Interest accrues even when nobody interacts with the contract (it's calculated retroactively on the next interaction).
- The longer the time between contract interactions, the more interest accumulates in a single update.
- For borrowers: your debt grows every second, not just daily or monthly.
- For lenders: your pUSDC shares appreciate every second as well.
Rate History and Monitoring
On the PredMart Interface
The Lending page displays: - Current Borrow APR: The interest rate borrowers are currently paying - Current Supply APY: The yield lenders are currently earning - Current Utilization: The percentage of the pool currently borrowed - Rate History Charts: Historical data showing how rates have changed over time
Rate Snapshots
PredMart's backend records pool statistics (including utilization, borrow rate, and supply rate) at frequent intervals. This creates a detailed historical record that powers the rate history charts.
Available time windows: - 1 Week: Shows recent rate movements in detail - 1 Month: Shows medium-term trends - 6 Months: Shows long-term rate patterns and seasonality
API Access
Developers can access rate data programmatically:
GET https://api.predmart.com/lending/rate-history?period=1w
GET https://api.predmart.com/lending/rate-history?period=1m
GET https://api.predmart.com/lending/rate-history?period=6m
Why PredMart's Rates Run Higher Than Generic DeFi Lending
Prediction market collateral carries unique risks: binary outcomes that can go to $0 on resolution, finite time horizons, and variable per-market liquidity. The higher base rate and steeper kink compensate for these risks while still offering competitive leverage.
Next Steps
- Risk Parameters — Understand the LTV curve and health factor
- Lending — Learn how supply APY translates to your earnings
- Borrowing — See how borrow APR affects your leverage costs
- Protocol Constants — Full reference of all rate parameters