In user-facing documentation, a MultiVehicle is referred to as a Strategy. See Glossary.
Architecture overview
A Multi-Vehicle is composed of 6 interconnected components:The 6 components
1. MultiVehicle (main contract)
The STEAM-compliant entry point that users interact with directly. User operations:- Deposit assets — receive Multi-Vehicle shares
- Redeem shares — receive base assets back
- User-facing STEAM operations (
create,resume,unlock,recover) - Share minting and burning using ERC-4626-style exchange rates
- Integration with QueryRedeemQueue for asynchronous redemptions
2. SectorAccountingEngine
The central accounting system implementing double-entry bookkeeping principles. Every asset movement is recorded as a transfer between sectors, ensuring the total supply of accounted assets remains constant.| Sector | Type | Description |
|---|---|---|
| ENTRY | Virtual | Assets entering the system (accounting only) |
| DEPOSIT | Physical | Idle base assets awaiting allocation |
| ALLOCATION | Physical | Sub-vehicle shares (deployed capital) |
| REDEEM | Physical | Base assets ready for withdrawal |
| EXIT | Virtual | Assets leaving the system (accounting only) |
| Vehicle sectors | Staging | Per-vehicle staging areas |
| Pending sectors | Ephemeral | Assets in active queries (in-flight) |
3. QueueStrategyEngine
Defines the allocation strategy through configurable priority queues. The asset manager sets up deposit and redeem queues that control how capital is distributed.Deposit queue
A prioritized list of{vehicle, target} pairs:
- Processes in order (index 0 = highest priority)
target= maximum shares to allocate to a vehicle before moving to the next entry- Stops when the vehicle reaches its target, hits
maxDepositable, or assets are exhausted
The deposit queue does not enforce ongoing ratios. If a vehicle grows past its target from yield alone, new deposits skip it and go to the next queue entry.
Redeem queue
A prioritized list of{vehicle, target} pairs where target represents a floor (minimum shares to maintain):
- Processes in order (index 0 = highest priority)
- Redeems from a vehicle down to its floor
- Moves to the next entry if more assets are needed
4. SubQueryEngine
Manages the STEAM query lifecycle for operations dispatched to sub-vehicles. It tracks ephemeral accounting to prevent share price distortion during asynchronous operations. Ephemeral accounting ensures thattotalAssets() remains accurate even when assets are in-flight:
- When a sub-query enters PROCESSING, the system uses the vehicle’s
estimate()function to record expected outputs - As actual shares are received on settlement, the ephemeral estimate is replaced with real values
- This prevents spikes or drops in the Multi-Vehicle’s share price during async settlements
5. QueryRedeemQueue
Handles asynchronous redemptions when immediate liquidity is insufficient:- Demands — user redemption requests, created during redeem commit. Each demand records the shares owed and is assigned a sequential index.
- Fulfillments — liquidity provisions created by a keeper or operator calling
feedQueryRedeemQueue. Each fulfillment covers one or more demands using FIFO matching. - Partial fills — a single demand can be fulfilled across multiple rounds. The queue tracks cumulative fulfillment progress using binary search for efficient matching.
- Claiming — once fulfilled (partially or fully), users call
claimRedeemQueueto receive their base assets. No manual monitoring is needed — the queue tracks what’s owed.
6. VehicleRegistry
Manages authorization and configuration for sub-vehicles. Every vehicle must be registered here before it can receive capital from the Multi-Vehicle. Key responsibilities:- Validate vehicle compatibility (STEAM standard, SingleAsset, matching base asset)
- Store per-vehicle configuration (mode and cap)
- Enforce role-based access for authorization changes
The role of the asset manager
The asset manager configures and operates the Multi-Vehicle. Beyond setting initial parameters, they have four active levers.Rebalance capital
Move assets directly between sub-vehicles usingrebalance:
Manage sub-vehicles
Add or remove yield sources at any time:Reconfigure queues
Update allocation priorities without moving capital:Feed redemption liquidity
When async redemptions are pending in the QueryRedeemQueue, feed liquidity to fulfill demands:Authorization and guardrails
Every sub-vehicle must be explicitly authorized in the VehicleRegistry before it can receive capital. Authorization validates that the vehicle implements the STEAM standard, is aSingleAsset vehicle, and uses the same base asset as the Multi-Vehicle.
Vehicle configuration
Each authorized vehicle has a configuration with two parameters:| Parameter | Values | Description |
|---|---|---|
| Mode | Automatic (default), Manual | Automatic vehicles participate in queue-based allocation. Manual vehicles only receive capital through explicit rebalancing. |
| Cap | Share target (default: unlimited) | Maximum allocation target for this vehicle. Limits exposure to a single yield source. |
On-chain guardrails
Authorization and caps create enforceable boundaries:- Queue configuration cannot route capital to unauthorized vehicles
- Allocation caps limit exposure regardless of queue targets or active rebalancing
- Role-based access (via EAC) controls who can authorize vehicles, set caps, and reconfigure queues — allowing platforms commissioning a strategy to set guardrails that asset managers cannot override
Sync and async sub-vehicles
Multi-Vehicle orchestrates both synchronous and asynchronous sub-vehicles. Synchronous sub-vehicles (Aave, Compound, ERC-4626) complete in a single transaction:- Sub-queries remain in PROCESSING until the underlying protocol is ready
- Ephemeral accounting tracks expected outputs to prevent share price distortion
- The Keeper system automates monitoring and advancing nested operations
- Operators should monitor pending sectors for high balances indicating slow settlement
Design principles
- Separation of concerns — Each component has a single, well-defined responsibility
- Double-entry accounting — All asset movements are tracked through sector transfers
- Asynchronous by design — STEAM handles both sync and async operations gracefully
- Queue-based strategy — Flexible, operator-controlled allocation and redemption logic
- Accurate pricing — Ephemeral accounting ensures share price accuracy during in-flight operations