Options on Mirror

Options Protocol for mAssets


Something that is lacking from the Mirror Protocol is options for mAssets. I believe that with this feature Mirror can find near parity with functionality available in traditional brokerage platforms such as RobinHood. The utility of options is straightforward as a way of adding leverage to price speculation as well as providing insurance to the minters of the option contract.

Creating an exchange/platform and protocol for these options contracts is relatively straightforward for non-multi-chain options contracts with the potential for multichain contracts (but that is not the focus of this document). The focus of this will be to explore the possibility of single-chained options enabled by smart contracts. Options provide too much risk for liquidity pools, so I am proposing a modified order-book model discussed later.

Note: This discussion will focus on Call options, but the same protocol generalizes for Put options with cash collateral.

Protocol Contract logic

The minter will provide the protocol with the collateral of the contract, so 100 mXXX per contract in the case of Call options. Minters will have a variety of dates and strikes from which to choose. The number of dates and strikes will be much smaller than what is available in traditional brokerages to concentrate liquidity and open interest. I am thinking of monthly contracts with ~ 10 strikes per exp.

When the Minter provides the collateral, the Minter is given two tokens in return:

  • 1 mXXX - STRIKE - DATE - BUY Token
  • 1 mXXX - STRIKE - DATE - SELL Token

There are several scenarios that can happen during the course of the contract’s life.

  1. No one buys the contract / Minter decides not to sell
  • Send BUY and SELL tokens to protocol and receive collateral
  1. (Sold contract) Expiration comes w/o any action from buyer
  • *auto execute in the money contracts at expiration
  1. (Sold contract) Buyer exercises contract and pays for mAssets @ Strike price
  • Seller receives strike price per mAsset
  • Buyer receives mAsset
  1. (Sold contract) Buyer exercises contract and wants value-strike difference
  • Protocol sells mAsset using mirror pools

  • Seller receives strike price per mAsset

  • Buyer receives difference from sale of mAsset and strike price

    1. There may be a situation that due to slippage, buyer receives nothing and seller receives value of mAsset instead

Selling a Contract

Let us assume that one has either minted the SELL and BUY token, or one has already purchased a BUY token. This options-token framework allows for one to buy and sell contracts as one would on robinhood w/o providing collateral.

When placing a sell order, there will be two options for the seller:

  1. Limit sell - a traditional limit order where you will take no less than your desired price for the contract

  2. Market sell - Black - Scholes Options pricing ± 10% in favour of seller

  3. Calculate Black - Scholes pricing adds 10% of padding in favour of the seller and allows any buyer to buy at that agreed upon price calculated by contract.

This will allow the seller to have a dynamic price on their contract and not have to constantly update the limit sell price as options can vary in price wildly.

Note: You cannot use oracle to get options prices on the Asset, call it a day and let the seller choose that price as the mAsset is not 1:1 with the asset, so naturally the contracts are not worth the same.

Buying a Contract

Buying a contract is straightforward with the order book model. You can see the orders and choose one of the contracts. Alternatively, if a seller has opted for the Black-Scholes pricing, a buyer would be able to buy that one as well.

Contract execution was detailed earlier in the document.