UpshiftDocs
Curators

Accounting, Fees & Fund Flows

How share-based accounting and NAV reporting work, the vault fee schedule, and how capital flows from deposit to strategy and back through redemptions.

Share Accounting and NAV Reporting

Upshift vaults use share-based accounting: price per share = total underlying assets ÷ total shares in circulation. Deposits mint shares at the current ratio and withdrawals burn at the current ratio, so neither impacts the vault share price.

Example:

  1. A vault holds 100,000 USDC against 100,000 shares (ratio 1.0)
  2. A user deposits 1,000 USDC and receives 1,000 shares — ratio unchanged.
  3. The strategy then earns 500 USDC over a week; assets become 101,500 against 101,000 shares, so the ratio rises to ≈1.00495.
  4. Redeeming 1,000 shares now returns ≈1,004.95 USDC.

What curators must respect when reporting NAV

  • Max percentage change: each NAV update is bounded by a strict ceiling and floor on the share-price move per cycle. This caps damage from faulty oracles or erroneous reports and kills latency arbitrage by MEV snipers. Plan large markups/markdowns across multiple cycles.
  • High watermark: performance fees only accrue above the previous peak share price.
  • Validation: in the Fordefi model the strategist proposes NAV and Upshift's pricing engine validates it; in the subaccount model Upshift computes NAV directly from whitelisted integrations, options mark-to-market, and CeFi APIs.

Fees

FeeMechanics
Management feeAccrued against TVL via chargeManagementFee(). Set per vault; changes behind 24h timelock.
Performance feeTaken on yield above the high watermark.
Instant redemption feePremium for bypassing the epoch queue.

Fund Flows

Fund Flow: From Deposit to Strategy

A deposit travels end-to-end from the depositor through the vault contract to the curator's strategy: the deposit and share mint (and the liquidity buffer hold-back) happen on the vault contract, then the deployed capital sits on the subaccount and feeds back through NAV reporting. Two properties matter to curators: deposits and withdrawals never change the share price (only yield does), and capital reaches the curator only after the operator pushes it with depositToSubaccount().

Eight-step fund flow: deposit, share mint, buffer retained, capital pushed to the subaccount, curator deployment, yield accrual, NAV report, share price rise

The liquidity buffer is a configurable percentage held back in the vault so instant redemptions never force a strategy unwind. Curators should treat deployable capital as TVL minus buffer minus pending redemptions, not raw TVL.

Fund Flow: Redemptions

Redemptions follow one of two paths. The standard path is epoch-based: requestRedeem() queues the request and returns a claimable epoch; the operator settles the epoch in batch; the holder (or anyone, on their behalf) calls claim(). The instant path (instantRedeem()) bypasses the queue for a fee and is served from the liquidity buffer.

The epoch-based redemption path (request, operator liquidity prep, claim) against the instant path (instantRedeem paid from the liquidity buffer)

Curator obligations around redemptions

  1. Monitor the pending-redemption book for each upcoming epoch. Upshift offers API endpoints and a curator-specific dashboard for easier management of vault liquidity.
  2. Return capital with enough lead time for the operator to call withdrawFromSubaccount().
  3. Size the buffer to absorb expected instant-redemption volume.