Saturn2022Docs

Get started

How it works

Four steps, and nobody in any of them. The price path runs from a Chainlink feed to a premium without a single value a person supplies.

Spot

Every stock token on Robinhood Chain has its own Chainlink feed, publishing 24/5. The feed returns the price of one token with the dividend multiplier already applied, so the market reads it as-is; applying the token’s uiMultiplier() on top would count every dividend twice. This is the only place spot enters, and it is the same number every other contract on the chain reads.

Volatility

The step no chain has had. These feeds publish on deviation: a new round appears when the price has moved about half a percent, and not before. So the intervals between rounds carry the volatility, and counting the last 290 timestamps is enough to recover it. No prices are read, no history is stored, and the whole read costs a few thousand gas. The full derivation and its live validation.

The premium

Black-Scholes, in 1e18 fixed point, inside the transaction. Solidity has no exp, ln, or normal CDF, so the market carries its own: range-reduced series for the transcendentals, Abramowitz-Stegun for the CDF, checked against double-precision references to a tenth of a cent. The arithmetic itself costs 45,747 gas; walking the 290 feed rounds behind the volatility costs 1,465,419 more, about nine cents here, and only on the transaction that buys. The premium is computed at the moment of purchase and paid straight to the writer.

Settlement

A written call escrows the whole share, so settlement is a partition rather than a payout: at expiry the buyer takes max(P − K, 0) / P of the escrow at the feed price P, and the writer takes the rest. Anyone can trigger it, and an option nobody settles strands nothing. This is also the only feed read that moves money, which is what closes the oracle-manipulation door: the pools next door are never consulted, so pushing them buys an attacker nothing.