Tutorial of the Month — Anchor Protocol

Xavier Meegan
Chorus One
Published in
17 min readMar 31, 2021

On March 17 2021, Anchor protocol went live.

The release of Anchor protocol unleashed a new era for Decentralised Finance (DeFi) on Terra blockchain. Anchor protocol targets 20% APY for depositors of UST (TerraUSD) by transferring staking rewards of liquid LUNA (bLuna) from borrowers to depositors using a liquidation mechanism that converts bLuna rewards into UST. The result of this, is a seamless user experience that non-native crypto users can easily navigate. Anchor protocol solves APR volatility demonstrated in competing DeFi lending protocols by ignoring a singular asset approach, where the amount of one asset that is able to be borrowed is directly related to the amount of an asset available in a pool for it (assets supplied by depositors). Before Anchor, depositors were exposed to high amounts of liquidity risk. If borrower demand for an asset exceeded what was being supplied by depositors, the asset might be being ‘utilised’ 100%, meaning there are no extra funds available to be borrowed and the full amount of someone’s deposit is being used, opening up the possibility of a bank run.

Photo by Andre Taissin on Unsplash

Anchor has instead chosen to focus on transferring borrower yield to depositors. This minimises liquidity risk as the principal amount that has been deposited by a user is always protected. The yield (APR) that a depositor can achieve in Anchor relies on borrower behaviour.

Liquid staking is the mechanism behind Anchor APY and why we at Chorus are so excited about the protocol. Before the release of Anchor, staked LUNA was not able to be utilised as collateral in DeFi protocols on Terra blockchain and had an unbonding period of 3 weeks. Concurrently with the release of Anchor, Lido DAO announced that they would be providing liquid derivatives of staked LUNA (known as bLuna) that would be used in the protocol. Chorus One is a proud partner of Lido DAO and we are one of 8 validators offering the service to users on Anchor to mint bLuna using LUNA. The newly minted bLuna allows users to earn rewards on their LUNA that is being staked by a white-listed validator whilst also gives the user the opportunity to transfer ownership of the bLuna or use it as collateral — liquid staking at its finest! Understanding the mechanism of bLuna is the key to understanding how depositors are able to earn 20% APY in Anchor.

Borrowers in Anchor use their liquid staking derivative (bLuna) to lock up as collateral in order to borrow TerraUSD (UST). Because the bLuna earns staking rewards and is being used as collateral by borrowers, Anchor protocol is able to liquidate the collateral’s rewards being earned on bLuna by borrowers into UST for depositors. Essentially, Anchor protocol passes on staking derivative cash-flows from borrowers, liquidates the cash-flows into UST and transfers the UST cash-flows onto depositors, to earn them the target yield (20% APY as of time of writing).

If you’re excited by all of this and want to get involved — read on to learn about how you can mint your first liquid staking derivative (bLuna) through Lido, use your newly minted bLuna as collateral to borrow TerraUSD ($UST), earn Anchor’s native governance tokens ($ANC) whilst your bLuna is ‘locked up’ as collateral during the loan and then earn a further stable yield on your newly borrowed $UST by depositing it back into the protocol. This is known as yield farming in DeFi.

Prerequisites

Taking out a $UST loan using bLuna as collateral:

Step 1
Make sure you have abided by the prerequisites and you have LUNA in your Terra Station wallet.

Step 2
Navigate to the Anchor webpage and click ‘Web-app’ at the top right

Step 3
Once you have entered into the web-app, you will be shown the ‘earn screen’. This screen shows the amount of interest you can earn on your UST deposit in the protocol, how much UST you have deposited from your wallet so far and your transaction history on Anchor. Right now, we only hold LUNA and not liquid Luna (bLuna). We need to bond our LUNA from the exchange to mint bLuna (a derivative that unlocks liquidity of our tokens earning staking rewards and can be transferred at any time) in order to use our LUNA as collateral to borrow. Navigate to the ‘bond’ tab and click on the tab.

Step 4
Once you have clicked on the bond tab, you will be able to choose the amount of LUNA that you would like to bond. To bond your LUNA, click ‘I want to bond’ field and enter in the number of LUNA you would like to lock-up to mint bLuna (derivative of your LUNA). When you have entered the amount of LUNA in the ‘I want to bond’ field, you will see the amount of bLuna you will receive in return. Once you are happy with the amount of LUNA you want to bond as bLuna, you can choose your validator. bLuna is minted by Lido DAO and Chorus is a proud partner of Lido. Lido DAO has the most trusted validators in the world issuing liquid staking derivatives. When you bond your LUNA as bLuna, you will have the option to choose 1 of 8 (currently) world-class validators, which will stake and earn your LUNA staking rewards whilst you get given a bLuna derivative (claim to your stake with the validator). Chorus One is available as an option to stake your LUNA. When choosing a validator, always be aware of the risks. When you have selected the amount of bLuna you want to mint, the price for each LUNA <> bLuna will be displayed — it should be a 1:1 swap and the tx fee will need to be paid for the swap in UST. When you are happy with the amount of bLuna you would like to mint and you have selected a validator to stake your assets to earn rewards, click ‘mint’.

Step 5
You will be taken to your terra station wallet to sign the transaction. Enter the password you created when you set-up the wallet.

Step 6
Once you have submitted your transaction, wait ~6 seconds (time it takes for a new block to be created on Terra blockchain).

Step 7
Once a new block has been created, you will receive a successful transaction message. You will be able to see the amount you bonded into a liquid staking derivative (bLuna), exchange rate for it (should be 1), your transaction hash and the transaction fee you paid to convert your LUNA into bLuna by bonding LUNA with a validator. If you would like, you are able to view your transaction on Terra explorer. Click on the ‘Tx Hash’.

Step 8
All details of your conversion of LUNA to bLuna is transparent on Terra blockchain and you can view it on Terra Finder — Terra’s explorer.

Step 9
Great! You have now minted bLuna and you are now able to borrow on Anchor protocol (using bLuna as collateral for your loan). Navigate back to the Anchor web-app where you were before and click ‘OK’’.

Step 10
You are now back in the bond tab where you started, navigate to the ‘borrow’ tab and click on the ‘borrow’ button.

Step 11
Now you are in the borrow tab, you are ready to provide the bLuna you just minted as collateral to obtain a loan in UST from Anchor Protocol (and earn ANC rewards for doing so, the governance token of Anchor). On this page you can see the amount of value you have borrowed (none so far), value of collateral you have provided (again nothing yet) and the ‘net APR’ — this is the annual percentage rate of what you earn for borrowing on Anchor — that’s right, you get paid to borrow! When borrowing on Anchor, you earn ANC rewards, the amount of ANC rewards you earn is based on the amount of UST you borrow, using your bLuna as collateral. But first, we need to provide collateral in order to borrow. Click on the ‘provide’ button.

Step 12
Put in the ‘deposit amount’ — the amount of bLuna that you would like to use as collateral. In this example, we will use 10 bLuna as collateral and the system will tell us the maximum amount of UST we can borrow against our Luna as collateral. You are not able to borrow more than 50% of your bLuna amount (denoted in $USD). For example, if you bond 10 bLuna and the value is $20 for each LUNA, your $USD amount of LUNA is $200 (10 * $20). You can only borrow up to $100 USD with your bLuna as collateral in this instance, meaning you can only take a loan out of maximum $100 UST in Anchor. You can see the new borrow limit automated (up to this 50% threshold) that you can take out from Anchor using your bLuna as collateral and the fee for your borrowing transaction. When you are happy with the amount of bLuna you would like to use as collateral, click the ‘proceed’ button.

Step 13
Sign the transaction. The same method as Step 6.

Step 14
Wait for your receipt (~6 seconds to wait for a new block to be created in Terra).

Step 15
Great success! The transaction should have completed. You can see the amount you have collaterised, your new loan-to-value (amount of value you can receive from your loan, maximum 50% in USD of the bLuna you have used as collateral — more on this later) and can see your transaction hash and fee too. You can either view your transaction hash (like in step 8) or you can click ‘OK’.

Step 16
Now you are back in the borrow tab and you have provided bLuna as collateral, which you have previously minted. You are now able to borrow UST on Anchor! You can see the value of your bLuna collateral (denoted in USD), net APR (% of ANC you earn for using your bLuna as collateral), borrowed value (nothing yet) and the type of collateral you have provided — LUNA. In the future, Anchor aims to allow other liquid staking derivatives to be used as collateral — for now though, bLuna is the only available option. You are now ready to borrow — click the ‘borrow’ button in the top right corner of the page.

Step 17
You will now be given options about how much UST you would like to borrow with your bLuna as collateral. The first field is a ‘borrowed amount’ field. This field is automated depending on the green slider below it that you can drag to the left and right of the screen. This slider is the ‘Loan-To-Value’. As explained in step 16, this is the amount of a loan you can take out compared to the value you have put in the system as collateral (bLuna). It is impossible to take more than 50% of a loan out with the value of your bLuna (in USD) so on the right hand side it has a max LTV of 50%. The system recommends a 35% safe LTV. We would recommend much safer than this, perhaps somewhere around the 20% mark to be extra safe. If your loan to value is 50%, you have 10 bLuna valued at $20 — your value is $200. You are able to take out a loan of maximum $100 UST with this. However, if the value of the LUNA drops e.g. to $9 (cryptocurrencies are volatile), your collateral will be liquidated by the protocol to pay your debt as your LTV is 55%. This is because the value of your collateral is now $180, you have a loan of $100, the system does not accept this (too risky) and instead sells your collateral (bLuna) to recover the loan it issued you of $100. You are then left with whatever is left of your collateral that was not sold off by the system to recover its debt. However, if your LTV starts at 25%, you will take out $50 of UST in a loan and have value at $200 USD of bLuna. If the price of LUNA falls to $9 as above (collateral value now $180 USD), your LTV is still much lower than the required 50% threshold (it would be 27%) and here you would be much less susceptible to market risk of LUNA and costs of being liquidated. For the above reasons, we recommend exercising caution and hedging risk by borrowing a very small amount of UST to your bLuna collateral. Click the ‘proceed’ button when you are satisfied with your LTV.

Step 18
Sign the transaction by entering your password, the same method as Step 6, then click Submit.

Step 19
Wait for your receipt.

Step 20
Your transaction is complete! You can view your new LTV, outstanding loan ($UST), transaction hash and transaction fee you paid for your loan. Click ‘OK’ to exit out of the confirmation box.

Step 21
Nice one! You have successfully minted bLuna and then used your bLuna as collateral to take out a loan on Anchor! You can see all the details on the borrow page. You can also see your ‘borrow limit’ — this is related to your LTV. The borrow limit in this example is at 40% because we chose a low LTV (~20%). The system is telling us that we can borrow more if we would like to, however we recommend not going anywhere near your borrow limit.

Step 22
Navigate to earn and click the ‘earn’ tab. It’s time to start earning a yield on the $UST you have borrowed!

Step 23
In the ‘earn’ tab, click the ‘deposit’ button.

Step 24
Enter in the amount of $UST you would like to earn a yield on. This is like a savings account. If you only have $UST that you have borrowed from Anchor using bLuna as collateral, you can enter in the amount you borrowed. In this example, we borrowed ~$37 UST, so we will deposit our borrowed amount into the protocol to earn a yield. Click the ‘proceed’ button to deposit your $UST.

Step 25
Enter in password to sign the transaction to officially deposit your $UST into Anchor — like in Step 6.

Step 26
Congratulations! You have successfully minted $bLuna using $LUNA (choosing Chorus One as a validator of course), used your $bLuna as collateral to borrow $UST (earning yourself $ANC, Anchor protocol’s governance token) and then deposited your borrowed $UST into a money market protocol and received $aUST (a token that is a claim on your underlying $UST), which earns you a stable yield above >20% on your $UST — not bad compared to a traditional savings account! Click the ‘OK’ button to proceed.

Step 27
You will be taken back to the ‘earn’ tab, which also shows you the APY currently (it is variable and can fluctuate day-to-day — but it should always remain close to the target rate of 20%). Another cool feature on the ‘earn’ page is the amount of interest you can expect to earn in 1-year with your $UST deposit. In this example, you can see our deposit of ~$37 and we will earn ~$8 on our deposit over the course of a year. You can always visit https://app.anchorprotocol.com/earn and look at the total deposit tab. Your total amount should increase every block — you receive a yield on your savings every ~6 seconds (block time).

Repaying your $UST loan and receiving your bLuna collateral back

Step 1
If you would like to repay the loan, withdraw your deposit from Anchor’s savings protocol. You will receive $UST back in return for return $aUST.

Step 2
Put in the amount you would like to withdraw, then click the ‘proceed’ button.

Step 3
Sign the transaction on Terra station, as in Step 6 of the borrowing tutorial.

Step 4
Wait for transaction to process

Step 5
Withdraw complete! You have received the $UST back that you initially loaned using bLuna as collateral. You will have returned your aTokens back to Anchor protocol (your original claim to your underlying $UST tokens). Click OK to return back to the webpage.

Step 6
Navigate to the ‘borrow’ tab and click the ‘borrow’ button.

Step 7
Click the ‘repay’ button.

Step 8
Use the toggle to bring your LTV to 0%. This means that you have no loan with your value (collateral) — because you are repaying your debt! Click proceed when you have dragged your LTV to 0 and you have officially repaid your loan and you have returned all $UST that you borrowed.

Step 9
Sign your transaction in your Terra station wallet.

Step 10
Wait for your receipt (should take ~6 seconds).

Step 11
Transaction complete! You have repaid your debt and have no outstanding loan! Click OK to finish.

This is the end of the tutorial! If you would like, you are also able to withdraw your bLuna as collateral from Anchor in the ‘borrow’ tab, where the ‘Collateral List’ is.

Congratulations! You have successfully used your $LUNA to mint $bLuna (an instantly transferable and usable liquid staking derivative of $LUNA), used that $bLuna to take out a $UST (TerraUSD) loan in Anchor, received $ANC governance tokens as reward for supplying collateral to the protocol for the loan (>100% $ANC APR )and deposited your minted $UST into the savings protocol to earn a 20% $UST APR on your $UST deposit.

Yield farming ain’t much, but it’s honest work.

Photo by Max Böttinger on Unsplash

Risks

Financial

  • Market Risk — This is the risk that the price of LUNA could drop suddenly (e.g. lose 50% of it’s value). If the price of LUNA drops, you must ensure that you have enough collateral to have your Loan-to-Value less than 50%, otherwise you run the risk of being liquidated.
  • Liquidity Risk — All DeFi lending protocols have some degree of liquidity risk. Liquidity risk is faced by the depositor in Anchor protocol if they have deposited $UST and go to withdraw their deposit later on, only to find out that borrowers have ‘utilised’ all deposits within the protocol and therefore depositors cannot withdraw their money.

Non-Financial

  • Smart Contract Vulnerability Risk — Smart contract vulnerability risk is the risk that an attacker could find a way to drain funds from a smart contract due to the code being written incorrectly, or an attacker using a known attack vector to exploit the functionality of a smart contract. This risk could be seen to be lower in Anchor than traditional DeFi on Ethereum, however there is always a risk someone could find a way to exploit a smart contract on any chain and therefore a user should be aware of this possibility.
  • Design Risk — Design risk is the risk that a flaw will cause the protocol to behave differently than intended leading to failure. Anchor is uniquely designed, using staking rewards and transferring them onto the depositor. A key design risk here could be the liquidation protocol of Anchor not liquidating cryptocurrencies (e.g. $bLuna) into stablecoins (e.g. $UST) fast enough if price of bLuna drops suddenly (see market risk).
  • Economic Incentive Risk — Economic incentive risk is the risk that economic incentives that encourage network participants to perform certain actions could fail to encourage the right behaviour or not be sufficient enough, leading to other users being adversely impacted. Right now in Anchor, the 20% yield relies on staking rewards from borrowers. Borrowers are mainly incentivised to borrow from Anchor right now because they receive a high APR of $ANC in return (they are being paid to borrow essentially). In return, there is enough liquidity flowing through because borrowers are providing liquid staking derivatives as collateral, however in the future there is a risk borrowers will not provide collateral if incentives aren’t good enough and depositors won’t earn 20% yield.
  • Regulatory Risk — Regulatory risk is the risk that Anchor protocol is affected by new regulation. Terra blockchain operates in a regulatory grey area in general. $UST is now the biggest algorithmic stablecoin there is and it is unknown how regulators will regulate stablecoins in the future.
  • Composability Risk — Like Ethereum, it is likely Anchor will become ‘composable’ with other parts of the blockchain ecosystem. This means that other assets could be deposited from other protocols, like Mirror and be used as collateral to borrow $UST. Risks are multiplied with composability. If there is an exploit of an asset on another protocol that is used by Anchor, it is likely the other protocol will have issues and Anchor at the same time.

Disclaimer

Our content is intended to be used and must be used for educational purposes only. It is not intended as legal, financial or investment advice and should not be construed or relied on as such. The information is general in nature and has not taken into account your personal financial position or objectives. Before making any commitment of financial nature you should seek advice from a qualified and registered financial or investment adviser. Chorus One does not recommend that any cryptocurrency should be bought, sold, or held by you. Any reference to an opportunities past or potential performance is not, and should not be construed as, a recommendation or as a guarantee of any specific outcome or profit. Always remember to do your own research.

If you would like to keep up to date with more tutorials like this, subscribe to our newsletter — https://chorusone.substack.com

We are looking forward to sharing further opportunities going forward!

About Chorus One

Chorus One is offering staking services and building protocols and tools to advance the Proof-of-Stake ecosystem.

Website: https://chorus.one
Twitter: https://twitter.com/chorusone
Telegram: https://t.me/chorusone
Newsletter: https://substack.chorusone.com

--

--