Skip to main content

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

ParameterValueDescription
BASE_RATE5% (0.05)The minimum borrow rate at 0% utilization. Even when nobody is borrowing, this base rate sets a floor.
KINK80% (0.80)The target utilization point where the rate curve changes slope. Below this, rates increase gently. Above this, rates increase sharply.
RATE_AT_KINK25% (0.25)The borrow rate exactly at 80% utilization. This is the rate at the inflection point.
SLOPE125% (0.25)The rate of interest increase per unit of utilization below the kink. Calculated as (RATE_AT_KINK - BASE_RATE) / KINK = (0.25 - 0.05) / 0.80 = 0.25.
SLOPE21375% (13.75)The rate of interest increase per unit of utilization above the kink. Calculated as (MAX_RATE - RATE_AT_KINK) / (1 - KINK) = (3.00 - 0.25) / 0.20 = 13.75. This is deliberately very steep.
MAX_RATE300% (3.00)The theoretical maximum borrow rate at 100% utilization.

Rate Examples at Different Utilizations

UtilizationBorrow APRCalculation
0%5.00%BASE_RATE = 5%
20%10.00%5% + (0.20 × 25%) = 5% + 5%
40%15.00%5% + (0.40 × 25%) = 5% + 10%
60%20.00%5% + (0.60 × 25%) = 5% + 15%
80% (kink)25.00%5% + (0.80 × 25%) = 5% + 20%
85%93.75%25% + (0.05 × 1375%) = 25% + 68.75%
90%162.50%25% + (0.10 × 1375%) = 25% + 137.5%
95%231.25%25% + (0.15 × 1375%) = 25% + 206.25%
100%300.00%25% + (0.20 × 1375%) = 25% + 275%

As you can see, rates increase dramatically once utilization crosses 80%. Going from 80% to 90% utilization increases the rate from 25% to 162.5% — a massive jump designed to rapidly normalize the pool.


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:

  1. 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.

  2. 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.

  3. 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 — Aave, Compound, and most other 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:

  1. 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.

  2. Reserve factor: A portion of the interest income goes to the protocol's reserves, not to lenders.

The Reserve Factor

PredMart's reserve factor is 5% (0.05). This means 5% of all interest income is directed to the protocol's reserve account, and the remaining 95% goes to lenders.

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.

Example: Supply APY at 60% Utilization

Borrow APR = 5% + (0.60 × 25%) = 20%
Supply APY = 20% × 0.60 × (1 - 0.05) = 20% × 0.60 × 0.95 = 11.40%

Example: Supply APY at 85% Utilization

Borrow APR = 25% + (0.05 × 1375%) = 93.75%
Supply APY = 93.75% × 0.85 × (1 - 0.05) = 93.75% × 0.85 × 0.95 = 75.70%

Notice how the supply APY jumps dramatically above the kink — from 11.4% at 60% utilization to 75.7% at 85% utilization. This is by design: it attracts lenders quickly when the pool needs more liquidity.


How Interest Accrues

Per-Second Compounding

Interest in PredMart accrues continuously at the per-second level. The smart contract uses the following process:

  1. 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.

  2. The borrow rate is converted from an annual rate to a per-second rate:

    Per-Second Rate = Annual Rate / SECONDS_PER_YEAR

    Where SECONDS_PER_YEAR = 365.25 days × 86400 seconds = 31,557,600 seconds

  3. Interest for the elapsed period is calculated:

    Interest = Total Borrowed × Per-Second Rate × Elapsed Seconds
  4. The interest is added to totalBorrowAssets, increasing the total debt owed by all borrowers.

  5. A portion (5%) 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) every 30 seconds. 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

Comparing with Other Protocols

PredMart's interest rate parameters are calibrated specifically for prediction market collateral, which has unique characteristics compared to traditional crypto assets:

FeaturePredMartAave (USDC)Compound (USDC)
Base Rate5%~2-3%~2-3%
Kink80%~80-90%~80%
Rate at Kink25%~6-12%~4-6%
Max Rate300%~60-100%~100%+
Reserve Factor5%10-20%10-25%

PredMart's rates are generally higher than Aave or Compound because prediction market collateral carries unique risks:

  • Binary outcomes: Collateral can go to $0 instantly upon market resolution
  • Shorter time horizons: Markets resolve, so positions have finite lifespans
  • Variable liquidity: Some markets are highly liquid, others are thin

The higher base rate and steeper kink compensate for these risks while still offering competitive leverage for borrowers.


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