Options purchased are NFT tokens which represents individual option positions. The contract OptionsERC721 is a single contract that is shared across all vaults created by the Option Vault Factory and can represent both CALL and PUT options.
This contract not only acts as the token for the option positions, it also acts as the primary interface between the users who want to purchase options and the underlying vaults which can sell them.
The main function to purchase an option is the create function. When called, the user can provide all details of the option they are interested in purchasing:
  • the strike price
  • the oracle to use (in which currency the option is denominated)
  • whether the option is a call or put and
  • when it expires (the maturity date).

Collecting Payment & Fees

When creating an option, the user needs to transfer in collateral tokens of the vault as payment for the option. These tokens are then distributed to various recipients as fees and as compensation for the vault. The distribution locations are as follows:
  • protocol fee (configured by the governance) to the protocolFeeRecipient (governance wallet)
  • vault fee (payment to the vault owner) to vaultFeeRecipient of the vault
  • referral fee to the referrer of the person who called create
  • intrinsic and extrinsic fees (calculated by the SimpleSeller) are sent to the vault as value for the vault.
Once all these fees have been transferred from the creator to the destinations, the option details are registered within this contract, the collateral is locked within the vault and a receipt token linking to the option is minted.


The option can be exercised at any point in time up to the expiration timestamp via the exercise function. Exercising is only allowed if the option is in-the-money. The option holder is the only account that can exercise their option.
However, for the last 30 minutes of the option, anyone can exercise the option for the holder as the option would have no value anyway after it expires. In this case, the profits are still sent to the original option holder.
Profits are always capped to the optionSize, which is the number of contracts the holder purchased and are always paid out in the underlying token.


Option NFTs can be freely transferred to other users while the option has not expired.

Unlocking Collateral

If the option has not been exercised by the option maturity, anyone can call unlock to unlock the vault collateral that the option had locked up.