# Lending Protocol Taxonomy, part 2: Interest Rates

Published in

In part 1, I started a project to categorize lending protocols in Web3.

As a quick recap, a lending protocol is a set of rules governing how a borrower temporarily takes possession of a lender’s assets with the promise to repay those assets. Such a protocol will define how interest is levied from the borrower to the lender, and how collateralization is structured to protect the lender. Part 1 of this series explored topics within interest duration: zero vs positive durations, loan rolling and perpetualization, optionality, and categorized some protocols within that framework.

In this post, I continue building out the taxonomy to talk about how various protocols determine interest rates.

# Interest Rates

The interest rate is the rate at which the borrower accumulates extra payments to the lender. The rate is usually quoted in an annualized format for ease of comparison. Either as annualized percentage rate (APR) or yield (APY). The difference between the two is that the APR assumes no compounding and the APY does. For example, an APR of 10% with semi-annual compounding will lead to an APY of 10.25%.

The two are related with this formula: APY = (1 + APR / k)^k — 1 where k is the number of times per year the interest is compounded.

In Web3, most of the lending is continuously compounded (k = large) since most are zero-duration loans. Therefore they quote in APY to tell the user how much they would be earning in a year assuming the rate stays constant. For fixed term lending, it’s more common to quote in APR.

As a side tip, in case 2020-style degenerate yield farming comes back, be wary of predatory quotes in APY because none of those opportunities will last long enough for compounding to matter. Working the mental math in APR is much easier. For a fixed reward pool, doubling the TVL means the reward rate is cut by half. Easy.

Now with definitions out of the way, we can talk about pricing.

# Pricing

Pricing is the mechanism that figures out how much interest rate borrowers and lenders pay each other. While not exhaustive, this article is going to cover some of these mechanisms:

• Orderbook pricing: the most flexible and market driven, but with UX tradeoffs
• Utilization-based pricing: the model that found product-market fit in defi, but not 100% efficient and behaves bad in extreme scenarios
• Auctions: pricing is good, efficient loans, but needs users to plan ahead, fragmented secondaries, and other small frictions.
• Ajna’s utilization: a twist on the classic utilization method, adapted to work in an oracleless protocol
• Tazz’s perpetual loans funding: a new p2pool lending primitive that lets the market price interest rates, and therefore enables collateralization to be fully modular.
• Manual pricing: or governance-led pricing.

# Orderbook pricing

The most common way to price assets is letting the market sort itself out: orderbooks. Have borrowers and lenders post limit orders of how much and at what rate each is willing to borrow at or lend out. When an order matched, book the trade.

However, orderbooks have downsides:

• Unsophisticated users don’t know how to price their orders. Those users just want to get trade in and out without paying egregious costs.
• Putting up a limit order is like writing a free option. The more illiquid the market and slow the block time, the more valuable the option. In order words, the more the theoretical true price can move without the orders getting filled, the more option value those limit orders inherently contain.
• Operating well on orderbooks requires active management. You need to cancel stale limit orders. You need to play bidding war games with other participants.
• It requires lot of transactions.

That’s why orderbooks still aren’t popular on-chain. Instead, AMMs, RFQs, and auctions all have more product-blockchain fit.

In lending, orderbooks face an even greater challenge:

• Orderbook trades create peer to peer loan matching. Default risks are non-fungible.
• Originating fixed term loans on an ongoing basis create positions that are not perfectly fungible with each other. Instead, protocols like Pendle and Notional opt to issue loans at maturities fixed on particular dates. The tradeoff being that the available loans will always have weird durations like 37 days, 159 days, etc…
• Short term loans create even more transactions. You could automate the rolling, but how do you price the next loan?

All this results in a fragmented market, or at the very least, a complicated trading experience. That said, NFT lending platforms like Blur and Arcade.xyz still rely on an orderbook-like UX. They each came up with features that alleviate the bad user experience.

• Blur blends a form of perpetual loan to get rid of the duration dimension.
• Both Blur and Arcade has “collection offers” where the lender treats the whole NFT collection as fungible and any NFT in the collection can be used as collateral.

AMMs are a subcategory of orderbooks. If a protocol can pool enough people into fungible lending markets, AMMs are a good option. Rates are more mean-reverting than tokens, so LP’ing rates with an AMM is safer than LP’ing tokens. This is how Pendle, Notional, and Tazz work.

To recap, although orderbooks work well with simple assets, lending orderbooks have too many dimensions to account for and require clever ways to reduce UX complexity.

# Utilization-based pricing

Utilization for a given lending asset pool is the ratio of total amount of asset borrowed to total amount of asset available to be borrowed.

Utilization-based pricing is defining the interest rate to be some increasing function of utilization.

This method is what Aave, the first and largest on-chain lending platform settled on. It remains the most popular way of pricing interest rate for liquid and fungible assets.

Note that Aave did not start off with this design. EthLend’s (Aave pre-rebranding) 2018 whitepaper outlines a p2p fixed-term orderbook. The utilization model was introduced in their 2020 whitepaper. This ground-up rethinking of financial primitives, uniswap AMMs being another example, is one of the joys of defi.

Since it was not explained in the whitepaper, my guess for the motivation behind this methodology is pretty simple. Consider the economics 101 model — when rates are high, fewer are willing to borrow and more are willing to lend. The “optimal” rate is where the amount of willing borrowers exactly match the lenders, and utilization is 100%.

When the rate is too low, there are more willing borrowers than lenders. The utilization will be at 100%, but it doesn’t tell us where along the model we’re at. Also, lenders can’t exit their loans.

When the rate is too high, a lot of lending supply sits idle doing nothing. The APY spread (1-utilization) grows as the rate increases. And that’s before the platform even takes a fee. The chart on the right is simplified. The lenders are actually getting a lower rate than r.

As the unobservable lending and borrow curves change with market conditions, the challenge is to keep the rate close to the optimal rate while keeping some buffer for lenders to exit.

Aave’s “interest rate model” above is a slight misnomer. The math-inclined folks like to call it a PID controller, but only partially automated. First, Aave picks a target utilization (e.g. 90%) and a kinked curve. If utilization hangs out too often at >90%, Aave’s governance (hence partially automated) will steepen the interest curve up in an attempt to push utilization back down. Vice-versa if utilization is too low.

Sometimes, a market experiences a special situation and the PID controller is too slow to react. For example around the Ethereum Merge in Sept 2022, pre-merge ether would be forked into proof-of-stake ether (the ether we now hold), and proof-of-work ether (sponsored by Justin Tron, kind of). PoW ether was deemed by the market to be worth about 2% of PoS ether. Market participants saw this and wanted to hold as much pre-merge eth in their wallet as possible. One way of doing that was to put up stablecoins as collateral and borrow eth. As long as the cumulative interest over the borrow horizon was less than 2%, this was a reasonable trade. A horizon of less than 1 week to make 2% meant being ok with paying an APR of over 100%. Aave had a interest rate cap of 100%. Needless to say, in the days before the merge, Aave, Compound, Euler, Inverse, and every PID controller lending protocol’s ether borrow utilization was maxed out. If I remember correctly, Inverse didn’t cap the interest rate and it reached 1000% APR.

Last thing to note about utilization-based pricing is that it’s a natural fit with peer-to-pool constructions and therefore zero duration lending. So we often see these properties go hand-in-hand.

To summarize, the benefits are about user experience in normal market conditions. Lend, borrow, and leave at any time. But when utilization reaches 100% like during The Merge, lenders are stuck with no recourse. Other downsides are the capital inefficiency from that 10% of lending buffer assets, and the inability to do fixed term loans.

# Auctions

Auctions are a time-tested way to issue new debt (primary market issuance). US treasuries, the most liquid government security globally, uses auctions to price new debt. At a high level, borrowers and lenders submit sealed offers to an auction that happens periodically. A market-clearing interest rate is found, and new debt is issued to participants that cleared the rate.

Term Finance, a relatively new protocol, is inspired by this mechanism. The details of their auction implementation are a worthwhile read. Their docs are clear and concise.

Auctions efficiently match lenders and borrowers. There is no capital left unproductive unlike orderbooks that require locked capital to put up orders waiting to be filled, or utilization-based lending pools that need a buffer for lender withdrawals. The only unproductive period is when assets are locked during the auction time.

Auctions also produce high quality pricing because market participants are rallied to a schelling point to aggregate their private information.

On the downside, auctions require some pre-planning and aren’t as user friendly. It’s a great choice for US treasuries, but in crypto, fixed term lending markets don’t yet have high participation. Another challenge is fragmentation of markets. Crypto has a lot of similar but non-fungible assets. It’s going to be a harder product to bootstrap, but I would love to see Term Finance issue Ethereum Treasury Bills backed by the full faith of the Ethereum Printer, one day.

# Ajna’s Utilization

Ajna is one of the few lending protocols that don’t rely on an oracle. A full exposition of how Ajna achieves this is beyond the scope of this article. Instead, the high level of how it sets interest rates is worth discussing.

Lenders start by choosing the collateral’s (e.g. ETH) valuation at which they are willing to lend their quote tokens (e.g. USDC). Borrowers get matched cumulatively from the highest valuation downwards. The borrower with the riskiest loan (highest ratio of loan to collateral) sets the “highest threshold price” (HTP) where lenders with lower valuations don’t get paid interest.

Lenders don’t want to set the valuation too high because they would be first in line to lose money to defaults. Lenders don’t want to set the valuation too low because they wouldn’t get any interest payments.

The interest rate is also determined by a function of utilization, but here it is calculated considering only lenders who set their collateral valuation higher than HTP. Interest rate starts at 10% and get multiplied or divided by 1.1 every 12 hours, depending on how utilization compares to the “target utilization”.

The main advantage is that this mechanism doesn’t require any oracle to function despite its peer-to-pool design. On the other hand, lenders need to constantly monitor their valuations. Lending APR also suffers from un-utilized borrow, just like other utilization-based rate pricing mechanisms.

Although borrowers and lenders can leave at any time (zero duration), Ajna is designed for week-long terms at a minimum, considering its origination fee of 1 week and interest rate half-life of 3 days. It’s too early to understand the full pros and cons of this mechanism since Ajna hasn’t had much time on the market.

Truly permissionless and immutable protocols are rare because they are so difficult to get right. But when they do happen, they become a cornerstone of composability. I truly hope Ajna can become the Uniswap of lending.

# Tazz’s perpetual loans funding

Tazz is an upcoming lending protocol that introduces a new rate pricing primitive. Again, the full description of the mechanism is out of scope for this article. Follow along for a future in-depth article.

Debt starts as a zero coupon perpetual loan, similar to Aave. The debt token (AToken in Aave terminology) can be traded on any dex. While Aave’s Atoken trades almost always near 1:1 except under protocol insolvency, Tazz’s debt token (ZToken) is priced by the market. The ZToken’s price determines the interest rate (i.e. funding) that accumulates on the nominal debt. If the nominal debt is left to increase, collateralization parameters will trigger a liquidation.

The continuous funding payments are proportional to k * (1 — TWAP of ZToken’s price against the Token). The lower the constant k, the higher the debt duration and the more it is susceptible to interest rate risk.

Note that in this mechanism, collateralization is fully modular from the rest of the protocol. You can set up pools with no collateral, nft collateral, lp-tokens, illiquid tokens, locked tokens, oracle-based collateral pricing, or one-time pricing. It doesn’t matter since the market can price the interest rate needed for the risk assumed.

The remarkable thing is that this enables:

• peer-to-pool lending
• 100% loan utilization, and therefore low spreads
• consolidated liquidity, only split on collateralization terms and duration
• any collateral type

One potential downside is that it requires monitoring of pool prices (but less than Ajna). If unrealistic prices stick around for too long, that would lead to unrealistic interest rates. A liquid market on the ZToken would free up both borrower and lender from having to monitor too closely.

Manual/Governance Pricing

This one deserves to be mentioned in light of the GHO depeg. There are a few collateralized debt position (CDP) stablecoins. Maker’s DAI being the largest, Liquity’s LUSD, Lybra’s eUSD, Prisma’s mkUSD, and others following.

Although CDPs don’t look like lending, they are. The borrower collateralizes with ETH (Maker v1), LSTs (Prisma, Lybra), or other assets. The borrower mints a CDP that the protocol oracle values 1:1 as USD. The CDP can be sold on the open market, thereby the borrower “borrows” another asset and the lender receives the CDP. The loan is perpetual, of unknown duration, and may not keep peg at \$1. The borrower pays an interest rate to the protocol, and the lender may receive another interest rate from the protocol (e.g. Dai Savings Rate). Sometimes, there is a backstop fund called a “stability module” to avoid self-reinforcing CDP depegs.

The downside of manual pricing is that it’s subject to governance processes, lengthy debates, voter apathy and quorum. It is therefore slow to react. The upside is that the human process is harder to manipulate than code that can have edge cases.

Aave’s GHO is a CDP with manual interest rates. Currently GHO’s borrow rate is 3% (lower than T-bills’ and Dai’s 5%) and their lending (savings) rate on Aave is 0% (except if you know where to look for incentivized plays). Consequently, too many are willing to borrow and too few willing to lend, resulting in a declining GHO price.

There has been months of debate in Aave’s governance forums. The essence of the debate boils down to whether to fix the peg or keep a stable interest rate (and therefore variable but positive duration). Until GHO achieves more market dominance, GHO cannot have both.

# Conclusion

In this article, we covered various ways interest rates can be priced in lending protocols. There are certainly many more ways, but the goal of this series is to build a taxonomy. So far, we’ve seen interest duration and interest pricing as two major lenses through which one can analyze and categorize protocols. In the next article, I will look at collateralization.

I also started a work-in-progress spreadsheet to organize this information as I analyze more lending protocols under this taxonomy. Enjoy!

If you made it this far and defi is up your alley, make sure to subscribe, and follow my twitter. My DMs are open.

If you are a startup founder, in ideation stage or raising capital, consider applying to Alliance. I’m always interested in speaking.

https://github.com/ETHLend/Documentation/blob/master/ETHLendWhitePaper.md

https://www.coindesk.com/markets/2022/09/16/ethereum-proof-of-work-fork-crashes-as-justin-suns-poloniex-supports-rival-fork/

https://github.com/aave/aave-protocol/blob/master/docs/Aave_Protocol_Whitepaper_v1_0.pdf

https://docs.term.finance/

https://www.ajna.finance/pdf/Ajna_Protocol_Whitepaper_10-12-2023.pdf

More on Ajna’s Target Utilization: https://docs.google.com/document/d/14W0EowEoOWLWGgMjOUSulTBf-Rdj5ax90Q5H_tJ51Dg

https://docs.tazz.finance/

https://tokenbrice.xyz/stablecoin-marauder-map/