Introduction
This post introduces NFT covered call vaults. A way to earn passive yield on NFTs by taking repeated short volatility positions.
The current state of the NFT market is capital inefficient. This inefficiency can be illustrated with an example; Alice buys 3 Punks at 3.5 ETH each. She sets one as her pfp and holds the other two. The Punks that aren't being utilised are sitting idly in her wallet doing nothing. In other words, she has the equivalent of 7 ETH (2 * 3.5 ETH) which is locked up and not earning yield.
It's obvious that we need a way to unlock this liquidity and improve the capital efficiency of holding NFTs. One way of achieving this is by utilising the NFT to sell volatility. Covered call vaults allow you to take a short position on the volatility of your NFT and earn passive yield - thereby unlocking capital that was previously not usable.
Mechanism
Alice locks up her NFT and creates a vault which will sell call options in perpetuity until one of the options is either exercised or she decides to close the vault. The auction starting strike, auction reserve strike, duration and premium of the vault are all set at the point of creation.
Lets say she creates a vault with the following parameters:
duration = 14 days
premium = 0.1 ETH
asset = Punk #218
auction starting strike = 30 ETH
auction reserve strike = 5 ETH
She receives an NFT that represents her vault position and a dutch auction is started to sell the first call option. The auction starts at a predefined strike price (30 ETH) and slowly decreases to the reserve strike (5 ETH) over the course of 24 hours. The optimal formula for this auction curve is up for debate, but we propose it to be quadratic:
delta = max(auctionEndTimestamp - currentTimestamp, 0)
progress = delta / auctionDuration
strike = (progress^2 * (startingStrike - reserveStrike)) + reserveStrike
Bob buys the option from Alice's vault for the premium (0.1 ETH) at a strike of 5.13 ETH. He is then minted an NFT that represents his option position. The option's expiration timestamp is set to be the current timestamp plus the duration (14 days). The premium (0.1 ETH) is credited to Alice's account. Bob can exercise his newly minted call option at any point before the expiration date.
There are two possible flows after this point. Bob can either exercise his option or let it expire. In the case where he lets it expire the auction is automatically restarted and a new call option is sold from Alice's vault. But if he exercises, the vault stops all future auctions, sends Bob the NFT (Punk #218) and Bob transfers the strike (5.13 ETH) to Alice.
For as long as the vault is open, Alice will receive a 0.1 ETH premium approximately every 14 days. She implicitly sets her desired risk level when she chooses the vault's premium and duration at the point of creation.
When she wants to withdraw her Punk from the vault she can initiate a withdrawal and stop the vault from starting any more auctions. Once the currently active option expires, she then withdraws her Punk and burns the NFT which represents her vault position.
Conclusion
NFT covered call vaults provide an alternative way for NFT holders to unlock some of their idle holdings and start earning passive yield. The rate at which yield is earned and the riskiness of the vault is defined by the NFT holder at creation.
An implementation can be found at cally.finance.