There are two important contracts that are part of Polynomial Protocol.

Option Registry

This contract creates and keep tracks of all option series. Apart from creating new option series, this contract does the following:
  • New assets are approved
  • Approved assets are removed
  • New option protocol is added for aggregating
  • Existing option protocols are removed
Whenever new option series is created, an instance of OptionToken is deployed. This is where users are interacted to do the following:
  • Mint new options
  • Redeem options for underlying collateral (before expiry)
  • Settle and claim payout (after expiry)

Liquidity Manager

Liquidity manager creates and maintains liquidity vaults for deployed options. Apart from that, the contract also keeps track of a list of approved rebalancer addresses. Only these addresses can rebalance liquidity that's deployed on Uniswap v3
Whenever a liquidity vault is created, an instance of LiquidityVault is created created by Liquidity Manager. This is where users interact to add and remove liquidity.

Adding new Option Protocols

To aggregate new option protocol, the underlying protocol needs to create a contract that implements the IProtocol interface. This contract must implement the logic for:
  • Minting options
  • Redeeming for underlying collateral
  • Settle and claim payout after expiry
Currently there are two protocol implementations:
  • Opyn
  • UMA Covered Call
More option protocol implementations are coming soon.