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:
- A vault holds 100,000 USDC against 100,000 shares (ratio 1.0)
- A user deposits 1,000 USDC and receives 1,000 shares — ratio unchanged.
- The strategy then earns 500 USDC over a week; assets become 101,500 against 101,000 shares, so the ratio rises to ≈1.00495.
- 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
| Fee | Mechanics |
|---|---|
| Management fee | Accrued against TVL via chargeManagementFee(). Set per vault; changes behind 24h timelock. |
| Performance fee | Taken on yield above the high watermark. |
| Instant redemption fee | Premium 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().

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.

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