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.
Read next
- Default and liquidation — the cost of letting a loan default.
- Pool parameters — the full pool-level configuration that surfaces these numbers.