# Glossary \[Key terms and definitions used throughout Railnet documentation]

Every protocol-specific term in these docs. For a guided introduction, see [How it works](/overview/how-it-works).

:::details[Account Clone]
A lightweight `Account` contract a Vehicle clones per Query, salted with the query id, so protocols that bind an operation to its initiator see a distinct address each time.
:::

:::details[AccountList]
The compliance module on a Conduit: an allowlist, a blocklist and optional sanctions screening, answering `canDeposit`, `canRedeem`, `canTransfer`, `canReceive` and `canForceRedeem`, with precedence sanctions > blocklist > allowlist. `AllowlistMode` sets strictness: `OPEN`, `REGULAR` (deposits) or `STRICT` (deposits and transfers).
:::

:::details[Advanced Strategy]
A standalone strategy where an asset manager executes on protocols Railnet has no Vehicle for, such as swaps, borrows, bridges or RWA operations. On-chain it is a Specialized Vehicle.
:::

:::details[Allocation]
Deploying capital out of a MultiVehicle's AVAILABLE Sector into a sub-vehicle, through `dispatch()` on the SectorAccountingEngine under `MULTI_VEHICLE_DISPATCH`.
:::

:::details[Asset Manager]
The optional persona operating a composed product under a mandate: they select yield sources, authorize sub-vehicles and rebalance within guardrails they cannot override. None is involved when a Conduit wraps a single Vehicle.
:::

:::details[Async Vehicle]
A Vehicle whose operations span several transactions, because of a cooldown (Ethena's sUSDe) or a request queue (ERC-7540 vaults). Its Queries sit in PROCESSING until the protocol settles.
:::

:::details[Base Asset]
The primary asset a Vehicle, MultiVehicle or Conduit denominates in, returned by `asset()`; deposits, redemptions and share price are expressed in it.
:::

:::details[Conduit]
The distributor's product: it sits on one Vehicle, or on a MultiVehicle, and gives it a branded ERC-20 share token, its own fee schedule, compliance rules and reward interception rules.
:::

:::details[Cooldown Period]
A protocol-imposed delay between starting and completing a withdrawal, such as Ethena's multi-day sUSDe unstaking.
:::

:::details[Dead Shares]
Shares locked at the burn address from the factory's initial deposit, so `totalSupply` never reaches zero and the first depositor cannot manipulate the share price.
:::

:::details[Deposit]
A STEAM operation committing base assets in exchange for shares. The Query mode is `DEPOSIT`.
:::

:::details[Engine]
A contract inside a MultiVehicle owning one concern: SectorAccountingEngine for bookkeeping, SubQueryEngine for sub-vehicle queries, QueueStrategyEngine for allocation priority, QueryRedeemQueue for FIFO redemptions.
:::

:::details[Ephemeral Accounting]
The SubQueryEngine mechanism that counts the estimated value of in-flight Queries inside `totalAssets()`, so PROCESSING operations do not distort the share price.
:::

:::details[External Access Control (EAC)]
Railnet's central role registry, built on OpenZeppelin's `AccessControlDefaultAdminRules`. A role is global (`FACTORY_SPAWN`), scoped to one contract (`VEHICLE_STEAM_DEPOSIT`), or made public with `setRolePublic`.
:::

:::details[Factory]
The contract that deploys Vehicles and Conduits, gated by `FACTORY_SPAWN` (`CONDUIT_SPAWN` for Conduits) and fed by the AssetRegistry, which holds per-asset authorization and the anti-inflation initial deposit.
:::

:::details[FeeManager]
An optional contract attached to a Vehicle, MultiVehicle or Conduit at deployment, charging performance, management, deposit and redeem fees in basis points under an immutable ceiling.
:::

:::details[Fund of Funds]
A composition where a MultiVehicle holds other MultiVehicles or Specialized Vehicles as sub-vehicles, which works because MultiVehicle extends `BaseVehicle`.
:::

:::details[Guardrail]
A constraint the product owner sets on what an asset manager may do, such as which sub-vehicles they may allocate to.
:::

:::details[High Water Mark]
The highest `totalAssets()` previously checkpointed on a product with performance fees; the FeeManager charges only above it, so a loss must be recovered before fees resume.
:::

:::details[Interceptor]
The pattern for routing additional rewards: Vehicles and Conduits declare rules in `interceptions()`, which off-chain indexers read to route incentives and airdrops.
:::

:::details[Keeper]
Off-chain automation that watches on-chain conditions and submits the transactions advancing operations, such as processing Conduit queries under `CONDUIT_PROCESS`.
:::

:::details[Mandate]
A platform's request for an asset manager to operate one of its products, bounded by guardrails the manager cannot override.
:::

:::details[Module]
An extension registered through the ModulesManager, such as one claiming external rewards. Enabling it takes `addModule` from an account holding `MODULE_MANAGER`, then `allowModule` from the Vehicle itself.
:::

:::details[MultiVehicle]
A Vehicle orchestrating positions across several other Vehicles behind a single share token, implementing an Allocation Strategy in user-facing terms. A Conduit wraps it exactly as it wraps a single Vehicle.
:::

:::details[NAV (Net Asset Value)]
The real-time on-chain valuation of assets under management, computed by `totalAssets()` with no off-chain oracle and including in-flight operations.
:::

:::details[Platform]
The distributor persona: an exchange, wallet, neobank, fintech, custodian or fund allocator that deploys Conduits to offer yield to its own users.
:::

:::details[Policy Engine]
The on-chain governance layer inside a Specialized Vehicle, constraining the asset manager through contract whitelists, function-level permissions, calldata checks and a guardian timelock.
:::

:::details[Query]
A deposit or redeem request in STEAM, carrying an owner, receiver, input and output assets, a mode and a unique salt. Queries are independent, so one failure never blocks another.
:::

:::details[Rebalance]
Shifting capital between sub-vehicles of a MultiVehicle: the asset manager chains a REDEEM `dispatch()` out of the source and a DEPOSIT `dispatch()` into the destination under one `operationId`.
:::

:::details[Redeem]
A STEAM operation returning shares in exchange for base assets. The Query mode is `REDEEM`.
:::

:::details[Route]
A supported input/output asset combination. `routes()` returns the deposit routes and the redeem routes, so integrators discover what a Vehicle accepts and returns.
:::

:::details[Sector]
A partition in MultiVehicle accounting; every movement has a source and a destination Sector, so the books always balance. ENTRY and EXIT are virtual endpoints, AVAILABLE holds idle assets, ALLOCATION holds sub-vehicle shares, RESERVED holds earmarked assets, and dynamic Sectors are derived per sub-vehicle.
:::

:::details[Share Price]
The ratio `totalAssets() / totalSupply()`, which rises as the underlying yield sources earn and sets deposit and redemption amounts.
:::

:::details[Specialized Vehicle]
The on-chain implementation of an Advanced Strategy: a non-custodial Safe holding the positions, a Zodiac Roles policy engine constraining the manager, and a Lagoon ERC-7540 vault issuing shares against a proposed NAV. Railnet connects that vault with the generic `ERC7540Vehicle` in full-async mode.
:::

:::details[STEAM]
State Transition Engine for Asset Management, the interface every Vehicle implements. Its state machine has seven states: EMPTY, PROCESSING, PAUSED, UNLOCKING, SETTLED, RECOVERING and REJECTED.
:::

:::details[Sub-Vehicle]
A Vehicle managed by a MultiVehicle rather than taking direct user deposits; its returns fold into the MultiVehicle's single share price.
:::

:::details[Sync Vehicle]
A Vehicle that completes an operation in one transaction, moving a Query from EMPTY to UNLOCKING inside `create()`. The Aave V3, Morpho Blue and ERC-4626 Vehicles are sync.
:::

:::details[Transfer Policy]
The two gates a Conduit applies to a user share transfer, combined by `isTransferable`: `transferEnabled`, a one-way latch flipped on under `CONDUIT_SET_TRANSFER_ENABLED`, and the AccountList's `canTransfer`. Minting, burning, fee accrual and `forceRedeem` bypass both.
:::

:::details[Treasury Wallet]
The non-custodial multi-chain programmable wallet of a Specialized Vehicle, controlled by the on-chain policy engine.
:::

:::details[Unlock]
The STEAM method that finalizes a successful operation: called while the Query is UNLOCKING, it pays the receiver and moves the Query to SETTLED. A partial unlock returns the Query to PROCESSING for the remainder.
:::

:::details[Vehicle]
A contract implementing STEAM for exactly one yield source, exposing `create()`, `resume()`, `unlock()` and `recover()`. It is usable alone, as a sub-vehicle of a MultiVehicle, or as the source a Conduit distributes.
:::

:::details[VehicleManager]
The management contract of a MultiVehicle: it authorizes and configures sub-vehicles, sets `maxTotalAssets` and thresholds, and is the accessor for the four Engines.
:::

:::details[Withdrawal Queue]
A protocol mechanism filling redemption requests as settlement or liquidity allows; Railnet's ERC-7540 Vehicles batch demand in an `ERC7540VehicleQueue` drained by a permissionless `processRequest()`.
:::

:::details[WrapperVehicle]
A Vehicle that wraps an existing ERC-20 one-for-one for STEAM compatibility without adding yield, used for access control overlays, fee application or testing. Always synchronous.
:::

:::details[Yield Source]
The DeFi protocol position a Vehicle wraps, one per Vehicle: a lending market (Aave V3, Morpho Blue), a staking protocol (Ethena), or a tokenized vault (ERC-4626, ERC-7540).
:::
