Skip to main content
In user-facing documentation, a MultiVehicle is referred to as a Strategy. See Glossary.
Multi-Vehicle implements rigorous double-entry accounting to track all asset movements through the system. Understanding the sector model and asset flow is essential for operating multi-vehicle deployments.

Why sector-based accounting

In a multi-protocol environment, assets are rarely static. They move between being idle in the vault, committed to a deposit query, held as shares in a sub-vehicle, or queued for redemption. Traditional balance-based accounting struggles to track these “in-flight” assets, leading to potential double-counting or inaccurate share pricing. Multi-Vehicle solves this by partitioning assets into logical sectors that represent their current operational state. This allows the protocol to:
  • Track the exact lifecycle stage of every asset
  • Handle asynchronous settlements without losing track of value
  • Provide an accurate totalAssets() calculation at any point in time

The double-entry principle

Every movement of assets within the system has an explicit source and destination sector. The SectorAccountingEngine:
  1. Decrements the balance of the source sector
  2. Increments the balance of the destination sector
  3. Emits a SectorTransfer event for a clear audit trail
This ensures total supply of accounted assets remains constant across internal transfers, making the system resistant to accounting leaks or “lost” assets.

Core sectors

Dynamic sectors

Beyond the core sectors, the system creates dynamic sectors for per-vehicle operations:

Deposit flow

Assets flowing from users into sub-vehicles follow this path:
1

Asset reception

The user deposits base assets into the Multi-Vehicle. Assets transfer from ENTRY (virtual) to the DEPOSIT sector.
2

Allocation decision

The QueueStrategyEngine processes the deposit queue and determines which sub-vehicle receives the assets.
3

Query dispatch

Assets move from DEPOSIT to the Vehicle Sector (staging), then to the Pending Sector when the STEAM query is created.
4

Asset commitment

Assets leave the accounting system. Pending Sector → EXIT (virtual). Ephemeral accounting estimates the expected shares to keep totalAssets accurate during this gap.
5

Settlement

When the sub-vehicle query settles (sync or async), shares enter the accounting system. ENTRY → ALLOCATION (virtual). Ephemeral estimates are replaced with actual values.
Between steps 4 and 5, assets exist outside the Multi-Vehicle’s accounting system (they are held by the sub-vehicle). Ephemeral accounting tracks their estimated value during this gap to keep totalAssets() and share price accurate.

Redeem flow

Assets flowing from sub-vehicles back to users follow the reverse path:
1

Unallocation decision

The QueueStrategyEngine processes the redeem queue and determines which sub-vehicle to unallocate from. ALLOCATION → Vehicle Sector.
2

Query dispatch

A STEAM redeem query is created. Vehicle Sector → Pending Sector.
3

Share commitment

Shares leave the accounting system. Pending Sector → EXIT (virtual). Ephemeral accounting estimates the expected base assets to keep totalAssets accurate.
4

Settlement

Base assets arrive from the sub-vehicle. ENTRY → REDEEM (virtual). Ephemeral estimates are replaced with actual values.
5

Asset return

The user withdraws their base assets. REDEEM → EXIT.

Example: deposit cycle walkthrough

A Multi-Vehicle starts with 100k in total assets. A user deposits 50k, which is allocated to an Aave sub-vehicle.Key insight: totalAssets stays at ~150k through every step. At T3, the 50k has left the system (Pending → EXIT) but shares haven’t arrived yet (ENTRY → ALLOCATION hasn’t happened). Ephemeral accounting bridges this gap by estimating the expected share value.

Asynchronous redemptions

When immediate liquidity is insufficient, the QueryRedeemQueue handles fulfillment over time:
  1. User requests a redemption that exceeds available liquidity
  2. A demand is created in the QueryRedeemQueue for the unfulfilled portion
  3. A keeper or operator provides liquidity by calling feedQueryRedeemQueue
  4. FIFO position-based matching pairs demands with fulfillments as liquidity arrives
  5. The user receives assets (full or partial) as liquidity becomes available

Ephemeral accounting

One of the most critical challenges in async asset management is accounting for value that has been committed but not yet received. When a deposit to a sub-vehicle is PROCESSING, the Multi-Vehicle no longer has the base assets, but it does not yet have the shares. The SubQueryEngine manages ephemeral accounting to bridge this gap:
When a sub-query enters PROCESSING, assets leave the accounting system (Pending Sector → EXIT) and the system uses the vehicle’s estimate() function to determine the expected output. This estimated value is tracked as ephemeral accounting. On settlement, shares enter the system (ENTRY → ALLOCATION) and the ephemeral estimation is replaced with actual values.

Exchange rate and share price

Multi-Vehicle uses the ERC-4626 standard for pricing:
The totalAssets() function aggregates value across all sectors:
By including both settled and in-flight value, Multi-Vehicle ensures that its share price always reflects the true underlying value of the entire portfolio.

Monitoring

Operators should track these key metrics:
  • DEPOSIT — Amount of idle capital
  • ALLOCATION — Total deployed capital
  • REDEEM — Liquidity ready for withdrawal
  • PENDING — Assets in flight
  • Demand — Total pending redemptions in the QueryRedeemQueue
  • Fulfillment — Available liquidity for matching
  • Average wait time — User experience metric
  • Per-vehicle — totalAssets, share price, query states
  • Distribution — Actual vs target allocations across sub-vehicles
Best practices:
  • Monitor pending sectors for high balances indicating slow query settlement
  • Maintain sufficient DEPOSIT/REDEEM balances for immediate withdrawals
  • Regularly fulfill the QueryRedeemQueue to minimize user wait times
  • Validate sector balances for accounting integrity with regular audits

Next steps

Multi-Vehicle architecture

How Multi-Vehicle orchestrates capital across sub-vehicles.

The STEAM standard

The state machine interface that drives all deposit and redeem queries.

Create an Allocation Strategy

Deploy an Allocation Strategy (MultiVehicle) ecosystem.

Operate an Allocation Strategy

Day-to-day operations including queue management and rebalancing.