A guy I used to trade with got liquidated on Aave during one of those overnight cascades, and the thing he could not get over was that the chart he had open never printed his liquidation price. The wick on his exchange bottomed a little above it. What he had never internalized is that the protocol does not watch his exchange. It watches an oracle, the oracle updates on its own schedule, and the print that closed his position happened at a price he never saw. Once you accept that, the rest of liquidation mechanics is mostly arithmetic, and the arithmetic is worth learning because it tells you exactly how far the market can fall before a stranger is allowed to sell your collateral at a discount.
Health factor is one ratio, plus two numbers people confuse
Every major money market runs the same basic engine, whether it is Aave, Compound, Spark, or one of the hundred forks. You deposit collateral, you borrow against it, and the protocol continuously computes a health factor. The formula is the value of your collateral, multiplied by each asset's liquidation threshold, divided by the value of your debt. Above 1 you are fine. Below 1, anyone in the world is allowed to repay part of your debt and take a corresponding chunk of your collateral, plus a bonus, without asking you anything.
The thing that trips people up is the difference between the loan-to-value ratio and the liquidation threshold. LTV is a borrowing-time constraint. If ETH has an LTV of roughly 80 percent, the protocol will not let you open a borrow larger than 80 percent of your collateral value. The liquidation threshold is a separate, slightly higher number, and that is the one that decides when you get closed out. The gap between the two exists so you are not instantly liquidatable the second you max out a borrow. It is a thin grace band, and if you borrow right up to the LTV limit you are choosing to live inside it.
Here is the arithmetic that matters. Say you deposit collateral worth 20,000 in stablecoin terms, the liquidation threshold is 80 percent, and you borrow 10,000 of a stablecoin. Your health factor is 20,000 times 0.8 divided by 10,000, which is 1.6. You become liquidatable when the collateral is worth 12,500, because 12,500 times 0.8 equals your 10,000 of debt. That is a 37.5 percent drop. There is a general version of this worth memorizing. When you borrow stables against volatile collateral, the drop you can survive is one minus one divided by your health factor. HF of 2.0 survives a 50 percent drop. HF of 1.25 survives 20 percent. HF of 1.1 survives about 9 percent, which in crypto is a Tuesday.
Liquidators are bots, and they get paid from your position
There is no margin desk calling you first. Liquidation on these protocols is a public function anyone can call, and in practice it gets called by bots that watch every position and race each other the moment one crosses under 1. The caller repays some of your debt and receives collateral worth more than what they repaid. That extra is the liquidation bonus, typically somewhere around 5 to 10 percent depending on how risky the collateral is. It is the incentive that keeps the protocol solvent, and it comes out of you.
Most protocols also have a close factor, which caps how much of your debt can be cleared in one liquidation. Historically that has often been half, though Aave v3 allows a full liquidation once the health factor has fallen deep enough below 1. So a liquidation is usually a partial haircut rather than a total wipeout, but the damage compounds in an ugly way. You lose the bonus on the repaid portion, your collateral gets sold at what is usually a local low, and if the move keeps going you can get liquidated again on the remainder. The second bite hurts more than the first, because by then the penalty has already been carved out of a position that was underwater.
The oracle decides the timing, and it moves in jumps
The protocol prices your collateral with an oracle, usually Chainlink feeds. Those feeds do not stream every tick. They push a new price on-chain when the price moves past a deviation threshold, typically a fraction of a percent for major assets, or when a heartbeat interval expires. Two things follow from that, and both matter for whether you personally get liquidated.
First, the on-chain price moves in discrete steps. In a slow market that is irrelevant. In a fast market, one oracle update can jump from a price where you were safe to a price where you are liquidatable, skipping the whole zone where you imagined you would calmly top up. The reaction window you were counting on never existed on-chain. Second, the oracle and your exchange do not always agree. A thin wick on one venue may never register on the aggregated feed, which occasionally saves people. An aggregated move that your favorite exchange lagged can also mark you liquidatable at a level your own chart never printed, which is what happened to my friend.
The other feature of fast moves is that everyone needs the chain at once. During the March 2020 crash, gas on Ethereum spiked so hard that many borrowers trying to save their positions could not get transactions included in time, and some Maker collateral auctions famously cleared at absurd prices because the keepers were stuck too. The lesson generalizes. Whatever plan you have for defending a position, assume it has to execute during the worst hour of congestion you have ever seen, because that is exactly when you will need it.
Buffer targets, and a plan for the fast move
My working rules, conservative on purpose, because being early costs a little yield and being late costs the bonus plus the bottom tick.
- Borrowing stables against BTC or ETH, keep the health factor at 1.6 or higher if you check daily, 2.0 or higher if you want to sleep through a 40 percent drawdown, which both assets have historically delivered more than once.
- Borrowing against anything long-tail or thinly traded, 2.5 to 3, and ask honestly whether the trade still works at that ratio, because it often does not.
- Correlated positions, like borrowing ETH against a liquid staking token, can run tighter since both legs move together, but the remaining risk is the discount between them blowing out, and that is precisely the risk that shows up in a panic.
- Whatever the target, write down the liquidation price itself, the actual number where HF hits 1, and set alerts well above it, one around HF 1.5 as a warning and one around 1.3 as an act-now trigger, on two channels in case one fails.
Then the top-up plan, decided in advance. Keep stablecoins and gas money on the same chain as the position, sized to lift your health factor meaningfully, because bridging during a crash is how you arrive after the liquidation. When the collateral itself is what is falling, repaying debt usually beats depositing more of the falling asset. Both raise the health factor, but the repay also cuts your exposure to the thing going down, while the deposit doubles down on it. And rehearse once. Do a small repay on a calm day so the token approvals are set and you know the flow, because the first time you sign that transaction should not be at 3 a.m. with the market down 20 percent and gas at ten times normal.
None of this is sophisticated. The protocols publish every threshold, the math is one division, and your liquidation price is sitting right there in the app. The people who get liquidated mostly never wrote that number down, so their buffer was whatever they happened to leave behind, and the oracle found out for them. Work out how far the market can fall before your position is at risk, decide in advance where you act, and recheck the number every time you borrow more.