Test-Net Trading Competition: A Retrospective

Premia Finance
7 min readJul 31, 2021

The trading competition went very well. Thank you to everyone who joined in on the action, we had a nice turn out! We’ve learned quite a bit about the system during the length of the competition, and we’d like to present our results and outline our plans for the future.

Statistics 📈📊

🏆 Competition Winners 🏆

  1. $100K Prize Winner
    Address: 0x21c2ff89b57a048aec9111de23698ffaf67c419f
    Strategy: Options Trader
    Profit: +$60,230.89 (120.46% ROI)
    https://etherscan.io/tx/0x2db75f8fabaf26b12729fa544f5b3f087f835d7130c4a6c0f46e626f3c600fda
  2. $35K Prize Winner
    Address: 0x1f516633c1f6407c6f0dd28bdc242a566b2a7f65
    Strategy: Liquidity Pool Provider
    Profit +$20,547.14 (41.09% ROI)
    https://etherscan.io/tx/0xfab338d91025e262f80a9102ae444356a72bd4af62439fe341f8c0189a4e157b
  3. $15K Prize Winner
    Address: 0x3f3b7d0f3da05f6cd44e9d35a9517b59c83ad560
    Strategy: Mixed LP Provider & Options Trader
    Profit: +$18,224.17 (36.44% ROI)
    https://etherscan.io/tx/0xa7d44225a2cc9b61660d95fecc8007b4c602bef32c1e89f87145f7e97d2f39e8

Congratulations to the winners and thanks again to everyone else who participated in the competition! We have sent out the reward prizes (paid in DAI as voted by the community) and attached the transaction receipts above.

What we learned 📚​📖

1. Pool returns for liquidity providers (LPs) are high

The nature of the pool’s pricing mechanism is that capital is priced efficiently. This means that Pool liquidity providers often saw high returns (relative to market yields on single asset pools) during the trading competition.

There could be a couple reasons for this:
1. Options often expire out-of-the-money (OTM), leaving the underwriter (Pool LP) in pure profit from the option’s premium.
2. Options on Premia are priced according to supply and demand of pool capital, so when a pool’s options are in high demand, the price of those options automatically goes up to ensure there is enough capital to meet the demand. This results in higher returns for LPs during times of peak demand, similar to surge pricing.
3. It was a testnet competition. Although we did our best to ensure realistic circumstances, these returns are not guaranteed on mainnet.

These results are encouraging. We expect our pool pricing mechanism on mainnet will continue to result in fair option pricing for a full range of DeFi assets, while ensuring liquidity providers are able to maintain a positive return.

2. C-value works as intended, but could be improved

The price level mechanism is able to sufficiently account for incremental changes in pool capital supply and demand, and users seem to intuitively understand its pricing implications. However, we’ve figured out a few ways we can improve on the existing mechanism to ensure more stable pricing over time.

Specifically, we can treat the C-value like a temperature gauge, where each change in pool liquidity either increases or decreases the temperature of the system (option purchases would increase the temperature, pool deposits would decrease the temperature). Then in situations where the C-value gets into an unstable state (such as high C-value with low pool utilization, or low C-value with high pool utilization) we can allow the C-value to naturally converge toward an ambient temperature (steady state), so long as there is no interaction with the system for a certain length of time (i.e. no trades or deposits are made).

This system will naturally allow the C-value to recover from unsteady states (for example those caused by short bursts of extreme demand), while still allowing the supply and demand of each pool’s capital to be priced efficiently.

3. C-value pricing at the extremes can be improved

At low values of C (below 1), some in-the-money (ITM) options will be priced below their intrinsic value with our current pricing algorithm C * BSch(these options were disabled from being purchased during the trading competition). This effect can also be seen at very high levels of C, where some options will be priced too high such that it is infeasible they will ever become profitable if sold.

To fix this and ensure we maintain favorable pricing of options at all values of C, the C-value should be solved for along with the Black Scholes equation. This results in a more stable output price that always maintains parity with the intrinsic value of an option at the lower bound, while still accounting for aggregate pool supply and demand. We are now considering a range of candidate closed form solutions to improve pricing in this manner and will present our final solution shortly.

If you’d like to read more about the improvements to the C-value coming on mainnet, make sure to read our upcoming article.

4. Expired options need to be automatically processed

Options traders don’t always exercise the options they’ve purchased. As we saw in our competition, a large amount of options were left un-exercised, either because they expired out-of-the-money or because the user didn’t realize the option expired in-the-money. This results in both locked capital for liquidity providers and un-garnished rewards for options traders.

To solve this and facilitate the smooth flow of capital in the pools, we have introduced automatic processing of expired options at the Pool contract level, with the help of Chainlink Keepers. We’ve added a function to the Pool contract that anyone can call named processExpired. This will systematically process an expired option in the Pool to unlock collateral and payout exercise rewards.

We will use Chainlink Keepers to monitor the pools for options that have expired, and automatically exercise these options. This design was previously outlined on our Premia V2 presentation and will be live on mainnet release.

The result is the collateral from all expired options will be automatically unlocked for pool liquidity providers at time of expiration, and option traders will never miss out on profits. A win, win for the capital efficiency of the entire system.

5. Our flat volatility approach was not sufficient

Due to the highly volatile nature of crypto-economic assets, inaccuracies in the term structure (change in priced volatility by time to maturity) and volatility skew (change in priced volatility by strike to spot price ratio) have a very large impact on final option pricing. Using a flat (1-dimensional) historical volatility in the Black Scholes pricing function results in some options always being underpriced, which in turn results in large guaranteed losses for liquidity providers over time.

In order to fix this, we need to use a 3-dimensional surface that accurately accounts for the term structure and volatility skew/smile in each asset.

How do we do this?

First, we had to figure out what the current implied volatility surface looks like on the most liquid options market (Deribit).

For example, this is the implied volatility surface currently produced by the Deribit BTC options market.

BTC Call Option Implied Volatility Surface on Deribit
BTC Put Option Implied Volatility Surface on Deribit

By tracking historical Deribit trades, we are able to model a 3-dimensional surface for implied volatility that will price options the same as Deribit when using Black Scholes. We can then parameterize this surface, such that any point from the surface can be easily calculated on-chain with an oracle. This results in an oracle capable of offering 3-dimensional Deribit option pricing on-chain.

We will maintain this oracle in-house for the following weeks, while we establish a more permanent solution with Chainlink.

However, even if we were to just take the exact IVOL surface produced by trades on Deribit, it would not be sufficient for our long-term needs, because Deribit does not have a liquid options market for many of the tokens we want to support on our platform, such as Chainlink, Aave, Uniswap, Sushi, and more.

How do we solve this?

The answer is we are building our own Annualized (Implied) Volatility oracle directly from historical asset prices. We’ve put a massive amount of time into researching and engineering a solution that is both backed by empirical research and sufficient for the needs of our fully permissionless DeFi options exchange.

We’ve partnered with Chainlink to bring our solution to the market, in a fully decentralized manner. We will be releasing our Annualized Volatility oracle to the DeFi community in this way so that anyone (or any other platform) can benefit from our research. That’s what open finance is all about.

If you’d like to know more, check out our upcoming article specifically on the Annualized Volatility oracle.

When mainnet? 💎👊

Due to the complexity of our codebase, we opted to audit our contracts in two different sets. The first audit, which has already been completed by Hacken, reviewed and analyzed our utility codebase SolidState, which is an upgradeable-first Solidity library. No vulnerabilities were found in this audit.

We have already submitted our second set of contracts (the rest of the contracts in our codebase) for final audits to two firms, and should get the results back in the coming weeks. Once the audits are complete, ensuring all of the new code is sufficiently reviewed and analyzed, we will be ready to go live on mainnet.

Tldr; soon.

Look out for a few upcoming articles regarding what’s coming next! We are excited to bring this platform to Ethereum in the very near future.

--

--

Premia Finance

Decentralized options protocol revolutionizing market-driven pricing and capital efficient returns for all. Trade American style options, earn yield on crypto.