Skip to main content

PoolWithMeta

Enriched pool returned by /pools/latest. Extends LendingMarket with chain context, computed APR, price data, and exposure info.

lenderKeystring

Protocol identifier

Example: AAVE_V3
poolIdstring

Pool/vault address or protocol-specific ID

depositRatenumbernullable

Deposit APR (percent)

variableBorrowRatenumbernullable

Variable borrow APR (percent)

stableBorrowRatenumbernullable

Stable borrow APR (percent)

intrinsicYieldnumbernullable

Intrinsic yield APR from underlying asset (e.g. stETH staking)

totalDepositsnumbernullable

Total deposits in token units

totalDebtStablenumbernullable

Total stable debt in token units

totalDebtnumbernullable

Total variable debt in token units

totalLiquiditynumbernullable

Available liquidity (totalDeposits - totalDebt) in token units

totalDepositsUsdnumbernullable

Total deposits in USD

totalDebtStableUsdnumbernullable

Total stable debt in USD

totalDebtUsdnumbernullable

Total variable debt in USD

totalLiquidityUsdnumbernullable

Available liquidity in USD

utilizationnumbernullable

Utilization ratio (totalDebt / totalDeposits)

decimalsintegernullable

Token decimals — divide raw amounts by 10 ** decimals.

underlyingInfo object

Nested asset metadata, oracle prices, and market prices for a lending market.

asset object

Token metadata for an underlying asset.

chainIdstring

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

Example: 1
addressstring

Token contract address (lowercase)

Example: 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
symbolstring

Token symbol, e.g. WETH.

Example: USDC
namestring

Human-readable display name.

Example: USD Coin
decimalsintegernullable

Token decimals — divide raw amounts by 10 ** decimals.

Example: 6
logoURIstringnullable

URL of the logo image.

assetGroupstringnullable

Canonical asset group (e.g. "USDC", "ETH", "BTC")

Example: USDC
currencyIdstringnullable
props objectnullable

Protocol-specific asset properties

property name*anynullable

Protocol-specific asset properties

oraclePrice object

On-chain oracle price data.

oraclePricenumbernullable

Raw on-chain oracle price

oraclePriceUsdnumbernullable

Oracle price denominated in USD

prices object

Market prices for an asset with 24h comparison.

priceUsdnumbernullable

Current price in USD

priceTsstring<date-time>nullable

Timestamp of current price

priceUsd24hnumbernullable

Price 24 hours ago in USD

priceTs24hstring<date-time>nullable

Timestamp of 24h-ago price

priceChange24hnumbernullable

Percentage price change over 24h

oracleInfo objectnullable

Oracle feed-correctness classification for the market's price oracle(s). null when the market has no oracle classification.

This is feed correctness — does the oracle price the right asset in the right unit — and is distinct from the price-staleness signal carried in risk.breakdown[oracle] (a 1–5 score). A market can have several feeds (Compound comets price each collateral asset; Fluid prices each vault side), so feeds is an array and worstScore/worstBand summarize the riskiest one.

Scoring (per feed, additive): score = provider base + flag penalties, clamped 0–100.

Provider base (oracle mechanism; first match wins):

ProviderBase
chainlink, price-cap10
redstone/pyth/chronicle/… and unrecognized18
composite / cross-feed22
exchange-rate / pendle-pt / LST rate adapters28
twap/uniswap/DEX30
fixed-rate / constant55

Flag penalties (added on top): wrong-asset +45 · correlated-proxy +18 · cross-numeraire +18 · undecoded-source +8.

Bands: LOW < 25 · MEDIUM 25–49 · HIGH 50–74 · CRITICAL ≥ 75.

feeds object[]required

Per-feed classifications, ordered worst-first.

  • Array [
  • assetstringnullable

    Priced asset symbol (the reported numerator).

    oraclestringnullable

    Oracle / feed / adapter address (lowercased).

    providerstringnullable

    Oracle mechanism: chainlink, redstone, pyth, chronicle, composite, price-cap (Aave PriceCapAdapter), exchange-rate (correlated/LST, e.g. Venus OneJumpOracle), pendle-pt, constant, or a lender-specific stub (compound-v2-oracle, dolomite-oracle, fluid-oracle).

    priceDescriptionstringnullable

    Decoded reported pair, e.g. "WBTC / USD"; "UNKNOWN" when the source could not be decoded.

    intendedPairstringnullable

    What the feed should report: "<asset> / <numeraire>".

    correctOraclebooleannullable

    Does the feed price the intended asset (numerator match)? null = unverifiable.

    denominatorMatchbooleannullable

    Is the feed denominated in the right numeraire (e.g. the loan token / market unit)? null = unknown.

    fixedRateboolean

    Hardcoded/constant price feed.

    scoreinteger

    Feed risk score 0–100. See OracleInfo for the model.

    bandstring

    Risk band for score.

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

    flagsstring[]

    Risk flags: wrong-asset, correlated-proxy, cross-numeraire, undecoded-source, fixed-rate, unrecognized-provider.

  • ]
  • worstScoreintegerrequired

    Highest (worst) score across feeds.

    worstBandstringrequired

    Band of the worst feed.

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

    caps object

    Supply, borrow, and debt ceiling caps for a lending market.

    borrowCapnumbernullable

    Maximum borrowable amount (token units)

    supplyCapnumbernullable

    Maximum depositable amount (token units)

    debtCeilingstringnullable

    Isolation-mode debt ceiling

    flags object

    Boolean flags describing the operational status of a lending market. Values may be null if unavailable from the protocol.

    isActivebooleannullable

    Whether the market is active

    isFrozenbooleannullable

    Whether the market is frozen (no new deposits/borrows)

    hasStablebooleannullable

    Whether stable-rate borrowing is available

    borrowingEnabledbooleannullable

    Whether borrowing is enabled

    depositsEnabledbooleannullable

    Whether deposits are enabled

    collateralActivebooleannullable

    Whether the asset can be used as collateral

    variableBorrowDisabledbooleannullable

    Whether variable-rate borrowing is unavailable through 1delta for this market. true for Lista DAO fixed-term (brokered) markets, where borrows must go through the broker and pick a fixed term from terms[]. Together with a non-empty terms[] this is the canonical "brokered market" signal — such markets report variableBorrowRate = 0 but cannot be borrowed variably.

    rewards object[]

    Active reward programs. Defaults to [] when none.

  • Array [
  • assetstring

    Reward token address, lowercased. For a points program (kind: "points") there is no token and this is a synthetic points:<sourceId> key.

    symbolstringnullable

    Reward token symbol. Denormalized deliberately — reward tokens are routinely absent from the asset table (aMonUSDe, WMON, aHorRwaRLUSD are live examples), so a join would leave them unnamed.

    decimalsintegernullable

    Token decimals — divide raw amounts by 10 ** decimals.

    logoURIstringnullable

    URL of the logo image.

    depositRatenumber

    Reward APR on deposits

    variableBorrowRatenumber

    Reward APR on variable borrows

    stableBorrowRatenumber

    Reward APR on stable borrows

    kindstringnullable

    token | points. Points are NOT priceable and must be shown separately from any headline APR.

    claimstringnullable

    How the reward is realized, i.e. whether the APR is bankable. accrual — claimable from the protocol on-chain; merkl — off-chain merkle distribution; manual.

    sourcestring

    LEGACY mechanism tag (merkle, onchain-incentives, native) — it cannot distinguish two programs on the same platform. Prefer sourceId.

    sourceIdstringnullable

    Stable program identifier, safe to key on: merkl:aave, merkl:euler, merkl:morpho, dtrinity:rebate.

    sourceLabelstringnullable

    Display string for the program, e.g. Merkl · Aave.

    linkstringnullable

    Deep link to THIS program — the exact Merkl opportunity page, not a protocol homepage.

    endsAtnumbernullable

    Unix seconds the program stops paying. An APR with two weeks left is not the same product as a standing rate, so render it.

    startsAtnumbernullable
    dailyRewardsUsdnumbernullable

    Program-wide payout rate in USD/day, as the source reports it.

    refs objectnullable

    Platform identifiers verbatim — Merkl campaign ids and opportunity type, or the incentives-controller address for an on-chain program. For support and deduplication, not display.

    property name*anynullable

    Platform identifiers verbatim — Merkl campaign ids and opportunity type, or the incentives-controller address for an on-chain program. For support and deduplication, not display.

  • ]
  • config object

    Risk config keyed by mode/category ID (e.g. "0" for default, "1" for e-mode)

    property name* MarketConfigEntry

    Risk parameters for a specific e-mode or collateral category.

    categorystring

    E-mode category identifier

    Example: 1
    labelstring

    Human-readable label for this config category

    Example: ETH correlated
    borrowCollateralFactornumbernullable

    LTV for borrowing (0-1)

    Example: 0.8
    collateralFactornumbernullable

    Liquidation threshold (0-1)

    Example: 0.85
    borrowFactornumbernullable

    Borrow factor (typically 1)

    Example: 1
    liquidationPenaltynumbernullable

    Liquidation penalty for this mode, as a fraction of repaid debt the liquidator receives on top of par (e.g. 0.05 = 5%). Mode-specific where supported (Aave e-modes, Dolomite categories, Euler vaults).

    Example: 0.05
    closeFactornumbernullable

    Max fraction of debt repayable per liquidation (0-1). Mirrors the pool-level closeFactor; not e-mode-specific in any supported protocol, so the same value across every mode of a market.

    Example: 0.5
    targetHealthFactornumbernullable

    Liquidation target health factor (e.g. 1.05). Set only by protocols that liquidate to a target HF instead of a fixed close factor (Aave V4, spoke-level); omitted otherwise.

    Example: 1.05
    collateralDisabledboolean
    debtDisabledboolean
    terms object[]nullable

    Fixed-term rate card for Lista DAO brokered markets. Non-empty ⇒ the market is brokered (borrow via the broker, pick a termId); null ⇒ a regular variable-rate market. Together with flags.variableBorrowDisabled this is the canonical brokered-market signal.

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

  • ]
  • ]
  • brokerstringnullable

    Lista DAO LendingBroker contract address — the mandatory gateway for the debt side (borrow/repay) of a brokered market. Present (non-zero) only for brokered markets. The borrow/repay calldata routes through this contract (the SDK and worker resolve it automatically).

    Example: 0x1fa26015286d1270343d7526c60bd57ab6be8b54
    collateralProviderstringnullable

    Lista DAO collateral-provider contract for this market. When set (non-zero), Moolah gates supplyCollateral/withdrawCollateral behind it, so collateral deposits/withdrawals must route through this provider rather than calling Moolah directly (the SDK/worker handle this). Set for markets whose collateral is a Lista-managed token (e.g. slisBNB); null for plain ERC-20 collateral.

    Example: 0x33f7a980a246f9b8fea2254e3065576e127d4d5f
    loanProviderstringnullable

    Lista DAO loan-token provider contract for this market (e.g. the native-WBNB wrapper provider). When set, loan-token operations are gated behind it; for brokered markets the broker handles the debt side. Informational — consumers do not pass it; the SDK/worker resolve routing automatically.

    Example: 0x367384c54756a25340c63057d87ea22d47fd5701
    closeFactornumbernullable

    Max fraction of a borrower's debt repayable in a single liquidation (0-1). Aave ~0.5 (rises to 1 below the close-factor health threshold), Compound V2 closeFactorMantissa; 1 (full liquidation) for isolated / credit-account protocols (Compound V3, Morpho, Euler, Fluid, Gearbox, Dolomite, Silo).

    Example: 0.5
    targetHealthFactornumbernullable

    Liquidation target health factor (e.g. 1.05). Set only by protocols that liquidate to a target HF rather than a fixed close factor (Aave V4, spoke-level); omitted otherwise.

    Example: 1.05
    lenderInfo object

    Protocol/lender metadata (name, logo).

    keystring

    Lender key identifier

    Example: AAVE_V3
    namestringnullable

    Human-readable lender name

    Example: Aave V3
    logoURIstringnullable

    Lender logo URL

    Example: https://raw.githubusercontent.com/1delta-DAO/protocol-icons/main/lender/aave_v3.webp
    termSheet objectnullable

    Structured description of this market’s lend and borrow offer. Shape depends on the terms query param: digest (default) or full. Absent when terms=none.

    oneOf
    schemaVersioninteger
    profileIdstring
    marketUidstring

    Market identifier, formatted lender:chainId:address.

    supply object
    property name*any
    borrow object
    property name*any
    oracle object
    property name*any
    governance object
    property name*any
    utilizationnumbernullable

    Market utilization, as a fraction between 0 and 1.

    chainIdstring

    Chain ID

    lenderstring

    Protocol identifier

    aprnumber

    Effective APR (depositRate + intrinsicYield)

    pricenumbernullable

    Current asset price in USD

    histPricenumbernullable

    Asset price 24h ago in USD

    exposure object[]

    Cross-protocol exposure for the same underlying asset

  • Array [
  • chainIdstring

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

    lenderstring

    Protocol identifier. See the LenderId schema.

    poolIdstring
    property name*any
  • ]
  • PoolWithMeta
    {
    "chainId": "string",
    "lender": "string",
    "apr": 0,
    "price": 0,
    "histPrice": 0,
    "exposure": [
    {
    "chainId": "string",
    "lender": "string",
    "poolId": "string"
    }
    ],
    "lenderKey": "AAVE_V3",
    "poolId": "string",
    "depositRate": 0,
    "variableBorrowRate": 0,
    "stableBorrowRate": 0,
    "intrinsicYield": 0,
    "totalDeposits": 0,
    "totalDebtStable": 0,
    "totalDebt": 0,
    "totalLiquidity": 0,
    "totalDepositsUsd": 0,
    "totalDebtStableUsd": 0,
    "totalDebtUsd": 0,
    "totalLiquidityUsd": 0,
    "utilization": 0,
    "decimals": 0,
    "underlyingInfo": {
    "asset": {
    "chainId": "1",
    "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
    "symbol": "USDC",
    "name": "USD Coin",
    "decimals": 6,
    "logoURI": "string",
    "assetGroup": "USDC",
    "currencyId": "string",
    "props": {}
    },
    "oraclePrice": {
    "oraclePrice": 0,
    "oraclePriceUsd": 0
    },
    "prices": {
    "priceUsd": 0,
    "priceTs": "2024-07-29T15:51:28.071Z",
    "priceUsd24h": 0,
    "priceTs24h": "2024-07-29T15:51:28.071Z",
    "priceChange24h": 0
    }
    },
    "oracleInfo": {
    "feeds": [
    {
    "asset": "string",
    "oracle": "string",
    "provider": "string",
    "priceDescription": "string",
    "intendedPair": "string",
    "correctOracle": true,
    "denominatorMatch": true,
    "fixedRate": true,
    "score": 0,
    "band": "LOW",
    "flags": [
    "string"
    ]
    }
    ],
    "worstScore": 0,
    "worstBand": "LOW"
    },
    "caps": {
    "borrowCap": 0,
    "supplyCap": 0,
    "debtCeiling": "string"
    },
    "flags": {
    "isActive": true,
    "isFrozen": true,
    "hasStable": true,
    "borrowingEnabled": true,
    "depositsEnabled": true,
    "collateralActive": true,
    "variableBorrowDisabled": true
    },
    "rewards": [
    {
    "asset": "string",
    "symbol": "string",
    "decimals": 0,
    "logoURI": "string",
    "depositRate": 0,
    "variableBorrowRate": 0,
    "stableBorrowRate": 0,
    "kind": "string",
    "claim": "string",
    "source": "string",
    "sourceId": "string",
    "sourceLabel": "string",
    "link": "string",
    "endsAt": 0,
    "startsAt": 0,
    "dailyRewardsUsd": 0,
    "refs": {}
    }
    ],
    "config": {},
    "terms": [
    {
    "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
    }
    ]
    }
    ],
    "broker": "0x1fa26015286d1270343d7526c60bd57ab6be8b54",
    "collateralProvider": "0x33f7a980a246f9b8fea2254e3065576e127d4d5f",
    "loanProvider": "0x367384c54756a25340c63057d87ea22d47fd5701",
    "closeFactor": 0.5,
    "targetHealthFactor": 1.05,
    "lenderInfo": {
    "key": "AAVE_V3",
    "name": "Aave V3",
    "logoURI": "https://raw.githubusercontent.com/1delta-DAO/protocol-icons/main/lender/aave_v3.webp"
    },
    "termSheet": {
    "schemaVersion": 0,
    "profileId": "string",
    "marketUid": "string",
    "supply": {},
    "borrow": {},
    "oracle": {},
    "governance": {},
    "utilization": 0
    }
    }