# ETH Liquidation Levels on DeFi Lending Markets

> ETH liquidation levels on Aave, Spark, Compound and Morpho: collateral that turns liquidatable at each price step, health factor distribution and BTC levels.

Markdown copy of https://voltfincrypto.com/apps/eth-liquidation-levels

**Question:** At what ETH price would large amounts of DeFi lending collateral be liquidated?

- Kind: Dashboard in Voltfin Vantage
- Topic: [DeFi](https://voltfincrypto.com/topics/defi)
- Chains: Multi-chain, Ethereum, Base, Arbitrum
- Status: Planned. The data is not published yet, so this page states no figure; each figure will open its receipt when it is.

Every borrowing position on a lending market has a price at which it can be liquidated, and because positions are public contract state, that price can be computed for every borrower at once. This dashboard computes it for positions backed by ETH or BTC on Aave, Spark, Compound and Morpho. It shows how much collateral would become liquidatable at each price step below the current one.

Read it as a map of where forced selling sits, not as a forecast. Borrowers can add collateral or repay at any time, so the map describes the moment of its read block. Positions whose collateral and debt move together, such as staked ETH borrowed against ETH, are kept apart, because a fall in ETH barely changes how close they are to liquidation.

## Blueprint

### Levels

Collateral that becomes liquidatable at each price below the current one.

- **Price at the read block** (USD): The oracle price of the selected asset at the read block, from AaveOracle and Chainlink.
- **Liquidatable within a tenth** (USD): Collateral that would become liquidatable if the selected asset fell by a tenth from its read-block price, other prices unchanged.
- **Liquidatable within a fifth** (USD): Collateral that would become liquidatable if the selected asset fell by a fifth from the same price.
- **Positions within a tenth** (count): Borrowing positions that would become liquidatable within a fall of a tenth.
- **Liquidation map** (USD): Collateral that becomes liquidatable at each price step below the current price, stacked by protocol.
- **Cumulative collateral at risk** (USD): Collateral liquidatable as the price falls, adding every step between the current price and each level.

### Positions

Health factors and the largest positions behind the map.

- **Borrowing positions** (count): Open borrowing positions with the selected asset as collateral at the read block.
- **Debt against this collateral** (USD): Debt owed by those positions, valued at the read block.
- **Debt by health factor** (USD): Debt grouped into health factor bands, from just above one to well collateralized.
- **Largest positions**: The largest positions by collateral: protocol, chain, collateral, debt, health factor and liquidation price.

Filters: Collateral (ETH or BTC as the collateral asset); Protocol (Aave, Spark, Compound, Morpho or all); Chain (Every covered chain, or all chains).

## How it will be measured

- Open positions are rebuilt from Supply, Withdraw, Borrow and Repay events on Aave v3 and SparkLend, and checked against Pool.getUserAccountData(user) at the read block.
- Compound v3 positions come from collateralBalanceOf and borrowBalanceOf per account with each asset's liquidateCollateralFactor; Morpho Blue positions from position(id, user) and the market's lltv.
- A position's liquidation price is the price of the selected asset at which its health factor reaches one, with every other price held at its oracle value at the same block.
- Prices come from AaveOracle getAssetPrice and Chainlink latestRoundData at the read block, and the collateral at each step is valued at that step's price.
- Positions with correlated collateral and debt, such as those in Aave's efficiency mode for ETH assets, are shown separately and left out of the main map.

## Data it needs

- `lending_markets_daily` (to build): Supply, borrow, utilization and rates per lending market (Aave, Morpho, Spark, Compound, Euler and others) at day end.
- `liquidations` (to build): Every liquidation on major lending markets and perp venues: collateral seized, debt repaid, liquidator, and the price at the time.
- `native_prices_daily` (to build): Reference prices of major assets read from on-chain oracle feeds (Chainlink latestRoundData) at each day's last block, with each round's update time.
- Source: Aave v3 and SparkLend Supply, Withdraw, Borrow and Repay events to build open positions per user
- Source: Pool.getUserAccountData(user) health factor at a pinned block
- Source: PoolConfigurator CollateralConfigurationChanged (ltv, liquidationThreshold, liquidationBonus) per asset
- Source: Compound v3 Comet collateralBalanceOf and borrowBalanceOf per account with getAssetInfo liquidateCollateralFactor
- Source: Morpho Blue position(id, user) and market lltv
- Source: AaveOracle getAssetPrice and Chainlink latestRoundData at the same block

## Questions

### What is a liquidation level?

The price at which a borrowing position can be liquidated because its collateral no longer covers its debt with the margin the protocol requires. Adding up positions by that price shows where liquidations would cluster.

### How is an Aave liquidation price calculated?

For a position with one collateral and one debt, it is the debt divided by the product of the collateral amount and the collateral's liquidation threshold. With several assets, it is the price of one asset at which the health factor falls to one, others held constant.

### What is a health factor?

Aave's measure of a position's safety: collateral, weighted by each asset's liquidation threshold, divided by debt. Above one the position cannot be liquidated; at or below one it can.

### Do these levels predict where the price will go?

No. They show where collateral would become liquidatable if prices reached those levels. Borrowers can add collateral or repay at any time, so the map changes as positions change.

### Why are some ETH positions left out of the map?

Positions that borrow ETH against staked ETH, or similar pairs, gain or lose on both sides together when ETH moves, so a price fall barely changes their safety. They are shown on their own instead of in the main map.

## Glossary

- **Liquidation threshold**: The share of a collateral's value that counts toward covering debt when deciding whether a position can be liquidated.
- **Health factor**: Weighted collateral divided by debt; at or below one, a position can be liquidated.
- **Efficiency mode**: An Aave setting that allows higher limits for correlated assets, such as ETH and staked ETH, borrowed against each other.
- **Collateral at risk**: Collateral that would become liquidatable if the price fell to a given level.

## Related apps

- [DeFi Liquidations Tracker: Lending and Perp DEXs](https://voltfincrypto.com/apps/defi-liquidations-tracker)
- [Liquidation Heatmap from On-Chain Positions](https://voltfincrypto.com/apps/liquidation-heatmap)
- [Aave Rates: Borrow and Supply APY by Market](https://voltfincrypto.com/apps/aave-rates)
- [DeFi Lending Rates Table: Utilization and LTV by Market](https://voltfincrypto.com/apps/defi-lending-rates-table)
- [Crypto Liquidations Today: Longs vs Shorts](https://voltfincrypto.com/apps/crypto-liquidations-today)
- [DeFi TVL by Chain: Total Value Locked Rankings](https://voltfincrypto.com/apps/defi-tvl-by-chain)

Build it in Voltfin Studio: https://app.voltfincrypto.com/signup?next=%2F
