Overview

Deposit into fixed-strike call vaults and CLVEX directional/condor strategy vaults on Base. Each vault rolls weekly options against deposited collateral and pays accrued yield to share-holders.

Chain

client.strategyVault is Base only (chainId 8453). Calls throw NETWORK_UNSUPPORTED when the client is configured for any other chain.

const client = new ThetanutsClient({ chainId: 8453, provider, signer });

How It Works

There are two vault families behind one module:

  • Fixed-strike vaults sell covered calls on aBasWETH (Aave-wrapped WETH on Base) at a strike encoded in the vault name (ETH-3000, ETH-3500, etc.). Each Friday, the vault writes a weekly call at its strike against deposited collateral; LPs collect premium.

  • CLVEX vaults run pre-defined directional or condor strategies (bull, bear, condor). The vault decides which structure to write each week based on its strategy.

A vault has one share-class (no series), so depositors mix into a single pool and share gains/losses pro-rata.

  1. LPs deposit the vault's base asset (e.g. aBasWETH) and receive shares

  2. Vault calls createOption() when eligible (typically once per cycle, gated by canCreateOption())

  3. At expiry, the option is settled against the underlying price; LPs absorb gains or losses

  4. LPs withdraw by burning shares for pro-rata vault assets

The module exposes shortcuts to enumerate the live vault rosters (getFixedStrikeVaults, getClvexVaults).


Quick Start


Method Overview

Discovery

Method
Description

getAllVaults()

Live state of every fixed-strike + CLVEX vault

getFixedStrikeVaults()

Live state of fixed-strike vaults only

getClvexVaults()

Live state of CLVEX strategy vaults only

getAllVaultStates(addresses[])

Batch state lookup for an arbitrary vault list

State (read-only)

Method
Description

getVaultState(vault)

Full snapshot: assets, shares, next expiry, recovery state

getTotalAssets(vault)

Base + quote assets currently held

getShareBalance(vault, address)

Share balance for a user

getNextExpiry(vault)

Unix timestamp for the next option expiry

canCreateOption(vault)

Whether createOption() is eligible right now

isRecoveryMode(vault)

Whether the vault is paused for emergency withdrawals

Writes

Method
Description
Signer

deposit(vault, amount, assetIndex)

Deposit base or quote asset, receive shares

Yes

withdraw(vault, shares)

Burn shares, receive pro-rata assets

Yes

createOption(vault)

Trigger the next option-selling cycle (anyone can call when eligible)

Yes

assetIndex selects which side of the vault you're depositing — 0 = base asset, 1 = quote asset (vaults that accept both). For fixed-strike, base = aBasWETH and quote = aBasUSDC.


Configuration


Contract Addresses (Base)

Fixed-strike (ETH calls)

Name
Address
Strike

ETH-3000

0x5189180C5Bb1bB54f8479a6aeFdFFEd66Ea0951b

3000

ETH-3500

0xf70088De12E325562dEbfd7740089d894d5b23ce

3500

ETH-4000

0xf4BeE19920B7672A763e40FAD720714B7B1cb7aa

4000

ETH-4500

0x05701eE7269b5Cd36660e9A62C9Fc6B7B67FfF12

4500

ETH-5000

0xE0f808f7717157627139dA38F1226E7011582b67

5000

Fixed-strike base asset: aBasWETH 0xD4a0e0b9149BCee3C920d2E00b5dE09138fd8bb7 Fixed-strike quote asset: aBasUSDC 0x4e65fE4DbA92790696d040ac24Aa414708F5c0AB

CLVEX (strategy vaults)

Name
Address
Strategy

CLVEX Bull

0xeD4c7897D5f1BD8cD00297B3348Fe558D2ABF2Ff

bull

CLVEX Bear

0x07E7a12D9CFc5bc18f578D7C400B26741fc699BE

bear

CLVEX Condor

0xFB073625088014fe4826ae4Ab7Cde12B922Ba5F2

condor

Shared

Contract
Address
Notes

Vault-side OptionFactory

0x1D1Fee494dDEAF32626dcd50e0Cd83890574730f

Used internally by the strategy vaults to mint weekly options. Distinct from chainConfig.contracts.optionFactory (0x8118daD9…), which is the canonical user-facing OptionFactory for direct RFQs.


See Also

Last updated