Loan terms & fees
Each MLKY 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
(fair market value times loan-to-value, with LTV in basis points).
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 (APR) 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 for the term. Repaying early means you still owe the full term interest; repaying right before maturity means you owe the same amount. The one thing that recomputes it is extending, which settles the existing charge in full and books a fresh one against the new, smaller principal and the new term — it never rolls unpaid interest forward.
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 is put up for sale: the price opens at the $1,000 the oracle appraised it at and falls to your $700 principal over 24 hours. You can still repay the $717.25 payoff at any time until it sells. If it sells at, say, $900, then $45 is the 5% commission, $717.25 goes to your lender, and the remaining $137.75 is yours to claim.
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 charges origination (a slice of interest) and, if it ends up selling your card, a 5% commission on the sale price — see the settlement waterfall. The commission is charged on the sale, not on you: it comes out of the proceeds before anyone is paid.
- No default penalty and no repurchase premium. Repaying a defaulted loan costs the same payoff it always did.
- No extension, rollover or renewal fee. Extending costs the interest you already owed plus one fresh origination fee on the renewed term, computed by the same formula and the same percentage as the first one. Nothing is added for the fact that you are renewing rather than repaying, and nothing is charged for having reached maturity without the cash. See extending a loan.
- No oracle fee as a separate line item. Oracle costs are subsidized by the protocol today — including the fresh appraisal an extension requires.
Read next
- Extending a loan — what a renewal costs, with the same numbers worked through on a $500 loan.
- Default and liquidation — the cost of letting a loan default.
- Pool parameters — the full pool-level configuration that surfaces these numbers.