IS EULER V2’S LIQUIDATION MECHANISM TRULY FAIR?
A deep dive into Euler v2’s liquidation, especially reverse Dutch auctions, incentives, and borrower tradeoffs
INTRODUCTION
In DeFi lending, liquidation is a protection mechanism of the protocols from insolvency in the bad market trend. Liquidation discount for liquidators is inversely proportional to borrower’s experience. It’s regarded as a bonus for liquidators yet a penalty for borrowers.
Euler Finance is known as a top lending protocol with a relatively fair liquidation framework.
This article will provide a detailed look at the liquidation mechanism of Euler V2, both in theory and practice, as well as to analyze whether it truly delivers fairness in practice.
KEY TAKEAWAYS
This article will dive into the liquidation mechanism Euler V2 to see its advantages and disadvantages via the following sections:
Section A: Explore the liquidation’s role in DeFi lending, together with its limitations on top lending protocols
Section B: Explore how Euler’s liquidation process works both in theory and on-chain
Section C: Dive into Euler’s liquidation principles to analyze its fairness
SECTION A: LIQUIDATION IN DEFI LENDING AND ITS LIMITATIONS
1/ What Is Liquidation In Defi?
In DeFi lending, liquidation is a state where the collateral of a borrower is sold off to another account (called liquidator) to repay their unpayable debts. It’s executed by smart contracts to protect lenders as well as the whole lending protocol from the insolvency or cascading effects in case of the bad markets.
Similar to traditional finance, it’s a common knowledge in DeFi lending that if we want to borrow an asset, you have to deposit a certain amount of token as collateral to borrow a smaller amount of debt tokens (also called overcollateralization). And liquidation happens when the value of the collateral drops or the debt value increases, pushing the borrowing position past the liquidation threshold; or simply when the health factor of borrowers’ position drops below 1, indicating that their collateral can’t sufficiently cover the loan anymore, they are in violation and eligible for liquidation.
2/ Limitations In The Liquidation Mechanism Of Top Lending Protocols
On some popular lending protocols like Compound and Aave, when the borrowing position is pushed into liquidation, liquidators will have an earning opportunity to liquidate borrowers’ insolvent debt at a fixed discount percentage, which typically ranges between 5-10%. It means that no matter how big your borrowing position is, if you get liquidated, you have to pay 5-10% of your collateral for the liquidators.
If your collateral is worth $50, with 5% of liquidation discount, you will lose $2.5 to the liquidator - seems not a big deal. However, when it comes to a much larger borrowing position like $1M or even $5M, also with that fixed discount, you will lose $50,000 or even $250,000, that’s a big loss, indeed!
Therefore, this rigid and conservative mechanism can sometimes drive a borrower closer to insolvency and disincentivise them, especially those with huge money, from borrowing.
SECTION B: EULER V2 LIQUIDATION FLOW – IN THEORY AND PRACTICE
Before diving into its liquidation theory base, we will take a general view of the liquidation process on Euler V2.
On Euler V2, overcollateralization is also applied to activate borrowing positions. And when the health factor of borrowers drops below 1, it’s indicated that a borrower now becomes a violator and his borrowing position is now undercollateralized and eligible for liquidation.
1/ Euler Core Liquidation Flow
On most lending protocols, including Euler, liquidation is often conducted by liquidation bots, a type of MEV bots, which earn profits from the price difference by reordering, inserting, and sandwiching transactions in a block. Liquidation bots help maintain the solvency of the protocol while earning liquidation discounts or bonuses.
In general, the liquidation process on Euler includes two main phases: health check and liquidation calculation. We will break them down later in every section. But first, we will take a look at a general liquidation flow executed by liquidator (bot).
After identifying that the health score is below 1.0, which is eligible for liquidation, the liquidator contract will call the simulate_liquidation() function to see what liquidator will gain if liquidating this account.
calculate_liquidation_profit() is called to calculate the potential profit if the liquidation is conducted
get_swap_API_quote(): call API from external service like 1inch Swap API to know the exchange rate when swapping collateral to debt token. In addition, use price data from Pyth Oracle for authentication.
After having exchange rate and oracle price data → Build transaction.
Check profit:
If No → not worth liquidating → just Post Results to Slack (report results/notify for liquidators or devs to know).
If Yes → continue.
Check Execution Mode
If No → don’t actually execute the command, just post the results to Slack.
If Yes → continue liquidating.
Call execute_liquidation(): perform the swap via 1inch Swap, check the exact price via Pyth Oracle and call the Liquidator.sol smart contract to directly liquidate on Euler.
Whether it’s a real liquidation or just a simulation, in the end Post Results to Slack to track the activity.
Here are two detailed main phases in the liquidation process on Euler.
Health Check
Before a liquidation can occur, the system verifies:
Liquidator and violator are different accounts
The collateral asset is recognized by the system
The violator has enabled the collateral
The account is not in a deferred status check state
The cool-off period (explained later) has elapsed since the last successful account status check
How to calculate the Health Factor (HF)?
Health factor, or health score, is a measure of your likelihood of liquidation based on the ratio of borrowing power to current debt.
If HF >1 → your borrowing position is safe
If HF <= 1 → your borrowing position is under risk → can be liquidated
Example:
If you deposit $10,000 BTC as collateral with an 85% liquidation threshold and borrow $7,000 in USDC, your health factor would be (10,000*85%/7,000)=1.21 → you’re pretty safe.
2/ Liquidation Calculation
On Euler, the position can be closed out in full or partially, up to the liquidator to choose, as long as the borrower’s position ends up being at a healthy score.
Because the repaid amount on a violating position is chosen by the liquidators, so if your HF <1 or you’re eligible for liquidation, it means you can get fully or partially liquidated, depending on the liquidators to decide.
Actually, this doesn’t seem quite fair for borrowers, especially in case they only need a little more collateral to bring their position back to health, but instead immediately being fully liquidated by an unknown liquidator, leaving a permanent loss.
Back to the story, after calculating health score, the system calculates these parameters and then execute liquidation based on the liquidation principles of Euler protocol (discussed later):
The maximum amount of debt that can be repaid
The maximum amount of collateral that can be seized
The amount of debt that liquidators want to repay (in case of partial liquidation)
The discount applied to the collateral (also follow the liquidation discount rule of Euler - explained later)
Euler’s Liquidation Use-Case
Below is a real-time example of an Euler’s liquidation transaction executed by a liquidation bot on 3rd Feb, 2025

After identifying a violator’s account (ending with ***cee2 and borrowing LBTC against WETH) that needs liquidating an insolvent amount of debt, the liquidator bot (sender address) will authorize a liquidation contract/proxy (receiver address) to conduct a series of operations for liquidation. You can imagine this contract as an operator or middleman who’s responsible for proceeding the liquidation for the bot.
Step 1 (Bot initiates transaction): Bot calls liquidation contract, sent 0.1 wei (nearly 0 ETH) to the contract for activation
Step 2: Liquidation contract sent 0.1 wei to ERC1967Proxy as an entry-point for liquidation. This is to trigger the function call
Now it’s time for debt repayment
Step 3 + 4: The protocol will transfer 0.02255 dLTBC (debt tokens) for the liquidator after sending it to a null address for burning
Step 5 + 6: After taking on the violator’s debt, the liquidator would receive 0.8994 eWETH collateral (share tokens) from the violator’s account, whose share tokens had already been burnt
Step 7: The liquidator would send the received amount of eWETH to the Swapper address to swap collateral (WETH) to debt token (LBTC) for repaying
Step 8-11: The swapper would route swap order via Uniswap, then receive 0.02437 LBTC back
Step 12: The swapper sent 0.02255 LBTC to LBTC vault to repay debt
Step 13: After receiving enough amount of debt, 0.02255 dLBTC would be sent to Null address for burning → clear debt position
Step 14 (final): the remaining amount of swapped LBTC (0.02437 - 0.02255 = ~0.0018 LBTC ~$200) would be sent back to the liquidation bot as a profit.
That’s how liquidation bot works and earns profit.
SECTION C: EULER LIQUIDATION PRINCIPLES – IS IT FAIR FOR BORROWERS?
The liquidation mechanism of Euler is quite interesting, with four significant features that make Euler stand out among other lending protocols like Compound or AAVE.
1/ Customizable Liquidation Discount
To prepare for liquidation base, Euler allows vault creators to configure the max liquidation discount. There’s a liquidation discount (or bonus) that grows linearly as the position health decreases up to a max value defined at the vault level. Vault creators can customize this number by themselves.
Of course, there’s always a trade-off between liquidation discount for liquidators and borrowers. Liquidation discount is considered a bonus for liquidators but penalties for violators. If the discount is too low, a liquidator may be discouraged from doing their work. Vice versa, if it’s too high, it means borrowers are losing too much of their assets to liquidators. So the vault creator needs to consider this point carefully.
Take USDC Euler Prime vault as an example, the max liquidation discount is set at 15%, which means that liquidators can receive the eTokens at a discount up to 15% after repaying the violator’s debt.
Assume the HF of a borrower is 0.85. This implies a liquidation discount of 15% (1 - 0.85). Hence, if repaying $100 worth of dTokens, a liquidator would get $115 worth of eTokens → profit: $15. This is different from the case of AAVE, where the liquidation discount for liquidators is often fixed, like 5% or 10%. This is a kinda low bonus, which sometimes discourages the liquidators as the actual revenue (including gas or operation cost) after liquidating is lower than expected.
That’s just a basic illustration we give to make this mechanism more straightforward. In reality, the HF is rarely down to 0.85 since when it’s just below 1, lots of liquidator bots would jump in to repay violator’s debt and gain profits. Therefore, max 15% bonus is a far-away number that can be seldom reached.
But in fact, the reality is not that rosy. In many cases of both Euler V1 & V2, the liquidation discount could be higher than 15% as in the example above, which caused some disadvantages for borrowers.
To understand why, you can read the section below.
2/ Reverse Dutch Auction Liquidation
Though liquidation is considered a great protection for lenders, yet, sometimes regarded as the “bully” of large borrowers, especially when a fixed discount percentage causes their large borrowing position a big loss. Say a collateral of $2M is liquidated, if the fixed liquidation bonus is 5% or even 10% like on AAVE or other hulks, so violators would lose $100,000 - $200,000, which is a huge loss.
Rather than a fixed discount percentage, Euler allows the discount to rise as a function of how under-water a position is. Euler calls this mechanism a type of Dutch auction, an expected-to-be-fair liquidation mechanism. As the discount slowly goes up, each liquidator has to choose their right time to jump in the bidding depending on their operation costs
Example:
Say a user with 0.99 HF, theoretically, has to pay a 1% bonus.
At the beginning of the auction, the discount is steady at 1% and no liquidator chooses to act. As the HF is lower, the discount rises to 3%. Liquidator A might be profitable at 5%, but liquidator B might run a more efficient operation and be able to jump in sooner at 3%. And of course, Liquidator C would fail the auction at 7%.
Since anyone can liquidate at any time, this liquidation auction in a competitive environment like Ethereum usually settles close to the marginal level of profitability for liquidation. This means that if it costs $20 to liquidate, the liquidation discount on $200 collateral will be found at close to 10%, whereas on collateral of $2M, will be found at close to just 0.001% (i.e.) if liquidated.
This is the reason why we mentioned before, the max liquidation discount like 15% in the previous case, or even higher, is rarely reached.
This mechanism is like a shield to protect borrowers on Euler, especially large ones.
However, this is just based on the theory. What about the reality?
You can see the chart metric below for better illustration
As far as we studied, in the last nine months of 2022, Euler V1’s liquidation discount was gradually decreasing by the liquidation size. Large borrowers in case of being liquidated tend to pay lower penalty rate than smaller ones. It’s a good thing, indeed.
However, in many cases of medium-volume borrowers, ranging from $800 - $10,000, some of them have to pay around 20% for the liquidators, even worse, someone had to pay nearly 27% for the liquidation worth $846, which meant a loss of about $228
About Euler V2, reverse Dutch auction liquidation mechanism is still being maintained and applied. However, look at the metrics since March 2025 till the present time above, we can see that the figure is not quite “beautiful” as expected. The good thing is most medium-sized positions were liquidated at a relatively low discount rate, mostly below 4%.
Yet, there are still some unfortunate cases where assets are liquidated with high penalty fees. Some positions with liquidation volumes of around $1,000-$15,000 have to pay nearly 18% to the liquidator. Notably, on the October 10th crash, there’s a borrowing-USDT-against-ASTER position liquidated for over $2.7M at about 3.15% penalty – a heavy loss (~$85k) for this whale.
So, as illustrated in the figure above, reverse Dutch auction liquidation mechanism of Euler is like a double-edged sword. In most cases, it’s like a protective buffer for borrowers, especially large ones. However, under extreme market conditions, it can also turn into a mechanism that amplifies losses rather than containing them. It means high or low liquidation penalty also depends on borrowers’ luck.
3/ Bad Debt Socialization
After the liquidation, if the violator’s collateral doesn’t fully cover its obligations, the remaining liability is shared across all depositors in the vault. This mechanism is inspired by Morpho Blue
Vaults on Euler have bad debt socialization enabled by default. This means that if a liquidated account’s collateral doesn’t fully cover its obligations, the remaining liability is shared across all depositors in the vault. This promotes stability for the vault, though vault governors can disable this feature by enabling the setConfigFlags(CFG_DONT_SOCIALIZE_DEBT) flag if they have other methods to manage bad debt, such as setting aside a portion of the vault fee as a reserve fund or having a “guarantor” take on the debt pullDebt().
Example:
Say a borrower owes 1000 USDC but his collateral value drops to only $900 worth. After being liquidated, the debt of 100 USDC still remains and this would be considered a bad debt.
Vault USDC has 10 depositors (lenders), making it a total of 1,000,000 USDC. In the case of 100 USDC bad debt, each depositor will bear a position of the loss proportional to the amount they deposit. Suppose depositor A sends 100,000 USDC (10% vault value) into the lending vault, he will bear 10 % of 100 USDC bad debt → lose 10 USDC.
Why does Euler apply this model?
It’s mainly to avoid bank runs (the state that people withdraw money in droves because they are afraid of losing their capital). If not socialized, the vault may collapse in the worst case because no one wants to leave money behind.
You may see that this model only brings financial loss to other unrelated lenders, which is quite unfair for them while they don’t have any bad debt. However, on top of bank run prevention, this mechanism is introduced to prevent personal financial risk, indeed. When socializing, the risk will be equally divided so your damage will always be smaller than the bankruptcy scenario. This keeps the deposit flow going and stabilizes the psyche.
Moreover, this model simply reflects the basic principle of lending: profit always comes with risk.
Actually, when lenders deposit their assets into a vault, their interest rate (APR) is 8%/year, or a specific number which is often higher than bank rate. In case of a bad debt with 2% loss in a year, their net APR would be 6% left → they still yield!
What we mean here is as long as the bad debt frequency is lower than the profit earned, the total profit remains positive. Lenders don’t have to worry much about this approach because they have choices. It means they can opt for a more secure vault to deposit money where bad debt rarely happens, such as stablecoin or RWA-backed vaults, or simply choose other vaults without bad debt socialization functionality.
4/ Cool-off Period
Cool-off period is the “mandatory delay” before an account can be liquidated, to prevent the scenario of hackers creating and bankrupting positions in the same block by manipulating the oracle.
To provide clearer illustration, we have a scenario here:
Problem: Oracle is attacked by “choosing past price”
Pull-based oracles (e.g. Pyth Oracle) allow users to choose a price that was announced within the last N minutes to update on-chain.
Hackers can exploit this by:
Waiting for the collateral asset price to drop sharply (or the debt asset price to increase sharply) within N minutes.
Choosing the old price (before the drop) to deposit the collateral and borrowing the maximum LTV.
Immediately after that, updating the oracle to the new price, which is a low price because the collateral value dropped and leaves a very bad position.
Using another account to liquidate the newly created position, leaving bad debt for the protocol but the hacker makes a profit after all.
→ This is regarded as a “risk-free” attack, often combined with flash loans.
Solution: Cool-Off Period
Cool-off period is a required delay time in a few seconds or blocks that an account can’t be liquidated once creating positions. Once an account has been checked and determined to be healthy, it cannot be liquidated immediately even if the oracle price changes unfavorably. It means that hackers can’t create positions and liquidate in the same block anymore.
Therefore, hackers can’t use flash loans since flash loans only exist in 1 block. Instead, they are forced to wait at least until the next block to liquidate, which is a higher risk because someone else may liquidate first.
However, every solution comes with a trade-off, with no exception for the cool-off period. Though this mechanism is safer and resistant to oracle attacks, real liquidation may be delayed
CONCLUSION
Liquidation mechanism on Euler V2 is somewhat distinguishing, especially the reverse Dutch auction. This model is a win-win where violators, especially large-sized ones, still have to pay their penalty but at a lower percentage, and liquidators still earn bonus but at a lower discount.
However, things are far from perfect, particularly in some extreme cases, medium and large borrowers still face disadvantages when their losses were amplified by high liquidation penalties. Also, allowing the liquidators to choose how much debt to take on when the violators’ position can be unfair to violators, especially when they only need to add a small extra amount of collateral to restore their healthy position, yet being entirely liquidated by liquidators instead.
A strong point is that Euler V2 with their anti-hacking measure, namely cool-off period is a good way to protect the protocol’s liquidity from the self-liquidation of attackers.
In general, the liquidation of Euler V2 is still a solid design though its core concept needs further consideration.
DISCLAIMER
This article is an independent educational analysis of Euler V2’s liquidation mechanism, with a focus on its reverse Dutch auction design and related protocol safeguards. Our goal is to help readers understand how this mechanism operates in practice, where it succeeds, and where potential fairness concerns may arise, so that they can form their own informed perspective.
All concepts are explained in a clear and approachable way so that readers with a basic understanding of DeFi lending can understand.










