DEVNETYou are on Solana devnet. Funds are not real. Behavior matches mainnet.

Loan terms & fees

Each Milky loan is shaped by a handful of parameters set partly by the protocol (hard ceilings everyone has to respect) and partly by the pool you borrow from (specific term options, fee tiers, and per-card caps within those ceilings). This page walks through every knob.

Loan-to-value (LTV)

LTV is the ratio of the principal you can borrow to the card's fair market value. The protocol enforces two LTV ceilings:

Protocol max LTV

90%

Hard cap. No pool can offer a higher LTV than this.

Default LTV

70%

The conservative default for production pools.

The actual LTV applied to your loan is the minimum of:

  • The pool's max_ltv_bps.
  • The LTV the oracle returns in your signed quote.

The oracle can choose a more conservative LTV than the pool ceiling for a particular card — for example, dropping it on assets with thin price history or unusual recent volatility.

Principal limits

Two limits cap the size of a single loan:

  • A per-pool floor, currently 1 USDC at the protocol level (pools can set higher floors).
  • A per-pool ceiling, currently 1,000,000 USDC at the protocol level (pools can set lower ceilings).
  • A per-card cap (max_principal_per_card) so that a single card can't consume an outsized fraction of the pool's liquidity.

Within these, the maximum principal for your card is FMV × LTV / 10,000.

Term length

Loans are fixed-term. Each pool publishes up to three term options; when you borrow, you pick one. The protocol ceilings on a term option are:

Min term length

1 day

Below this is rejected at pool init time.

Max term length

1 year

The pool can be configured shorter, but never longer.

Pools typically advertise term options like 7 days, 30 days, and 90 days, with progressively higher rates for longer durations. The exact options are visible in the app for each pool.

Interest rate (APR)

Each term option carries a fixed annual percentage rate in basis points. The interest you owe at repayment is computed once at draw time:

interest = principal × rate_bps × term_secs / (10,000 × seconds_per_year)

That number is locked in. Repaying early means you still owe the full term interest; repaying right before maturity means you owe the same amount.

The protocol cap on a term option's APR is 220% in basis points (max_interest_rate_bps = 22,000). Pools in production typically operate well below this ceiling.

Grace period

After maturity, the borrower has a grace window to repay before the loan becomes eligible for default. Each pool's grace period is set per term option, with these protocol bounds:

Default grace

7 days

The starting point for production pool configurations.

Max grace

30 days

Hard ceiling — no pool can offer a longer grace.

During the grace period, the loan is still Active and you can still repay on the original terms. There is no late-fee accrual during grace; the loan either gets repaid (happy path) or transitions to default (unhappy path).

Origination fee

The origination fee is a percentage of the interest amount (not of the principal), withheld from the disbursement at draw time:

Default origination fee

2%

Percentage of interest, withheld at draw.

Max origination fee

5%

Hard cap set at the protocol level.

Concretely, if your loan has a $700 principal and $35 of fixed interest, and the origination fee is 2% of the interest, you receive $700 − ($35 × 2%) = $699.30 at draw time. At maturity you still owe the full $700 + $35 = $735 payoff.

A worked example

Suppose:

  • The oracle prices your card at $1,000 with a max LTV of 70%.
  • You borrow from a pool with a 30-day term at 30% APR, a 7-day grace period, and a 2% origination fee.
  • You request a $700 principal (the maximum on this card).

Then:

  • Disbursement at draw: $700 − ($700 × 30% × 30/365.25 × 2%) ≈ $699.66.
  • Payoff at maturity: $700 + ($700 × 30% × 30/365.25) ≈ $717.25.
  • Total to-repay-before deadline: maturity = draw + 30 days, default eligible = maturity + 7 days.

If you don't repay by the default-eligible timestamp, the card goes to auction with a reserve price of $717.25 (the full payoff).

What you don't pay

For clarity, here's what is not charged on top of the above:

  • No late fees. After grace expires, the loan defaults rather than continuing to accrue extra interest.
  • No prepayment fees. Repaying early is just paying the same fixed interest.
  • No protocol fee on principal. The protocol only charges on origination (a slice of interest) and on the surplus above the debt in successful auctions — see the settlement waterfall.
  • No oracle fee as a separate line item. Oracle costs are subsidized by the protocol today.