face-glassesRysk Premium Explainer

Liquidity Provider Guide

This document explains how Rysk Premium works β€” how capital flows in and out, how your shares are valued, how options are written and settled, and what determines your returns.


1. Protocol Overview

The Dynamic Hedging Liquidity Pool is an on-chain options market-making vault. As a liquidity provider (LP), you deposit collateral (e.g. USDC) into the pool. The pool uses that collateral to write (sell) option contracts to buyers. Premiums collected from buyers accumulate in the pool and are reflected in an increasing price per share over time.

The pool is actively managed β€” a curator decides which options to write, at what strikes and expiries, and when to buy back positions. The goal is to collect premium income while managing directional and volatility risk through dynamic hedging.

Key participants:

Role
What they do

Liquidity Provider (LP)

Deposits collateral, receives shares, earns premium income

Option Buyer

Purchases options from the pool, paying a premium

Curator / Manager

Manages the option book β€” writes, buys back, hedges

Governor

Governs protocol parameters, sets epoch prices

Keeper

Permissioned bot that can execute epoch settlements


2. Core Concepts

Shares

When you deposit, you receive LP shares β€” an ERC-20 token representing your proportional ownership of the pool. Shares are minted at the deposit price per share set at the epoch boundary. As the pool collects premium, the NAV per share grows, and your shares are redeemable at a higher withdrawal price per share.

Epochs

The pool operates on discrete epochs β€” think of them like accounting periods. Within an epoch:

  • Deposits and withdrawals are queued but not yet finalized

  • Options can be written and traded freely

At each epoch boundary (triggered by governance / keepers):

  1. A price per share is set based on the pool's current NAV

  2. Pending deposits are converted to shares at that price

  3. Pending withdrawals are processed at that price

  4. The epoch counter increments and the new epoch begins

This epoch model prevents intra-epoch price manipulation and ensures all LPs entering or exiting in the same window get the same fair price.

Price Per Share

The price per share is the ratio of the pool's net asset value (NAV) to the total share supply. It is set off-chain by governance (signed by the Governor) and submitted on-chain at each epoch boundary.

What contributes to NAV:

  • Free collateral β€” collateral sitting idle in the pool contract, available to write new options

  • Collateral allocated β€” collateral currently locked as margin backing live option positions

What adjusts NAV:

  • Mark-to-market value of the option book β€” the pool's short option positions have a current market value. This is not computed on-chain; instead, the Governor aggregates mid-market prices from a committee of independent option desks and uses that consensus value to determine the net option book liability at epoch close. A position worth more than it was sold for reduces NAV; a position worth less increases it.

  • Fees β€” accrued protocol and curator fees are excluded from the pool's book balance

Note: The smart contract stores a simplified TVL (free balance + collateral allocated). The full NAV β€” which nets out the current market value of all open option positions β€” is calculated off-chain using aggregated pricing from a committee of option desks and submitted to the contract by the Governor at each epoch boundary.


3. Depositing

How to Deposit

  1. Approve the pool contract to spend your collateral token (e.g. USDC)

  2. Call deposit(amount) on the LiquidityPool contract

  3. Your collateral is transferred to the pool immediately

  4. A deposit receipt is stored on-chain recording your deposit amount and the current epoch

What happens next:

Your funds enter the pool's pendingDeposits queue. They are available for the pool to use immediately (e.g. to write options), but your shares are not minted yet. Shares are only minted at the next epoch execution, using the deposit price per share set at that time.

Multiple Deposits in the Same Epoch

If you deposit again in the same epoch before execution, the amounts are combined on your deposit receipt. You will receive shares for the total combined amount at the single epoch-close price.

Whitelist

If the pool has whitelisting enabled, only approved addresses can deposit. Withdrawals are never whitelist-gated. LP token transfers between non-whitelisted addresses are also blocked when the whitelist is active.

Collateral Cap

The pool enforces a maximum TVL (collateralCap). Deposits that would push TVL over the cap are rejected.


4. Epoch Execution & Price Per Share

The Epoch Lifecycle

Deposit Price vs. Withdrawal Price

The Governor sets two prices per epoch, which may differ:

Price
Used for
Rationale

Deposit Price

Converting your deposited collateral into shares

Typically reflects NAV at the time of epoch close

Withdrawal Price

Converting your shares back into collateral

May include adjustments for option liabilities or bid-ask spread

In a healthy epoch, the two prices are typically equal or very close. They can diverge if the option book carries significant mark-to-market losses or if the curator applies a spread to protect existing LPs from adverse selection.

Redeeming Your Shares

After epoch execution, shares are held by the pool contract on your behalf. You must call redeem() to transfer them to your wallet. Alternatively, the next time you deposit or initiate a withdrawal, the contract auto-redeems pending shares for you.


5. Withdrawing

Withdrawals are a two-step process to prevent intra-epoch gaming.

Step 1: Initiate Withdrawal

Call initiateWithdraw(shares):

  • Your shares are escrowed by the pool contract (transferred from your wallet to the pool)

  • A withdrawal receipt is created recording your shares and the current epoch

  • Your shares are added to pendingWithdrawals

You cannot initiate a new withdrawal if you have an unfinished withdrawal from a previous epoch β€” you must complete it first.

Step 2: Complete Withdrawal

After the epoch executes (and your withdrawal is processed), call completeWithdraw():

  • The contract finds the first epoch after your initiation where batch withdrawals were successfully processed

  • Your shares are converted to collateral at the withdrawal price for that epoch

  • Collateral is transferred to your wallet

  • Your withdrawal receipt is cleared

Funds flow: When an epoch executes with sufficient free balance, withdrawal proceeds are moved into a partitionedFunds reserve. This ring-fences your withdrawal from any subsequent pool activity. Completing the withdrawal draws from this reserve.

What If There Isn't Enough Cash?

If the pool's free balance is insufficient to cover all pending withdrawals (because most collateral is allocated to open option positions), the epoch will still advance but withdrawals will not be processed in that batch. Your shares remain escrowed. The withdrawal will be processed in a future epoch when sufficient liquidity is freed up (through option settlement or buybacks). The price you receive will be the price from the first epoch where withdrawals were successfully processed after your initiation.


6. How Options Are Traded

Writing Options (Pool Sells)

The curator identifies option series to sell. The flow is:

  1. Price: The curator quotes a premium for the option series

  2. Order creation: A time-limited order is created specifying the counterparty (buyer), amount, and price

  3. Execution: The buyer calls executeOrder():

    • The buyer's premium is pulled from their wallet into the pool

    • The pool locks collateral against the option (deposited to Opyn's margin pool)

    • oTokens (the option contracts) are minted and transferred to the buyer

  4. Fee deduction: An option sale fee (in basis points) is deducted from the premium and split between the protocol and curator before the rest accrues to LPs

The net effect: premium flows into the pool, collateral is locked, and the pool's share of NAV changes based on the option's mark-to-market value.

Collateral mechanics:

  • Puts: collateral locked = strike price Γ— number of contracts (fully cash-secured)

  • Calls: collateral locked = notional amount of underlying (fully collateralized)

Buying Back Options (Pool Buys)

The curator can buy back options the pool previously sold, unwinding positions. The flow reverses:

  1. The seller (original option buyer) returns their oTokens

  2. The oTokens are burned and the locked collateral is returned to the pool's free balance

  3. The pool pays the buyback premium to the seller from its (now replenished) free balance

Buybacks reduce the pool's short option book and free up capital, at the cost of paying a premium (which reduces LP NAV if the options are bought back at a higher price than they were sold).


7. Settlement

When an option series expires, the pool's vault must be settled to recover collateral.

Settlement Flow

All options are cash-settled β€” there is no physical delivery of the underlying asset. At expiry, Opyn's on-chain oracle records the settlement price of the underlying. That price determines who receives what from the locked collateral.

A keeper calls settleVault(seriesAddress) on the LiquidityPool:

  1. The OptionRegistry calls the Opyn/Gamma controller to settle the vault

  2. Opyn computes the intrinsic value of the options at expiry using the oracle settlement price

  3. The locked collateral is split:

    • The intrinsic value (cash payout owed to option holders) is made available for oToken holders to redeem

    • The remainder is returned to the pool's free balance

Worked examples:

Put β€” expires OTM: Pool wrote a $2,000-strike ETH put, locking $2,000 USDC per contract. ETH settles at $2,200. Intrinsic value = $0. The full $2,000 USDC returns to the pool.

Put β€” expires ITM: Same put, ETH settles at $1,700. Intrinsic value = $300 per contract. The oToken holder redeems $300 USDC; the pool recovers $1,700 USDC.

Call β€” expires OTM: Pool wrote a $2,500-strike ETH call, locking 1 ETH per contract. ETH settles at $2,200. Intrinsic value = $0. The full 1 ETH collateral returns to the pool.

Call β€” expires ITM: Same call, ETH settles at $2,800. Intrinsic value = $300 per contract. Because calls are collateralized in ETH, the payout is denominated in ETH: $300 / $2,800 β‰ˆ 0.107 ETH per contract. The oToken holder redeems ~0.107 ETH; the pool recovers the remaining ~0.893 ETH.

Option Holder Settlement (Redeem)

Option buyers can redeem their expired ITM oTokens directly via the OptionRegistry's redeem() function. The steps are:

  1. The holder calls redeem(seriesAddress, amount) on the OptionRegistry

  2. Their oTokens are transferred to the registry and burned

  3. The intrinsic value is transferred to the holder in the collateral token:

    • Put holder receives USDC equal to max(0, strike βˆ’ settlement price) per contract

    • Call holder receives ETH equal to max(0, settlement price βˆ’ strike) / settlement price per contract

  4. The payout lands directly in the holder's wallet

OTM options at expiry are worth zero β€” there is nothing to redeem, and the full locked collateral returns to the pool when the vault is settled.

Note: the OptionRegistry validates that the oToken exists in Opyn's factory before allowing redemption. If a buyer has transferred their oTokens to a third party, that party can redeem them just the same β€” redemption is not restricted to the original buyer.

8. Fees

The pool has two fee tiers, both expressed in basis points (bps):

Fee
Description
Who Receives

Option Sale Fee

% of option premium charged on each write

Split between protocol and curator

Curator Fee Share

% of the option sale fee that goes to the curator

Curator (Manager role)

Example: If optionSaleFee = 500 bps (5%) and curatorFeeShare = 5000 bps (50% of the fee):

  • On a 10,000 USDC premium: total fee = 500 USDC

  • Curator receives: 250 USDC

  • Protocol receives: 250 USDC

  • Net premium credited to pool: 9,500 USDC

Fees accumulate on-chain in accumulatedCuratorFees and accumulatedProtocolFees. They are excluded from the pool's NAV calculation (the getBalance() function subtracts them). Governance and the curator can withdraw their respective fees at any time.


9. Risk Considerations

Collateral Risk

LP capital is at risk. If options written by the pool expire deep ITM, the pool pays out more collateral than it collected in premiums, reducing NAV per share. In extreme scenarios, LPs could lose a significant portion of their deposited capital.

Withdrawal Queue Risk

If the pool is heavily deployed into open option positions, withdrawals may not be processed immediately. Your shares remain escrowed and you receive the withdrawal price from the first epoch where sufficient liquidity is available β€” not the price from when you initiated.

Curator Risk

The curator has significant discretion over the option book. Poorly priced options or excess concentration in a single strike/expiry can result in NAV losses for LPs.

Smart Contract Risk

The protocol uses upgradeable proxy contracts. Upgrades are controlled by a governance process. As with all DeFi protocols, there is inherent smart contract risk.

Dispute Period

After an epoch price is set, there is a configurable dispute period (e.g. 24 hours) during which the governor can update the price if an error is detected. Epoch execution is blocked until this period expires. This protects LPs from incorrect NAV calculations being locked in immediately.


10. Roles & Governance

Role
Permissions

Governor

Sets epoch prices, collateral cap, fees, whitelist, dispute period; upgrades contracts

Manager / Curator

Manages the option book (write, buyback); withdraws curator fees

Guardian

Can pause the protocol; lock/unlock epochs

Keeper

Can execute epoch calculations and settle vaults

Option Handler

Approved contracts (e.g. PremiumOptionHandler) that interact with the pool on behalf of traders


Quick Reference: LP Actions

Action
When
Function

Deposit collateral

Any time (epoch not locked, not paused)

deposit(amount)

Redeem shares from past deposit

After epoch executes

redeem()

Initiate withdrawal

Any time (epoch not locked, not paused)

initiateWithdraw(shares)

Complete withdrawal

After your withdrawal epoch is processed

completeWithdraw()

Check withdrawable amount

Any time

canCompleteWithdraw(yourAddress)

Check if you can initiate withdrawal

Any time

canInitiateWithdraw(yourAddress)


Built on the Opyn/Gamma options protocol. LP shares are ERC-20 tokens with the same decimals as the collateral asset.

Last updated