In Railnet smart contracts, an Allocation Strategy is implemented as a MultiVehicle. See Glossary for all terminology.
Prerequisites
- A deployed Allocation Strategy ecosystem (see Create an Allocation Strategy)
- Your External Access Control (EAC) contract address
- At least one authorized yield source
- The following roles on your EAC, scoped to the Sector Accounting Engine:
MULTI_VEHICLE_MOVE_ASSETSMULTI_VEHICLE_DISPATCHMULTI_VEHICLE_REBALANCE(for rebalancing operations)
Operating a platform-owned Allocation Strategy
If a Conduit owner deployed the Allocation Strategy and invited you to manage it, be aware of the guardrails:- Yield source authorization is controlled by the owner. You manage allocations within the set of sources they have authorized.
- Fee structure is set by the owner. You earn through the configured performance fee share.
- Admin access remains with the owner. You cannot grant roles to others or change the access control configuration.
Authorize yield sources
Before your Allocation Strategy can allocate assets to a yield source, you must authorize that source in the Vehicle Registry.The Vehicle Registry validates that yield sources use the same base asset as the Allocation Strategy and implement the STEAM standard as
SingleAsset vehicles.MULTI_VEHICLE_SET_VEHICLE_AUTHORIZATION role scoped to the Sector Accounting Engine.
Find your Sector Accounting Engine address
Yield source authorization is performed on the Sector Accounting Engine. You can find its address from the MultiVehicle contract or via the Railnet subgraph.
Authorize a yield source
Call
syncVehicleActivationStatus on the Sector Accounting Engine to authorize a yield source.Configure allocation queues
The Queue Strategy Engine determines how assets are distributed across authorized yield sources using deposit and redeem queues.Target semantics
- Deposit queue
- Redeem queue
In the deposit queue,
target acts as a ceiling — the maximum shares to allocate to a yield source before moving to the next entry.- The queue processes in order: the first entry is filled first, up to its target, then the second entry, and so on.
type(uint256).maxmeans no limit (allocate all available to this source).- The queue does not enforce ongoing ratios. If yields diverge across sources, allocations will drift.
[{Aave, target: 80000e18}, {Compound, target: 20000e18}]:- First 80,000 shares go to Aave
- Next 20,000 shares go to Compound
- Any additional shares overflow to subsequent entries
Set queues
Requires:MULTI_VEHICLE_SET_QUEUES role scoped to the Queue Strategy Engine.
How asset flow works
Assets in an Allocation Strategy flow through distinct sectors tracked by the Sector Accounting Engine:- Deposit sector — idle liquidity waiting to be allocated
- Vehicle pending sector — assets earmarked for a specific yield source but not yet deposited
- Vehicle active sector — assets deposited and earning yield in a yield source
- Redeem sector — assets withdrawn from yield sources and awaiting user claims
View holdings and allocations
Before operating, check the current state of your Allocation Strategy’s sectors and allocations.Move assets to a yield source
UsemoveAssets to transfer the deposit asset (e.g. USDC) from the idle deposit sector to a yield source’s pending sector. This stages the assets for dispatch.
Moving assets does not deposit them into the yield source yet. You must call
dispatch afterward to execute the deposit.Dispatch assets to a yield source
After moving assets to a yield source’s pending sector, calldispatch to create a deposit query on the yield source. This executes the actual deposit.
Rebalance between yield sources
Rebalancing moves assets directly from one yield source to another in a single atomic transaction. The Sector Accounting Engine handles the redeem from the source and deposit into the destination.Handle user deposits
When users deposit into the Allocation Strategy, assets flow through the STEAM lifecycle. With allocation queues configured, deposits are automatically distributed to yield sources based on the deposit queue priority.Handle redemptions
Redemptions follow the STEAM lifecycle. The Queue Strategy Engine processes redeems according to the redeem queue priority.Keeper integration
Keepers are off-chain bots that automate routine operations. As an operator, understanding keeper integration helps you decide what to automate vs manage manually.What keepers automate
| Operation | Description |
|---|---|
| Redemption queue feeding | Provides liquidity to the redemption queue when there is pending demand |
| Asset retrieval | Retrieves settled assets from the redemption queue back to accounting |
| Fee share redemption | Progresses redemption queries for fee shares |
| Sub-query progression | Advances async sub-queries (e.g. Ethena withdrawals) |
What remains manual
| Operation | Why |
|---|---|
| Capital allocation (moveAssets) | Requires strategic judgment |
| Dispatching to yield sources | Depends on allocation strategy |
| Rebalancing | Market-driven decision |
| Queue configuration changes | Strategic decision |
Check keeper status
If your Allocation Strategy is registered with the keeper system, verify automation is running:Update queue priorities
You can change the allocation strategy at any time by updating the deposit and redeem queues.Troubleshooting
Stuck redemptions
Stuck redemptions
If redemptions are not progressing (e.g. due to keeper failure or insufficient liquidity):1. Feed the redeem queue — If withdrawable assets are available:2. Progress stuck sub-queries — If a sub-query is stuck in a non-terminal state:3. Dispatch staged assets — If assets are in a yield source sector with no active query:
Stuck deposits
Stuck deposits
If a deposit query is stuck in Check the yield source’s STEAM state to understand what transition is needed.
PROCESSING state, the yield source may require manual progression (common with async protocols like Ethena):Failed dispatches
Failed dispatches
If
dispatch reverts, common causes include:- No pending assets — Check the yield source’s pending sector has a non-zero balance
- Source not authorized — Verify the yield source is still authorized in the Vehicle Registry
- Missing role — Confirm you have
MULTI_VEHICLE_DISPATCHscoped to the Sector Accounting Engine - Source rejection — The yield source’s
createfunction may be reverting (check the underlying protocol’s status)
Allocation queue not behaving as expected
Allocation queue not behaving as expected
Remember that queues use ceiling (deposit) and floor (redeem) semantics:
- Deposit queue targets are maximums, not ratios — allocations will drift with yield
- If all yield sources have reached their ceiling, new deposits stay in the idle sector
- Redeem queue targets are minimums — a source won’t be drained below its target
Next steps
Risk management
Evaluate yield sources, manage concentration risk, and handle emergencies.
Configure fees
Set up performance, management, and transactional fee structures.