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
underlyingInfo object

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

asset object

Token metadata for an underlying asset.

chainIdstring
Example: 1
addressstring

Token contract address (lowercase)

Example: 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
symbolstring
Example: USDC
namestring
Example: USD Coin
decimalsintegernullable
Example: 6
logoURIstringnullable
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

    depositRatenumber

    Reward APR on deposits

    variableBorrowRatenumber

    Reward APR on variable borrows

    stableBorrowRatenumber

    Reward APR on stable borrows

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

    Broker-defined term identifier. 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
    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.

    Example: 3.85
  • ]
  • 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
    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
    lenderstring
    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",
    "depositRate": 0,
    "variableBorrowRate": 0,
    "stableBorrowRate": 0
    }
    ],
    "config": {},
    "terms": [
    {
    "termId": 2,
    "durationDays": 7,
    "durationSecs": 604800,
    "apr": 3.85
    }
    ],
    "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"
    }
    }