Skip to main content

TermSheet

The full term sheet (?terms=full). Absence of a side is MEANINGFUL: no borrow means the market cannot be borrowed.

schemaVersionintegerrequired
Example: 1
asOfnumberrequired

Unix seconds — everything here is a snapshot.

profileIdstringrequired
Example: exactly.fixed@v1
marketUidstring

Market identifier, formatted lender:chainId:address.

lenderstring

Protocol identifier. See the LenderId schema.

chainIdstring

EVM chain id, as a decimal string. See the ChainId schema.

asset objectnullable

The market’s own underlying — needed to render minSize / cap / minDebt, which are RAW base units.

property name*anynullable

The market’s own underlying — needed to render minSize / cap / minDebt, which are RAW base units.

supply object
rolestringrequired

yield | collateral | both

rate objectrequired

All rates are NOMINAL APR in PERCENT (3.85 = 3.85 %/yr) — never a fraction, never an APY.

kindstringrequired

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.

aprnumberrequired

Base rate only.

components objectrequired
basenumber
rewardsnumbernullable

PRICEABLE rewards only.

intrinsicnumbernullable
aprTotalnumberrequired

base + priceable rewards + intrinsic. Deliberately EXCLUDES points programs, which have no priceable value — see rewards[].indicative.

basisstringrequired

Possible values: [apr-nominal]

compoundingstring
sourcestring
isLockedbooleanrequired
minAprnumbernullable
maxAprnumbernullable
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).

requiredboolean
minnumbernullable
maxnumbernullable
defaultnumbernullable
adjustableboolean
adjustmentCostNotestringnullable
adjustmentCooldownSecsnumbernullable
rewards object[]nullable
  • Array [
  • asset objectnullable
    property name*anynullable
    kindstring

    token | points | unknown

    aprnumber
    sidestring

    Possible values: [supply, borrow]

    claimstring

    accrual | merkl | manual | none

    endsAtnumbernullable
    indicativebooleannullable

    Points — not priceable, and excluded from aprTotal.

  • ]
  • menu object[]nullable
  • Array [
  • termIdinteger

    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.

    Example: 2
    depositAprnumbernullable

    Annualised fixed LEND rate at this maturity, in percent (Exactly only — its fixed pools quote both sides).

    availablenumbernullable

    Borrowable liquidity at this maturity in loan-token human units (Exactly only).

    durationDaysnumber

    How long the position is locked at the fixed rate, in days (e.g. 7, 14, 30).

    Example: 7
    durationSecsnumbernullable

    Term duration in seconds (raw on-chain value).

    Example: 604800
    aprnumber

    Annualised 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.

    Example: 3.85
    aprAtAmountnumbernullable

    Size-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.

    fillablenumbernullable

    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.

    cappedbooleannullable

    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.

  • Array [
  • aprnumber

    Annualised borrow rate at this tier (%).

    unitsstring

    Credit/debt units at this tier (raw).

    assetsnumber

    Loan-token size available at this tier.

  • ]
  • ]
  • maturity objectrequired
    kindstringrequired

    perpetual | fixed-date | rolling-duration

    maturitynumbernullable

    Unix seconds.

    maturityIsostringnullable
    secondsToMaturitynumbernullable
    minDurationSecsnumbernullable
    maxDurationSecsnumbernullable
    atMaturitystringnullable

    What happens if NOBODY acts — the field that most surprises users. stops-earning | penalty-accrues | liquidatable | default-seizure | physical-delivery | refinanced | auto-roll | none.

    graceSecsnumbernullable

    Window before atMaturity bites. Observed as low as 300 s (Teller).

    exit objectrequired
    modestring
    settlementstring

    sync | async

    cooldownSecsnumbernullable

    How long YOUR money is locked.

    liquidity objectnullable
    property name*anynullable
    partialAllowedboolean
    priceRiskstring

    none | haircut-formula | market-price | may-be-impossible

    fees object[]
  • Array [
  • idstringrequired

    Stable slug: origination, late-penalty, early-repay-discount, reserve-contribution, instant-exit, performance, reserve-factor, …

    labelstringrequired

    Self-describing, so an id a client does not recognise still renders correctly.

    whenstringrequired

    entry | ongoing | exit | late | liquidation | performance

    unitstringrequired

    apr-percent | percent | bps | absolute

    basisstringrequired

    principal | face-value | yield | collateral | shares | debt-repaid

    valuenumberrequired

    Native-token value to send with the transaction, in wei.

    payeestringnullable
    mutablebooleannullable

    Governance-mutable — a snapshot.

    indicativebooleannullable

    Only resolvable at action time (Exactly’s discount, TermMax’s curve price).

    descriptionstringnullable

    Human-readable label for this entry.

  • ]
  • fees object[]required
  • Array [
  • idstringrequired

    Stable slug: origination, late-penalty, early-repay-discount, reserve-contribution, instant-exit, performance, reserve-factor, …

    labelstringrequired

    Self-describing, so an id a client does not recognise still renders correctly.

    whenstringrequired

    entry | ongoing | exit | late | liquidation | performance

    unitstringrequired

    apr-percent | percent | bps | absolute

    basisstringrequired

    principal | face-value | yield | collateral | shares | debt-repaid

    valuenumberrequired

    Native-token value to send with the transaction, in wei.

    payeestringnullable
    mutablebooleannullable

    Governance-mutable — a snapshot.

    indicativebooleannullable

    Only resolvable at action time (Exactly’s discount, TermMax’s curve price).

    descriptionstringnullable

    Human-readable label for this entry.

  • ]
  • backedBy object

    What backs a deposit (supply.backedBy) or what may be posted (borrow.acceptedCollateral).

    countintegerrequired

    Number of entries in items.

    weightBasisstringrequired

    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.

    worstRiskScorenumbernullable

    1 (best) … 5 (worst).

    worstOracleBandstringnullable
    topWeightPctnumbernullable
    items object[]nullable

    Omitted on terms=digest; each entry carries its own marketUid for resolution.

  • Array [
  • asset object
    property name*any
    marketUidstringnullable

    Market identifier, formatted lender:chainId:address.

    viastring
    weightPctnumbernullable
    ltvnumbernullable

    Loan-to-value ratio, as a fraction between 0 and 1.

    liquidationLtvnumbernullable
    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.

    kindstring

    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).

    addressstringnullable

    Lowercased. The contract the protocol actually calls.

    componentsstring[]nullable
    providerstringnullable
    priceDescriptionstringnullable
    intendedPairstringnullable
    correctAssetbooleannullable
    correctNumerairebooleannullable
    scoreintegernullable

    Normalized risk score — lower is safer.

    bandstringnullable

    Possible values: [LOW, MEDIUM, HIGH, CRITICAL]

    flagsstring[]nullable
    mutability objectnullable
    property name*anynullable
    quality objectnullable
    property name*anynullable
  • ]
  • modesobject[]nullable
    counterparty objectrequired
    property name*any
    availability objectrequired
    canOpenbooleanrequired

    Gate the CTA on THIS and nothing else — it already folds in caps, freezes, auction windows and gating.

    canClosebooleanrequired
    blockedBystringnullable
    gatingstringrequired
    minSizestringnullable

    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.

    capstringnullable
    capUtilizationnumbernullable
    requiresstring[]nullable
    window objectnullable
    property name*anynullable
    principal objectrequired
    property name*any
    info objectrequired
    headlinestringrequired

    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.

    Example: Fixed 4.12% until 3 Sep 2026 · repay any time at face value
    descriptionstring

    Human-readable label for this entry.

    implicationsstring[]

    Consequences a rate alone hides, ordered MOST SEVERE FIRST. Present only on terms=full.

    tagsstring[]required

    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.

    borrow object
    rate objectrequired

    All rates are NOMINAL APR in PERCENT (3.85 = 3.85 %/yr) — never a fraction, never an APY.

    kindstringrequired

    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.

    aprnumberrequired

    Base rate only.

    components objectrequired
    basenumber
    rewardsnumbernullable

    PRICEABLE rewards only.

    intrinsicnumbernullable
    aprTotalnumberrequired

    base + priceable rewards + intrinsic. Deliberately EXCLUDES points programs, which have no priceable value — see rewards[].indicative.

    basisstringrequired

    Possible values: [apr-nominal]

    compoundingstring
    sourcestring
    isLockedbooleanrequired
    minAprnumbernullable
    maxAprnumbernullable
    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).

    requiredboolean
    minnumbernullable
    maxnumbernullable
    defaultnumbernullable
    adjustableboolean
    adjustmentCostNotestringnullable
    adjustmentCooldownSecsnumbernullable
    rewards object[]nullable
  • Array [
  • asset objectnullable
    property name*anynullable
    kindstring

    token | points | unknown

    aprnumber
    sidestring

    Possible values: [supply, borrow]

    claimstring

    accrual | merkl | manual | none

    endsAtnumbernullable
    indicativebooleannullable

    Points — not priceable, and excluded from aprTotal.

  • ]
  • menu object[]nullable
  • Array [
  • termIdinteger

    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.

    Example: 2
    depositAprnumbernullable

    Annualised fixed LEND rate at this maturity, in percent (Exactly only — its fixed pools quote both sides).

    availablenumbernullable

    Borrowable liquidity at this maturity in loan-token human units (Exactly only).

    durationDaysnumber

    How long the position is locked at the fixed rate, in days (e.g. 7, 14, 30).

    Example: 7
    durationSecsnumbernullable

    Term duration in seconds (raw on-chain value).

    Example: 604800
    aprnumber

    Annualised 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.

    Example: 3.85
    aprAtAmountnumbernullable

    Size-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.

    fillablenumbernullable

    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.

    cappedbooleannullable

    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.

  • Array [
  • aprnumber

    Annualised borrow rate at this tier (%).

    unitsstring

    Credit/debt units at this tier (raw).

    assetsnumber

    Loan-token size available at this tier.

  • ]
  • ]
  • maturity objectrequired
    kindstringrequired

    perpetual | fixed-date | rolling-duration

    maturitynumbernullable

    Unix seconds.

    maturityIsostringnullable
    secondsToMaturitynumbernullable
    minDurationSecsnumbernullable
    maxDurationSecsnumbernullable
    atMaturitystringnullable

    What happens if NOBODY acts — the field that most surprises users. stops-earning | penalty-accrues | liquidatable | default-seizure | physical-delivery | refinanced | auto-roll | none.

    graceSecsnumbernullable

    Window before atMaturity bites. Observed as low as 300 s (Teller).

    debtShapestringrequired

    accruing | static-face | prepaid. The biggest departure from variable-rate intuition: most fixed-term debt is a static face value fixed at trade time, so repaying early does not reduce it.

    exit objectrequired
    earlyRepaystring

    free | discount | penalty | market-price | not-allowed. Note discount is a REBATE (Exactly) — assuming "early = penalty" is wrong in both directions.

    atMaturityCoststring
    lateBehaviourstring
    partialAllowedboolean
    minDebtstringnullable

    Dust floor, RAW base units — bounds partial repayment too.

    overRepayRevertsbooleannullable

    Midnight: over-repay REVERTS; size exactly.

    fees object[]
  • Array [
  • idstringrequired

    Stable slug: origination, late-penalty, early-repay-discount, reserve-contribution, instant-exit, performance, reserve-factor, …

    labelstringrequired

    Self-describing, so an id a client does not recognise still renders correctly.

    whenstringrequired

    entry | ongoing | exit | late | liquidation | performance

    unitstringrequired

    apr-percent | percent | bps | absolute

    basisstringrequired

    principal | face-value | yield | collateral | shares | debt-repaid

    valuenumberrequired

    Native-token value to send with the transaction, in wei.

    payeestringnullable
    mutablebooleannullable

    Governance-mutable — a snapshot.

    indicativebooleannullable

    Only resolvable at action time (Exactly’s discount, TermMax’s curve price).

    descriptionstringnullable

    Human-readable label for this entry.

  • ]
  • liquidation objectrequired
    modelstringnullable

    HOW it happens, distinct from what triggers it. repay-seize | soft-band (LlamaLend: gradual, reversible, penalty-free conversion inside the AMM — there is no single liquidation price) | stability-pool | auction (Frankencoin: no oracle, an owner-DECLARED price policed by a Dutch auction) | default-seizure | delivery | none.

    absorberstringnullable
    reversiblebooleannullable

    soft-band only — being "in liquidation" is not terminal and unwinds if price recovers.

    triggerstringrequired

    price | time | price-and-time | redemption | none. A time trigger liquidates a perfectly over-collateralised position; a health factor does NOT protect you.

    ltvnumbernullable

    FRACTION (0.8 = 80 %).

    liquidationLtvnumbernullable

    FRACTION.

    penaltynumberrequired

    FRACTION of repaid debt.

    penalties object[]nullable

    Named penalties where one number cannot express the model — Liquity charges differently depending on whether the Stability Pool absorbs the debt or it is redistributed.

  • Array [
  • idstring
    labelstring
    valuenumber

    Native-token value to send with the transaction, in wei.

    descriptionstringnullable

    Human-readable label for this entry.

  • ]
  • closeFactornumberrequired
    targetHealthFactornumbernullable
    seizurestringrequired

    proportional | full-collateral. The latter (Teller) means a liquidator takes the ENTIRE escrow, not the amount owed — roughly 2x the borrowed value at 50 % LTV.

    redeemablebooleannullable
    redemption object

    Collateral taken from a HEALTHY position. On every lender we serve this is a PERMISSIONLESS ARBITRAGE that defends the stablecoin’s peg — not a liquidation, and not a governance decision. Rendering only the effect ("your collateral can be taken") misleads.

    triggerstringrequired

    permissionless-arbitrage — any holder of the debt token, any time. (governance / protocol are reserved and unused.)

    driverstringnullable

    below-peg — it only pays them while the token trades under its target.

    orderstringrequired

    lowest-rate-first (Liquity family — your rate IS your queue position) | pro-rata (Resupply — every borrower is skimmed, nothing to out-run) | lowest-collateral-ratio.

    valueImpactstringnullable

    usd-neutral — the fee stays in the position as extra collateral, so the borrower loses EXPOSURE, not value. Do not render this as "you lose your collateral".

    defencestringnullable

    What the borrower can do. ABSENT when order: pro-rata — there is nothing.

    windowSecsnumbernullable
    gracePeriodSecsnumbernullable
    permissionedbooleannullable
    badDebtstringnullable
    bandLtv objectnullable

    soft-band only: collateral factor as a function of the band count chosen at open (0.991 at N=4 vs 0.886 at N=50). ltv reports the default N.

    property name*number
    defaultBandsnumbernullable
    fullCloseBelowHealthFactornumbernullable
    acceptedCollateral object

    What backs a deposit (supply.backedBy) or what may be posted (borrow.acceptedCollateral).

    countintegerrequired

    Number of entries in items.

    weightBasisstringrequired

    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.

    worstRiskScorenumbernullable

    1 (best) … 5 (worst).

    worstOracleBandstringnullable
    topWeightPctnumbernullable
    items object[]nullable

    Omitted on terms=digest; each entry carries its own marketUid for resolution.

  • Array [
  • asset object
    property name*any
    marketUidstringnullable

    Market identifier, formatted lender:chainId:address.

    viastring
    weightPctnumbernullable
    ltvnumbernullable

    Loan-to-value ratio, as a fraction between 0 and 1.

    liquidationLtvnumbernullable
    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.

    kindstring

    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).

    addressstringnullable

    Lowercased. The contract the protocol actually calls.

    componentsstring[]nullable
    providerstringnullable
    priceDescriptionstringnullable
    intendedPairstringnullable
    correctAssetbooleannullable
    correctNumerairebooleannullable
    scoreintegernullable

    Normalized risk score — lower is safer.

    bandstringnullable

    Possible values: [LOW, MEDIUM, HIGH, CRITICAL]

    flagsstring[]nullable
    mutability objectnullable
    property name*anynullable
    quality objectnullable
    property name*anynullable
  • ]
  • modesobject[]nullable

    Non-default risk categories as DELTAS (Aave e-modes, Dolomite categories, Euler configs). liquidation above is the fully-resolved DEFAULT.

    fees object[]required
  • Array [
  • idstringrequired

    Stable slug: origination, late-penalty, early-repay-discount, reserve-contribution, instant-exit, performance, reserve-factor, …

    labelstringrequired

    Self-describing, so an id a client does not recognise still renders correctly.

    whenstringrequired

    entry | ongoing | exit | late | liquidation | performance

    unitstringrequired

    apr-percent | percent | bps | absolute

    basisstringrequired

    principal | face-value | yield | collateral | shares | debt-repaid

    valuenumberrequired

    Native-token value to send with the transaction, in wei.

    payeestringnullable
    mutablebooleannullable

    Governance-mutable — a snapshot.

    indicativebooleannullable

    Only resolvable at action time (Exactly’s discount, TermMax’s curve price).

    descriptionstringnullable

    Human-readable label for this entry.

  • ]
  • counterparty objectrequired
    property name*any
    availability objectrequired
    canOpenbooleanrequired

    Gate the CTA on THIS and nothing else — it already folds in caps, freezes, auction windows and gating.

    canClosebooleanrequired
    blockedBystringnullable
    gatingstringrequired
    minSizestringnullable

    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.

    capstringnullable
    capUtilizationnumbernullable
    requiresstring[]nullable
    window objectnullable
    property name*anynullable
    info objectrequired
    headlinestringrequired

    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.

    Example: Fixed 4.12% until 3 Sep 2026 · repay any time at face value
    descriptionstring

    Human-readable label for this entry.

    implicationsstring[]

    Consequences a rate alone hides, ordered MOST SEVERE FIRST. Present only on terms=full.

    tagsstring[]required

    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.

    governance object
    mutabilitystring

    immutable | governed | unknown

    controllerstringnullable
    controllerKindstringnullable

    EOA | SAFE | TIMELOCK | GOVERNOR | GOVERNANCE | CUSTOM | UNKNOWN

    safe objectnullable
    property name*anynullable
    timelockSecsnumbernullable

    The holder’s NOTICE PERIOD before a queued parameter change lands. NOT a withdrawal lock — that is supply.exit.cooldownSecs. Never merge or sum the two.

    timelockUnknownbooleannullable

    The controller IS a timelock but its delay could not be read. Distinct from "no delay" — reporting the latter would be a false alarm on the safest governance shape.

    tierstringnullable
    scorenumbernullable

    Normalized risk score — lower is safer.

    powersstring[]nullable
    roles objectnullable
    property name*anynullable
    asOfScreennumbernullable

    Governance screens refresh far slower than rates.

    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.

    kindstring

    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).

    addressstringnullable

    Lowercased. The contract the protocol actually calls.

    componentsstring[]nullable
    providerstringnullable
    priceDescriptionstringnullable
    intendedPairstringnullable
    correctAssetbooleannullable
    correctNumerairebooleannullable
    scoreintegernullable

    Normalized risk score — lower is safer.

    bandstringnullable

    Possible values: [LOW, MEDIUM, HIGH, CRITICAL]

    flagsstring[]nullable
    mutability objectnullable
    property name*anynullable
    utilization object
    utilizationnumberrequired

    0..1 FRACTION.

    basisstringrequired

    market | hub | liquidity-layer | pool. NOT always this row: Fluid / Aave V4 / Gearbox set rates on a LARGER pool, and a rate simulation must shift irmTotal*, not the row totals.

    irmTotalDepositsnumbernullable
    irmTotalDebtnumbernullable
    targetUtilizationnumbernullable
    kinkUtilizationnumbernullable
    supplyCapUtilizationnumbernullable
    borrowCapUtilizationnumbernullable
    lockupRationumbernullable
    constraints objectnullable
    property name*anynullable
    coverage objectnullable

    Distinguishes "does not apply here" (notApplicable) from "not classified yet" (pending). A missing block is NEVER a claim of absence.

    property name*anynullable

    Distinguishes "does not apply here" (notApplicable) from "not classified yet" (pending). A missing block is NEVER a claim of absence.

    TermSheet
    {
    "schemaVersion": 1,
    "asOf": 0,
    "profileId": "exactly.fixed@v1",
    "marketUid": "string",
    "lender": "string",
    "chainId": "string",
    "asset": {},
    "supply": {
    "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"
    ]
    }
    },
    "borrow": {
    "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
    },
    "debtShape": "string",
    "exit": {
    "earlyRepay": "string",
    "atMaturityCost": "string",
    "lateBehaviour": "string",
    "partialAllowed": true,
    "minDebt": "string",
    "overRepayReverts": true,
    "fees": [
    {
    "id": "string",
    "label": "string",
    "when": "string",
    "unit": "string",
    "basis": "string",
    "value": 0,
    "payee": "string",
    "mutable": true,
    "indicative": true,
    "description": "string"
    }
    ]
    },
    "liquidation": {
    "model": "string",
    "absorber": "string",
    "reversible": true,
    "trigger": "string",
    "ltv": 0,
    "liquidationLtv": 0,
    "penalty": 0,
    "penalties": [
    {
    "id": "string",
    "label": "string",
    "value": 0,
    "description": "string"
    }
    ],
    "closeFactor": 0,
    "targetHealthFactor": 0,
    "seizure": "string",
    "redeemable": true,
    "redemption": {
    "trigger": "string",
    "driver": "string",
    "order": "string",
    "valueImpact": "string",
    "defence": "string"
    },
    "windowSecs": 0,
    "gracePeriodSecs": 0,
    "permissioned": true,
    "badDebt": "string",
    "bandLtv": {},
    "defaultBands": 0,
    "fullCloseBelowHealthFactor": 0
    },
    "acceptedCollateral": {
    "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": [
    {}
    ],
    "fees": [
    {
    "id": "string",
    "label": "string",
    "when": "string",
    "unit": "string",
    "basis": "string",
    "value": 0,
    "payee": "string",
    "mutable": true,
    "indicative": true,
    "description": "string"
    }
    ],
    "counterparty": {},
    "availability": {
    "canOpen": true,
    "canClose": true,
    "blockedBy": "string",
    "gating": "string",
    "minSize": "string",
    "cap": "string",
    "capUtilization": 0,
    "requires": [
    "string"
    ],
    "window": {}
    },
    "info": {
    "headline": "Fixed 4.12% until 3 Sep 2026 · repay any time at face value",
    "description": "string",
    "implications": [
    "string"
    ],
    "tags": [
    "string"
    ]
    }
    },
    "governance": {
    "mutability": "string",
    "controller": "string",
    "controllerKind": "string",
    "safe": {},
    "timelockSecs": 0,
    "timelockUnknown": true,
    "tier": "string",
    "score": 0,
    "powers": [
    "string"
    ],
    "roles": {},
    "asOfScreen": 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": {}
    },
    "utilization": {
    "utilization": 0,
    "basis": "string",
    "irmTotalDeposits": 0,
    "irmTotalDebt": 0,
    "targetUtilization": 0,
    "kinkUtilization": 0,
    "supplyCapUtilization": 0,
    "borrowCapUtilization": 0,
    "lockupRatio": 0
    },
    "constraints": {},
    "coverage": {}
    }