How to create?

Vyper OTC allows to create a new contract. Let's see how it works. First of all head over to the "Create" page.
There are five steps to create a new contract.


First of all you should select the payoff of the contract, i.e. the type of the derivative you're about to trade. Below each one you will see a short explanation, a link to our Notion with more details and a link to the source code if you want to see the smart contract.


After the payoff, you should select the underlying of the contract. This is the price of the asset on which the contract is based. We support a large number of underlyings, leveraging oracles from Pyth and Switchboard. In devnet you can also add your own oracle, see How to add a custom oracle?


After the underlying, you should select the parameters of the contract. These depend on the specific payoff you chose at step 1. In this case, since we selected an option, we need to chose the strike price and whether the option is a call option or put option.


After the parameters, you should select the collateral of your contract. This is the token that the parties of the trade will have to deposit in the contract to enter the trade. You need to specify the two amounts (for long and short) as well as the mint of the token. We currently support USDC and BONK as collateral.
Note that all contract are fully collateralized. That means that after the collateral is deposited, nothing can be deposited or withdrawn until the contract has settled. Learn more here.


Finally, you should select the expiry of the contract. There are two expiries:
  • The deposit window: is how long the parties of the trade have to deposit the collateral in the contract. Both long and short need to deposit, otherwise the contract will not start
  • The contract expiry: is when the trade will finish. After this date, the parties will be able to withdraw their deposited collateral plus profits/losses
After all the steps are completed you can view a Preview of the contract you're about to create. This is a human readable summary of the contract.
If everything checks out, you can click Create and you will be asked to sign a transaction in your wallet.
That's it! You just created a completely permissionless derivative contract, congrats 🥳

Note for Phantom DEVNET users

If you use Phantom and try to create a contract in devnet you will be shown this warning. This is because Phantom does not automatically detect that you're making a devnet transaction. You can safely ignore this warning a proceed.
Other wallets e.g. Solflare automatically detect the devnet so you won't see this warning.