Skip to main content
This page covers the smart contract implementation details. See Glossary.
WrapperVehicle wraps an existing ERC20 token into a STEAM-compatible Vehicle without adding yield logic. It provides a 1:1 exchange ratio — depositing X tokens gives X shares, and redeeming X shares returns X tokens.

How it works

WrapperVehicle is always synchronous. Deposits and withdrawals complete in a single transaction with no cooldown periods or withdrawal queues. The contract holds the underlying ERC20 token and issues STEAM-compatible shares against it. Because there is no yield source, the share price remains constant at 1:1 with the underlying token.

Use cases

  • Access control overlays — restrict who can hold or transfer a token by wrapping it in a WrapperVehicle with an AccountList module
  • Fee application — apply deposit, redeem, management, or performance fees to any ERC20 token via a FeeManager
  • Integration testing — use WrapperVehicle as a predictable, zero-yield sub-vehicle when testing MultiVehicle or Conduit configurations
  • STEAM compatibility — make any ERC20 token composable with Railnet infrastructure (MultiVehicles, Conduits) without building a custom Vehicle adapter

Deployment

WrapperVehicle instances are deployed via the WrapperVehicleFactory. The factory handles dead share initialization and registry configuration.

Composability

Because WrapperVehicle implements the full STEAM interface, it can be:
  • Registered as a sub-vehicle in a MultiVehicle
  • Wrapped by a Conduit for distribution with custom fees and branding
  • Combined with any standard Railnet module (AccountList, FeeManager, TransferMode)