Skip to main content
You set two fee rates when you create the vaultmanagementFeeBps and performanceFeeBps. This page covers how they are actually charged.

How fees are paid

Fees are dilutive share mints: when a fee settles, the protocol mints new vault shares to you, the curator, diluting every other holder proportionally. Assets never leave the vault — your fee is a growing claim on it. There is no separate fee-collection call. Fees settle atomically inside every deposit and withdrawal settlement — each mintShares, burnShares, and forceBurn first brings fees up to date, then applies the deposit or withdrawal math on the post-fee share price.
Both fee rates are immutable after creation. There is no method to change them — winding down and creating a new vault is the only way to reprice.

Management fee

managementFeeBps is an annualised rate on NAV, accrued pro-rata over the time elapsed since the last fee settlement, regardless of performance. A 100 bps vault that settles a deposit 73 days after its last settlement mints you shares worth ≈ 1% × 73/365 of NAV.
As a safety valve, a single settlement mints at most 2.5% of NAV in management fees, however long the gap since the last one. If your vault can go months without a deposit or withdrawal, settle something periodically or the excess accrual is forfeited.

Performance fee

performanceFeeBps is charged only on gains above the high-water mark — the highest share price the vault has already paid fees at. Each fee mint ratchets the HWM up to the new post-fee share price; it never moves down. You are never paid twice for recovering the same drawdown. The vault row exposes the current mark as global_hwm.

Benchmark assets

By default the HWM is denominated in USD. Setting benchmarkAsset at creation denominates it in a spot asset instead, so the performance fee charges only on outperformance versus that asset — e.g. an ETH vault that charges fees on beating ETH, not on an ETH rally. Omit it for the feed-less USD default.

Protocol fee share

A deployment-set protocol_fee_share_bps slice of every fee mint is diverted to the protocol fee recipient instead of you. The total shares minted are unchanged — the split only decides how they are divided between you and the protocol. The vault row exposes the rate.

Withdrawing fees

Fees arrive as vault shares, so realising them is just a withdrawal: from your own wallet, request a withdrawal for the shares you want to redeem (shareholder.requestWithdraw), then settle your own burn in the settle loop like any other request. The one constraint is the curator stake floor. To keep your incentives aligned with your shareholders’, you must hold the greater of:
  • $10,000, or
  • 1% of the vault’s value
in the vault at all times. A withdrawal that would leave your stake below the floor is rejected (vault_curator_stake_below_min, 18013). Everything above it — accrued fees included — is yours to withdraw whenever you like.
The floor applies for as long as the vault is open. It lifts only on the vault’s final closing burn — see Winddowns for taking out your full stake.

Observe fees in practice

Fee settlements are public — every mint shows up in the vault’s action history with the shares minted and the new high-water mark:
public/get_vault also folds pending fees into its live pricing: simulated_share_price_usd is the price a depositor would actually face with your fees settled, which is why it is the quote anchor for the settle loop.

Create a Vault

Where the fee rates, benchmark, and the rest of the economics are set.

Process Deposits & Withdrawals

The settlements your fees piggyback on.