Deep Dive: Solend cTokens & Isolated Pools
Solend's latest product offerings
This is deep dive into the world of DeFi lending through the lens of two new offerings from Solend called Isolated Pools and cTokens. By the end of this article, you will understand what these offerings are, why they exist, and understand some of the core concepts surrounding DeFi lending a little better.
This is going to be an intermediate deep dive that assumes some prior familiarity with lending/borrowing crypto assets. While I will start with a quick recap, I would recommend that you skim through the original deep dive of the Solend protocol for a stronger foundation from which to understand the new concepts outlined here.
Quick Recap of the Solend Protocol
Solend is a DeFi lending protocol on Solana
You can earn interest by depositing crypto assets into Solend
You can borrow other crypto assets against your deposited collateral
With that out of the way, let’s get around to understanding Isolated Pools and cTokens.
Isolated pools serve two main purposes
Isolating risk due to volatile tokens
More flexibility in parameters
It’s okay if that didn’t make much sense. I’ll cover it in detail over the rest of this deep dive.
What is a Pool?
A Pool is a collection of crypto assets that you can deposit or borrow from.
For example: if you were to deposit $ETH, you can borrow any of the rest of the assets with the deposited $ETH as collateral. So, $100 worth of $ETH in $50 worth of $BTC out.
Solend’s main pool today looks something like this
Yes, that is a lot of interconnections!
To understand the need for isolated pools, you need to wonder about what might happen if the value of one of these tokens were to fall to zero (or near-zero values).
I’m going to pick FTT for the rest of this example (sorry SBF!).
FTT is FTX’s token. FTX is a popular cryptocurrency derivatives exchange. By holding FTT, you get access to whitelists, trading fee discounts, and other benefits.
As of today, FTT’s price hovers around ~$40. Let’s say its price falls to 1$ tomorrow in the space of a second (for whatever reason). What happens on Solend?
At any point in time, there are at least 2 types of users
Users who have deposited FTT
Users who have borrowed FTT
Let’s refer to them as Dylan and Brock. Dylan has 25 $FTT deposited into Solend and Brock has borrowed 25 $FTT.
Dylan / Users that have deposited FTT
This isn’t a great situation for Dylan to be in. He thought his 25 $FTT was worth $1000 but now it’s only worth $25. He is still earning interest on it but the damage is done.
Actually, there is a parallel universe where Dylan might have come out a little better. Imagine if he had borrowed $600 of $ETH with his initial $1000 worth of $FTT collateral.
Now, when the price falls to 1$ in the space of a second, his collateral is only worth $25 but he would still own the $600 of ETH in his wallet. His account would get liquidated, yes but he’d still own the ETH. (To understand liquidation, please read the original deep dive or stick to the end of this article).
The $575 loss, in this case, would have to be borne by Solend or by all the other users on the protocol.
Brock / Users that have borrowed FTT
This might be Brock’s luckiest day or just a regular day. It all depends on what he did with the 25 $FTT that he had borrowed.
If he had held on to it in his wallet, then meh. He would just repay his loan and move on with life.
But...imagine if he had swapped his 25 $FTT for $USDC immediately after he borrowed it. He would’ve had $1000 USDC. And now, at FTT’s current price of $1 per FTT, he can pay off the 25 $FTT loan by purchasing 25 $FTT with $25 and still have $975 $USDC left with him!
How could you take advantage if you knew FTT’s price was going to go to $1 tomorrow?
If you owned FTT, you could deposit it onto Solend and borrow ETH/BTC/SOL against it.
If you had other deposits on Solend, you could borrow FTT with your current collateral, swap it for USDC outside of Solend. Wait for FTT’s price to fall. Repurchase the FTT that you owe outside of Solend. Repay your loan on Solend and profit.
This is only applicable when FTT’s price falls rapidly. If FTT’s price were to go 1$ in a calm orderly fashion, this really wouldn’t be a cause for alarm. Solend has the concept of a Liquidation Threshold that would mitigate most of this. You can read more about this in the original deep dive.
It is also important to understand that this situation is not equally likely for all assets. For example, I’d be more than glad to get into you a bet with you that BTC will not immediately drop by 95% in a single day in the next 5 years and neither will Ethereum or Solana. These are battle-tested tokens with really big market caps and solid guard rails around minting. This situation is more likely to happen with newer tokens within those ecosystems.
How Isolated pools help with this?
Isolated pools help mitigate this problem by creating a separate pool for these riskier tokens.
In doing so, there are two benefits
Fewer tokens overall in the pool
The Turbo-SOL pool only has SOL and USDC. That implies that deposits and borrows happen in between only these two assets. So, the rest of the tokens in Solend’s main pool are isolated from this risk, and fewer users are impacted.
Take the STEP pool which contains STEP, xSTEP, SOL, and USDC. There are 4 tokens but 2 of these, STEP and xSTEP, are correlated since they’re the staked form of the same token. If for whatever reason STEP were to go to zero, it is likely that xSTEP would also go to zero. So the risk in this pool is higher than normal because there aren’t 4 independent points of failure but only 3.
As of this deep dive, Solend has 5 pools with 22 unique tokens*
*2 more pools were added in the two weeks that it took for this deep dive to be published, bringing the total to a 7! Bullish.
Isolated Pools allow for parameter tweaking
Every pool has a unique set of parameters that govern various aspects of the lending/borrowing experience such as how much you can borrow per $ of collateral (LTV) or at what point the protocol considers your loan as being defaulted upon (liquidation threshold). These are carefully selected on a per-asset basis in order to encourage borrowing and lending.
Isolated pools allow for these parameters to be tweaked to allow for a wider set of use cases. Users can now choose pools according to their individual risk profiles.
To deeply understand why parameter tweaking is helpful, you need to understand three concepts
LTV is the ratio describing how much you can borrow against your collateral.
Example: LTV for SOL in the main pool is 75%, meaning for every $100 of $SOL deposited, you can borrow up to $75 worth of collateral.
This is the threshold at which your borrows will be forcibly paid off because they are nearing the deposited value of your collateral. Why does this happen? Values of crypto assets constantly change with respect to each other. So when you deposit one token and borrow another, it is possible that the value of your borrowed token increases relatively to your deposited token.
Example: You deposited $100 worth of USDC and withdrew 25 $SRM at 3$/SRM for a total of $75. Now let’s say the price of SRM increases to $5/SRM. Now your borrowed loan’s amount is 25*5 = $125 but your original deposit amount is only $100. And since this is crypto and everything is anonymous, nobody can come knocking on your door asking for this loan to be repaid. In order to avoid this scenario, the protocol ensures that when your borrows hit a certain value of your deposits, your borrows will be instantly paid off with the deposited collateral.
Before we move on to looping, it is important to understand how LTV and liquidation threshold work together.
Let’s say the price of SOL is 100$ per SOL.
You deposit 1 $SOL into the platform.
You then withdraw 75 $USDC.
Now your total borrowed amount is 75$.
Your collateral value is $100.
The ratio is 75/100 = 0.75
Now, let’s say that the price of SOL falls to 95.
The ratio is 75/95 = 0.789
At $93.75/SOL, this ratio will hit 0.8, the liquidation threshold, and your account will get liquidated. Meaning a liquidator will take hold of your account, they will pay off your 75 $USDC loan, and take 75$ worth of $SOL in return (and a little more as a reward).
Now the fun part.
What if we converted the 75 $USDC that we borrowed into SOL and deposited it back into the pool? Let’s say we do that. So the $75 USDC can be used to purchase 0.75 $SOL and this amount is deposited back.
Now, the total deposit is 1.75 $SOL, the borrows are $75 USDC.
What is the liquidation price now? It is $53.57.
Until the price of SOL falls to $53.57, we’re safe from being liquidated. Why, what happens at $53.57? Well, the value of our 1.75 $SOL becomes $93.975 and the borrow amount/collateral amount hits the 0.8 liquidation threshold.
Ok, but wait. What if we borrow against this new 0.75 $SOL that we are depositing? Can we do that? Yes, we can. We can borrow up to 75% of our collateral. This comes out to 56.25 $USDC and well... let’s convert that to SOL and redeposit it.
Now the liquidation price jumps up to $71.
Once more, you say? Sure!
Each of these is known as a loop and I calculated these loops for you.
I want you to notice 2 rows
The last row (blue) / Loop 25
Notice how the Re-Deposited Amt column tends to 4 SOL.
At this point, your 1 SOL somehow gets converted into 4 SOL. This is known as leverage. At that point, you are said to be 4x leveraged.
The row in the middle (green) / Loop 7
At this point, you have 3.6 SOL deposited onto Solend
You have borrowed ~$260
The liquidation price is $90.26
Anon, I hope you’re still with me!!
Isolated pools have higher LTV and Liquidation Threshold values.
For example, the TURBO SOL Pool has an LTV of 90% and a Liquidation Threshold of 95%. These numbers, 75% and 90%, may not feel that different but when looked through another lens, they correspond to 4x and 10x leverage.
I went ahead and calculated values for the same example as above and...
Notice the green and blue rows again
The last row (blue) // Loop 71
The Re-Deposited Amt column tends to 10 SOL.
At this point, your 1 SOL somehow gets converted into 10 SOL. You are said to be 10x leveraged
The row in the middle (green) // Loop 11
At this point, you have 7.18 SOL deposited onto Solend
You have borrowed $617.63 USDC against it
The liquidation price is $90.55
Understanding the importance of different parameters
Now let’s compare Loop 9 from the main pool and Loop 11 from the turbo sol pool
Main Pool / Loop 9
3.6 SOL Deposit, $260 USDC Borrow, Liquidation Price $90.26
Turbo SOL Pool / Loop 11
7.18 SOL, $617.63 USDC Borrow, Liquidation Price $90.55
Since the liquidation price for both of these is close, the risk profile for both is the same. But you are 7.18x leveraged in the turbo pool vs 3.6x leveraged in the main pool. This implies that the potential profits in the Turbo SOL pool are almost twice as much as in the main pool! But you start with the same 1 Sol in each case!
Let us say that the price of SOL is $200 tomorrow —
After paying back your loan from the Main pool, you would have $460 worth of SOL
After paying back your loan from the Turbo Sol Pool, you would have $820 worth of SOL
I’m going to leave this calculation as an exercise for the reader
NOTE — I have left out very important details from these calculations for the sake of simplicity. Things you need to be on the lookout for — Borrow fees on every single USDC borrow, accumulating interest fees on the borrowed USDC, swap fees when you convert your USDC into SOL to redeposit it into the pool, and other risks! There is no such thing as a free lunch!
Wow, that was a doozy!
But I hope I was able to demonstrate how the existence of the Turbo pool with parameter tweaks is more beneficial for whoever wants to pull off a gamble like this.
You might wonder, who in their right minds would do something like this?
People who pull off such strategies are (fondly) called degens. Isolated Pools have been appropriately called as a product for degens, by degens.
Isolated pools mean less existential risk for Solend as a protocol and also for its users
Solend can add newer, riskier tokens to isolated pools without risking the entire LTV of the main pool
Isolated pools also cater to a larger set of users with higher risk appetites by tweaking parameters
Isolated Pools — Show, don’t Tell
You can find the list of available pools at the top of the website
Click on a Pool to view more information about it
Click on an Asset to find its parameters for that specific pool
Supply, Borrowing, Withdrawing, and Repaying is just as easy as clicking the buttons. If you’re still following, I’m sure you can figure that out!
cTokens (Collateral Tokens)
The official definition is “cTokens are a yield-bearing deposit receipt.” but instead of the usual route of trying to understand every single word and then putting it all together, let’s just try to understand it from a practical perspective.
SOL deposits on Solend currently earn 1.2% APY.
That is, a deposit of 1 SOL would turn into 1 + 1*1.2% = 1.012 SOL at the end of 1 year which you could then withdraw.
Until recently, that was the only thing you could do. cTokens let you go about that exact same process a little differently.
The current exchange rate for cSOL/SOL is 1 cSOL = 1.0075 SOL (and this is equivalent to 0.9925 cSOL = 1 SOL)
This exchange rate improves by the 1.2% APY a year
Today, if you have 1 SOL, you can mint 0.9925 cSOL from the cToken mint page.
Behind the scenes, Solend deposits your SOL into the global pool so that it starts earning interest.
Now after a year, if you were to redeem your cSOL, you would get back 1.012 SOL. because the exchange rate would have improved by that much
Same, same. But different?
Aaaaaaa. Why do all these mental gymnastics, you ask? What is the point? Why make everything so complicated?
Here are some reasons for such a product to exist —
Transfers between Solend Users
Consider Alice and Bob as two users who both have some SOL deposits in Solend that are compounding over time. Let’s say Bob lost a bet, he owes Alice 1 SOL.
Before cTokens, Bob would have had to withdraw 1 SOL from his Solend account and send it to Alice. After which, if Alice wanted to compound it she would have had to separately deposit it back into Solend. The time in between Bob sending Alice the SOL and Alice re-redepositing is time that the SOL wasn’t compounding!
With cTokens, bob can just send 0.9925 cSOL to Alice and the underlying SOL would continue to be compounding throughout this. This is also good for Solend because the underlying SOL is not exiting their protocol.
Deposits are no longer tied to the account that made the deposit
cSOLs are not tied to the account that made the original deposit. Bob could have originally minted the cSol by depositing Sol but once he sends it to Alice, Alice now becomes the owner of that underlying SOL. This would’ve been impossible before cTokens since each deposit would’ve been tied to the account that made the deposit.
Fundamentally, cTokens make deposits on Solend mobile. And whenever money can be made mobile, it can do more. Locked-up money is just inefficiency waiting to be tapped.
cTokens as a way for the Solend Protocol to expand its footprint
Crypto is at a stage right now where people are building fundamental, base levels protocols. Right now, it’s all about who can form the better base layer upon which others can build. cTokens are a step in that direction. They allow for developers to build on top of Solend allowing it to increase its footprint in the Solana ecosystem.
What can you do with cSol/cTokens?
Unfortunately not much at the moment. Solend launched cTokens only recently and there aren’t any developer integrations in the wild yet. Adoption takes time (and good ideas).
Fun fact: If you go ahead and mint more than 0.5 cSOL right now, you will be the 4th largest account to hold cSOL
cTokens — Show, don’t Tell
The process of redeeming is exactly the same except you switch to the ‘redeem’ tab and send your cSOL to get SOL in return.
Wrapping Up / Personal Take
While learning about these offerings was fun, I wouldn’t call either of them revolutionary. But that’s okay, not everything needs to be. This is just Solend shipping and cementing its place as the top lending protocol on Solana. Isolated Pools and cTokens are just the next steps in a long line of offerings yet to come.
Here’s what I’m looking forward to —
Adoption of cTokens
How will Solend try to encourage the adoption of cTokens throughout the Solana ecosystem?
Will it be successful in these attempts?
How much additional TVL will Solend be able to add with these isolated pools?
Will liquidators be able to successfully keep up with the high LTV values and avoid socialized losses to the protocol?
If you’ve made it this far, thank you! Writing this deep-dive was much more difficult than my last one. References were sparse and I had to do a lot of mental gymnastics to understand these concepts fundamentally and still felt like I came up short! Hopefully, I was able to make the process smoother for some of you, or just intrigue you enough to convince you to embark on your own journeys!
If you notice any inconsistencies or mistakes, please do hit me up on my Twitter @adarshrao_. I would love to improve my understanding of the concepts outlined here or just answer any further questions you may have!
Where to go from here?
Unfortunately, that’s it. I have no other references to share! To go deeper, you’re going to have to chart your own course.
Remember to have fun, anon.