Introduction
Leading DeFi lending protocols today, including Aave, Compound, and Spark, have been designed with certain trade-offs between decentralization and scalability. For instance, these protocols rely on third-party external price oracles, such as Chainlink and Chronicle. Furthermore, most major lending platforms in DeFi use a DAO governance model to make key decisions, including (i) setting protocol parameters, (ii) deciding which collateral types to onboard, and (iii) pausing or activating markets. While this approach has proven effective for the scaling and managing of lending protocols, it introduces varying degrees of centralization, requiring protocol users to place a certain level of trust in governance token holders.
The Ajna Protocol, on the other hand, was designed to prioritize decentralization and permissionlessness. It is a noncustodial, peer-to-pool lending platform that operates without governance or reliance on external price feeds. These features are made possible by its unique protocol architecture. A critical component of this architecture is the Ajna liquidation system. For borrowers, knowing how liquidations work is crucial in the event that their positions become undercollateralized. For lenders, it’s important to correctly set lending parameters. Lastly, for liquidation participants (kickers and takers), it is important to understand the liquidation process for successful participation and to ensure that the protocol remains solvent.
This post aims to provide:
A brief overview of how Ajna liquidations work
An analysis of Ajna liquidations
How Ajna users can monitor liquidations through the Ajna Analytics UI
A Brief Overview of Ajna Liquidations
To understand Ajna liquidations, it is first important to understand three key concepts: (i) Pool Users, (ii) Ajna Pools, and (iii) the method by which tokens are priced without relying on external price feeds.
Ajna Pool Users
As a first layer of abstraction, Ajna pool users consist of lenders and borrowers. Similarly to other lending protocols, Ajna utilizes pools to provide a place for lenders to earn interest, and for borrowers to provide collateral for securing overcollateralized borrowing positions. Borrowers deposit “collateral tokens”, while lenders provide “quote tokens”.
To enable a healthy liquidation system, the Ajna Protocol requires the participation of two additional stakeholders - kickers and takers. Kickers are responsible for initiating liquidations. Takers buy collateral during liquidation auctions.
Ajna Pools
Pool Creation
If a token pair is not already deployed, anyone can permissionlessly create a new pool using the Ajna factory contract. It is also worth noting that there is no cross-margining in Ajna. The risk of assets are limited to the pool(s) that they exist in. This is also relevant during liquidations, since isolated pools help mitigate the potential of cross-platform contagion during volatile market events.
Price Buckets
Ajna pool liquidity is discretized into so-called “price buckets”. A price bucket is the price at which a lender is willing to lend their quote token against the collateral token in the pool. By depositing in a specific price bucket, lenders are able to choose their solvency risk according to their risk tolerance.
Pricing Tokens Without External Price Feeds
To understand Ajna pricing and liquidations, we first need to understand three important metrics: (i) Lowest Utilized Price (LUP), (ii) Threshold Price (TP), and (iii) Neutral Price (NP).
Lowest Utilized Price (LUP): The LUP is the lowest price bucket where there is a utilized deposit. The LUP threshold is where the least aggressive lender is matched with a borrower.
Threshold Price (TP): A value assigned to loans. The price at which the collateral value equals the debt value, inflated by 4%. Calculated as:
Neutral Price: In Ajna, the Neutral Price (NP) is treated as a loan’s liquidation price. It is uneconomical to kick a borrower if the liquidation auction does not clear below this price. When the loan is first initiated, the NP is calculated as:
Where r is the borrower rate of the pool in question. The NP increases at the same rate as the interest of the pool.
Learn more about these metrics in the Ajna FAQ.
Liquidations
Having covered the fundamentals of users, pools, and pricing, we can now explore how liquidations function within the Ajna Protocol. Below, we explain the liquidation process from the perspective of the different user categories involved.
Borrowers & Liquidation Criteria
When a loan’s TP crosses above the pool’s LUP, the position is eligible for liquidation. To quantify this in a more intuitive way, the Ajna Analytics UI measures the “Health Rate”. If the Health Rate is <1, the loan is undercollateralized, and can be Kicked into auction.
As an example, the screenshot below shows a borrower in the sUSDe/DAI pool with a Health Rate of 1.47.
Learn more about borrowers and liquidation criteria in section 7.1 Liquidation Criterion in the Ajna Whitepaper.
Kickers & Liquidation Bonds
In Ajna, liquidations need to be externally triggered. To disincentivize spurious liquidations, a kicker is required to pledge a “liquidation bond” (a quantity of quote tokens) to initiate a liquidation (kick). The size of the bond is a product of the amount of debt in the loan which is being kicked.
Depending on the outcome of the liquidation auction, the kicker will either earn additional quote tokens as a reward, or forfeit their bond (in part, or in whole) as a penalty. This outcome is determined by the auction clearing price relative to the NP. If the clearing price is below the NP, the kick is profitable. If the clearing price is above the NP, the kicker will forfeit a portion, or all, of the bond. This relationship is illustrated in the Ajna Whitepaper as follows.
Learn more about kickers and liquidation bonds in section 7.3 Liquidation Bonds of the Ajna Whitepaper.
Takers & Liquidation Auctions
When a loan has been triggered for liquidation, takers can purchase collateral with the relevant quote token by calling "take". Ajna uses a pay-as-bid Dutch auction, where the collateral price starts at: 256 * max(HTP, NP, ReferencePrice_ActiveAuctions). Over time, the collateral price decays towards 0. The maximum auction duration is 72 hours.
The timeline of a liquidation auction is illustrated in the Ajna Whitepaper as follows.
Learn more about takers and liquidation auctions in section 7.4 Liquidation Auctions of the Ajna Whitepaper.
Lenders & Deposit Take
Lenders who provide quote tokens may also be subject to auction participation if someone else calls "deposit take". The deposit take function triggers a collateral purchase on behalf of lenders that have deposited quote tokens into an appropriate price bucket.
Say, for example, that the auction price is the same price as the highest bucket in a pool. In this case, anyone can call deposit take to put the lenders with the collateral. In other words, the participant who triggers deposit take is not necessarily purchasing the collateral, but instead causing a trade between a lender and the liquidated borrower.
There are several reasons why an address might call deposit take. For example, the address that calls deposit take might also control another address which is providing liquidity in the price bucket, and is interested in buying collateral tokens at the auction prices. Another reason might be that the address is the one who got liquidated, and is therefore looking to get the debt repaid at good prices. It might also be the kicker of the loan, who is interested in ensuring a good return on the pledged liquidation bond.
Learn more about lenders and deposit take in section 7.4.2 Deposit Take in the Ajna Whitepaper.
Ajna Liquidation Analysis
With a foundational understanding of the Ajna liquidation process, we can now examine historical liquidations performance with the help of the Ajna Analytics UI. For this analysis, we will focus on data from Ajna’s largest instance, on Ethereum Mainnet. For insights into other Ajna instances, refer to https://info.ajna.finance/.
An Overview of Ajna Liquidations
Since inception, the Ajna Ethereum instance has settled 48 liquidation auctions. In total, these liquidations have resulted in ~$3.07 million worth of collateral, and ~$2.46M of repaid debt. Liquidation auctions have happened across 18 different pools, made up of 16 unique collateral tokens and 8 unique quote tokens.
Liquidations measured by pool type shows that three pools (rETH/WETH, st-yCRV/DAI, and sUSDe/DAI) made up 78.59% of all collateral seized (~$2.41M) and 76.86% of all repaid quote tokens (~$1.88M). Furthermore, liquidations measured by month show that a majority of liquidation auctions took place in March. The increased liquidation activity in March coincided with the decrease in Ajna TVL, both on a protocol wide level, and across all three pools that experienced the largest dollar-denominated liquidations (rETH/WETH, st-yCRV/DAI, and sUSDe/DAI). From around March 8 onwards, the price of ETH and st-yCRV fell relatively fast, while the Ethena APY, as a result of lower funding rates, also began to subside. Prior to these liquidation events, the rETH/WETH, st-yCRV/DAI, and sUSDe/DAI pools were relatively popular on Ajna, but have not yet recovered their activity. Instead, it seems like activity has shifted to other pools.
A Closer Look at Borrowers
In total, there have been 41 unique liquidated borrower wallets across the 48 liquidations events. For the most part, these wallets have experienced one liquidation event each, with a few exceptions, where 3 wallets have experienced 2 liquidation events, and 2 wallets have experienced 3 liquidation events. As illustrated in the chart below, activity is relatively skewed. The largest wallet by liquidated collateral was responsible for 43.69% of total seized collateral.
A Closer Look at Kickers
As previously mentioned in the “Takers & Liquidation Auctions” section above, Ajna uses a pay-as-bid Dutch auction for their liquidations. The auction price starts at 256 * max(HTP, NP, ReferencePrice_ActiveAuctions). Furthermore, the maximum duration of a liquidation auction is 72 hours. As a result, it normally takes some time before the first taker purchases the collateral available for auction. As illustrated in the chart below, the average duration between kick and first take is 7 hours and 6 minutes. However, this average includes three uniquely high values from 3 liquidations in the TNFT/Test, AJNA/DAI, and sDAI/ENA pools. Disregarding these three liquidations, the average is 6 hours and 17 minutes. The game-theoretical conclusion is that, if kickers want to profit from their liquidation bond, they need to be confident that the auction clearing price will stay below the NP, not only at the time of the kick, but in most cases at least 6 hours into the future.
The chart below shows the approximate return from liquidation bonds across all Ajna liquidation events on Ethereum Mainnet. Note, however, that the USD values are fetched from the time of the kick, and might therefore be slightly misleading if the USD value changed considerably from the time of kick and the time of settle. There are two notable profit events. One liquidation in the sUSDE/DAI pool, resulting in $2,465.12 profit, and one liquidation in the rETH/WETH pool, resulting in $3,943.69 profit. The largest liquidation bond loss was from a liquidation event which occurred in the st-yCRV/DAI pool on May 3, 2024, resulting in a -$2,567.85 loss (100% of the DAI denominated Liquidation Bond). This was as a result of some internal worry from the Yearn team, who at the time, had two strategies lending DAI to st-yCRV. Learn more about the event here.
Since inception, there have been 16 unique kickers on Ajna Ethereum Mainnet. The average return per kickers has been $242.06. There is one notable wallet which has profited considerably more than others, namely “0x9ba7…”, who in total has gained $8,216.82 from kicks. This wallet was responsible for kicking both liquidations that led to highest profitability throughout Ajna history (the liquidations from the sUSDe/DAI & rETH/WETH pools, see “Profit/Loss Per Kicked Auction” chart above).
While the average return on kicks has been relatively small, one must also consider that kickers can act as takers as well. Out of the 48 events, 23 liquidations resulted in the kicker also participating as a taker. This suggests that while liquidation bonds might serve as a good way to disincentive spurious liquidations, a considerable portion of kickers are incentivized to kick a borrowing position because they are also interested in purchasing the collateral.
A Closer Look at Takers
In general, most liquidations settled after one take. However, there are a few exceptions. For example, there have been two liquidation events from the AJNA/DAI pool, on March 17 and March 27, that resulted in one take and one bucket take. Furthermore, 8 out of 47 liquidation events resulted in 2 takes each. The liquidation event with the highest amount of takes was the st-yCRV/DAI liquidation on May 3, 2024, resulting in 8 takes.
Improving the User Experience with the Ajna Analytics UI
The main objective of the Ajna Analytics UI is to improve the Ajna UX by providing a comprehensive dashboard with key protocol metrics. Below, we provide examples of how borrowers, lenders, kickers, and takers can benefit from the Ajna Analytics UI.
Wallets
To support lenders and borrowers, the “Wallets” page provides a detailed overview of all active positions in the system. By clicking on a row in the Depositor/Borrower tables, users can view individual positions in further detail.
Source: Ajna Analytics UI - Wallets
Individual Wallets
Each individual wallet page includes an overview of deposit amounts, borrowed amounts, and collateral amounts. The table view shows (i) which pool(s) the wallet has interacted with, (ii) deposited amount, (iii) deposit share, (iv) collateral, (v) debt, (vi) debt share, and (vii) Health Rate. The Health Rate metric on the right-hand side measures which positions are at risk of being kicked as a result of being undercollateralized.
Source: Example Screenshot of Individual Wallet Page in the Ajna Analytics UI
At Risk
The At Risk page shows all risky positions in the protocol. This page may be useful for borrowers to check if their position is at risk of being liquidated. For example, the “Price Change” row shows the percentage of how much the ratio of loans debt / collateral needs to drop before it falls below the LUP value, at which point it means it is available to be liquidated. It may also be helpful for Kickers to identify positions which they might deem appropriate to kick. By clicking on a position on the At Risk page, users are redirected to a more granular page with relevant details for the position in question.
Source: Ajna Analytic UI - Wallets At Risk
Auctions
Finally, the Auction page provides relevant information regarding liquidation auctions. When there are Active liquidation auctions, they will appear on the “Active” page. All previous liquidation auctions are available in the “Settled” page.