Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

AaveProtocolDataProvider

Read-only helper used by frontends and integrators. All methods are derived views over Pool and the reserve token contracts.

The provider is registered on PoolAddressesProvider under the DATA_PROVIDER identifier — fetch its address via PoolAddressesProvider.getPoolDataProvider().

State

ADDRESSES_PROVIDER

IPoolAddressesProvider public immutable ADDRESSES_PROVIDER

The provider this data-provider was configured against.

Methods

getAllReservesTokens

function getAllReservesTokens() external view returns (TokenData[] memory)

Returns one TokenData(symbol, tokenAddress) per active reserve. For two special-cased addresses, the symbol is hard-coded:

  • MKR (0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2)symbol == "MKR" (the live MKR token returns a bytes32 symbol, which would break IERC20Detailed.symbol).
  • ETH (0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE)symbol == "ETH".

For every other reserve, symbol is fetched from the underlying via IERC20Detailed.symbol().

getAllATokens

function getAllATokens() external view returns (TokenData[] memory)

Returns one TokenData(symbol, tokenAddress) per active reserve, where the address and symbol are read from the reserve's AToken proxy (e.g. spUSDS).

getReserveConfigurationData

function getReserveConfigurationData(address asset) external view returns (
  uint256 decimals,
  uint256 ltv,
  uint256 liquidationThreshold,
  uint256 liquidationBonus,
  uint256 reserveFactor,
  bool usageAsCollateralEnabled,
  bool borrowingEnabled,
  bool stableBorrowRateEnabled,
  bool isActive,
  bool isFrozen
)

Decoded reserve configuration. usageAsCollateralEnabled is liquidationThreshold != 0.

getReserveEModeCategory

function getReserveEModeCategory(address asset) external view returns (uint256)

Returns the asset's e-mode category (0 = default).

getReserveCaps

function getReserveCaps(address asset) external view returns (uint256 borrowCap, uint256 supplyCap)

Caps are in whole tokens, not native units. 0 means no cap.

getPaused

function getPaused(address asset) external view returns (bool isPaused)

Per-reserve paused flag (bit 60).

getSiloedBorrowing

function getSiloedBorrowing(address asset) external view returns (bool)

Per-reserve siloed-borrowing flag (bit 62).

getLiquidationProtocolFee

function getLiquidationProtocolFee(address asset) external view returns (uint256)

Bps share of the liquidation bonus routed to treasury.

getUnbackedMintCap

function getUnbackedMintCap(address asset) external view returns (uint256)

Bridge unbacked-mint cap (whole tokens).

getDebtCeiling / getDebtCeilingDecimals

function getDebtCeiling(address asset) external view returns (uint256)
function getDebtCeilingDecimals() external pure returns (uint256)

getDebtCeiling returns the isolation-mode debt ceiling with DEBT_CEILING_DECIMALS = 2 (so 200_00 = $200). 0 means isolation mode is disabled for the asset.

getReserveData

function getReserveData(address asset) external view returns (
  uint256 unbacked,
  uint256 accruedToTreasuryScaled,
  uint256 totalAToken,
  uint256 totalStableDebt,
  uint256 totalVariableDebt,
  uint256 liquidityRate,
  uint256 variableBorrowRate,
  uint256 stableBorrowRate,
  uint256 averageStableBorrowRate,
  uint256 liquidityIndex,
  uint256 variableBorrowIndex,
  uint40 lastUpdateTimestamp
)

Snapshot of the reserve's economics. totalAToken, totalStableDebt, and totalVariableDebt are denominated in the underlying asset's native units.

getATokenTotalSupply

function getATokenTotalSupply(address asset) external view returns (uint256)

AToken.totalSupply() for the reserve.

getTotalDebt

function getTotalDebt(address asset) external view returns (uint256)

StableDebtToken.totalSupply() + VariableDebtToken.totalSupply().

getUserReserveData

function getUserReserveData(address asset, address user) external view returns (
  uint256 currentATokenBalance,
  uint256 currentStableDebt,
  uint256 currentVariableDebt,
  uint256 principalStableDebt,
  uint256 scaledVariableDebt,
  uint256 stableBorrowRate,
  uint256 liquidityRate,
  uint40 stableRateLastUpdated,
  bool usageAsCollateralEnabled
)

getReserveTokensAddresses

function getReserveTokensAddresses(address asset) external view returns (
  address aTokenAddress,
  address stableDebtTokenAddress,
  address variableDebtTokenAddress
)

getInterestRateStrategyAddress

function getInterestRateStrategyAddress(address asset) external view returns (address)

getFlashLoanEnabled

function getFlashLoanEnabled(address asset) external view returns (bool)

Returns bit 63 of the reserve configuration.