Vault Info

An overview of automated strategy vaults on Derive

Delta-1 Basis Vaults

Delta-1 Basis Vaults

Earn yield with an automated delta-1 basis trade


Delta-1 Basis Strategy

An overview of the potential benefits and risks to participating in the Delta-1 Basis Strategy


How does the Delta-1 Basis Strategy work?

The delta-1 basis strategy enables holders of LSTs/LRTs to keep full exposure to the base asset (e.g., LBTC/weETH) while earning yield from perp funding spreads.

To achieve this, the vault borrows USDC to buy more of the base asset (up to 2x), while hedging away the excess exposure via short perps to remain delta-1.

How does it differ from the Ethena Basis Strategy?

The underlying yield strategy is very similar: the deposited sUSDe is used to buy spot ETH/BTC, while shorting an equal amount of perps. The main difference is that sUSDe holders have no exposure to any price movements in ETH/BTC (i.e., delta neutral).

Components of the automated Delta-1 Basis Strategy

The 5 components of the automated delta-1 basis strategy are illustrated by the following example:

1 - Deposit

An LBTC holder deposits 1 LBTC (worth 100,000 USDC) into the vault as collateral.

2 - Leverage

The vault borrows 100,000 USDC against the base asset it holds to buy an additional 1 LBTC, targeting a leverage ratio of 2x. As a result, the vault now holds 2 LBTC and 100,000 USDC debt.

3 - Hedge

Immediately after buying the additional 1 LBTC on the spot market, the vault hedges the excess exposure by shorting 1 BTC-PERP. The vault now has a net delta of 1.0.

4 - Earn

The vault is now earning Lombard points on 2 LBTC, staking yield on 2 LBTC, Derive trading rewards, and yield from the perp funding spread, while paying a borrow rate on the 100,000 USDC debt.

5 - Adjust

If the funding rate or borrowing costs shift unfavorably, the vault reverses steps #2 and #3 until it holds 1 LBTC, 0 USDC debt, and 0 short perp exposure.

*Note that the vault executes steps #2 and #3 in small sizes to ensure good pricing.

Who should participate in the strategy?

The delta-1 basis strategy is best suited for current and future holders of the supported LSTs/LRTs (e.g., LBTC/weETH).

Participating in the strategy enables holders to keep full exposure to price movements in the base asset (e.g., LBTC/weETH), earn LST/LRT points and staking yield (up to 2x), while also collecting perp funding spreads.

What are the risks of the strategy?

Notably, although the vault borrows USDC, it will not be liquidated, even if the price of BTC increases 10x or drops by 99%. This is because the gains on one leg offset the losses on the other. However, there is liquidation risk in the event of a large LST/LRT depeg.

The main risk of the strategy is an unfavorable shift in the funding rate and borrowing costs (i.e., funding rate < borrowing costs), in particular when there is low spot or perp liquidity. In a situation like this, the vault may take longer to exit the trade and could result in short periods of negative carry.

  • Learn more about the funding rate here.

  • Learn more about the borrowing costs here.

Yield calculation

The combination of a delta-1 basis strategy with yield-bearing LSTs/LRTs (e.g., LBTC/weETH), unlocks new sources of yield. The calculation is as follows:

  • APY: (up to 2x * Base Asset APY) + Funding Rate APY - Borrow Rate APY

  • Points: (up to 2x * LST/LRT points) + Derive rewards

Delta-1 Basis Execution

A technical explanation of how the Delta-1 Basis Strategy executes

The vault’s mandate is to double down on the amount of base asset it holds (going into USDC debt), while hedging away the excess exposure via short perps to remain delta-1.

Lifecycle

A technical explanation of how the Delta-1 Basis Strategy executes

The vault’s mandate is to double down on the amount of base asset it holds (going into USDC debt), while hedging away the excess exposure via short perps to remain delta-1.


Lifecycle

The vault’s lifecycle flow is very straightforward:

  1. The vault will launch with some amount of the base asset deposited into it (e.g. TVL of 100 LBTC)

  2. The vault sends bids to buy more base asset in small sizes (e.g. if the vault aims to buy a total of extra 100 LBTC, it will send orders with size 1 LBTC and price equal to fair value of LBTC)

  3. Whenever a fill is detected, the vault will hedge by selling perps (in case base asset was bought) or buying perps (in case base asset was sold) to keep the delta at 1.0

  4. The target leverage is tentatively set to 2.0 (i.e. the vault with TVL of 100 LBTC will aim to hold 200 LBTC as base and hedge with an amount of BTC perps to keep the net delta at 1.0). However, as LBTC yields, funding, and USDC borrow rate shift unfavourably, the vault may adjust it’s target leverage to a lower number to stop further accumulation, or start exiting the trade. In that case the vault will sell some base asset, and will keep hedging to keep delta at 1.0 at all times.

Spot Trading

Vault’s spot trades will be executed on Derive’s orderbook. The vault will aim at minimizing execution losses and slippage by continuously posting bids at fair value of LBTC. In other words, the vault will act as a market maker of the spot asset.

Pricing

Fair value of the spot asset will be calculated via:

  1. A ratio of LRT/LST to the base asset (e.g. LBTC/BTC) from chainlink

  2. and a base price implied from live orderbook subscriptions (e.g. Binance mid-prices).

  3. Extra guardrails will be in place in case of large deviations of price ratios - the vault will avoid trading during volatile times.


Then the price the vault will bid at is simply the fair_value * (1 + spread), where spread can be zero, or sometimes a slightly larger number (e.g. 5bp) to incentivize sellers.

When asking instead, the spread can be slightly negative to incentivize buyers.

Additionally, the vault must satisfy on-chain guardrails, such as not selling too cheaply or not buying too expensive, relative to the mark price on the derive chain. The vault will cap / floor its prices at e.g. +/- 1% of the mark price.

Finally, the vault has to comply with an additional pricing guardrail that prevents the vault from doing too many bad trades over a short time period. On-chain, the vault tracks an exponentially-weighted average mark loss over the last hour, and reverts a transaction if the loss exceeds a limit of e.g. 20bp of TVL. The loss is calculated simply as +/- (limit_price - mark_price) x amount, sign being determined by it being a buy or a sell.


Sizing

The vault will be placing bids as long as it’s current leverage is below target leverage. The maximum size the vault can bid is limited by the on-chain guardrails on the delta of the vault.

For example, if the vault’s TVL is 10 LBTC and its positions are 15 LBTC base, -$500,000 USDC (1.5x leverage), and -5 BTC perps, the vault has a delta of 1.0, calculated as (15 - 5) / 10, i.e. (base_delta + perp_delta) / tvl. If delta limit is set to 1.01, then the maximum size the vault can bid is the x that satisfies 1.01 ≤ (15 + x - 5) / 10, i.e. 0.1 LBTC. The vault’s delta limit will typically be set a bit more conservatively than the on-chain limit (e.g. on-chain limit could be 1.02 and vault will trade as if it is 1.01).

Target leverage will also be checked by the vault in determining size, e.g. in the above example and assuming 2.0 target leverage, the maximum additional spot position the vault would want is the y that satisfies 2.0 ≤ (15 + y) / 10, i.e. 5 LBTC. Note that the vault defines leverage as purely the spot leverage, namely spot_position / tvl, e.g. owning 20 LBTC while having 10 LBTC TVL corresponds to 2.0 leverage.

Perp Trading

Vault’s perp trades will also be executed on Derive’s orderbook. Similarly, the vault will try to minimize execution losses and slippage by continuously posting orders at mid-market, however since perp liquidity tends to be much more reliable than spot liquidity, market orders might also be acceptable.

Pricing

Unlike the spot asset, pricing is easier for perps due to much better liquidity. The vault will be using a combination of derive’s orderbook and an external source (e.g. Binance live orderbook feed) to determine far value of the perps.

Similar to spot, the vault needs to comply with equivalent guardrails of

  1. Not exceeding price limits

  2. Not exceeding EMA of the mark loss


Sizing

The vault will trade perps when the delta limit is reached from trading spot assets. For example, if the current delta is 1.01 with 15.1 LBTC, -5 BTC perps and 10 LBTC TVL, the vault will calculate the desired perp delta as x that satisfies 1 = (15.1 - 5 + x) / 10, i.e. -0.1 BTC. Note that this yields the delta that the vault aims to close, to get to the actual perp position that the vault wants to enter, the delta will be adjusted by the LBTC/BTC ratio, but it is assumed to be 1.0 in this example.

Since leverage is unaffected by the perp trades, it does not need to be checked.

Smart Contract Guardrails

To summarize, there are a few on-chain smart contract guardrails that ensure that the vault behaves as mandated. Those are:

  1. Leverage bounds that make sure the vault does not exceed e.g. 2x leverage (or goes below 0.9 leverage) in the spot asset.

  2. Delta bounds that ensure that the vault mimics the price performance of holding exactly 1.0 unit of the base asset, within +/- 2% tolerance

  3. Price bounds that make sure the vault does not sell spot or perps too cheaply or buy too expensively.

  4. Loss bounds that make sure that the vault does not lose some % of TVL due to bad trades, on a per-hour basis.

The vault’s lifecycle flow is very straightforward:

  1. The vault will launch with some amount of the base asset deposited into it (e.g. TVL of 100 LBTC)

  2. The vault sends bids to buy more base asset in small sizes (e.g. if the vault aims to buy a total of extra 100 LBTC, it will send orders with size 1 LBTC and price equal to fair value of LBTC)

  3. Whenever a fill is detected, the vault will hedge by selling perps (in case base asset was bought) or buying perps (in case base asset was sold) to keep the delta at 1.0

  4. The target leverage is tentatively set to 2.0 (i.e. the vault with TVL of 100 LBTC will aim to hold 200 LBTC as base and hedge with an amount of BTC perps to keep the net delta at 1.0). However, as LBTC yields, funding, and USDC borrow rate shift unfavourably, the vault may adjust it’s target leverage to a lower number to stop further accumulation, or start exiting the trade. In that case the vault will sell some base asset, and will keep hedging to keep delta at 1.0 at all times.


Spot Trading


Vault’s spot trades will be executed on Derive’s orderbook. The vault will aim at minimizing execution losses and slippage by continuously posting bids at fair value of LBTC. In other words, the vault will act as a market maker of the spot asset.


Pricing


Fair value of the spot asset will be calculated via:

  1. A ratio of LRT/LST to the base asset (e.g. LBTC/BTC) from chainlink

  2. and a base price implied from live orderbook subscriptions (e.g. Binance mid-prices).

  3. Extra guardrails will be in place in case of large deviations of price ratios - the vault will avoid trading during volatile times.


Then the price the vault will bid at is simply the fair_value * (1 + spread), where spread can be zero, or sometimes a slightly larger number (e.g. 5bp) to incentivize sellers.

When asking instead, the spread can be slightly negative to incentivize buyers.

Additionally, the vault must satisfy on-chain guardrails, such as not selling too cheaply or not buying too expensive, relative to the mark price on the derive chain. The vault will cap / floor its prices at e.g. +/- 1% of the mark price.

Finally, the vault has to comply with an additional pricing guardrail that prevents the vault from doing too many bad trades over a short time period. On-chain, the vault tracks an exponentially-weighted average mark loss over the last hour, and reverts a transaction if the loss exceeds a limit of e.g. 20bp of TVL. The loss is calculated simply as +/- (limit_price - mark_price) x amount, sign being determined by it being a buy or a sell.



Sizing


The vault will be placing bids as long as it’s current leverage is below target leverage. The maximum size the vault can bid is limited by the on-chain guardrails on the delta of the vault.

For example, if the vault’s TVL is 10 LBTC and its positions are 15 LBTC base, -$500,000 USDC (1.5x leverage), and -5 BTC perps, the vault has a delta of 1.0, calculated as (15 - 5) / 10, i.e. (base_delta + perp_delta) / tvl. If delta limit is set to 1.01, then the maximum size the vault can bid is the x that satisfies 1.01 ≤ (15 + x - 5) / 10, i.e. 0.1 LBTC. The vault’s delta limit will typically be set a bit more conservatively than the on-chain limit (e.g. on-chain limit could be 1.02 and vault will trade as if it is 1.01).

Target leverage will also be checked by the vault in determining size, e.g. in the above example and assuming 2.0 target leverage, the maximum additional spot position the vault would want is the y that satisfies 2.0 ≤ (15 + y) / 10, i.e. 5 LBTC. Note that the vault defines leverage as purely the spot leverage, namely spot_position / tvl, e.g. owning 20 LBTC while having 10 LBTC TVL corresponds to 2.0 leverage.


Perp Trading

Vault’s perp trades will also be executed on Derive’s orderbook. Similarly, the vault will try to minimize execution losses and slippage by continuously posting orders at mid-market, however since perp liquidity tends to be much more reliable than spot liquidity, market orders might also be acceptable.

Pricing

Unlike the spot asset, pricing is easier for perps due to much better liquidity. The vault will be using a combination of derive’s orderbook and an external source (e.g. Binance live orderbook feed) to determine far value of the perps.

Similar to spot, the vault needs to comply with equivalent guardrails of

  1. Not exceeding price limits

  2. Not exceeding EMA of the mark loss


Sizing


The vault will trade perps when the delta limit is reached from trading spot assets. For example, if the current delta is 1.01 with 15.1 LBTC, -5 BTC perps and 10 LBTC TVL, the vault will calculate the desired perp delta as x that satisfies 1 = (15.1 - 5 + x) / 10, i.e. -0.1 BTC. Note that this yields the delta that the vault aims to close, to get to the actual perp position that the vault wants to enter, the delta will be adjusted by the LBTC/BTC ratio, but it is assumed to be 1.0 in this example.

Since leverage is unaffected by the perp trades, it does not need to be checked.


Smart Contract Guardrails

To summarize, there are a few on-chain smart contract guardrails that ensure that the vault behaves as mandated. Those are:

  1. Leverage bounds that make sure the vault does not exceed e.g. 2x leverage (or goes below 0.9 leverage) in the spot asset.

  2. Delta bounds that ensure that the vault mimics the price performance of holding exactly 1.0 unit of the base asset, within +/- 2% tolerance

  3. Price bounds that make sure the vault does not sell spot or perps too cheaply or buy too expensively.

  4. Loss bounds that make sure that the vault does not lose some % of TVL due to bad trades, on a per-hour basis.

Delta-1 Basis Risks

An overview of the key implementation risks


There are a few risks associated with tokenized strategies - beyond the risk of the strategy itself (detailed here). It is important users are aware of these risks before depositing to or acquiring a tokenized strategy. Note that this is not necessarily an exhaustive list.


Execution Risks

Restaked Asset Depeg Risk

In rare cases when a restaked asset has a major depeg from the underlying asset, the vault collateral may become liquidatable since the strategy will be short native asset PERP but collateralized with the restaked asset.

Liquidity Risks

When the funding rate turns negative, the vault aims to automatically exit short perp and spot positions. However, if there is not enough liquidity in the perp or spot markets on Derive, exiting a negative funding environment may take longer than optimal.

Oracle Risks

Per the Derive docs, for each market, there is a set of oracle inputs used for marking assets when computing margin and liquidations. This data is posted onchain for transparency and available via the public REST API. This data is provided by Block Scholes and several other partners.

It’s possible that feeds for certain assets (particularly less liquid ones) may have marks that deviate from the true fair value, which can result in suboptimal execution for the strategy vault.

Underlying Collateral Risks

Holding the underlying collateral carries its own set of risks. These may include, but are not limited to, smart contract bugs, Ethereum bugs, restaking penalties, price fluctuations, and key management problems.

For a detailed overview of the risks specific to each type of collateral, please refer to the relevant documentation:

Bridge Risk

Transferring assets from one network to another carries risks associated with the underlying bridge provider. In this product, we use Socket as the bridge provider. Please review their documentation for more details.

Smart Contract Risk

Interacting with any smart contract carries the risk of losing access to your funds. The immutable nature of smart contacts makes it difficult and potentially impossible to recover them.

An overview of the key implementation risks


There are a few risks associated with tokenized strategies - beyond the risk of the strategy itself (detailed here). It is important users are aware of these risks before depositing to or acquiring a tokenized strategy. Note that this is not necessarily an exhaustive list.


Execution Risks


Restaked Asset Depeg Risk

In rare cases when a restaked asset has a major depeg from the underlying asset, the vault collateral may become liquidatable since the strategy will be short native asset PERP but collateralized with the restaked asset.

Liquidity Risks

When the funding rate turns negative, the vault aims to automatically exit short perp and spot positions. However, if there is not enough liquidity in the perp or spot markets on Derive, exiting a negative funding environment may take longer than optimal.

Oracle Risks

Per the Derive docs, for each market, there is a set of oracle inputs used for marking assets when computing margin and liquidations. This data is posted onchain for transparency and available via the public REST API. This data is provided by Block Scholes and several other partners.

It’s possible that feeds for certain assets (particularly less liquid ones) may have marks that deviate from the true fair value, which can result in suboptimal execution for the strategy vault.

Underlying Collateral Risks

Holding the underlying collateral carries its own set of risks. These may include, but are not limited to, smart contract bugs, Ethereum bugs, restaking penalties, price fluctuations, and key management problems.

For a detailed overview of the risks specific to each type of collateral, please refer to the relevant documentation:


Bridge Risk


Transferring assets from one network to another carries risks associated with the underlying bridge provider. In this product, we use Socket as the bridge provider. Please review their documentation for more details.

Smart Contract Risk

Interacting with any smart contract carries the risk of losing access to your funds. The immutable nature of smart contacts makes it difficult and potentially impossible to recover them.

Harvest Vaults

Harvest Vaults

Earn yield with an automated Covered Call strategy


Earn yield with an automated Covered Call strategy


Harvest Strategy

An overview of the potential benefits and risks to participating in the Covered Call Strategy


TLDR

  • Covered Call Tokens allow users to participate in a Covered Call options strategy.

  • The Covered Call strategy effectively allows holders of the underlying asset to commit to a limit sell order, at a higher price, for a period of time (via selling call options), in return for yield on their asset.

  • The key risk to selling covered calls is that asset holders miss out on price appreciation of their asset, beyond the strike price of the option.

  • Covered Call writing is best suited for neutral-to-bullish market conditions. On the upside, profit potential is limited, and on the downside there is the full risk of holding the asset below the strike.

What is a covered call?

A covered call is a simple trading strategy with two components:

  • An asset that you own

  • A short call option on the same or similar asset, using the asset itself as collateral

In return, covered call sellers receive yield via USDC premiums.

A call option has two key dimensions to consider for covered call execution:

  1. Its strike: the price which the option buyer can purchase the asset from you

  2. Its expiration: the date on which the option buyer can buy the asset, for the strike price

Changing these parameters affects the yield generated by the option.

  • Higher strike = lower yield (you are committing to selling the asset at a higher, or worse, price)

  • Shorter expiry = lower yield* (you are committing to selling the asset for a shorter period, which is less optionality and value for the buyer)

*However if you ‘roll’ the strategy by executing weekly, the yields are generally higher (with higher risk) for shorter dated rolling strategies.

Why would I sell covered calls?

Selling covered calls boils down to pre-committing to limit sell orders, and getting paid for it. In return, you sacrifice upside if the price of the asset you’re trading rapidly increases. The annualized yield afforded by selling covered calls typically ranges from 10-50% on the collateral posted.

Covered calls are generally best for:

  • Medium to large size holders of the underlying asset

  • Interested in generating cash flows

  • Who are targeting a sell price that is above the current price

The downside of the strategy is two-fold:

  • You stand to miss out on upside if the price goes up, quickly

  • You remain exposed to the downside if the asset loses value

Derive Covered Call Tokens are designed to:

  • Sell weekly upside calls (with a roughly 10-15% chance of expiring in the money)

  • Collateralized with the same or similar asset

It is important users consult the up-to-date information on yield and points programs in the app before entering a strategy, as these are subject to change.

Example

Alan sells 100 covered calls using rswETH as collateral.

  • ETH is trading at $3,000

  • Alan has 100 rswETH (Swell’s native restaking token), worth $300,000

  • Alan deposits 100 rsWETH into Derive's tokenized strategy, and mints Restaked Swell ETH Covered Call tokens (rswETHC)

  • The Covered Call Strategy executes a trade which sells 100 ETH $3,500 calls for $10 each, expiring in 7 days

There are two possible scenarios where the outcome differs between selling covered calls and simply holding the underlying asset.


Scenario 1

ETH finishes the 7 day period at $3,400.


When ETH finishes at or below $3,500, Alan earns more than he would have had he not used the strategy.

Earnings breakdown:

  • 100% of the principal (100 rswETH)

  • $1,000 in premium income ($50,000 / year = 20% annualized)

  • $60 in staked ETH yield ($3,000 / year = 3% annualized)

  • EigenLayer points, boosted Swell points and DRV points (30 points per hour per ETH; uncapped deposit limit)


Scenario 2

ETH finishes the 7 day period at $3,600.


In this case, Alan's P&L is positive, although less positive than if he had just held rswETH and not used the strategy.

Earnings breakdown:

  • 97.22 rswETH (100 rswETH principal - 2.78 rswETH to pay out the options that expired in the money)

  • $1,000 in premium income ($50,000 / year = 20% annualized)

  • $60 in staked ETH yield ($3,000 / year = 3% annualized)

  • EigenLayer points, boosted Swell points and DRV points (30 points per hour per ETH; uncapped deposit limit)

The options Alan sold are in the money, so he needs to pay out by selling some rsWETH (at $3,600) and paying back the $10,000. In this case, Alan would need to sell $10,000/$3,600 = 2.78 swETH, and he would be left with 97.22 swETH plus the yield he earned.

Strategy Risk

This is the drawback of selling options. You can end up selling cheap if the asset price rallies quickly (in the case of Scenario 2 above, ETH rallied 20% in a week).

But even if that happens and you lose on the options trade, it’s not necessarily a net loss. In scenario 2, Alan's P&L across his portfolio is positive. That’s because his rswETH holdings increased in value from $300,000 to $360,000 (+$60,000). Those profits dampen the loss from paying off the options obligations. When you add the premiums and yield, this more than makes up for the loss. But that is the risk of the strategy. You may miss out on some upside in return for income and yield.

Conclusion

Derive vaults are aimed at existing holders of the underlying asset. However, if you decide to purchase the underlying asset to mint Covered Call Tokens, please be aware of the extra risks involved (detailed here).

Derive's Covered Call Tokens allow users to execute the covered call strategy with the underlying asset as collateral. Covered calls are a powerful and sustainable strategy for traders and investors who want to generate yield on their assets through options selling. In return for giving up potential upside in their asset, they receive yield.

Traders should understand the strategy and weigh up the risk/reward profile before participating.


In this case, Alan's P&L is positive, although less positive than if he had just held rswETH and not used the strategy.

Earnings breakdown:

  • 97.22 rswETH (100 rswETH principal - 2.78 rswETH to pay out the options that expired in the money)

  • $1,000 in premium income ($50,000 / year = 20% annualized)

  • $60 in staked ETH yield ($3,000 / year = 3% annualized)

  • EigenLayer points, boosted Swell points and DRV points (30 points per hour per ETH; uncapped deposit limit)

The options Alan sold are in the money, so he needs to pay out by selling some rsWETH (at $3,600) and paying back the $10,000. In this case, Alan would need to sell $10,000/$3,600 = 2.78 swETH, and he would be left with 97.22 swETH plus the yield he earned.

Strategy Risk

This is the drawback of selling options. You can end up selling cheap if the asset price rallies quickly (in the case of Scenario 2 above, ETH rallied 20% in a week).

But even if that happens and you lose on the options trade, it’s not necessarily a net loss. In scenario 2, Alan's P&L across his portfolio is positive. That’s because his rswETH holdings increased in value from $300,000 to $360,000 (+$60,000). Those profits dampen the loss from paying off the options obligations. When you add the premiums and yield, this more than makes up for the loss. But that is the risk of the strategy. You may miss out on some upside in return for income and yield.

Conclusion


Derive vaults are aimed at existing holders of the underlying asset. However, if you decide to purchase the underlying asset to mint Covered Call Tokens, please be aware of the extra risks involved (detailed here).

Derive's Covered Call Tokens allow users to execute the covered call strategy with the underlying asset as collateral. Covered calls are a powerful and sustainable strategy for traders and investors who want to generate yield on their assets through options selling. In return for giving up potential upside in their asset, they receive yield.

Traders should understand the strategy and weigh up the risk/reward profile before participating.

Harvest Execution

A technical explanation of how the Derive Covered Call Strategy executes


TLDR

  • The vault trades are executed on the Derive Exchange via the orderbook.

  • Orders are signed by a smart contract that validates that the total amount of options sold does not exceed the collateral position, that the limit prices are within a reasonable distance from the oracle marks, and more.

  • The execution is performed via “limit order auctions” - i.e. the vault sends out limit orders starting at a conservative price (e.g. equal to oracle mark) and progressively replaces the orders with more attractive prices until the desired amount of options is sold.

  • At option expiry, the vault will attempt to close out any USDC credit or debit by selling or buying its collateral using the same “limit order auction” mechanism.

  • The choice of options’ delta range and expiry will be subject to a backtest and liquidity considerations. Tentatively, the vault will be selling options in the 5-15 delta range, with 0DTE, 1DTE or 7DTE expiry.

Vault Positions Lifecycle

The vault positions go through the following stages:

A technical explanation of how the Derive Covered Call Strategy executes


TLDR

  • The vault trades are executed on the Derive Exchange via the orderbook.

  • Orders are signed by a smart contract that validates that the total amount of options sold does not exceed the collateral position, that the limit prices are within a reasonable distance from the oracle marks, and more.

  • The execution is performed via “limit order auctions” - i.e. the vault sends out limit orders starting at a conservative price (e.g. equal to oracle mark) and progressively replaces the orders with more attractive prices until the desired amount of options is sold.

  • At option expiry, the vault will attempt to close out any USDC credit or debit by selling or buying its collateral using the same “limit order auction” mechanism.

  • The choice of options’ delta range and expiry will be subject to a backtest and liquidity considerations. Tentatively, the vault will be selling options in the 5-15 delta range, with 0DTE, 1DTE or 7DTE expiry.

Vault Positions Lifecycle

The vault positions go through the following stages:

1. Only Collateral

The vault launches with only its collateral. If the vault collects option premiums and cannot sell the received USDC into its collateral due to low liquidity, the vault might also proceed to the next stage with a small amount of positive USDC balance (to be explained in stage 4).

2. Option Limit Order Auction

The vault begins to execute a “limit order auction” to sell options.

  • Select an option from the desired expiry and delta range.

    • The executor uses the orderbook API to find the option of the target DTE that is closest to its target delta

    • The signing smart contract will validate that the DTE and delta of the option are within range

  • Calculate desired_price for this option. This is based on the forward price and volatility feeds from Block Scholes, and uses Black76 formula.

  • Obtain a signature from the smart contract signer.

  • Send a sell limit order with the limit_price = desired_price and amount = number of LRTs.

  • Market makers or any other retail user can trade against this order via the UI or orderbook API.

  • Every second, recalculate desired_price using fresh feeds and add a small negative spread to the implied volatility, iv_spread = - iv_spread_per_sec x (now - auction_start_sec). The spread is capped at max_iv_spread, and the volatility has a floor of min_iv.

  • If desired price has changed by more than option_price_change_tolerance, cancel the old order, request a new signature, and send out a new order using the new desired_price and amount = number of LRTs - number of filled options.

  • Stop if number of filled options = number of LRTs.

  • Hard stop when (now - auction_start_sec) exceeds some max_option_auction_sec, e.g. 1 hour.

3. Await Option Settlement

After the order is fully filled or the hard stop has been reached, the executor will sleep until the option is expired and settled. After a settlement has been confirmed, the executor proceeds to stage 4.

4. Collateral Limit Order Auction

Note that if the option expired out-of-the-money, the vault will have positive USDC balance it acquired due from the premiums received in stage 2. If the option expired ITM, the USDC balance can be positive or negative depending on if the premiums were enough to cover the settlement loss.

The vault then begins to execute a “limit order auction” to buy or sell enough collateral to get rid of any USDC balance and bring itself back to stage 1.

  • Calculate desired_price for the underlying spot asset - this is based on the spot price oracle.

  • Calculate desired_amount = num of USDC / desired_price. For example if the vault has $6,000 USDC and the LRT price is $3,000, the vault will attempt to buy 2 LRTs. Alternatively if the vault has $30,000 USDC debt due to an option that expired ITM, it will attempt to sell 10 LRTs.

  • Obtain a signature from the smart contract signer.

  • Send a limit order with the limit_price = desired_price and amount = abs(desired_amount). The order is a buy order if desired_amount > 0, otherwise it’s a sell order.

  • Every second, recalculate desired_price using fresh feeds and add a small spread to the price (if buying) or subtract the spread (if selling). The spread is calculated as spot_spread = spot_spread_per_sec x (now - auction_start_sec), subject to a max_spot_spread.

  • If desired price has changed by more than spot_price_change_tolerance, cancel the old order, request a new signature, and send out a new order using the new desired_price and desired_amount = remaining num of USDC / desired_price.

  • Stop if desired_amount = 0.

  • If USDC balance is positive, hard stop when (now - auction_start_sec) exceeds some max_spot_auction_sec, e.g. 15 min. Note that it is possible for the auction to terminate and proceed back to stage 1 with some leftover USDC balance. If USDC balance is negative, the auction will continue indefinitely until the debt is repaid.

Smart Contract Strategy Mandate Enforcement

The subaccount owned by the vault is registered with the Derive Exchange in the same way as a regular user, with the core difference being in the way the order signing is performed

Derive ensures full custody of users’ funds by requiring (at a smart contract level) that any trade between two parties has messages signed by their session keys. A session key is just a separate private / public key pair that the user gives trading permissions by registering it with Derive's matching smart contract.

For example, in order for a trade between Alice and Bob to take place (e.g. to sells 8 call options at a price of $12.5), both Alice and Bob must sign a messages where they agree for such a trade, and both messages will be validated by the matching smart contract. Only the Exchange is allowed to submit such messages to the smart contract, which allows for added layers of security such as IP whitelisting of session keys, etc.

A vault has to go through the same flow, except the session keys it uses are not just plain old private keys stored somewhere secretly. Instead, the vault’s session key is a smart contract, and signatures are generated by calling this contract’s function.

The contract will only generate a signature if a set of validations passes, for example it will check the requested order’s amount against the collateral position the vault holds and refuses to generate a signature if the amount requested is too large. Similarly it will refuse to sign a price if that price is too far away from an oracle price. The set of validations that the signer will run are as follows:

  • Ensure option delta and expiry are within a certain range.

  • Ensure that at most one signed order can be open at any time.

  • Ensure that no option order can be signed if USDC balance is negative.

  • Ensure that the amount in the option order does not exceed its collateral position.

  • Ensure that the amount of the spot order does not exceed what’s required to clear the USDC balance.

  • Ensure the option limit price is higher than a threshold (calculated using oracle volatility and forward prices with a spread and a floor applied to the volatility).

  • Ensure that the spot limit price is within a range from the oracle mark price.

  • Ensure that the order signature will expire in < 10 min.

This set of rules guarantees that the vault executor cannot trade outside of the vault’s strategy mandate, and it protects the vault shareholders from badly priced trades being placed. At the same time, the off-chain components of the strategy (such as being able to cancel an open order when the price moves to avoid being picked off) enhances the execution quality.

Harvest Risks

Outlining key implementation risks of Covered Call Tokens

There are a few risks associated with tokenized strategies - beyond the risk of the strategy itself (detailed here). It is important users are aware of these risks before depositing to or acquiring a tokenized strategy. Note that this is not necessarily an exhaustive list.




Execution Risks

Delayed settlement

  • If options expire in-the-money, collateral will need to be swapped for USDC on settlement. Available spot liquidity on the exchange and the amount of collateral to be liquidated could factor in to longer settlement times, in order to ensure quality of execution.

Oracle Risk

  • Per the Derive docs, for each market, there is a set of oracle inputs used for marking assets when computing margin and liquidations. This data is posted onchain for transparency and available via the public REST API. This data is provided by Block Scholes.

  • It’s possible that feeds for certain assets (particularly less liquid ones) may have marks that deviate from the true fair value, which can result in suboptimal execution for the strategy vault.

Underlying Collateral Risk

Holding the underlying collateral carries its own set of risks. These may include, but are not limited to, smart contract bugs, Ethereum bugs, restaking penalties, price fluctuations, and key management problems.

For a detailed overview of the risks specific to each type of collateral, please refer to the relevant documentation:

Bridge Risk

  • Transferring assets from one network to another carries risks associated with the underlying bridge provider. In this product, we use Socket as the bridge provider. Please review their documentation for more details.

Smart Contract Risk

  • Interacting with any smart contract carries the risk of losing access to your funds. The immutable nature of smart contacts makes it difficult and potentially impossible to recover them.

Safe Harvest Vaults

Safe Harvest Vaults

Earn yield with an automated covered call spread strategy

Safe Harvest Strategy

An overview of the potential benefits and risks to participating in the Covered Call Spread Strategy.


TLDR

  • Earn yield on the underlying collateral in "trending up", sideways or bear markets.

  • The Covered Call Spread Strategy is a less risky alternative to the regular Covered Call Strategy.

  • This strategy is best suited for those who are holding the underlying asset and are comfortable with the risks of regular covered calls, but are concerned with giving up upside potential in the event of a large rally.

  • For an overview of the key implementation risks, please refer to Covered Call Spread Risks.

What is a Covered Call Spread Strategy?

A covered call spread combines a regular covered call with a higher-strike long call to limit the risk of missing out on potential upside from holding the underlying asset.

The automated Covered Call Spread Strategy consists of three components:

  1. Deposit the underlying asset as collateral into the vault.

  2. Each week, the Vault will:

    • Sell out-of-the-money call options to earn yield; and

    • Buy further out-of-the-money call options to limit risk.

  3. After expiry, the Vault will either buy or sell collateral:

    • If the options payoff plus the net premium received results in a positive USDC balance, the Vault will use the USDC to buy collateral.

    • If the options payoff plus the net premium received results in a negative USDC balance, the Vault will sell collateral to clear the USDC debt.

Covered Call Spreads vs. Covered Calls

Regular covered calls forego all upside potential of holding the underlying collateral once the price of the asset reaches a certain point. For example, if the price of ETH is $2,600 and a weETH covered call has a $3,000 strike, the position stops appreciating in dollar terms once the price of ETH reaches $3,000. This means that if ETH rallies from $2,600 to $3,600 in one week, the holder would only earn $400 in profit, missing out on on the $600 gain from the increase between $3,000 and $3,600.

Covered call spreads limit the potential missed upside for the holder. By buying a long call option with a $3,100 strike, the holder can capture all ETH gains between $2,600 and $3,600, except for the portion between $3,000 and $3,100. This way, the holder would make a $900 profit and miss out on only $100 of the potential gains, compared to missing $600 with a regular covered call.

This comes at the cost of losing a percentage of the options premiums' APY. The USDC yield from the options premiums gets reduced by approximately half.

Example

Alan sells 100 covered calls using weETH as collateral.

  • ETH is trading at $2,600

  • Alan has 100 weETH, worth approximately $260,000

  • Alan deposits 100 weETH into the Covered Call Spread Strategy and mints weETHCS tokens

  • The Covered Call Spread Strategy executes a trade which sells 100 ETH $3,000 calls for $10 each, expiring in 7 days, as well as buys 100 ETH $3,100 calls for $4 each, netting a total of $600 worth of premiums paid to Alan.

There are three possible scenarios where the outcome differs between selling covered call spreads and simply holding the underlying asset.


Scenario 1

ETH finishes the 7 day period at or below $3,000. When ETH finishes at or below $3,000, Alan earns more than he would have had he not used the strategy.


Earnings breakdown:

  • 100% of the principal (100 weETH)

  • $600 in premium income ($30,000 / year = 11% annualized)

  • $60 in staked ETH yield ($3,000 / year = 3% annualized)

  • EigenLayer points, boosted EtherFi points and DRV points


Scenario 2

ETH finishes between $3,000 and $3,100. When ETH finishes between the two strikes of the spread, the strategy performs very similarly to a regular covered call.

Earnings breakdown assuming ETH finishes at $3,100:

  • 96.77 weETH (100 weETH principal - 3.22 weETH to pay out the options that expired in the money)

  • $600 in premium income ($30,000 / year = 11% annualized)

  • $60 in staked ETH yield ($3,000 / year = 3% annualized)

  • EigenLayer points, boosted EtherFI points and DRV points

The options Alan sold are in the money, so he needs to pay out by selling some weETH (at $3,100) and paying back the $10,000. In this case, Alan would need to sell $10,000 / $3,100 = 3.23 weETH, and he would be left with 96.77 weETH plus the yield he earned.

Scenario 3

ETH finishes above $3,100. When ETH finishes above the higher ''protection strike'', the strategy's losses are limited to $100 per weETH.

Earnings breakdown assuming ETH finishes at $3,600:

  • 97.22 weETH (100 weETH principal - 2.78 weETH to pay out the options that expired in the money)

  • $600 in premium income ($30,000 / year = 11% annualized)

  • $60 in staked ETH yield ($3,000 / year = 3% annualized)

  • EigenLayer points, boosted EtherFi points and DRV points

The spreads Alan sold are in the money, so he needs to pay out by selling some weETH (at $3,100) and paying back the $10,000 (note that despite ETH finishing $600 above the strike price, Alan only needs to pay $100 per option. In this case, Alan would need to sell $10,000 / 3,600 = 2.78 weETH, and he would be left with 97.22 weETH plus the yield he earned.

Safe Harvest Execution

A technical explanation of how the Covered Call Spread strategy executes


TLDR

  • The vault trades are executed on the Derive Exchange via RFQs (Request for Quote).

  • The vault sends out an intention to sell a call spread (request) and receives back responses from market makers (quotes). The vault executes the best quote provided it's price is within the vault's desired range.

  • RFQ executions are signed by a smart contract that validates that the total amount of options sold does not exceed a % of the vault's TVL, that the quote prices are within a reasonable distance from the oracle marks, and more.

  • At option expiry, the vault will attempt to close out any USDC credit or debit by selling or buying its collateral on the Derive orderbook.

  • The vault only trades 7DTE expiries, and will select a spread that is closest to the target values. The target values are subject to adjustments if the asset price were to grow or fall significantly.

Vault Positions Lifecycle

The vault positions go through the following stages:

Stage 1 - Only Collateral

The vault launches with only its collateral and no positions. If the vault collects option premiums and cannot sell the received USDC into collateral due to low liquidity, the vault might also proceed to the next stage with a small amount of positive USDC balance (to be explained in stage 4).


Stage 2 - Option Limit Order Auction

The vault begins to execute a ''RFQ auction'' to sell spreads.

  • Select a call spread from the desired expiry s.t. it's mark price is close to the target price.

    • The executor uses the orderbook API to find the spread of the target DTE that is closest to its target price.

    • The signing smart contract will validate that the DTE and the mark price of the option are within target range.

  • Calculate desired_amount for this spread, equal to the amount of collateral held. Split this amount into smaller ''lots'' (e.g., split 4000 weETH worth of desired size into 10 lots of size 400). These lots will be executed consecutively.

  • Send a request-for-quote for this spread with size 400. Note that the RFQ automatically expires after 2 minutes and if not filled, a new one is sent.

  • Calculate desired_price for this call spread. This is based on the forward price and volatility feeds from Block Scholes, and uses Black76 formula.

  • Freeze for 15 seconds to allow market makers to send quotes.

  • Every second, recalculate desired_price using fresh feeds and scale it down by a factor. The desired_price thus gets progressively smaller until it hits a minimum after 2 minutes. The scaling factors equals 1/(1 + mark_spread) where mark_spread = min_since_lot_start * 0.5. In other words, after 2 minutes the vault's desired_price is 50% of the mark price.

  • Every second, compare the current best quote (across all market makers that sent them) to the desired_price. Note that the RFQ system is a blind auction, namely market makers do not know other market makers' quotes. This prevents them from colluding and / or naively bidding the vault's worst possible desired_price.

  • If the price of the best quote is higher than the desired_price, obtain a signature from the smart contract signer. If the transaction was successful, call the API to execute the quote.

  • Keep re-creating new lots until the full desired amount is filled. Note that each new lot's desired_price is reset to mark price and goes down to 50% of the mark price over the lot's 2 minute lifespan.

Stage 3 - Await Option Settlement

After the order is fully filled or the hard stop has been reached, the executor will sleep until the option is expired and settled. After a settlement has been confirmed, the executor proceeds to stage 4.

Stage 4 - Collateral Limit Order Auction

Note that if the spread expired out-of-the-money, the vault will have positive USDC balance it acquired due from the premiums received in stage 2. If the spread expired ITM, the USDC balance can be positive or negative depending on if the premiums were enough to cover the settlement loss.

The vault then begins to execute a ''limit order auction'' to buy or sell enough collateral to get rid of any USDC balance and bring itself back to Stage 1.

  • Calculate desired_price for the spot asset - this is based on the spot price oracle.

  • Calculate desired_amount = num of USDC / desired_price. For example, if the vault has $6,000 USDC and the LRT price is $3,000, the vault will attempt to buy 2 LRTs. Alternatively, if the vault has $30,000 USDC debt due to an option that expired ITM, it will attempt to sell 10 LRTs.

  • Obtain a signature from the signing smart contract.

  • Send a limit order with the limit_price = desired_price and amount = abs(desired_amount). The order is a buy order if desired_amount > 0, otherwise it's a sell order.

  • Every second, recalculate desired_price using fresh feeds and add a small spread to the price (if buying) or subtract the spread (if selling). The spread is calculated as spot_spread = spot_spread_per_sec x (now - auction_start_sec), subject to a max_spot_spread. It is applied as desired_price = (1 +/- spot_spread) x mark_spot.

  • If desired price has changed by more than spot_price_change_tolerance, cancel the old order, request a new signature, and send out a new order using the new desired_price and desired_amount = remaining num of USDC / desired_price.

  • Stop if desired_amount = 0.

  • If USDC balance is positive, hard stop when (now - auction_start_sec) exceeds some max_spot_auction_sec, e.g., 15 min. Note that it is possible for the auction to terminate and proceed back to stage 1 with some leftover USDC balance. If USDC balance is negative, the auction will continue indefinitely until the debt is repaid.

  • The vault may allow some negligible amount of USDC debt to be left in the subaccount (in case this amount is difficult to get rid of due to orderbook minimum size restrictions or temporary liquidity problems).

Smart Contract Strategy Mandate Enforcement

The subaccount owned by the vault is registered with the Derive Exchange in the same way as a regular user, with the core difference being in the way the order signing is performed.

Derive ensures full custody of users' funds by requiring (at a smart contract level) that any trade between two parties has messages signed by their session keys. A session key is just a separate private / public key pair that the user gives trading permissions by registering it with Derive's matching smart contract.

For example, in order for a trade between Alice and Bob to take place (e.g., to sell 8 call options at a price of $12.5), both Alice and Bob must sign a message where they agree for such a trade, and both messages will be validated by the matching smart contract. Only the Exchange is allowed to submit such messages to the smart contract, which allows for added layers of security such as IP whitelisting of session keys, etc.

A vault has to go through the same flow, except the session keys it uses are not just plain old private keys stored somewhere secretly. Instead, the vault's session key is a smart contract, and signatures are generated by calling this contract's function.

The contract will only generate a signature if a set of validations passes, for example, it will check the requested RFQ execution amount against the TVL of the vault and refuses to generate a signature if the amount requested is too large. Similarly it will refuse to sign the RFQ execution if that price is too far away from an oracle price. The set of validations that the signer will run are as follows:

  • Ensure spread's mark price and expiry are within a certain target range

  • Ensure that at most one signed execution can at any time

  • Ensure that no order can be signed if USDC balance is too negative

  • Ensure that the amount in the execution does not exceed a % of TVL

  • Ensure that the amount of the spot order does not exceed what's required to clear the USDC balance

  • Ensure the spread trade price is higher than a threshold (calculated using oracle mark volatility and forward prices, then scaled down by a factor)

  • Ensure that the spot limit price is within a range from the oracle mark price

  • Ensure that the order signature will expire in < 10 min

This set of rules guarantees that the vault executor cannot trade outside of the vault's strategy mandate, and it protects the vault shareholders from badly prices trades being placed. At the same time, the off-chain components of the strategy (e.g., being able to cancel an open spot order when the price moves to avoid being picked off) enhances the execution quality.

Safe Harvest Risks

An overview of the key implementation risks of Covered Call Spread Tokens.

There are a few risks associated with tokenized strategies - beyond the risk of the strategy itself (detailed here). It is important users are aware of these risks before depositing to or acquiring a tokenized strategy. Note that this is not necessarily an exhaustive list.

Execution Risks

Delayed Settlement

  • If options expire in-the-money, collateral will need to be swapped for USDC on settlement. Available spot liquidity on the exchange and the amount of collateral to be liquidated could factor in to longer settlement times, in order to ensure quality of execution.

Oracle risks

  • Per the Derive docs, for each market, there is a set of oracle inputs used for marking assets when computing margin and liquidations. This data is posted onchain for transparency and available via the public REST API. This data is provided by Block Scholes.

  • It’s possible that feeds for certain assets (particularly less liquid ones) may have marks that deviate from the true fair value, which can result in suboptimal execution for the strategy vault.

Underlying Collateral Risk

Holding the underlying collateral carries its own set of risks. These may include, but are not limited to, smart contract bugs, Ethereum bugs, restaking penalties, price fluctuations, and key management problems.

For a detailed overview of the risks specific to each type of collateral, please refer to the relevant documentation:

Bridge Risk

  • Transferring assets from one network to another carries risks associated with the underlying bridge provider. In this product, we use Socket as the bridge provider. Please review their documentation for more details.

Smart Contract Risk

  • Interacting with any smart contract carries the risk of losing access to your funds. The immutable nature of smart contacts makes it difficult and potentially impossible to recover them.



Maxi Vaults

Maxi Vaults

Earn yield with an automated covered put spread strategy

Maxi Strategy

An overview of the potential benefits and risks to participating in the Covered Put Spread Strategy


TLDR

  • Earn yield on the underlying collateral in "trending down", sideways or bull markets

  • The vault sells out-of-the-money (OTM) put options to generate the yield.

  • It simultaneously buys further OTM put options to limit downside risk in case of a large price drop.

How does the Covered Put Spread Strategy work?

A covered put spread is a trading strategy that involves holding the underlying asset as collateral while selling put spreads against it.

The automated Covered Put Spread Strategy consist of three main components:

  1. Deposit the underlying asset as collateral into the vault.

  2. Each week, the Vault will:

    A. Sell OTM put options against it to earn yield; and

    B. Buy further OTM put options to limit the downside risk in case of a large price drop.


  3. After expiry, the Vault will either:

    A. Buy collateral - If option settlement results in a positive USDC balance.

    B. Sell collateral - If option settlement results in a negative USDC balance.


For a technical overview of how the Vault executes, please refer to the Covered Put Spread Execution article.

Why participate in the Covered Put Spread Strategy

  • The primary benefit of the Covered Put Spread Strategy is earning yield on the underlying asset by selling OTM put options (Strike K1).

  • To limit the downside risk, the strategy trades off a portion of the yield APY by also buying further OTM put options (Strike K2).

  • In the event the price drops significantly, the max capped USDC loss = max(Strike K1 - Strike K2 - net premium received, 0).

  • The strategy is best suited for holders of the underlying collateral who want to earn yield on their asset in a mildly bearish to very bullish market, while limiting the downside risk in case of a large price drop.

What are the risks of the Covered Put Spread Strategy?

  • The main risk of the Covered Put Spread Strategy is collateral conversion.

  • If the sold put spread expires ITM and the net premium received is not enough to cover the settlement loss, the Vault sells collateral to clear the USDC debt.

  • However, as mentioned before the max loss is capped in USDC terms (as described above)

  • For the implementation risks, please refer to Covered Put Spread Risks.

Example

Let's take LBTC as an example:

  • BTC price: $60,000

  • Collateral in the Vault: 100 LBTC, worth $6,000,000

  • The Vault sells 100 BTC put options with a $56,000 strike for $250 each and buys 100 BTC put options with a $54,000 strike price for $100 each.

  • Net premium received: $15,000.

Scenario 1:

BTC expires at $60,000

Both the short put options ($56,000 strike) and the long put options ($54,000 strike) expire OTM.

Breakdown:

  • Net Premium: +$15,000.

  • Short Put Options: $0 (expired OTM, worthless).

  • Long Put Options: $0 (expired OTM, worthless).

  • Total: +$15,000.

—> Vault buys 0.25 LBTC with the $15,000 to compound the yield.

—> Vault is up 0.25% in LBTC terms

Scneario 2: BTC expires at $55,900

The short put options ($56,000 strike) expire ITM and the long put options ($54,000 strike) expire OTM.

Breakdown:

  • Net Premium: +$15,000.

  • Short Put Options: -$10,000 ($55,900 - $56,000 * 100).

  • Long Put Options: $0 (expired OTM, worthless).

  • Total: +$5,000.

—> Vault buys 0.09 LBTC with the $5,000 to compound the yield.

—> Vault is up 0.09% in LBTC terms

Scenario 3:

BTC expires at $55,500

The short put options ($56,000 strike) expire ITM and the long put options ($54,000 strike) expire OTM.

Breakdown:

  • Net Premium: +$15,000.

  • Short Put Options: -$50,000 ($55,500 - $56,000 * 100).

  • Long Put Options: $0 (expired OTM, worthless).

  • Total: -$35,000.

—> Vault sells 0.63 LBTC to clear the $35,000 debt.

—> Vault is down 0.63% in LBTC terms

Scenario 4:

BTC expires at $52,000

Both the short put options ($56,000 strike) and the long put options ($54,000 strike) expire ITM.

Breakdown:

  • Net Premium: +$15,000.

  • Short Put Options: -$400,000 ($52,000 - $56,000 * 100).

  • Long Put Options: +$200,000 ($54,000 - $52,000 * 100).

  • Total: -$185,000 (note, the max USDC loss is always capped at $200,000).

—> Vault sells 3.56 LBTC to clear the $185,000 debt.

—> Vault is down 3.56% in LBTC terms

Maxi Execution

A technical explanation of how the Covered Put Spread Strategy executes


TLDR

  • Trades are executed on the Derive Exchange via RFQs (Request for Quote).

  • Vault sends out an intention to sell a put spread (request) and receives back responses from market makers (quotes). The Vault executes the best quote provided it's price is within the vault's desired range.

  • RFQ executions are signed by a smart contract that validates that the total amount of options sold does not exceed a % of the Vault's TVL, that the quote prices are within a reasonable distance from the oracle marks, and more.

  • At option expiry, the Vault will attempt to close out any USDC credit or debit by selling or buying its collateral on the Derive orderbook.

  • The vault only trades 7DTE expiries, and will select a spread that is closest to the target values. The target values are subject to adjustments if the asset price were to grow or fall significantly.

Vault Positions Lifecycle

The Vault positions go through the following stages:

Stage 1 - Only Collateral

The Vault launches with only its collateral and no positions. If the Vault collects option premiums and cannot sell the received USDC into collateral due to low liquidity, the Vault might also proceed to the next stage with a small amount of positive USDC balance (to be explained in Stage 4).

Stage 2 - Option RFQ Auction

  • Select a put spread from the desired expiry s.t. it's mark price is close to the target price.

    • The executor uses the orderbook API to find the spread of the target DTE that is closest to its target price.

    • The signing smart contract will validate that the DTE and the mark price of the option are within target range.

  • Calculate desired_amount for this spread, which is equal to the amount of collateral held.

  • Split desired_amount into smaller ''lots'' (e.g., split 200 LBTC worth of desired size into 10 lots of size 20). These lots will be executed consecutively.

  • Send a request-for-quote for this spread with size 20. Note that the RFQ automatically expires after 2 minutes and if not filled, a new one is sent.

  • Calculate desired_price for this put spread. This is based on the forward price and volatility feeds from Block Scholes, and uses Black76 formula.

  • Freeze for 15 seconds to allow market makers to send quotes.

  • Every second, recalculate desired_price using fresh feeds and scale it down by a factor. The desired_price thus gets progressively smaller until it hits a minimum after 2 minutes. The scaling factors equals 1/(1 + mark_spread) where mark_spread = min_since_lot_start * 0.5. In other words, after 2 minutes the Vault's desired_price is 50% of the mark price.

  • Every second, compare the current best quote (across all market makers that sent them) to the desired_price. Note that the RFQ system is a blind auction, namely market makers do not know other market markers' quotes. This prevents them from colluding and / or naively bidding the Vault's worst possible desired_price.

  • If the price of the best quote is higher than the desired_price, obtain a signature from the smart contract signer. If the transaction was successful, call the API to execute the quote.

  • Keep re-creating new lots until the full desired amount is filled. Note that each new lot's desired_price is reset to mark price and goes down to 50% of the mark price over the lot's 2 minute lifespan.

Stage 3 - Await Option Settlement

After the order is fully filled or the hard stop has been reached, the executor will sleep until the option is expired and settled. After a settlement has been confirmed, the executor proceeds to Stage 4.

Stage 4 - Collateral Limit Order Auction

Note that if the spread expired out-of-the money, the Vault will have positive USDC balance it acquired due from the premium received in Stage 2. If the spread expired ITM, the USDC balance can be positive or negative depending on if the premiums were enough to cover the settlement loss.

The Vault then begins to execute a ''limit order auction'' to buy or sell enough collateral to get rid of any USDC balance and bring itself back to Stage 1.

  • Calculate desired_price for the spot asset - this is based on the spot price oracle.

  • Calculate desired_amount = num of USDC / desired_price. For example, if the Vault has $120,000 USDC and the LBTC price is $60,000, the Vault will attempt to buy 2 LBTC. Alternatively, if the Vault has $600,000 USDC debt due to an option that expired ITM, it will attempt to sell 10 LBTC.

  • Obtain a signature from the signing smart contract.

  • Send a limit order with the limit_price = desired_price and amount = abs(desired_amount). The order is a buy order if desired_amount > 0, otherwise it's a sell order.

  • Every second, recalculate desired_price using fresh feeds and add a small spread to the price (if buying) or subtract the spread (if selling).

  • The spread is calculated as spot_spread = spot_spread_per_sec x (now - auction_start_sec), subject to a max_spot_spread. It is applied as desired_price = (1 +/- spot_spread) x mark_spot.

  • If desired price has changed by more than spot_price_change_tolerance, cancel the old older, request a new signature, and send out a new order using the new desired_price and desired_amount = remaining num of USDC / desired_price.

  • Stop if desired_amount = 0.

  • If USDC balance is positive, hard stop when (now - auction_start_sec) exceeds some max_spot_auction_sec, e.g., 15 min. Note that it is possible for the auction to terminate and proceed back to Stage 1 with some leftover USDC balance. If USDC balance is negative, the auction will continue indefinitely until the debt is repaid.

  • The Vault may allow some negligible amount of USDC debt to be left in the subaccount (in case this amount is difficult to get rid of due to orderbook minimum size restrictions or temporary liquidity problems).

Smart Contract Strategy Mandate Enforcement

The subaccount owned by the Vault is registered with the Derive Exchange in the same way as a regular user, with the core difference being in the way the order signing is performed.

Derive ensures full custody of users' funds by requiring (at a smart contract level) that any trade between two parties has messages signed by their session keys. A session key is just a separate private / public key pair that the user gives trading permissions by registering it with Derive's matching smart contract.

For example, in order for a trade between Alice and Bob to take place (e.g., to sell 8 put options at a price of $250), both Alice and Bob must sign a message where they agree for such a trade, and both messages will be validated by the matching smart contract. Only the Exchange is allowed to submit such messages to the smart contract, which allows for added layers of security as IP whitelisting of session keys, etc.

A Vault has to go through the same flow, except the session key it uses are not just plain old private keys stored somewhere secretly. Instead, the Vault's session key is a smart contract, and signatures are generated by calling this contract's function.

The contract will only generate a signature if a set of validations passes, for example, it will check the requested RFQ execution amount agains the TVL of the Vault and refuses to generate a signature if the amount requested is too large. Similarly it will refuse to sign the RFQ execution if that price is too far away from an oracle price. The set of validations that the signer will run are as follows:

  • Ensure spread's mark price and expiry are within a certain target range.

  • Ensure that at most one signed execution can at any time.

  • Ensure that no order can be signed if USDC balance is too negative.

  • Ensure that the amount in the execution does not exceed a % of TVL.

  • Ensure that the amount of the spot order does not exceed what's required to clear the USDC balance.

  • Ensure the spread trade price is higher than a threshold (calculated using oracle mark volatility and forward prices, then scaled down by a factor).

  • Ensure that the spot limit price is within a range from the oracle mark price.

  • Ensure that the order signature will expire in < 10 min.

This set of rules guarantees that the Vault executor cannot trade outside of the Vault's strategy mandate, and it protects the Vault shareholders from badly prices trades being placed. At the same time, the off-chain components of the strategy (e.g., being able to cancel an open spot order when the price moves to avoid being picked off) enhances the execution quality.

Maxi Risks

An overview of the key implementation risks of the Covered Put Spread Strategy

There are a few risks associated with tokenized strategies - beyond the risk of the strategy itself (detailed here). It is important users are aware of these risks before depositing to or acquiring a tokenized strategy. Note that this is not necessarily an exhaustive list.


Stage 1 - Only Collateral

Execution Risks

Delayed Settlement

  • If options expire in-the-money, part of the underlying collateral will need to be swapped for USDC on settlement. Available spot liquidity on the exchange and the amount of collateral to be liquidated could factor in to longer settlement times, in order to ensure quality of execution.

Oracle Risks

  • Per the Derive docs, for each market, there is a set of oracle inputs used for marking assets when computing margin and liquidations. This data is posted onchain for transparency and available via the public REST API. This data is provided by Block Scholes.

  • It’s possible that feeds for certain assets (particularly less liquid ones) may have marks that deviate from the true fair value, which can result in suboptimal execution for the strategy vault.

Underlying Collateral Risk

Holding the underlying collateral carries its own set of risks. These may include, but are not limited to, smart contract bugs, Ethereum bugs, restaking penalties, price fluctuations, and key management problems.

For a detailed overview of the risks specific to each type of collateral, please refer to the relevant documentation:

Bridge Risk

  • Transferring assets from one network to another carries risks associated with the underlying bridge provider. In this product, we use Socket as the bridge provider. Please review their documentation for more details.

Smart Contract Risk

  • Interacting with any smart contract carries the risk of losing access to your funds. The immutable nature of smart contacts makes it difficult and potentially impossible to recover them.

BULL Vaults

BULL Vaults

Earn principal protected yield with an automated long call spread strategy

BULL Strategy

TLDR

  • The BULL Strategy gives holders of yield-bearing assets (e.g., sUSDe and weETH) extra upside exposure to ETH without risking any of their initial capital.

  • If the ETH price increases by $100 or more in a week, holders can earn yields of up to 2.5x higher than the yield native to their asset.

  • If the ETH price remains stable, holders receive similar yields to the yield native to their asset.

  • If the ETH price declines by $100 or more, holders receive no yield for the week.

  • The strategy buys bull call spreads that are ‘around the money’ with the yield generated by the asset in the previous week. This gives users leveraged exposure to ETH on their yields.

  • The strategy performs best in a bull market, and outperforms in particular when the market grinds up.

  • The BULL Strategy is principal protected.

Supported Yield-Bearing Assets

The BULL Strategy currently supports the following yield-bearing assets as collateral:

Who should deposit?

  • This strategy is best suited to holders of these supported yield-bearing assets who are bullish ETH.

    • They will outperform and earn more yield during bull markets.

    • They will underperform and earn less/no yield during a bear market.

  • It is also suited to those who want (extra) upside exposure to ETH without risking any downside.

    • The most you can lose is the amount paid for the call spreads, which comes from the yield native to the asset.

What are the risks?

  • The key risk of this strategy is that you earn no yield on your asset if the market grinds down - that’s it!

What is a bull call spread?

A bull call spread is a simple trading strategy with two components:

  • A long call with strike K1

  • A short call with a strike K2 that is greater than K1

The maximum payout for a bull call spread is the difference between the two strikes (K2 - K1), which occurs when the price of the asset is at or above K2 on expiry.

The call spread expires worthless if the price of the asset is below K1 on expiry.

Example

  • You have $10,000 sUSDe earning 17% APY ($33.70 a week).

  • ETH = $3,500

  • K1 = $3,400

  • K2 = $3,600

  • Time to expiry: 7 days

In this example, the ETH 3,400 call is trading at $165, and the 3,600 call is trading at $70.

The sUSDeBULL strategy would buy 0.35x 3,400/3,600 call spreads which pay out if ETH rallies 3%+ in a week, and are roughly flat if ETH doesn’t move.

  • The cost of the call spread is $165 - $70 = $95.

  • The maximum the call spread can be worth on expiry is K2 - K1 = $3,600 - $3,400 = $200, which occurs when ETH is trading at $3,600 or higher.

  • The $3,400 and $3,600 calls are both worthless if ETH is below $3,400 on expiry.

  • If ETH is flat for the week and expires at $3,500, the call spread is worth $3,500 - $3,400 = $100, and the strategy makes a small profit of $5.

BULL Execution

Overview

  • The BULL vault (the Vault) executes a principal-protected strategy on the Derive Exchange. The vault will borrow USDC against the native yield accrued on Vault-held assets which will then be used to purchase ETH call spreads to potentially boost the yield.

  • Orders are signed by a smart contract that validates:

    • [Principal Protected] The total Value of yield-bearing assets held by the vault never decreases below the principal.

    • [Fair Pricing] Calls bought and sold are sufficiently close to mark prices.

  • All trades are conducted on the Derive Exchange. In particular:

    • Buying call spreads will take place via RFQ

    • Selling the yield-bearing asset to payoff USDC debt and buying the yield-bearing asset with winnings from the spreads will be done on the Orderbook.

  • When the call spreads expire

    • If the spreads are in-the-money (ITM), the Vault will be paid out USDC. This will payoff some or all of the USDC debt (borrowed against the yield-bearing asset principal to buy call spreads). Any residual USDC will be swapped into the yield-bearing asset.

    • If the spreads are out-of-the-money (OTM), an equivalent amount of the yield-bearing asset is sold via the OB to pay off the USDC debt.

  • The call spreads bought target a 2.5x boost. This means that the mark_price of the spread divided by the strike_range will be 0.4. E.g. if the strike_range is $50, the mark_price of the spread will be targeted to be $20.

  • Parameters

    • expiry (e.g. weekly),

    • mark_price / strike_range: 2.5x

      will be further refined given Vault performance.

Call Spread Strategy

Step by step:

  1. The Vault will hold all users’ deposited assets and earns the yield native to this asset.

  2. Each week, the Vault will compute the yield generated from holding the asset. The Vault will then borrow an equivalent amount of USDC from the protocol.

  3. The USDC will then be used to purchase, say, weekly 65/35 delta call spreads on ETH. That is, the Vault will purchase weekly call options closest to 65 delta and sell weekly call options closest to 35 delta.

  4. The calls expire after one week.


Payoffs:

  • The calls are ITM: the Vault will receive a USDC payout from the purchased spreads. If there is still outstanding USDC debt, then an equivalent amount of the yield-bearing asset will be sold to pay off the debt (leaving the vault with only the yield-bearing asset).

  • The calls are OTM: An equivalent amount of the yield-bearing asset is sold to pay off all USDC debt, leaving the vault with only the yield-bearing asset.

The new week begins and the Vault will sell the previous week’s accrued yield native to the asset (i.e. ignoring the possible call spread profits) to fund the next round of spread purchases.


Example:

  1. The Vault holds $10,000 of sUSDe and, over the course of week 0, earns $33.70 of sUSDe interest (~17% APY).

  2. At the start of week 1, The Vault will borrow $33.70 of USDC from the protocol.

  3. The Vault will purchase 0.35 x of the 3,400/3,600 weekly call spread. See sUSDeBULL strategy for more detail.

  4. If ETH increases and the vault earns, say, $70 (max payout) from the spreads, all $33.70 of debt will be paid off and the remaining $66.30 USDC will be converted to sUSDe via the OB. Over week 1, the $10,000 sUSDe principal could have earned $23.78 (~12% APY). At the start of week 2, $23.78 will be used to purchase the next round of spreads.

Smart Contract Enforcement

The subaccount owned by the vault is registered with the Derive Exchange in the same way as a regular user, with the core difference being in the way the order signing is performed.

Derive ensures full custody of users’ funds by requiring (at a smart contract level) that any trade between two parties has messages signed by their session keys. A session key is just a separate private / public key pair that the user gives trading permissions by registering it with Derive's matching smart contract.

For example, in order for a trade between Alice and Bob to take place (e.g. to sells 8 call options at a price of $12.5), both Alice and Bob must sign a messages where they agree for such a trade, and both messages will be validated by the matching smart contract. Only the Exchange is allowed to submit such messages to the smart contract, which allows for added layers of security such as IP whitelisting of session keys, etc.

A vault has to go through the same flow, except the session keys it uses are not just plain old private keys stored somewhere secretly. Instead, the vault’s session key is a smart contract, and signatures are generated by calling this contract’s function.

The contract will only generate a signature if a set of validations passes, for example it will check the requested sell amount of sUSDe against the vault’s balance and refuse to generate a signature if the amount requested is too large. Similarly it will refuse to sign a price if that price is too far away from an oracle price. A complete list of contract safeguards will be added here shortly.

BULL Risks

There are a few risks associated with tokenized strategies - beyond the risk of the strategy itself (detailed here). It is important that users are aware of these risks before depositing to or acquiring a tokenized strategy. Note that this is not necessarily an exhaustive list.

Execution Risks

  • Per the Derive docs, for each market, there is a set of oracle inputs used for marking assets when computing margin and liquidations. This data is posted onchain for transparency and available via the public REST API. This data is provided by Block Scholes.

  • It’s possible that feeds for certain assets (particularly less liquid ones) may have marks that deviate from the true fair value, which can result in suboptimal execution for the strategy vault.

Underlying Collateral Risks

  • sUSDe: Holding sUSDe carries its own set of risks, including but not limited to smart contract bugs, Ethereum bugs, price fluctuations and key management problems. Please review Ethena's documentation for more details.

  • weETH: Holding weETH - a Liquid Restaking Token (LRT) - carries its own set of risks, including but not limited to smart contract bugs, Ethereum bugs, restaking penalties, price fluctuations and key management problems. Please review EtherFi's documentation for more details.

Bridge Risk

  • Transferring assets from one network to another carries risks associated with the underlying bridge provider. In this product, we use Socket as the bridge provider. Please review their documentation for more details.

Smart Contract Risk

  • Interacting with any smart contract carries the risk of losing access to your funds. The immutable nature of smart contacts makes it difficult and potentially impossible to recover them.

Smart Contracts & Audits

Smart Contracts & Audits

Smart Contracts

The contracts for the tokenized vault strategies have been audited by Sigma Prime. View the audit reports here.



Audits

The contracts for the tokenized vault strategies have been audited by Sigma Prime. View the audit reports here.



Ready to Trade Smarter?