Skip to content

Research notes

Morpho Vault V2 Fee Shares vs Asset Balances

Follow a 30-day fee accrual through two recipient mints, a diluted holder balance and a later token redemption.

Ivory pleated paper surrounds a ceramic block, with lime folds on a near-black studio background.
Illustration for research notes; examples in this article are educational.

Morpho Vault V2 collects performance and management fees by minting vault shares to configured recipients. Accrual sends no underlying tokens to those recipients. When fee shares are minted, holders receiving none are diluted. Performance fees use positive distributed interest, while management fees use assets and elapsed time. Include both pending fee-share amounts when valuing a holder's shares.

Identify the fee layer before reading a balance

This explanation follows Morpho's Vault V2 core at reference commit a0ba9df, checked on 29 October 2026. Verify a particular vault's chain, address and implementation before applying the arithmetic. The reference snapshot does not identify every deployment.

Vault shares are ERC-20 receipt tokens for a vault position. They sit above any underlying lending positions. A Blue market's internal supply shares have a different denominator and fee calculation; the Morpho Blue supply-shares example follows that separate layer. A V2 Fee Wrapper can add another vault around a child vault, with its own fees. Morpho's V2 overview describes these structures.

Start with three quantities: underlying tokens held idle, the recorded value of the entire vault, and the number of outstanding vault shares. Minting fee shares changes the third quantity. A recipient later redeeming those shares changes the first two as assets leave.

The pinned project overview places fee rates and recipients under curator configuration. Performance fees are capped at 50% of interest; management fees at 5% per year. Those ceilings are different from an observed vault's configured rates. Fee and recipient changes require submitted actions and the applicable timelock; inspect its actual duration, including zero, and any abdication.

Calculate fee assets before minting shares

Call the last recorded assets A0, the newly recognized assets A1, and the elapsed seconds t. The vault obtains a current asset valuation from idle tokens plus adapter reports, then limits upward recognition using maxRate. Thus positive distributed interest I is the amount by which A1 exceeds A0, floored at zero. The maxRate versus reported-growth walkthrough develops that boundary. An adapter's reported gain is not automatically the performance-fee base.

The two fees use different inputs:

FeeAsset amount used for mintingRelevant condition
PerformancePositive distributed interest × performance ratePositive recognized growth
ManagementA1 × elapsed seconds × management rateTime has passed, even without growth

Both rates use a 10^18 scale. The performance rate is a fraction of interest. The stored management rate is a per-second fraction; an annual percentage must be converted before multiplying by seconds. Integer division rounds each fee asset amount down. Morpho's yield-and-fees documentation also distinguishes the yield-based fee from the fee on assets.

Let P and M be those two rounded asset amounts. Define N as A1 − P − M. Let S be the existing raw share supply and V the virtual shares. The pinned accrual implementation computes:

  • Performance shares: floor(P × (S + V) / (N + 1)).
  • Management shares: floor(M × (S + V) / (N + 1)).

Each calculation uses the same pre-mint supply and the same denominator, net of both fees. Computing the management mint after adding performance shares to S would change the result. The one virtual asset means one underlying base unit, not one whole displayed token.

A configured rate does not establish that shares were minted. Each recipient must also pass canReceiveShares for its fee calculation. Keep the recipient addresses and gate results beside the rates.

Reconcile a hypothetical 30-day accrual

This original illustration uses a fictional six-decimal asset U and 18-decimal vault shares. There are 10^12 virtual share units and one virtual asset unit. All calculations use raw integers; displayed token amounts below are divided by 10^6 and displayed shares by 10^18. U has no assumed dollar value.

At timestamp T0, recorded assets are 1,000,000 U and supply is 1,000,000 shares. Alice owns 100,000 shares. Idle cash is 50,000 U and adapter positions are worth 950,000 U. Both fee recipients begin with zero shares and can receive shares. Gates permit the later redemption, transfers are ordinary, and no one deposits or withdraws during the interval.

At T1, exactly 2,592,000 seconds later, adapter reports value the positions at 962,345.678901 U. Idle cash remains 50,000 U. Their combined value is 1,012,345.678901 U. Assume firstTotalAssets is zero at the start of this new transaction.

The performance rate is 10%, stored as 100,000,000,000,000,000. The hypothetical management rate is 634,195,839, obtained by flooring 0.02 × 10^18 / 31,536,000. Its annual equivalent is just below 2% because of integer precision.

The hypothetical maxRate is 9,512,937,595 per second on the same scale, obtained from a 30% annual rate. For this interval its maximum recognized assets are 1,024,657.534246 U. The reported total is lower, so A1 is the full 1,012,345.678901 U.

The assessed amounts are not cash payments

Distributed interest is 1,012,345.678901 − 1,000,000, or 12,345.678901 U. After rounding down to U's base units:

  • P is 1,234.567890 U.
  • M is 1,664.129881 U.
  • N is 1,009,446.981130 U.

M uses the ending recognized assets, not the opening million. Its exact raw calculation is the floor of 1,012,345,678,901 × 2,592,000 × 634,195,839 / 10^18. A shortcut using 2% times opening assets times 30/365 would miss that basis and the stored-rate rounding.

Converting P and M through the shared denominator produces the following exact share amounts:

QuantityDisplayed vault shares
Performance recipient receives1,223.014098886110513748
Management recipient receives1,648.556003542798542895
Total supply after minting1,002,871.570102428909056643
Alice still owns100,000

The arithmetic library floors the divisions. Fee assets are rounded first; each share mint is then rounded independently. Retain those integers through subsequent calculations rather than multiplying a rounded display price.

Accrual records A1 as 1,012,345.678901 U. It does not replace recorded assets with N. Idle cash remains 50,000 U, and neither recipient receives U at this step. N is an intermediate conversion amount that sizes the dilution.

Pending fee shares belong in Alice's conversion

For Alice's 100,000 shares, multiply her raw share balance by (A1 + 1) / (updated supply + V) and round down. The result is 100,944.698112 U. Her shares increased in asset equivalent from the opening 100,000 U, while the fee recipients acquired part of the vault's growth and assets.

Ignoring pending fee shares and using the old supply would show 101,234.567890 U. That overstates her fee-aware claim by 289.869778 U in this fixture. The error comes from mixing freshly valued assets with a share denominator that omits the impending mints.

The official contract reference exposes accrueInterestView() for the asset total and both pending mint amounts. totalSupply() is the stored supply; conversions and previews account for pending fees. Calling a view does not mint them. After the state-changing accrual, they appear in supply and recipient balances.

At the same post-accrual state, the performance shares convert down to 1,234.567889 U and the management shares to 1,664.129880 U. Each is one U base unit below its assessed amount. Virtual units and separate rounding explain why an assessed fee asset figure and an individually redeemable figure can differ.

Follow one recipient from shares to tokens

Suppose the performance recipient redeems all its newly minted shares in a separate transaction at T1, with no intervening changes. Elapsed time is zero, so this operation adds no further management fee. Recorded assets and adapter reports agree, so it recognizes no additional interest either.

The recipient burns 1,223.014098886110513748 shares and receives 1,234.567889 U. The 50,000 U idle balance covers this exit. After the transfer:

Ledger fieldRemaining amount
Idle cash48,765.432111 U
Adapter value962,345.678901 U
Recorded assets1,011,111.111012 U
Share supply1,001,648.556003542798542895

The asset reconciliation is 48,765.432111 + 962,345.678901 = 1,011,111.111012 U. Only this redemption sends tokens to the fee recipient. Adding the earlier assessed fee as another cash outflow would count it twice.

Recomputing Alice's conversion at this new state gives 100,944.698113 U, one base unit higher because of redemption rounding. Keep each conversion attached to its observation state.

The distinction between valuation and available tokens also appears in the Yearn idle-versus-debt ledger. Morpho V2's exit uses idle assets first, then the liquidity adapter when configured and needed. A valid conversion still needs successful gates, authorization and obtainable liquidity. Its maxWithdraw and other standard max getters return zero, so they do not supply a usable cash forecast.

Keep the force-deallocation penalty separate. That operation can burn the user's shares while leaving the penalty's underlying value in the vault; it is a different ledger from minting shares to fee recipients.

Validate a fee observation at one state

For a real observation, save the block, implementation, asset decimals, share decimals, virtual shares, stored assets, stored supply and lastUpdate. Read both fee rates, both recipient addresses and relevant gates at that same state. Use each recipient's before-and-after share balance, allowing for transfers and any existing holdings.

Then reproduce accrueInterestView: check adapter valuations, recognized growth, elapsed time, both asset fees and both share mints. Compare its pending denominator with the denominator used by convertToAssets. Fee or recipient setters accrue under the previous settings before changing them, so reconstruct the order of confirmed changes when explaining an interval.

Finally reconcile the accrual event and share mints against state. Record any subsequent redemption separately with its actual share burn and recipient token receipt. A flat or loss-making interval can still incur management fees; Morpho's wind-down guidance explicitly identifies their effect when yield is zero. For this fixture, the completed records are 2,871.570102428909056643 fee shares minted, zero U paid at accrual, and 1,234.567889 U paid at the later redemption.

Keep the context with the example.

Each worked example is illustrative, with its sources and assumptions in the article. Read our editorial standards for authorship, verification and corrections.