> ## Documentation Index
> Fetch the complete documentation index at: https://docs.railnet.org/llms.txt
> Use this file to discover all available pages before exploring further.

# WrapperVehicle

> A Vehicle that wraps ERC20 tokens for STEAM compatibility

<Info>This page covers the smart contract implementation details. See [Glossary](/developers/glossary).</Info>

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)
