Charm Options v0.2

Max
Charm
Published in
3 min readDec 14, 2020

Charm is a decentralized options protocol. In this article, we present an improvement to the protocol that would vastly reduce slippage.

Current approach

The approach for v0.1 options was described in the litepaper. It consists of two steps:

  1. Take a pair of options whose payoffs sum up to a fixed amount — for example, a call and covered call with the same strike and expiry
  2. Use a prediction market AMM to create liquidity for this pair

This approach has two key benefits over other options platforms:

  1. Price is determined purely by supply and demand so a two-sided market with a narrow spread can be offered
  2. There’s less risk for LPs compared to options traded on constant-product markets like Uniswap

Improved approach

We’ve come up with a new approach that has the additional key advantage of reducing slippage. It works by allowing a single liquidity pool to provide liquidity for multiple options with different strike prices.

Instead of just a call and covered call, the prediction market AMM can be used to provide a range of bull/bear spreads that can be combined into various call/put options. For example, if we wanted to offer ETH call options with strike prices of 250, 400 and 500, the AMM could provide tokens with the following payoffs.

Payoffs of the four spreads provided by the AMM

The payoffs of these four spreads sum up to 1 ETH as demonstrated by the stacked plot below. Therefore in terms of ETH, their prices sum up to 1 and the prediction market AMM can be used to trade them.

The four spreads sum to the underlying

These four spreads can also be combined to form calls or covered calls with a strike price of 250, 400 or 500. For example:

  • Call (400) = Bull spread (400, 500) + Call (500)
  • Covered call (500) = Bull spread (0, 250) + Bull spread (250, 400) + Bull spread (400, 500)
Spreads can be combined into calls or covered calls

Similarly, we can offer ETH put options with the following spreads. They sum up to a fixed amount and can be combined to form put options with strike prices of 250, 400 or 500.

Spreads can be combined into puts

Key benefit: lower slippage

Option markets suffer from the liquidity fragmentation problem. This means liquidity has to be split up across many markets with different expiries and strike prices.

Our improved approach solves this by allowing a single liquidity pool to provide multiple options with different strike prices. This is a lot more efficient and means there’ll be much more liquidity for each option.

For example, instead of 5 strike prices each with 20 ETH of liquidity, we could have a pool with 100 ETH of liquidity. This would significantly reduce slippage and make it cheaper for traders.

If you have any questions, feel free to ask us on Discord and if you want to stay updated, follow us on Twitter

--

--