TermSupplySide
yield | collateral | both
rate objectrequired
All rates are NOMINAL APR in PERCENT (3.85 = 3.85 %/yr) — never a fraction, never an APY.
variable-curve | variable-managed | user-set | fixed-term | zero-interest | prepaid | nav-accrual | none. A zero-interest market is NOT a free borrow — the cost is a one-off fee.
Base rate only.
components objectrequired
PRICEABLE rewards only.
base + priceable rewards + intrinsic. Deliberately EXCLUDES points programs, which have no priceable value — see rewards[].indicative.
Possible values: [apr-nominal]
userSet objectnullable
Present when the BORROWER sets the rate (Liquity family). A borrow UI must render an input: the rate decides your place in the redemption queue, so the cheapest is also the first redeemed. Omit the rate on the action and the protocol applies default (the branch average).
rewards object[]nullable
asset objectnullable
token | points | unknown
Possible values: [supply, borrow]
accrual | merkl | manual | none
Points — not priceable, and excluded from aprTotal.
menu object[]nullable
Term identifier — MEANING IS LENDER-SPECIFIC. Exactly and TermMax: the pool/market unix MATURITY timestamp. Lista: the broker-defined product id. Teller: the duration in seconds (rolling term). Midnight and Term Finance: 0, a placeholder (single maturity per market, so the id carries no information). Pass to /v1/actions/lending/borrow?termId=…. Numeric on-chain; some upstream feeds serialize it as a string — coerce with Number() when comparing.
2Annualised fixed LEND rate at this maturity, in percent (Exactly only — its fixed pools quote both sides).
Borrowable liquidity at this maturity in loan-token human units (Exactly only).
How long the position is locked at the fixed rate, in days (e.g. 7, 14, 30).
7Term duration in seconds (raw on-chain value).
604800Annualised borrow APR for this term, in percent (e.g. 3.85 = 3.85%). Same unit as variableBorrowRate / stableBorrowRate. For order-book markets (Midnight) this is the 0-notional top-of-book (cheapest) rate — see aprAtAmount for the size-weighted rate.
3.85Size-weighted (VWAP) borrow APR % at the supplied debt notional, for order-book fixed-term markets (Morpho Midnight): the borrow book filled cheapest-first, (Σ filledᵢ·aprᵢ)/amount. Present only when an amount is supplied AND the term carries an order-book ladder; broker rate cards (Lista, single flat rate) omit it and apr already applies at any size.
Total loan-token depth in this term's order book — the maximum borrow openable at this maturity. Present only for order-book terms with an amount supplied.
True when the supplied debt notional exceeds fillable — the book can't fully fund the borrow at this maturity (aprAtAmount is then the drain-the-book VWAP).
ladder object[]nullable
Order-book borrow ladder (best-borrow first) for order-book fixed-term markets (Midnight). Only serialized when depth=true (bulky). aprAtAmount is the pre-computed size-weighted rate; use this to re-derive it at any amount.
Annualised borrow rate at this tier (%).
Credit/debt units at this tier (raw).
Loan-token size available at this tier.
maturity objectrequired
perpetual | fixed-date | rolling-duration
Unix seconds.
What happens if NOBODY acts — the field that most surprises users. stops-earning | penalty-accrues | liquidatable | default-seizure | physical-delivery | refinanced | auto-roll | none.
Window before atMaturity bites. Observed as low as 300 s (Teller).
exit objectrequired
sync | async
How long YOUR money is locked.
liquidity objectnullable
none | haircut-formula | market-price | may-be-impossible
fees object[]
Stable slug: origination, late-penalty, early-repay-discount, reserve-contribution, instant-exit, performance, reserve-factor, …
Self-describing, so an id a client does not recognise still renders correctly.
entry | ongoing | exit | late | liquidation | performance
apr-percent | percent | bps | absolute
principal | face-value | yield | collateral | shares | debt-repaid
Native-token value to send with the transaction, in wei.
Governance-mutable — a snapshot.
Only resolvable at action time (Exactly’s discount, TermMax’s curve price).
Human-readable label for this entry.
fees object[]required
Stable slug: origination, late-penalty, early-repay-discount, reserve-contribution, instant-exit, performance, reserve-factor, …
Self-describing, so an id a client does not recognise still renders correctly.
entry | ongoing | exit | late | liquidation | performance
apr-percent | percent | bps | absolute
principal | face-value | yield | collateral | shares | debt-repaid
Native-token value to send with the transaction, in wei.
Governance-mutable — a snapshot.
Only resolvable at action time (Exactly’s discount, TermMax’s curve price).
Human-readable label for this entry.
backedBy object
What backs a deposit (supply.backedBy) or what may be posted (borrow.acceptedCollateral).
Number of entries in items.
debt | allocation | unweighted. unweighted means the ACCEPTED SET, not a measured split — pooled lenders do not record on-chain which collateral backs which borrow, so weightPct is absent and a pie chart would be fabricated.
1 (best) … 5 (worst).
items object[]nullable
Omitted on terms=digest; each entry carries its own marketUid for resolution.
asset object
Market identifier, formatted lender:chainId:address.
Loan-to-value ratio, as a fraction between 0 and 1.
oracle objectnullable
The market’s price input. SINGULAR by construction at marketUid granularity — verified across the full classification, 0 markets carry more than one address.
price-feed | nav-attested | none. none is a FACT, not missing data (Teller liquidates on time and has no feed anywhere in its trigger; Frankencoin uses an owner-declared price).
Lowercased. The contract the protocol actually calls.
Normalized risk score — lower is safer.
Possible values: [LOW, MEDIUM, HIGH, CRITICAL]
mutability objectnullable
quality objectnullable
counterparty objectrequired
availability objectrequired
Gate the CTA on THIS and nothing else — it already folds in caps, freezes, auction windows and gating.
Minimum to OPEN, RAW base units of this side’s asset. On borrow a minimum DEBT (Comet baseBorrowMin, Liquity minDebt, Maker dust, Resupply minimumBorrowAmount); on supply a minimum COLLATERAL (Frankencoin). A smaller amount REVERTS — validate before building.
window objectnullable
principal objectrequired
info objectrequired
Ready-to-render one-liner, templated from this market’s live numbers. ALWAYS populated — it is the graceful-degradation path when a client meets an enum member it predates.
Fixed 4.12% until 3 Sep 2026 · repay any time at face valueHuman-readable label for this entry.
Consequences a rate alone hides, ordered MOST SEVERE FIRST. Present only on terms=full.
Machine tags derived from the structured fields (never hand-written), e.g. time-liquidation, full-collateral-seizure, redeemable, exit-cooldown. Present in BOTH the digest and the full sheet, which is why severity can be computed from either.
{
"role": "string",
"rate": {
"kind": "string",
"apr": 0,
"components": {
"base": 0,
"rewards": 0,
"intrinsic": 0
},
"aprTotal": 0,
"basis": "apr-nominal",
"compounding": "string",
"source": "string",
"isLocked": true,
"minApr": 0,
"maxApr": 0,
"userSet": {
"required": true,
"min": 0,
"max": 0,
"default": 0,
"adjustable": true,
"adjustmentCostNote": "string",
"adjustmentCooldownSecs": 0
},
"rewards": [
{
"asset": {},
"kind": "string",
"apr": 0,
"side": "supply",
"claim": "string",
"endsAt": 0,
"indicative": true
}
],
"menu": [
{
"termId": 2,
"depositApr": 0,
"available": 0,
"durationDays": 7,
"durationSecs": 604800,
"apr": 3.85,
"aprAtAmount": 0,
"fillable": 0,
"capped": true,
"ladder": [
{
"apr": 0,
"units": "string",
"assets": 0
}
]
}
]
},
"maturity": {
"kind": "string",
"maturity": 0,
"maturityIso": "string",
"secondsToMaturity": 0,
"minDurationSecs": 0,
"maxDurationSecs": 0,
"atMaturity": "string",
"graceSecs": 0
},
"exit": {
"mode": "string",
"settlement": "string",
"cooldownSecs": 0,
"liquidity": {},
"partialAllowed": true,
"priceRisk": "string",
"fees": [
{
"id": "string",
"label": "string",
"when": "string",
"unit": "string",
"basis": "string",
"value": 0,
"payee": "string",
"mutable": true,
"indicative": true,
"description": "string"
}
]
},
"fees": [
{
"id": "string",
"label": "string",
"when": "string",
"unit": "string",
"basis": "string",
"value": 0,
"payee": "string",
"mutable": true,
"indicative": true,
"description": "string"
}
],
"backedBy": {
"count": 0,
"weightBasis": "string",
"worstRiskScore": 0,
"worstOracleBand": "string",
"topWeightPct": 0,
"items": [
{
"asset": {},
"marketUid": "string",
"via": "string",
"weightPct": 0,
"ltv": 0,
"liquidationLtv": 0,
"oracle": {
"kind": "string",
"address": "string",
"components": [
"string"
],
"provider": "string",
"priceDescription": "string",
"intendedPair": "string",
"correctAsset": true,
"correctNumeraire": true,
"score": 0,
"band": "LOW",
"flags": [
"string"
],
"mutability": {}
},
"quality": {}
}
]
},
"modes": [
{}
],
"counterparty": {},
"availability": {
"canOpen": true,
"canClose": true,
"blockedBy": "string",
"gating": "string",
"minSize": "string",
"cap": "string",
"capUtilization": 0,
"requires": [
"string"
],
"window": {}
},
"principal": {},
"info": {
"headline": "Fixed 4.12% until 3 Sep 2026 · repay any time at face value",
"description": "string",
"implications": [
"string"
],
"tags": [
"string"
]
}
}