Accounting, Fees & Fund Flows
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 impact 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 the August pricing engine validates it; in the subaccount model August 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
The diagram below traces a deposit end-to-end. 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().
Figure 1: Deposit lifecycle. Steps 1–4 happen on the vault contract; steps 5–8 happen on the subaccount and feed back through NAV reporting.
The liquidity buffer (step 3) 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.
Figure 2: Epoch-based vs. instant redemption paths.
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.
Last updated
