Minting options
Minting is how every option in the protocol comes into existence. You post USDC, and the contract hands you both legs of a brand-new option.
There is no underwriting pool and no permission step. If the parameters you ask for exist on the grid and you have the collateral, the mint succeeds.
What happens
One transaction, in the dApp at /issue_options:
- You specify the option — underlying feed, maturity, strike, Call or Put — and how much USDC to post.
- The contract pulls the USDC and holds it as collateral.
- It mints two ERC-1155 tokens to you: the long leg and the short leg, each in an amount equal to the collateral posted.

Post 100 USDC and you receive 100 units of the long leg and 100 units of the short leg. Because the two legs always divide the collateral between them, holding both is a flat position worth exactly what you put in, minus fees when you eventually settle.
1 USDC = 1 option unit
Option amounts are denominated in collateral, not in contracts on a notional. This is why there is no margin: the most any option can ever pay is the USDC posted against it.
Turning a mint into a position
The mint itself is neutral. You take a position by selling one of the two legs:
| Sell the… | You are left holding | Your view |
|---|---|---|
| Short leg | Long leg | The option gains value — spot moves toward and past the strike |
| Long leg | Short leg | The option loses value — spot stays away from the strike |
Selling happens on the AMM (/swaps) like any other trade, or by transferring the token directly to a counterparty — the legs are ordinary ERC-1155 tokens.
So "writing an option" here is a two-step operation: mint, then sell the long leg. The USDC you receive for it is your premium, and the short leg you keep is your obligation. Unlike a traditional short option position, that obligation is already fully funded — there is nothing further you can be called on for.
Requirements and limits
| Rule | Detail |
|---|---|
| Collateral | Native Base USDC, approved to the SF Options contract first |
| Amount granularity | Whole cents — the amount must be a multiple of 1e4 in USDC's 6-decimal units |
| Minimum | One cent |
| Maturity | Must not have expired. Minting into an expired maturity reverts |
| Parameters | Strike, maturity and feed must exist on the grid; European kind only |
Calling it directly
// Everything spelled out
ISFOptions(0xf0022aC3…).issueOption(
tknAmt, // collateral in USDC units, multiple of 1e4
pricefeed, // registered Chainlink aggregator address
maturity, // uint24, packed (year-2000)<<16 | month<<8 | day
strike, // uint24 packed strike code from the grid
option_type, // 0 = Call, 1 = Put
option_kind, // 1 = European (only value accepted)
direction // 0 = long, 1 = short — either mints the same pair
) returns (uint256 tokenId);
// Or, if you already know the id of the leg you want
ISFOptions(0xf0022aC3…).issueOptionFromTokenId(tknAmt, tokenId);
The direction argument does not change the outcome: both legs are minted either way, and the return value is the id you asked for. Its counterpart is the same id with the direction bit flipped — see TokenID format.
Both functions emit optionIssued(writer, tokenId, invertedTokenId, amount), and the mint itself appears as an ERC-1155 TransferBatch from the zero address, so wallets and indexers see the new position without any special integration.
What minting costs
Nothing, beyond gas. There is no fee to mint.
The protocol's fee is charged at the other end of an option's life, when a leg is exercised, and it is taken out of that leg's payout. See Fees.
Why you'd do this
Minting is the supply side of the protocol. Two reasons to be here:
- Collect premium. Sell the leg you think is overpriced and keep the other. Your maximum loss is bounded by the collateral you already posted, which is the whole design.
- Seed a pool. Providing liquidity requires option tokens as well as USDC, and minting is where those option tokens come from. Writers and liquidity providers are usually the same people.
Next
- Trading options — selling the leg you don't want to keep
- Exercise & settlement — what happens on expiry Friday
- Payoff & pricing — how the collateral gets divided