# Railnet and other standards \[How STEAM compares to ERC-4626, ERC-7540, and other vault approaches]

## ERC-4626

A synchronous vault interface: deposit and receive shares in one transaction. It cannot represent a pending request, so cooldowns, queues and epoch settlement fall outside it. Use it for vaults that settle atomically.

## ERC-7540

Adds asynchronous deposit and redeem requests on top of ERC-4626. The specification leaves out cancellation, request timestamps and an enforceable transition model, and a vault must be either fully synchronous or fully asynchronous, so partial fills and mixed execution are out of scope. Use it for one async vault.

## STEAM

Gives every operation a Query ID and a seven-state lifecycle with explicit transitions, so an Aave reserve that settles instantly and an ERC-7540 position that settles over days use the same interface. Failures are isolated per Query: `RECOVERING` returns assets, `REJECTED` closes the operation. Several Vehicles can sit behind one token, and one Vehicle can be distributed through several [Conduits](/developers/contracts/conduit) with their own fees, compliance and rewards.

| Capability | ERC-4626 | ERC-7540 | STEAM |
|---|---|---|---|
| Sync operations | Yes | Yes | Yes |
| Async operations | No | Yes | Yes |
| Mixed sync and async | N/A | No (vault-level choice) | Yes (per Vehicle) |
| Operation lifecycle | None | Pending / claimable | Seven states |
| Concurrent operations | N/A | Limited | Yes (unique Query IDs) |
| Rejection with asset return | No | No | Yes |
| Error recovery | No | No | Yes (`RECOVERING`) |
| Multi-source composition | No | No | Yes (MultiVehicle) |
| Distribution layer | No | No | Yes (Conduits) |
| Real-time NAV | External | External | Contract-native |
| Access control | External | External | Built in |
| Fee management | External | External | Built in |

## Other approaches

| Approach | Constraint | On Railnet |
|---|---|---|
| Morpho Vaults | ERC-4626 vaults built for Morpho Markets; Morpho writes no adapters for competing protocols | Any source, Morpho included, behind one standard |
| Lagoon and other ERC-7540 vaults | Requests batched per epoch, one pending redemption per controller, operator-pushed valuation | Per-Query lifecycle and concurrent partial requests; Lagoon connects through [`ERC7540Vehicle`](/yield-sources/erc-7540) |
| Veda (BoringVault) | One vault per partner, so rebalancing and Merkle tree management repeat per instance | One Strategy rebalanced once and wrapped by many Conduits |
| Yield routing APIs | Fees are a commercial arrangement; compliance and balances live in the provider's backend | Position in a Vehicle, product in a Conduit you own, fees and policy as contract state |

Railnet sits a layer above individual protocols. One source wrapped and distributed through a Conduit is the base case; composing several changes what the Conduit wraps, not your integration.
