Morpho Network · Fixed-rate credit

Morpho Midnight mechanics

Non-custodial, fixed-rate, fixed-term lending. Rates are set by the market — not a formula.

Network design

Midnight is not a V2 of Morpho Blue and does not replace it. The Morpho network now has two primitives: Blue for variable-rate, open-term flexibility; Midnight for predictable rate and duration. Capital can earn on Blue while quoting on Midnight.

Morpho Blue vs Morpho Midnight

Morpho Blue
RateVariable
TermOpen-ended
PricingIRM formula
StructureShared pool
Lender setsRisk
Morpho Midnight
RateFixed
TermFixed maturity
PricingOffer orderbook
StructureCredit / debt units
Lender setsRisk + rate + duration

What it is

Fixed-maturity lending markets

Isolated, immutable markets — each with a loan token, collateral config, and a single maturity date. Like Blue, markets are permissionlessly created primitives.

  • Positions tracked in fungible credit units (lenders) and debt units (borrowers)
  • Payoff structure like zero-coupon bonds — settle at maturity
  • Units are tradable before maturity (secondary liquidity)

Two unit types

📜
Credit unit
Lender claim on
repaid loan tokens
↔
📋
Debt unit
Borrower obligation
to repay by maturity

1 debt unit = repay 1 loan token before maturity. 1 credit unit = claim on those repaid tokens.

How rate is locked

P = tick price — USDC paid today per 1 credit unit (each CU redeems for 1 loan token at maturity). Quoted on the offer; not derived after fill.

P = 1 ÷ (1 + r)
Formula details · tick price P · CU / DU sizing
r = APR × (term_days ÷ 365)  ·  term return from quoted APR CU = USDC spent ÷ P  ·  units minted from upfront USDC DU = CU  ·  borrower owes the same unit count APR = (1 ÷ P − 1) × (365 × 86,400 ÷ ttm)  ·  reverse check (ttm in seconds)

Makers quote APR + maturity; the protocol maps that to P. When a taker fills, economics lock — no IRM drift, no utilization surprises.

Example · 100K USDC lend offer · 5.2% · 90 days

A lender signs a lend offer to deploy 100,000 USDC today · 90-day maturity · 5.2% APR on a cbBTC/USDC market. The offer sits in the mempool until a borrower fills it. Capital stays productive until fill — nothing mints until on-chain execution.

CU / DU calculations · 100K USDC · 5.2% · 90 days

Formulas · tick price P

P = USDC paid today per 1 CU  (1 CU = $1 USDC at maturity) — quoted on the offer r = APR × (90 ÷ 365)  →  term return from quoted APR P = 1 ÷ (1 + r)  →  tick price (~0.9873 = 98.73¢ per $1 face) CU = USDC spent ÷ P  →  100,000 ÷ 0.9873 ≈ 101,282 CU DU = CU  ·  APR = (1 ÷ P − 1) × (365 × 86,400 ÷ ttm) reverse check
1 · Unit definition Positions are denominated in fungible units with zero-coupon payoffs. 1 CU = claim on 1 loan token (USDC) at maturity  ·  1 DU = obligation to repay 1 loan token before maturity
2 · APR → tick price P The maker quotes 5.2% APR and 90 days; the protocol encodes that as P. r = 5.2% × (90 ÷ 365) ≈ 1.28% P = 1 ÷ (1 + 0.0128) ≈ 0.9873 → pay 98.73¢ today per $1.00 due at maturity
3 · USDC deployed → units Offer size = USDC spent at fill (100,000 upfront — not maturity face value). CU = 100,000 ÷ 0.9873 ≈ 101,282 DU = 101,282 (borrower owes the same unit count)
4 · Cash flows Lender: spend 100,000 USDC → hold 101,282 CU → redeem ~101,282 USDC at maturity Borrower: receive 100,000 USDC → owe 101,282 DU → repay ~101,282 USDC Return: 101,282 − 100,000 ≈ 1,282 USDC (~1.28% over 90 days = 5.2% APR)

At fill (today)

Lender · credit units
CU Minted ~101,282
💵 USDC spent 100,000
100,000 ÷ 0.9873 ≈ 101,282 CU · each redeems for 1 USDC at maturity
Borrower · debt units
DU Minted ~101,282
💵 USDC received 100,000
Receives principal today · must repay 101,282 USDC before maturity

At maturity (90 days later)

Lender redeems
CU Burned ~101,282
💵 USDC received ~101,282
settle ↔ 1:1
Borrower repays
DU Cleared ~101,282
💵 USDC repaid ~101,282
Rate and term lock at fill, not when the offer is published. The lender deploys 100,000 USDC upfront and receives more units than dollars spent — the extra ~1,282 USDC at maturity is the 5.2% return. No daily accrual, no utilization drift. Either side can trade units on secondary markets before maturity; hold-to-maturity economics stay fixed.

Offer-based matching (not a pool)

✍️
Maker
Signs offer tree
rate · size · expiry
→publish
📚
Mempool
Offchain orderbook
indexed by router/API
→fill
🎯
Taker
Selects best quote
submits on-chain
→settle
🌙
Midnight
Atomic unit mint/
transfer · rate locked

Position lifecycle

Step 1 · Quote
Maker publishes signed offer
Capital not locked — can stay in Blue/Vault until callback fires
Step 2 · Match
Taker fills on-chain
Fixed rate + maturity locked · credit/debt units minted or transferred
Step 3 · Hold (optional)
Trade units on secondary market
Exit before maturity by selling credit units — price reflects remaining term + credit risk
Step 4 · Maturity
Borrower repays · lender redeems
Credit units burned for loan tokens · debt units cleared · or roll via callback to new maturity

Capital efficiency

Quote without locking

Makers don't pre-lock collateral or loan tokens. Offers are conditional — liquidity is sourced via callbacks only when filled.

  • Lender keeps USDC in Morpho Vault V2 while quoting Midnight
  • On fill, callback withdraws and migrates atomically
  • Multi-market offers share one consumption budget

Tenor routing

Off-protocol search layer

The protocol stores offers; routers (e.g. Tenor) search across books, consumption groups, and callback paths to find executable liquidity.

  • Quote aggregation across maturities and markets
  • Vault→Midnight migration callbacks
  • Auto-roll at maturity (ratifier + callback patterns)

Key takeaways

1
Fixed rate is locked at match, not at quote intent Until a taker fills the offer, economics aren't binding. This differs from depositing into a variable pool.
2
Units, not share tokens Midnight positions are credit/debt units with zero-coupon payoffs — not ERC-4626 shares. NAV doesn't float with utilization.
3
Complements Blue Earn variable yield on Blue while quoting fixed rates on Midnight. Same collateral ecosystem, different term structure.
4
Isolated immutable markets Each market = loan token + maturity + collateral config. No admin parameter changes after creation.