Protocol documentation

The rules,
in plain language.

A technical and practical guide to RobinOptions: how collateral moves, what each contract method does, what can change, and which risks remain.

01

Overview

RobinOptions is a factory of isolated, fully collateralized American-style option series. Every series is its own ERC-20 contract with fixed assets, type, strike, and expiration.

Fully collateralized

Collateral is transferred into the series before option tokens are minted.

American-style

A holder may exercise at any time while the block timestamp is before expiration.

Physical settlement

Calls deliver the underlying. Puts exchange the underlying for the fixed quote amount.

What the protocol is not. It is not an order book, broker, oracle, pricing engine, or custodian. The contracts create and settle positions; users arrange any sale or transfer of option tokens separately.

02

Core rules

01

Terms are immutable. A deployed series cannot change its underlying, quote token, call/put type, strike, expiration, name, or symbol.

02

Option tokens are transferable. They use the same decimals as the underlying asset and may be sent like any ERC-20 token.

03

Writer shares are not tokens. They stay in the series mapping under the writing wallet and cannot be transferred to another account.

04

The first exercise closes writing forever. This prevents new writers from entering after exercise proceeds have reached the pool.

05

Exercise ends exactly at expiration. Calls to write or exercise revert when block.timestamp >= expiration.

06

Redemption starts at expiration. Writer shares become redeemable when block.timestamp >= expiration.

07

Transfers must be exact. Fee-on-transfer and other tokens that deliver less than the requested amount are rejected.

08

The exercise fee is fixed at 10 bps. That is 0.10% of the strike settlement amount, rounded up to the nearest quote-token base unit.

03

Option lifecycle

1

Write

The writer approves collateral and calls write(amount, optionRecipient). The contract pulls collateral, records writer shares, and mints an equal number of option-token units.

2

Hold or transfer

The option recipient may keep or transfer the ERC-20 position. Transferring option tokens does not transfer writer shares.

3

Exercise

Before expiration, the holder approves the required settlement asset and calls exercise(amount, assetRecipient). Exercised option tokens are burned.

4

Redeem

At or after expiration, each writer calls redeemWriterShares(shares, recipient) to receive a pro-rata portion of both assets left in the pool.

Call series

Underlying in, quote out

  • Writer escrows underlying one-for-one.
  • Holder pays strike plus fee.
  • Holder receives the underlying.
  • Writers later redeem remaining underlying and collected quote.

Put series

Quote in, underlying out

  • Writer escrows the full strike value in quote tokens.
  • Holder supplies the underlying.
  • Holder receives strike minus fee.
  • Writers later redeem remaining quote and collected underlying.

04

Amounts and calculations

All contract calls use integer base units. A whole option equals 10 ** underlying.decimals() units.

Underlying scalescale = 10 ** underlyingDecimals
Strike amountamount × strikePrice ÷ scale
Protocol feeceil(strikeAmount × 10 ÷ 10,000)
Writer redemptionpoolBalance × shares ÷ totalWriterShares

Call strike payments and put-writing collateral round up. Put exercise strike output and writer redemption use integer rounding down. Use the preview methods immediately before submitting; pool balances can change between preview and execution.

ActionCaller suppliesCaller/recipient receives
Write callamount underlyingamount option tokens + writer shares
Write putFull strike value in quoteamount option tokens + writer shares
Exercise callStrike amount + fee in quoteamount underlying
Exercise putamount underlyingStrike amount − fee in quote
RedeemWriter shares are reducedPro-rata underlying + quote balances

05

Using the contracts

The app prepares these calls for you. Direct integrations should follow the same approve, preview, and execute sequence.

Network configuration

const robinhoodChain = {
  id: 4663,
  name: "Robinhood Chain",
  nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
  rpcUrls: { default: { http: ["https://rpc.mainnet.chain.robinhood.com"] } },
  blockExplorers: { default: { url: "https://robinhoodchain.blockscout.com" } },
};

The public RPC is rate-limited. Production integrations should use a dedicated provider. ETH is required for gas even when the option settles in WETH or USDG.

Write options

  1. 1

    Read collateralRequired(amount) to get the collateral token and exact amount.

  2. 2

    Call approve(seriesAddress, collateralAmount) on that ERC-20.

  3. 3

    Call write(amount, optionRecipient) on the series.

  4. 4

    Confirm the OptionsWritten event and updated writerShares.

Exercise options

  1. 1

    Read exerciseTerms(amount) for the strike amount, fee, and total paid or received.

  2. 2

    For a call, approve strikeAmount + protocolFee quote tokens. For a put, approve amount underlying tokens.

  3. 3

    Call exercise(amount, assetRecipient) before expiration.

  4. 4

    Confirm the OptionsExercised event. The option balance is burned in the same transaction.

Redeem writer shares

  1. 1

    Wait until the series expiration timestamp.

  2. 2

    Read writerShares(wallet) and preview with previewWriterRedemption(shares).

  3. 3

    Call redeemWriterShares(shares, recipient). No token approval is required.

  4. 4

    Confirm the WriterCollateralRedeemed event and both asset transfers.

Important read methods

underlying()Underlying ERC-20 addressquote()Strike/settlement ERC-20 addressoptionType()0 call, 1 putexpiration()Unix expiration timestampstrikePrice()Quote base units per whole underlyingwritingClosed()Whether any option has been exercisedpooledUnderlying()Accounted underlying remaining in the poolpooledQuote()Accounted quote remaining in the pooltotalWriterShares()Outstanding writer claimsbalanceOf(account)Transferable option-token balance

06

Factory administration

Only the factory owner can deploy new series. Ownership does not grant control over collateral held by an existing series.

Owner can

Create series and change the address that receives future exercise fees.

Owner cannot

Change series terms, withdraw pool assets, freeze option transfers, exercise user positions, or redeem another writer’s shares.

createSeries parameters

underlyingERC-20 delivered by calls or supplied to putsquoteERC-20 used for strike settlementoptionType0 for call; 1 for putexpirationFuture Unix timestampstrikePriceQuote base units per one whole underlying tokenname / symbolMetadata for the new option ERC-20

The factory rejects zero/non-contract assets, identical assets, past expiration, zero strike, empty metadata, underlyings with more than 18 decimals, and duplicate terms.

07

Stock-token considerations

Robinhood stock tokens are tokenized debt securities issued by Robinhood Assets (Jersey) Limited. They provide economic exposure, not legal or beneficial ownership of shares in the underlying issuer.

Corporate-action limitation. Stock tokens expose an ERC-8056 UI multiplier for splits and other corporate actions. RobinOptions settles raw ERC-20 units and does not automatically modify an existing option’s strike, size, or terms when that multiplier changes.

  • Resolve stock-token addresses from Robinhood’s canonical asset registry. A matching ticker does not prove a token is genuine.
  • Read uiMultiplier(), pending multiplier fields, and oraclePaused() before creating or interacting with a stock-token series.
  • Do not apply the UI multiplier twice when an external price feed already incorporates it.
  • Stock tokens are 18-decimal ERC-20s, but displayed economic exposure may differ from raw balance after a multiplier update.
  • Availability is jurisdiction-restricted, including unavailability to U.S. persons. Users are responsible for eligibility and compliance.
Robinhood stock-token documentation

08

Security and risks

Verification surfaceSource and deployment are public

The factory implementation is verified on Blockscout, and every series exposes its terms, balances, writer shares, and lifecycle state onchain.

Smart-contract risk

A defect may cause loss, blocked funds, or settlement behavior that differs from user expectations.

Options risk

Writers face assignment and asset opportunity cost. Holders may lose the entire price paid for an option.

Token risk

Underlying or quote tokens can depeg, pause, block transfers, change behavior, or become illiquid.

Pool accounting

Writer proceeds are pooled. Outcomes depend on total exercises and each writer’s pro-rata share, not individual lots.

Rounding and dust

Integer arithmetic rounds some values up or down. Very small positions may revert, and dust may remain until final redemptions.

Network risk

Sequencer outages, reorgs, congestion, RPC failure, or compliance filtering may delay or prevent a transaction.

Approval risk

Token approvals authorize transfers. Review the spender and amount, and revoke allowances you no longer need.

Front-end risk

Always verify addresses and transaction calldata in your wallet. The website is only one interface to the contracts.

Use at your own risk. Do not deposit funds you cannot afford to lose. This documentation is technical information, not financial, legal, tax, or investment advice.

09

Canonical deployment

Robinhood Chain

Network

4663

Chain ID

10 bps

Exercise fee

The protocol app enumerates series from seriesCount() and seriesAt(index) on the factory, then reads each series directly. Verify every address in your wallet before signing.

10

Frequently asked questions

Does the protocol decide whether an option is in the money?

No. There is no price oracle and no automatic cash settlement. A holder chooses whether to exercise and physically exchanges the specified assets at the fixed strike.

Can a writer close a position before expiry?

Not through the current contracts. Writer shares are non-transferable and redeemable only at or after expiration. Holding option tokens does not cancel writer shares.

Can option tokens be sold?

They are standard transferable ERC-20 tokens, but the protocol does not provide an order book or guarantee a market, price, or liquidity venue.

What happens to unexercised options?

They cannot be exercised after expiration and have no claim on the pool. Writers redeem the remaining collateral and exercise proceeds.

Can writing reopen after the first exercise?

No. writingClosed becomes true on the first exercise and never returns to false.

Why might a transaction revert?

Common reasons include expiry, closed writing, insufficient option balance, missing allowance, insufficient pool balance, zero or too-small amounts, unsupported token transfer behavior, or the wrong network.

Is RobinOptions affiliated with Robinhood?

No. RobinOptions is an independent protocol built on Robinhood Chain and is not affiliated with Robinhood Markets, Inc.

Before you transact

Verify the series. Preview the amounts. Read the wallet prompt.

Explore series