Stochastic.Finance Docs

Last updated 12 September 2026

The options grid

Every option the protocol can issue is a point on a fixed grid. The grid is baked into the contract at deployment — you draw from it, you don't define your own parameters.

Why a grid at all

Liquidity fragments if every trader can invent their own instrument. A protocol allowing arbitrary strikes and dates ends up with thousands of unique options, each with one holder and no market. Constraining everyone to a shared, coarse grid means the same instrument gets reused, and pools accumulate depth instead of scattering.

The cost is precision: you take the nearest listed strike rather than the exact one you wanted. For an instrument whose value is dominated by volatility over days, that is a small price.

Strikes

248 values, spanning eleven orders of magnitude from 0.000001 to 10,000,000.

The ladder is approximately geometric, with a median step of about 11% between neighbouring strikes. Coverage is therefore proportional rather than absolute: a strike near 100 has neighbours roughly 11 apart, a strike near 100,000 has neighbours roughly 11,000 apart. That is the right behaviour for assets whose prices differ by orders of magnitude, and it means one grid serves BTC at five figures and a token priced in millionths equally well.

Strikes are stored as 24-bit codes in exponential form — four significant digits, a sign bit for the exponent's direction, and the exponent itself — which is what keeps the whole ladder inside a compact identifier. The decoding rule is in TokenID format.

Maturities

104 consecutive weekly expiries, every one a Friday, currently running out to 2028-07-07.

Weekly-only is a liquidity decision for the same reason the strike grid is coarse. Most volume in options markets, on-chain and off, concentrates in the nearest weeklies; offering daily or monthly expiries alongside them would split that volume without adding much.

Maturities are packed as a 24-bit date — year offset from 2000, month, day.

Underlyings

Any registered Chainlink price feed. Registration is a protocol action, not a user one: before options can be written against a feed, the feed must be added, and the contract verifies it against Chainlink's own Flags registry at that point.

The same feed supplies both the live price used by the AMM's pricing model and the settlement price at expiry.

To list what is currently available:

ISFOptions(0xf0022aC3…).getAllPriceFeeds()
// → (address[] feeds, string[] descriptions)

The descriptions are Chainlink's own labels, such as ETH / USD. Because the grid is defined independently of the underlying, adding a new feed instantly makes all 248 strikes × 104 maturities available on it, with no further deployment.

Type, kind and direction

Three more dimensions complete an option:

Dimension Values Notes
Type Call, Put Both fully supported
Kind European, American European only in the deployed contracts; anything else is rejected at mint
Direction Long, Short The two legs of the same option

How many options is that

248 strikes × 104 maturities × 2 types × 2 directions = 103,168 distinct tokens per feed, all addressable under a single ERC-1155 contract, all requiring no deployment of their own. This is the practical argument for ERC-1155 here: one contract, a six-figure instrument universe, and a token id that encodes its own meaning.

Reading an option's name

Token metadata is generated on-chain, with no external server involved — the contract unpacks the id and builds the name from it. A token's name reads:

Stochastic.Finance Option  ETH / USD    1853   European  Call   Long   2026-07-17
                           └ feed ─┘  └strike┘ └ kind ┘ └type┘ └side┘ └ maturity ┘

Dates are rendered YYYY-MM-DD, which sorts correctly and can't be misread as month-first. Strikes are rendered as plain decimals with trailing zeros trimmed, so a strike of one millionth appears as 0.000001 rather than in scientific notation.

The metadata is returned as a base64 data: URI containing JSON with the same fields as attributes, so wallets and explorers show a readable position without any integration work.

Checking you have the right leg

Long versus Short in the name is the single most important field to verify before trading — the two legs of an option are different instruments with opposite exposure, and they differ by one bit in the id.

Next

© Stochastic Finance Protocol — All Rights Reserved