Skip to content

Vaults - How Managed Fund Accounts Work

TL;DR

  • What: A vault is a managed fund account — you deposit assets (e.g., USDC), receive vault tokens (shares), and a trader manages the capital
  • Deposit: Send USDC → receive vault tokens priced at NAV. Instant settlement
  • Withdraw: Request redemption → wait ~6 hours → receive USDC. One pending request per vault
  • Where yield comes from: The vault's trader profits from futures positions, funding payments, and trading activity. Losses reduce NAV
  • NAV protection: Deposits use max(spot, TWAP) and withdrawals use min(spot, TWAP) to prevent price manipulation
  • Not locked: Your vault tokens aren't locked during the redemption wait — you just can't submit a second request

Table of Contents

  1. What is a Vault?
  2. Why Vaults Exist
  3. How Vaults Work
  4. Depositing (Minting)
  5. Withdrawing (Redeeming)
  6. NAV Protection & TWAP
  7. User Position & P&L
  8. When Vaults Make Sense (and When They Don't)
  9. Risks & Considerations
  10. Redeem Status Flow
  11. Key Differences from Borrow/Lend

1. What is a Vault?

The Concept

A vault is like a managed investment fund that lives on the exchange. Think of it like an ETF:

  • You buy shares (vault tokens) by depositing assets
  • A fund manager (the vault's trader) actively trades with the pooled capital
  • Your shares go up or down in value based on how well the trader does
  • You sell your shares to get your money back

The key difference from a traditional fund: the vault is a system account on the exchange — the trader never has custody of your assets, and the math is fully transparent.

Vault Tokens

Vault tokens are the "shares" of the fund:

  • Fixed supply — tokens are pre-created and transferred, not minted on the fly
  • Price = NAV (Net Asset Value) — the token price always reflects the vault's actual value
  • Tokens appear as regular assets in your account (e.g., vBTC, BPX-VAULT-001)
Example:
  Vault has $1,500 equity, 1,000 tokens circulating → NAV = $1.50/token
  You deposit $150 → you receive 100 tokens
  Vault grows to $2,000 equity → NAV = $2.00/token
  Your 100 tokens are now worth $200

2. Why Vaults Exist

The Problem

You want exposure to a trading strategy (e.g., delta-neutral market making, basis trading) but:

  1. You don't have the skill — active trading strategies require expertise and constant monitoring
  2. You don't have the time — these strategies often need 24/7 management
  3. You don't want to give up custody — sending funds to an external trader means trusting them completely

The Solution

Vaults let you delegate capital to a strategy without giving up custody:

  • Your assets stay on the exchange — the vault trader operates a system account
  • Returns are transparent — NAV is calculated from real positions and balances
  • You can withdraw (after a delay) — no lock-up at the discretion of the manager

3. How Vaults Work

The Vault Account

Each vault is backed by a system account that holds:

  • Asset balances — USDC from deposits, plus any trading proceeds
  • Futures positions — the trader's open perp positions
  • Borrow/lend positions — any borrowed or lent capital
  • Unallocated vault tokens — tokens not yet distributed to depositors

NAV is the price of one vault token. It's calculated as:

NAV = vault_equity / token_circulating_supply

If circulating_supply == 0: NAV = 1.0 (initial value)

Why NAV instead of just "a price"?

Vault tokens don't trade on an order book — nobody is buying and selling them on a market, so there's no market price to look at. NAV is the price, and it's derived from reality: what the vault actually owns.

Think of it like a house with multiple owners. If someone asks "what's my share worth?", you add up the value of the house and everything in it, subtract any mortgage, and divide by the number of owners. That's NAV. It's not based on opinion or supply/demand — it's based on the actual assets.

What Is "Vault Equity"?

Vault equity is the total net value of everything in the vault's system account, converted to USD:

vault_equity = Σ(asset_balances × index_price)
             + unrealized_perp_pnl
             + unsettled_equity

In plain English — take everything the vault owns, subtract everything it owes, and that's the equity.

ELI5: What does "equity" actually mean here?

The vault is literally a trading account on the exchange — just like yours, except it's managed by a professional trader. It has a USDC balance, open futures positions, maybe some borrows. "Equity" means: add up everything it owns, subtract everything it owes.

ComponentWhat it meansEffect on Equity
USDC balanceCash in the account from user deposits + trading profits+$100,000
Unrealized perp P&LThe vault has open futures positions — e.g., if it's long ETH and ETH is up, that's unrealized profit+$5,000
Funding paymentsPerp positions pay/receive funding every 8 hours. If the vault is short and longs are paying shorts, that's income+$200
Borrow liabilitiesIf the vault borrowed SOL to trade, that's a debt-$1,500
Trading lossesClosed a losing trade — the USDC is goneReduces balance

"Does the vault get liquidation profits?" — Not in a special way. The vault's trader is just trading on the exchange like everyone else. If they have a profitable trade against a counterparty who happens to get liquidated, that shows up as normal trading P&L. There's no special liquidation revenue stream.

When the trader profits, equity goes up, NAV goes up, and your tokens are worth more. When the trader loses, the opposite happens.

Circulating Supply

Circulating supply tracks how many vault tokens are held by users (not the vault itself):

After mint:   circulating_supply += tokens_issued
After redeem: circulating_supply -= tokens_returned

The vault has a circulating supply limit — a cap on total deposits.

Why Is There a Cap?

Vault tokens are not minted dynamically — they're pre-created with a fixed total supply. The vault's system account holds all unallocated tokens and transfers them to users on deposit. This fixed supply creates a natural capacity limit: the vault literally cannot issue more tokens than exist.

Beyond this physical constraint, the limit is also a risk management tool. Vault operators can set the cap lower than the total token supply to control how much capital the vault accepts. A smaller pool is easier for the trader to manage, and early depositors benefit from a larger share of profits relative to the pool size. The cap is configurable per vault via circulatingSupplyLimit.


4. Depositing (Minting)

Flow

User Account                    Vault System Account
    USDC ──────────────────→  [Deposit received]
    ←──────────────────────  Vault tokens sent
  1. User submits a mint request with a deposit amount
  2. System calculates effective NAV = max(spot_NAV, twap_NAV) (see NAV Protection)
  3. Tokens to receive = deposit_amount / effective_NAV
  4. Settlement is immediate — user gets tokens, vault gets USDC

Example

Vault state:
  Equity: $100,000
  Circulating supply: 50,000 tokens
  Spot NAV: $2.00
  TWAP NAV: $1.95

You deposit $1,000:
  Effective NAV = max($2.00, $1.95) = $2.00
  Tokens received = $1,000 / $2.00 = 500 tokens

Options

OptionWhat it does
autoBorrowIf you don't have enough USDC, borrow the shortfall from the lending pool
autoLendRedeemIf your USDC is currently lent, redeem it first

Validation

  • mintsEnabled must be true
  • Deposit ≥ minMintQuantity
  • NAV must not be stale (last sample < 5 minutes ago)
  • NAV must be positive (vault not insolvent)
  • Vault must have enough unallocated tokens
  • New circulating supply ≤ circulatingSupplyLimit

5. Withdrawing (Redeeming)

Two-Stage Process

Unlike deposits, withdrawals are not instant. This protects the vault from bank-run scenarios and gives the trader time to unwind positions.

Stage 1: REQUEST (immediate)
  User submits redeem request → added to FIFO queue

Stage 2: EXECUTION (after delay)
  Crank processes queue → user receives USDC, vault receives tokens back

Redeem Delay

Default: 6 hours (configurable per vault via redeemDelayMs).

A redeem becomes eligible for execution when:

current_time - request_created_at ≥ redeem_delay_ms

The effective NAV uses min(spot_NAV, twap_NAV) (see NAV Protection):

Amount returned = vault_tokens × min(spot_NAV, twap_NAV)

Example

You hold 500 vault tokens and request full redemption:

6 hours later, crank executes:
  Spot NAV: $2.10
  TWAP NAV: $2.05
  Effective NAV = min($2.10, $2.05) = $2.05
  USDC returned = 500 × $2.05 = $1,025

Rules

RuleDetail
One pending requestYou can only have one active redeem request per vault
CancellableYou can cancel while the request is pending
Tokens not lockedYour vault tokens remain in your balance during the wait
FIFO queueRequests are processed in order by a crank
Partial or fullOmit the quantity to redeem all tokens

6. NAV Protection & TWAP

Why Not Just Use the Current NAV?

If deposits and withdrawals used the real-time ("spot") NAV, an attacker could:

  1. Manipulate the vault's positions to temporarily inflate NAV
  2. Deposit at the inflated price — getting more tokens than deserved
  3. Wait for NAV to normalize — then redeem at the real price, extracting value from other depositors

Or the reverse — crash NAV temporarily, redeem cheap, then let it recover.

The TWAP Solution

TWAP = Time-Weighted Average Price over a 24-hour rolling window.

The vault records NAV samples over time and computes:

TWAP = Σ(NAV_i × duration_i) / Σ(duration_i)

Where each NAV_i is weighted by how long it persisted. This smooths out short-term spikes.

Samples older than 24 hours are automatically pruned.

Why 24 Hours?

The TWAP window is a tradeoff between manipulation resistance and price responsiveness:

  • Too short (e.g., 1 hour) — an attacker could feasibly sustain price manipulation for that duration, making the TWAP ineffective
  • Too long (e.g., 7 days) — the TWAP becomes so sluggish that it penalizes legitimate users. If the vault genuinely grows 20% in a week, depositors would still pay a price heavily anchored to last week's lower NAV, and redeemers would get significantly less than the vault is actually worth now
  • 24 hours — long enough that sustaining manipulation is economically infeasible, short enough that the TWAP still tracks real vault performance

To illustrate: if NAV spikes to 2x for just 1 second within a 24-hour window, the TWAP moves less than 0.001%. An attacker would need to sustain the manipulation for the entire window to meaningfully shift it. In normal conditions (no manipulation, no big swings), spot and TWAP are very close and the choice of window barely matters.

The window is configurable per vault via twap_window_ms (default: 86,400,000 ms = 24 hours).

How It's Applied

OperationEffective NAVWhy
Mint (deposit)max(spot, TWAP)Depositor pays the higher price — can't buy cheap during a temporary dip
Redeem (withdraw)min(spot, TWAP)Withdrawer gets the lower price — can't extract extra during a temporary spike

The intuition: both rules protect existing depositors.

  • If someone tries to deposit right after a flash crash, max(spot, TWAP) forces them to pay the historical average (higher), so they can't buy discounted shares
  • If someone tries to redeem right after a flash spike, min(spot, TWAP) gives them the historical average (lower), so they can't extract inflated value

ELI5: The Lemonade Stand

Imagine the vault is a lemonade stand worth $100, with 100 shares at $1 each.

  • Spot NAV = what the stand is worth right now
  • TWAP NAV = what the stand has been worth on average over the last 24 hours

When you deposit, you pay max(spot, TWAP) — whichever is higher:

The stand just had a bad hour and spot dropped to $0.80, but the 24h average is $1.00. You pay $1.00. This stops you from buying in during a temporary dip and diluting everyone else who bought at fair price.

When you withdraw, you get min(spot, TWAP) — whichever is lower:

The stand just had a great hour and spot spiked to $1.20, but the 24h average is $1.00. You get $1.00. This stops you from cashing out during a temporary spike and taking more than your fair share from the other owners.

In normal conditions (no manipulation, no big swings), spot and TWAP are very close together and it barely matters which one is used.

If the most recent NAV sample is older than 5 minutes (default max_nav_staleness_ms = 300,000), the vault blocks mints and redeems until a fresh sample is recorded. This prevents operating on dangerously outdated prices.

Staleness check can be disabled by setting the threshold to 0.


7. User Position & P&L

Position Value

Position Value = vault_token_balance × current_NAV

P&L Calculation

Total Deposited = sum of all mint quantities (USDC amounts)
Current Value   = vault_token_balance × current_NAV
P&L             = Current Value - Total Deposited
ROI %           = (P&L / Total Deposited) × 100

Example

Mint 1: Deposited $1,000, received 500 tokens @ NAV $2.00
Mint 2: Deposited $500, received 200 tokens @ NAV $2.50

Total Deposited = $1,500
Token Balance = 700 tokens
Current NAV = $2.80

Current Value = 700 × $2.80 = $1,960
P&L = $1,960 - $1,500 = +$460
ROI = ($460 / $1,500) × 100 = +30.7%

Position Lifecycle

StatusDescription
OpenedFirst deposit (balance was 0)
AdjustedAdditional deposits or partial redemptions
ClosedFully redeemed (balance is 0)

8. When Vaults Make Sense (and When They Don't)

What "Backpack Liquidity Token" Means

When a vault is described as a "liquidity token" or "Backpack liquidity vault," it means the vault's trader is providing liquidity to the Backpack exchange itself — typically through market making, basis trading, or other strategies that profit from facilitating trades and capturing spreads.

In concrete terms:

  • The trader places bids and asks on Backpack's order books, earning the spread
  • They may run delta-neutral strategies (e.g., long spot + short perp) to capture funding rates
  • They profit from the flow of trades happening on the exchange

Your vault token represents a share of this liquidity provision operation. When the exchange has more trading volume, the market maker has more opportunities to profit, and your NAV goes up.

This is different from lending (where you earn a fixed interest rate) — you're participating in the trading infrastructure of the exchange.

Why Early Participation Matters

Vaults have a circulating supply limit — a hard cap on total deposits. Early depositors get access before the cap is hit. Once it's full, new deposits are rejected until someone redeems.

Beyond the cap, early participation means:

  • Smaller pool = larger share — if the vault's strategy generates $X in profit, fewer depositors means each person's NAV grows faster
  • Track record builds over time — early depositors can evaluate the vault's real performance before it becomes crowded

When Vaults Make Sense

ScenarioWhy a vault fits
You want yield but don't want to tradeVault handles the strategy, you hold the token
You believe in the strategyMarket making / basis trading has historically been profitable in active markets
You want exchange-level custodyAssets never leave the exchange — no counterparty risk with an external fund manager
You have idle USDCBetter potential returns than lending (but with more risk)
You can tolerate a 6-hour withdrawal delayYou don't need instant liquidity on this capital

When Vaults Don't Make Sense

ScenarioWhy a vault doesn't fit
You need instant access to your funds6-hour redeem delay means this isn't a checking account
You can't stomach any lossesNAV can go down — this is not a stablecoin savings account
You want predictable, fixed returnsLending pools give you a utilization-based rate; vaults are variable and strategy-dependent
You want to control the tradingIf you have your own strategy, just trade directly — vaults are for delegation
You're putting in money you can't afford to loseLike any investment, the vault can lose value

Vaults vs. Lending: A Simple Decision Framework

Do you want guaranteed yield from borrower interest?
  → Use Borrow/Lend (lower risk, lower potential return)

Do you want exposure to active trading strategies without doing the work?
  → Use a Vault (higher risk, higher potential return)

Do you want both?
  → Split your capital between lending and a vault

9. Risks & Considerations

The Vault Can Lose Money

NAV goes down when the trader loses money. Unlike lending (where yield comes from borrower interest), vault returns depend entirely on trading performance. There is no guaranteed yield.

Redemption Delay

The default 6-hour delay means your withdrawal is not instant. During this window:

  • NAV can change (for better or worse)
  • The final redemption amount is calculated at execution time, not request time

One Request at a Time

You can only have one pending redeem request per vault. If you need to change the amount, cancel and resubmit.

If the vault's NAV hasn't been updated in over 5 minutes, mints and redeems are temporarily blocked. This is a safety measure, not a permanent state.

Circulating Supply Limits

Each vault has a cap on total deposits. Once the circulating supply limit is reached, no new mints are accepted until tokens are redeemed.

Tokens During Redeem Wait

Your vault tokens are not locked while waiting for redemption. However, if your token balance drops below the requested redeem amount before execution, the request is automatically cancelled (InsufficientVaultTokens).


10. Redeem Status Flow

Requested ──→ Redeemed   (delay passed, conditions met, crank executed)

    └───────→ Cancelled  (user or system cancelled)

Cancellation Reasons

ReasonDescription
UserCancelledYou manually cancelled the request
SystemCancelledAdmin cancelled (e.g., vault shutdown)
InsufficientVaultTokensYou no longer have enough tokens to fulfill the request
AccountNotFoundYour account was removed

11. Key Differences from Borrow/Lend

AspectVaultsBorrow/Lend
What you're doingDelegating capital to an active traderLending to a pool of borrowers
Source of returnsTrading P&L (futures, funding, etc.)Borrower interest payments
Risk profileCan lose money if trader losesGenerally lower risk, but borrowers can default
Return predictabilityUnpredictable — depends on trading skillRelatively predictable — based on utilization rate
WithdrawalDelayed (default 6 hours, queued)Instant (subject to pool liquidity)
Your tokenVault token (variable price)Lend position (accrues interest)
Price mechanismNAV with TWAP protectionFixed 1:1 with accrued interest
Who manages capitalA designated traderNo one — interest rate model is automatic