Introducing the crvUSD MetaMorpho Vault

Introducing the crvUSD MetaMorpho Vault

Introducing the crvUSD MetaMorpho Vault

Curve

Curve

May 8, 2024

Links

We are proud to continue supporting crvUSD integrations by introducing a MetaMorpho vault composed of Convex-wrapped Curve TriCrypto LPs as collateral to borrow crvUSD. The vault was designed and implemented by Llama Risk together with members of the Curve, Morpho, and Convex teams, and strategy management will be carried out by Llama Risk to optimize for risk-adjusted yield.

See the whitelisting post on the Morpho forum for details about the vault, and see below an overview of the assets making up the vault. We believe this vault offers a compelling use case for gaining leveraged exposure to yieldbearing Curve LPs and for taking advantage of a variety of crvUSD yield farming opportunities.

Without further ado, here are some custom features and other relevant info for users interested in lending crvUSD to the vault or borrowing against their TriCrypto LPs:

CRV + MORPHO Incentives

Curve’s founder, michwill, pledged to allocate $250k worth of CRV incentives in a co-incentives proposal on the Morpho forum. In the proposal, the Morpho team agreed to also commit 500k MORPHO as incentives to the crvUSD vault. The co-incentives program will run for 3 months and will be divided into one 60-day and one 30-day epoch. The first epoch will distribute 160k CRV and 222k MORPHO over 60 days. Users can earn rewards by depositing crvUSD to the Morpho vault.

In fact, incentives have officially begun today. The vault page in the Morpho app shows the CRV rewards APY and MORPHO quantity. Lenders can earn rewards by supplying to the crvUSD vault.

Morpho crvUSD Vault Dune Dash

We have created a Dune dashboard for the benefit of users interacting with the Morpho crvUSD vault. The dash shows historical data about each LP token whitelisted as collateral in the vault and about each Morpho market included in the vault.

Morpho market metrics include supply/borrow/utilization rates, activity flow, and market size over time:

Also included are market health metrics such as oracle price, liquidation price / borrow amounts for individual positions, and liquidation events:

We’re happy to take user feedback on the dashboard and add additional metrics users may find useful. Join our Telegram channel and let us know how we can improve your experience!

Convex Wrapper

All collateral assets are the Convex-wrapped variety, allowing depositors to earn CRV and CVX gauge rewards in addition to Curve swap fees. We have teamed up with Convex on the vault integration, for which C2tP was kind enough to modify the ConvexStakingWrapper to be compatible with Morpho. The design allows users to deposit the vanilla Curve LP, which is wrapped in Convex under the hood to offer a straightforward UX (Liquidators, likewise, only need to interact with the underlying Curve LP tokens). Depositors will then see their CRV and CVX rewards accrue on the Convex Claim page where they can be claimed at any time.

Users who review the ConvexStakingWrapperMorpho.sol contract may notice the use of _checkpoint() to ensure proper accounting of depositor rewards. To be compatible with the Morpho Bundler (the standardized contract to bundle user interactions together), the Convex wrapper checkpoints before every user interaction (e.g. deposit, rewards claim), although due to design limitations, it is unable to checkpoint on liquidations. Liquidated accounts will lose some rewards, which are distributed across other tokenholders. See below:

Assume two users have equal balances and deposit at the same time. Their earned (unclaimed, non-checkpointed) CRV and CVX are roughly the same (47 CRV, totaling about 100 between the two). B liquidates half of A, transferring LP tokens (not wrapper tokens) to B for liquidating. A’s earned rewards are now a third of the pool and, thus, their earned rewards go down to 31 CRV. User B’s earned rewards conversely increase to 62 CRV. This design limitation essentially means users are advised to regularly claim rewards and should checkpoint before withdrawing. The Morpho UI will prompt users to checkpoint before withdrawal but, nonetheless, users should understand this flow and the reason for it.

Oracle Contract

Llama Risk has developed an Oracle Factory contract to create oracles that price Curve LPs using a combination of Chainlink price feeds and the lp_price() method in the Curve pool contract.

The TriCryptos included in the Morpho vault all use the TriCrypto-ng pool implementation, which has a manipulation-resistant EMA pool oracle. The lp_price() method uses this internal oracle to price the LP with regard to the coin at index 0.

All collateral types are priced in terms of crvUSD, and each requires a slightly different process to derive that pricing. For TricryptoLLAMA and TriCRV, which have crvUSD in the pool index 0, taking lp_price alone derives the LP/crvUSD price. For TricryptoUSDT and TricryptoUSDC, the lp_price is used in combination with Chainlink price feeds to derive the LP/crvUSD price. TryLSD takes the wsETH/stETH internal contract rate and Chainlink price feeds to derive the LP/crvUSD price from wstETH at index 0. See the table below:

We’ve backtested the deviation between the price reported by the Curve pool oracle compared to the value of the LP as reported by Chainlink. The formula below was used to price a Curve TriCrypto LP at each timestep, using Chainlink as the price source:

sum(balance[i] * asset_price[i]) / total_supply * crvusd/usd

Below is a summary of the deviation between the price reported by the pool lp_price() compared to Chainlink. Additional data for each price pair can be found here.

Nomoi Audit

The aforementioned Convex wrapper and oracle contract have undergone an audit by Nomoi and the report can be found here. It’s a very brief report, give it a read.

Final Note

Join our LlamaRisk Telegram channel to reach members of our team who are happy to assist you and take your feedback. Our goal is to provide users interacting with the Morpho vault with the tools they need to manage their risk exposure. Don’t hesitate to share with us any ways we can improve on that goal. Ape safely!

Disclaimer: LlamaRisk provides the review of the MetaMorpho vault for informational purposes only, and such provision does not constitute financial, investment, legal, or professional advice. In the context of MetaMorpho, LlamaRisk does not take custody, control, or influence over user funds or investment choices and expressly disclaims any liability or responsibility for losses, damages, or other issues that may arise from users' investment decisions. The content provided by LlamaRisk, including any reports or overviews, is intended as a general guide and should not be relied upon as definitive or comprehensive advice. Users are advised not to act upon this information without seeking appropriate professional counsel specific to their situation.

Links

We are proud to continue supporting crvUSD integrations by introducing a MetaMorpho vault composed of Convex-wrapped Curve TriCrypto LPs as collateral to borrow crvUSD. The vault was designed and implemented by Llama Risk together with members of the Curve, Morpho, and Convex teams, and strategy management will be carried out by Llama Risk to optimize for risk-adjusted yield.

See the whitelisting post on the Morpho forum for details about the vault, and see below an overview of the assets making up the vault. We believe this vault offers a compelling use case for gaining leveraged exposure to yieldbearing Curve LPs and for taking advantage of a variety of crvUSD yield farming opportunities.

Without further ado, here are some custom features and other relevant info for users interested in lending crvUSD to the vault or borrowing against their TriCrypto LPs:

CRV + MORPHO Incentives

Curve’s founder, michwill, pledged to allocate $250k worth of CRV incentives in a co-incentives proposal on the Morpho forum. In the proposal, the Morpho team agreed to also commit 500k MORPHO as incentives to the crvUSD vault. The co-incentives program will run for 3 months and will be divided into one 60-day and one 30-day epoch. The first epoch will distribute 160k CRV and 222k MORPHO over 60 days. Users can earn rewards by depositing crvUSD to the Morpho vault.

In fact, incentives have officially begun today. The vault page in the Morpho app shows the CRV rewards APY and MORPHO quantity. Lenders can earn rewards by supplying to the crvUSD vault.

Morpho crvUSD Vault Dune Dash

We have created a Dune dashboard for the benefit of users interacting with the Morpho crvUSD vault. The dash shows historical data about each LP token whitelisted as collateral in the vault and about each Morpho market included in the vault.

Morpho market metrics include supply/borrow/utilization rates, activity flow, and market size over time:

Also included are market health metrics such as oracle price, liquidation price / borrow amounts for individual positions, and liquidation events:

We’re happy to take user feedback on the dashboard and add additional metrics users may find useful. Join our Telegram channel and let us know how we can improve your experience!

Convex Wrapper

All collateral assets are the Convex-wrapped variety, allowing depositors to earn CRV and CVX gauge rewards in addition to Curve swap fees. We have teamed up with Convex on the vault integration, for which C2tP was kind enough to modify the ConvexStakingWrapper to be compatible with Morpho. The design allows users to deposit the vanilla Curve LP, which is wrapped in Convex under the hood to offer a straightforward UX (Liquidators, likewise, only need to interact with the underlying Curve LP tokens). Depositors will then see their CRV and CVX rewards accrue on the Convex Claim page where they can be claimed at any time.

Users who review the ConvexStakingWrapperMorpho.sol contract may notice the use of _checkpoint() to ensure proper accounting of depositor rewards. To be compatible with the Morpho Bundler (the standardized contract to bundle user interactions together), the Convex wrapper checkpoints before every user interaction (e.g. deposit, rewards claim), although due to design limitations, it is unable to checkpoint on liquidations. Liquidated accounts will lose some rewards, which are distributed across other tokenholders. See below:

Assume two users have equal balances and deposit at the same time. Their earned (unclaimed, non-checkpointed) CRV and CVX are roughly the same (47 CRV, totaling about 100 between the two). B liquidates half of A, transferring LP tokens (not wrapper tokens) to B for liquidating. A’s earned rewards are now a third of the pool and, thus, their earned rewards go down to 31 CRV. User B’s earned rewards conversely increase to 62 CRV. This design limitation essentially means users are advised to regularly claim rewards and should checkpoint before withdrawing. The Morpho UI will prompt users to checkpoint before withdrawal but, nonetheless, users should understand this flow and the reason for it.

Oracle Contract

Llama Risk has developed an Oracle Factory contract to create oracles that price Curve LPs using a combination of Chainlink price feeds and the lp_price() method in the Curve pool contract.

The TriCryptos included in the Morpho vault all use the TriCrypto-ng pool implementation, which has a manipulation-resistant EMA pool oracle. The lp_price() method uses this internal oracle to price the LP with regard to the coin at index 0.

All collateral types are priced in terms of crvUSD, and each requires a slightly different process to derive that pricing. For TricryptoLLAMA and TriCRV, which have crvUSD in the pool index 0, taking lp_price alone derives the LP/crvUSD price. For TricryptoUSDT and TricryptoUSDC, the lp_price is used in combination with Chainlink price feeds to derive the LP/crvUSD price. TryLSD takes the wsETH/stETH internal contract rate and Chainlink price feeds to derive the LP/crvUSD price from wstETH at index 0. See the table below:

We’ve backtested the deviation between the price reported by the Curve pool oracle compared to the value of the LP as reported by Chainlink. The formula below was used to price a Curve TriCrypto LP at each timestep, using Chainlink as the price source:

sum(balance[i] * asset_price[i]) / total_supply * crvusd/usd

Below is a summary of the deviation between the price reported by the pool lp_price() compared to Chainlink. Additional data for each price pair can be found here.

Nomoi Audit

The aforementioned Convex wrapper and oracle contract have undergone an audit by Nomoi and the report can be found here. It’s a very brief report, give it a read.

Final Note

Join our LlamaRisk Telegram channel to reach members of our team who are happy to assist you and take your feedback. Our goal is to provide users interacting with the Morpho vault with the tools they need to manage their risk exposure. Don’t hesitate to share with us any ways we can improve on that goal. Ape safely!

Disclaimer: LlamaRisk provides the review of the MetaMorpho vault for informational purposes only, and such provision does not constitute financial, investment, legal, or professional advice. In the context of MetaMorpho, LlamaRisk does not take custody, control, or influence over user funds or investment choices and expressly disclaims any liability or responsibility for losses, damages, or other issues that may arise from users' investment decisions. The content provided by LlamaRisk, including any reports or overviews, is intended as a general guide and should not be relied upon as definitive or comprehensive advice. Users are advised not to act upon this information without seeking appropriate professional counsel specific to their situation.