Skip to main content

Core contractsCreatorOVault

CreatorOVault

The per-creator ERC-4626 vault that holds the creator coin, mints vault claims, and allocates idle funds to yield strategies.

Each creator gets one CreatorOVault. It holds deposited creator coins, mints vault claims (), and tracks price per share as strategies earn. Most holders never touch it directly: they use the wrapper, which turns vault claims into the tradable ShareOFT ().

At a glance​

RoleHolds the creator coin, mints , allocates to strategies, reports profit and loss
DeployedPer creator, on Base
Standard(s)ERC-4626 with protocol extensions (Yearn V3-style strategy accounting), ERC-20 Permit
Key relationshipsCreatorOVaultWrapper, CreatorShareOFT, Registry4626, Gauge controller

This is not a vanilla drop-in ERC-4626 vault. Read ERC-4626 deviations and the integration guide before routing to it.

How it works​

  1. Someone deposits the creator coin and receives vault claims ().
  2. The keeper deploys idle funds to strategies and calls report() to book profit or loss, which moves price per share.
  3. Holders redeem for the creator coin. Large exits go through a queue.

New vaults use the Phase 3 earn mix of Charm 90% · idle 10%. Charm is the yield leg; the auction and LP are arms, not strategies. The first deposit funds the vault itself, not these legs. See Earn mix.

Ajna strategy code still exists and can be added with addStrategy, but new launches do not use it (Ajna weight 0).

First deposit​

The vault cannot activate or finalize until it receives a first deposit of 100,000,000 creator coins (MINIMUM_FIRST_DEPOSIT = 100,000,000e18). Anything smaller reverts FirstDepositTooSmall. The activation batcher accepts only that amount.

The $499 launch fee unlocks deploy; it does not replace this deposit. See Strategy bundle and Activate vault.

Key functions​

Holders​

FunctionWhat it doesWho can call
deposit(assets, receiver) / mint(shares, receiver)Deposit creator coin for Anyone, when not paused or shut down, whitelisted if the whitelist is on
redeem(shares, receiver, owner) / withdraw(assets, receiver, owner)Exit below the large-withdrawal thresholdShare owner or approved spender
redeem(..., maxLoss) / withdraw(..., maxLoss)Same, with a Yearn-style loss cap in bpsShare owner or approved spender
queueWithdrawal / claimQueuedWithdrawal / cancelQueuedWithdrawalQueued path for large exitsShare owner

Views​

FunctionWhat it returns
pricePerShare()Assets per vault claim
totalAssets()Idle balance plus strategy marks
previewRedeem(shares)Redeem quote that accounts for queued shares
maxDeposit / maxMint / maxWithdraw / maxRedeemHonest capacity checks
withdrawalEta(user, shares) / positionOf(user)Exit timing and a holder's full position

Strategy and admin​

FunctionWhat it doesWho can call
addStrategy(strategy, weight, addToQueue) / removeStrategy(strategy)Manage strategies and weightsManagement or owner
deployToStrategies()Move idle funds to strategies by weightKeeper, management, or owner
report()Book profit and lossKeeper, management, or owner
tend()Strategy upkeepKeeper, management, or owner
shutdownVault()Stop new depositsOwner, management, emergency admin, or impairment guardian

Security features​

FeatureWhat it does
Virtual shares_decimalsOffset() = 3 (1000 virtual shares) blocks inflation attacks
Minimum first deposit50M creator coins, as above
Price limitsAt most 10% price change per transaction (MAX_PRICE_CHANGE_BPS)
Block delaywithdrawDelayBlocks (default 1) blocks same-block deposit then exit, including via transfer
Strict transfer accountingReverts if the vault does not receive the exact requested amount

Access control​

RolePermissions
OwnerFull control, emergency shutdown
ManagementStrategy configuration, fees, impairment admin
Keeperreport, tend, deployToStrategies
Emergency adminEmergency shutdown and strategy pulls

Gotchas​

  • Units: the vault mints about 1000 per creator coin at bootstrap. The wrapper converts at 1000 per 1 , so and are never 1:1. See Token units.
  • Only standard ERC-20 assets work. Fee-on-transfer, deflationary, and rebasing tokens revert.
  • Exits at or above largeWithdrawalThreshold (default 100,000 tokens) must be queued.
  • When a strategy impairment trips, the vault enters Suspect mode and deposits and sync exits revert. See Impairment state machine.
  • ERC-7575 share() is intended to be the vault itself (), not ShareOFT. Live vaults do not advertise ERC-7575 yet because of the EIP-170 size limit. See Vault capabilities.
  • Activated is not the same as trading live. See Lifecycle.

Source​