LendingPosition
Position data for a single asset within a lending protocol.
For Lista DAO fixed-term (brokered) markets a single market expands into several rows sharing the same marketUid:
- one aggregate debt row (no
term/loanId) wheredebt= the dynamic/variable loan anddebtStable= the sum of fixed loans — use this for totals & health; - one shared collateral row (
collateralEnabled = true, noloanId) backing every loan; - one per-loan row per open loan, each carrying
loanIdand aterm. These are a breakdown of the aggregate — do not sum them into totals on top of the aggregate row.
Unique market identifier (format: {lender}:{chainId}:{address})
AAVE_V3:1:0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2Deposit amount in token units (wei)
1000000000000000000Variable debt in token units
0Stable debt in token units
0Debt share amount (protocol-specific, present when the protocol uses share-based accounting)
0Deposit share amount (protocol-specific, present when the protocol uses share-based accounting)
0Deposits in USD (market price)
2500Variable debt in USD (market price)
0Stable debt in USD (market price)
0Deposits in USD using on-chain oracle price (used for risk/health calculations)
2510Variable debt in USD using on-chain oracle price
0Stable debt in USD using on-chain oracle price
0Whether this asset is enabled as collateral
trueClaimable rewards in USD
0.5Max tokens withdrawable while maintaining health >= 1. Equals full deposit balance if collateral is not enabled.
0.5Max tokens borrowable against remaining credit line. Zero if borrowing is disabled, reserve is frozen, or debt is disabled for the active mode.
100underlyingInfo object
Nested asset metadata, oracle prices, and market prices for a lending market.
asset object
Token metadata for an underlying asset.
EVM chain id, as a decimal string. See the ChainId schema.
1Token contract address (lowercase)
0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48Token symbol, e.g. WETH.
USDCHuman-readable display name.
USD CoinToken decimals — divide raw amounts by 10 ** decimals.
6URL of the logo image.
Canonical asset group (e.g. "USDC", "ETH", "BTC")
USDCprops objectnullable
Protocol-specific asset properties
Protocol-specific asset properties
oraclePrice object
On-chain oracle price data.
Raw on-chain oracle price
Oracle price denominated in USD
prices object
Market prices for an asset with 24h comparison.
Current price in USD
Timestamp of current price
Price 24 hours ago in USD
Timestamp of 24h-ago price
Percentage price change over 24h
Lista DAO brokered markets only: identifies a single fixed-term loan (the broker posId; the dynamic/flex position uses type(uint128).max). Present on per-loan breakdown rows; absent on the aggregate debt row and on the shared collateral row. Pass to /v1/actions/lending/repay?loanId=….
450term objectnullable
Lista DAO brokered markets only: the fixed-term detail for this loan (rate, maturity, accrued interest, early-repay penalty). Present only on per-loan breakdown rows.
The WRITE TARGET for this loan — meaning is lender-specific: Lista = the broker's posId (the dynamic position uses 340282366920938463463374607431768211455, type(uint128).max); Exactly = the maturity as a string (but repay requests send termId, never loanId); TermMax = the GT NFT id; Teller = the bidId. Pass to /v1/actions/lending/repay?loanId=… for the lenders that key on it.
450The rate-card term this loan was opened against (matches a MarketTerm.termId). Omitted for the dynamic/flex position. Exactly: equals the maturity, and IS the field a repay request must send.
2True for the flexible/variable position (e.g. a matured fixed loan auto-refinanced into the dynamic position). Omitted/false for fixed-term loans.
falseOutstanding debt for this loan in token units. Lista/Teller (accruing debt): principal + accrued interest. Exactly/TermMax (STATIC face value): the EXIT-NOW cost — for Exactly that is discounted before maturity and penalty-inflated when overdue, so compare with faceValue rather than assuming it is the settle-at-maturity amount.
14.5003Fixed APR locked for this loan, in percent. Omitted for the dynamic position (it tracks the variable rate).
3.85Unix timestamp (seconds) when the fixed term ends. After maturity interest is frozen and the loan may be refinanced into the dynamic position. Omitted for the dynamic position.
1781789025Term length in days.
7Interest accrued so far on this loan, in token units.
0.000358Cost (token units) to close this loan before maturity, on top of principal + accrued interest (≈ half the remaining-term interest). 0 once the loan has matured. To fully close fund debt + earlyRepayPenalty; the broker refunds any excess.
0.001211True once the fixed term has ended. What follows differs per lender: Lista freezes interest and a keeper auto-converts the loan into the dynamic position (so it may reappear as the isDynamic row); Exactly starts accruing the late penalty below; TermMax opens a 2-hour liquidation window and then settles by physical delivery; Teller DEFAULTS after the market grace period and a liquidator seizes the entire collateral.
falseAmount owed AT maturity (principal + fee) for static-face-value lenders (Exactly). No accrual index — it grows only via a late penalty where the protocol has one. Compare against debt (the exit-now cost) to show the user what waiting or repaying early is worth.
100.0Exactly only: the REBATE for repaying before maturity (faceValue − debt). Exactly never charges an early-repay fee — but this is 0 when the fixed pool has no unassigned earnings left, so an early repay is not a guaranteed saving. Opposite in sign to Lista earlyRepayPenalty.
1.0Exactly only: penalty accrued so far past maturity (debt − faceValue), token units.
2.25Exactly only: further penalty per additional day overdue, token units. LINEAR on face value, not compounding.
0.225Exactly only: the annualized late-penalty rate in percent (~164 %/yr ≙ ~0.45 %/day at time of writing). A mutable market parameter, snapshotted per fetch — do not hardcode it in UI copy.
164.24Seconds past maturity; 0 until overdue.
0{
"marketUid": "AAVE_V3:1:0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"deposits": "1000000000000000000",
"debt": "0",
"debtStable": "0",
"debtShares": "0",
"depositShares": "0",
"depositsUSD": 2500,
"debtUSD": 0,
"debtStableUSD": 0,
"depositsUSDOracle": 2510,
"debtUSDOracle": 0,
"debtStableUSDOracle": 0,
"collateralEnabled": true,
"claimableRewards": 0.5,
"withdrawable": "0.5",
"borrowable": "100",
"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
}
},
"loanId": "450",
"term": {
"loanId": "450",
"termId": 2,
"isDynamic": false,
"debt": "14.5003",
"apr": 3.85,
"maturity": 1781789025,
"termDays": 7,
"accruedInterest": "0.000358",
"earlyRepayPenalty": "0.001211",
"isMatured": false,
"faceValue": "100.0",
"earlyRepayDiscount": "1.0",
"latePenalty": "2.25",
"latePenaltyPerDay": "0.225",
"latePenaltyApr": 164.24,
"secondsLate": 0
}
}