# Deployed contracts \[Factory and infrastructure addresses per network]

Every Railnet deployment starts from a factory. The tables below list the factory and infrastructure addresses Railnet operates on each network, so you can verify on a block explorer exactly which contracts your Conduit and your Vehicle came from.

:::info
Railnet operates `spawn` on these factories: vehicle factories gate it on the `FACTORY_SPAWN` role and the ConduitFactory on `CONDUIT_SPAWN`, both held in the factory's own access control. Tell us what you need and Railnet deploys it for you, see [Quick start](/conduits/quick-start).
:::

This page covers factories and shared infrastructure only. For the live Vehicle instances behind each protocol, see the [yield source pages](/yield-sources).

## What each contract does

| Contract | Role |
|---|---|
| `AaveV3VehicleFactory` | Spawns Vehicles on Aave V3 markets, see [Aave V3](/yield-sources/aave-v3) |
| `ERC4626VehicleFactory` | Spawns Vehicles on any ERC-4626 vault, see [Any ERC-4626 vault](/yield-sources/erc-4626) |
| `ERC4626VehicleMaxFunctionsIgnoredFactory` | Same, for vaults whose `maxDeposit`/`maxRedeem` cannot be relied on |
| `ERC7540VehicleFactory` | Spawns Vehicles on asynchronous ERC-7540 vaults, see [Any ERC-7540 vault](/yield-sources/erc-7540) |
| `MorphoBlueVehicleFactory` | Spawns one Vehicle per Morpho Blue market, see [Morpho Blue](/yield-sources/morpho-blue) |
| `WrapperVehicleFactory` | Spawns Wrapper Vehicles, a 1:1 wrap of any ERC-20 for STEAM compatibility with no yield |
| `MultiVehicleFactory` | Spawns MultiVehicles, the contract behind an [Allocation Strategy](/strategies/allocation) |
| `ConduitFactory` | Spawns Conduits, see [Quick start](/conduits/quick-start) |
| `AccessControlFactory` | Spawns the External Access Control contract you pass to every other factory |
| `AccountListFactory` | Spawns AccountLists for allow-list, block-list and sanctions screening, see [Compliance](/conduits/compliance) |
| `FeeManagerFactory` | Spawns FeeManagers, see [Configure fees](/conduits/configure-fees) and [Fee manager](/developers/contracts/fee-manager) |
| `ModulesManagerFactory` | Spawns ModulesManagers, see [Modules](/developers/contracts/modules) |
| `OwnerRegistryFactory` | Spawns OwnerRegistries, which back wrapped-query NFTs on a Conduit |
| `AssetRegistry` | Holds the initial deposit amount each factory seeds a new deployment with, see [Asset registry](/developers/contracts/asset-registry) |
| `CoreFactory` | Performs the deterministic CREATE2 deployment the other factories delegate to |
| `QueryRegistry` | Records and transitions the state of every Query, see [STEAM standard](/developers/contracts/steam-standard) |
| `Keeper` | Automation account that drives asynchronous Query transitions |
| `MultiVehicleJobListing` | Keeper job listing for MultiVehicles |
| `AdminExternalAccessControl` | Railnet's own administrative ExternalAccessControl instance |

## Ethereum mainnet

Production network. Chain ID `1`, deployment slug `mainnet`, indexed from block `25882737`.

| Contract | Address |
|---|---|
| `AaveV3VehicleFactory` | [0x35672A7D07E9F3e4eCEA31f61A88CAe4d1A913d4](https://etherscan.io/address/0x35672A7D07E9F3e4eCEA31f61A88CAe4d1A913d4) |
| `ERC4626VehicleFactory` | [0x708F06B8D98075E6Feeb8E5A4DbFF1bB045D1F6d](https://etherscan.io/address/0x708F06B8D98075E6Feeb8E5A4DbFF1bB045D1F6d) |
| `ERC4626VehicleMaxFunctionsIgnoredFactory` | [0x9943d82bD6d9619BB22be62595Db5ae2906A6d6C](https://etherscan.io/address/0x9943d82bD6d9619BB22be62595Db5ae2906A6d6C) |
| `ERC7540VehicleFactory` | [0xc3d209dc3D9201C08577026Ef4822aa91a0aB0D6](https://etherscan.io/address/0xc3d209dc3D9201C08577026Ef4822aa91a0aB0D6) |
| `MorphoBlueVehicleFactory` | [0xFebD3ca7e01285e27299c7001307a3D64186Aa49](https://etherscan.io/address/0xFebD3ca7e01285e27299c7001307a3D64186Aa49) |
| `MultiVehicleFactory` | [0x8f69CAF97c17a482Fc03C06E1C879a91Db07cFDB](https://etherscan.io/address/0x8f69CAF97c17a482Fc03C06E1C879a91Db07cFDB) |
| `ConduitFactory` | [0x9A103cf026824Af04395e09516e68D96fcE6DC7a](https://etherscan.io/address/0x9A103cf026824Af04395e09516e68D96fcE6DC7a) |
| `AccessControlFactory` | [0xdCF574FB2198764F9d96c83b06E137358768FdF2](https://etherscan.io/address/0xdCF574FB2198764F9d96c83b06E137358768FdF2) |
| `AccountListFactory` | [0x29c41AA3dD96C0940952bA5a7D66141E7fc7B02d](https://etherscan.io/address/0x29c41AA3dD96C0940952bA5a7D66141E7fc7B02d) |
| `FeeManagerFactory` | [0x296B410D82ff467Fe60fd2137784517be701Ab77](https://etherscan.io/address/0x296B410D82ff467Fe60fd2137784517be701Ab77) |
| `ModulesManagerFactory` | [0xEe3fabccEb513Ea7A35722646C24bd7bC52C2BF8](https://etherscan.io/address/0xEe3fabccEb513Ea7A35722646C24bd7bC52C2BF8) |
| `OwnerRegistryFactory` | [0xc3dD54abB207e00C9c1856f802BB33ce2598B566](https://etherscan.io/address/0xc3dD54abB207e00C9c1856f802BB33ce2598B566) |
| `AssetRegistry` | [0x7a3263Aa3A084881705E6a71AebBFb3176Ed8005](https://etherscan.io/address/0x7a3263Aa3A084881705E6a71AebBFb3176Ed8005) |
| `CoreFactory` | [0xD9dBc05A44f8109b1f6a6e96Fac74623871F4633](https://etherscan.io/address/0xD9dBc05A44f8109b1f6a6e96Fac74623871F4633) |
| `QueryRegistry` | [0x69D9c06b318dAd03872a119Cb4a8db3600b21cE0](https://etherscan.io/address/0x69D9c06b318dAd03872a119Cb4a8db3600b21cE0) |
| `Keeper` | [0x62A27482BBABDB5B4A0868774e73d04E4F757B0F](https://etherscan.io/address/0x62A27482BBABDB5B4A0868774e73d04E4F757B0F) |
| `MultiVehicleJobListing` | [0xA52EBe60b6B2ACDB137594507d771Bb2c4003193](https://etherscan.io/address/0xA52EBe60b6B2ACDB137594507d771Bb2c4003193) |
| `AdminExternalAccessControl` | [0x6738cf7518363b9B122258E13b16F3815ebe0138](https://etherscan.io/address/0x6738cf7518363b9B122258E13b16F3815ebe0138) |

## Ethereum test environment

A separate set of contracts on Ethereum mainnet that Railnet uses for testing. Same chain, different addresses; do not mix them with the production set above. Chain ID `1`, deployment slug `mainnet_testnet`, indexed from block `25883509`.

| Contract | Address |
|---|---|
| `AaveV3VehicleFactory` | [0xAf7305b45C9D09ed04D40a7a254F9cD45C3DEc84](https://etherscan.io/address/0xAf7305b45C9D09ed04D40a7a254F9cD45C3DEc84) |
| `ERC4626VehicleFactory` | [0x1176181D73cD10A0e9e991Ff3a7551522b1b0437](https://etherscan.io/address/0x1176181D73cD10A0e9e991Ff3a7551522b1b0437) |
| `ERC4626VehicleMaxFunctionsIgnoredFactory` | [0x876b2Ce1ff5d26d1Df4456DFFBf0F68684336324](https://etherscan.io/address/0x876b2Ce1ff5d26d1Df4456DFFBf0F68684336324) |
| `ERC7540VehicleFactory` | [0xbeCA507C7F931446446BF3298D3c734B6Da9F63c](https://etherscan.io/address/0xbeCA507C7F931446446BF3298D3c734B6Da9F63c) |
| `MorphoBlueVehicleFactory` | [0x5F50eBfCFE9bbeE633A5eb4E82661606bCcd86e8](https://etherscan.io/address/0x5F50eBfCFE9bbeE633A5eb4E82661606bCcd86e8) |
| `MultiVehicleFactory` | [0x23EeE3C74Be85F7baeE847D79E696213B4a54687](https://etherscan.io/address/0x23EeE3C74Be85F7baeE847D79E696213B4a54687) |
| `WrapperVehicleFactory` | [0x1D7ec5f1497cEA05863a09dC29d6AD20053E50A8](https://etherscan.io/address/0x1D7ec5f1497cEA05863a09dC29d6AD20053E50A8) |
| `ConduitFactory` | [0x93D196eb87e683acfbfa423CaC0eAd6a6e497600](https://etherscan.io/address/0x93D196eb87e683acfbfa423CaC0eAd6a6e497600) |
| `AccessControlFactory` | [0xD0ab5E1C64ce534A6000Fc331ec2D0688d025bFd](https://etherscan.io/address/0xD0ab5E1C64ce534A6000Fc331ec2D0688d025bFd) |
| `AccountListFactory` | [0x58FAC4afF751A8ef22b8b393a73CCcFbb2D50870](https://etherscan.io/address/0x58FAC4afF751A8ef22b8b393a73CCcFbb2D50870) |
| `FeeManagerFactory` | [0x0b7B73c37dBEE61471432d023389039167880F00](https://etherscan.io/address/0x0b7B73c37dBEE61471432d023389039167880F00) |
| `ModulesManagerFactory` | [0x98bc1c818caA1b23219887DFeBc6CAAfb26e894d](https://etherscan.io/address/0x98bc1c818caA1b23219887DFeBc6CAAfb26e894d) |
| `OwnerRegistryFactory` | [0x313742D14F4e838f3684c3714408bC4Bcb411806](https://etherscan.io/address/0x313742D14F4e838f3684c3714408bC4Bcb411806) |
| `AssetRegistry` | [0xa2353277C57C8De726DEaeA0699a65895Fc31d7E](https://etherscan.io/address/0xa2353277C57C8De726DEaeA0699a65895Fc31d7E) |
| `CoreFactory` | [0x9BA9A04eA867596C34987e0dD6d0F61C5d05463D](https://etherscan.io/address/0x9BA9A04eA867596C34987e0dD6d0F61C5d05463D) |
| `QueryRegistry` | [0x599599BB3B63dB95d96EC5CBCc5C240582f3f50b](https://etherscan.io/address/0x599599BB3B63dB95d96EC5CBCc5C240582f3f50b) |
| `Keeper` | [0x3Ee8Fbc2f9fDB28d7fEBF40C1F32dc16EAe80d94](https://etherscan.io/address/0x3Ee8Fbc2f9fDB28d7fEBF40C1F32dc16EAe80d94) |
| `MultiVehicleJobListing` | [0x6D8cE96B09ff061bbbeEE73ed4aF96B2781f2071](https://etherscan.io/address/0x6D8cE96B09ff061bbbeEE73ed4aF96B2781f2071) |
| `AdminExternalAccessControl` | [0x97fFE39C94Fc6316730F2A523d63aBDd64882051](https://etherscan.io/address/0x97fFE39C94Fc6316730F2A523d63aBDd64882051) |

## Base test environment

Chain ID `8453` is Base mainnet, which Railnet uses as a test environment: the contracts are real and the chain is live, but the deployments are for integration testing rather than production distribution. The [test Conduit](/developers/integrate-conduit) integrators build against lives here. Deployment slug `base_testnet`, indexed from block `50745998`.

| Contract | Address |
|---|---|
| `AaveV3VehicleFactory` | [0x7a3263Aa3A084881705E6a71AebBFb3176Ed8005](https://basescan.org/address/0x7a3263Aa3A084881705E6a71AebBFb3176Ed8005) |
| `ERC4626VehicleFactory` | [0xD00134FD8Ad9A106E984E992f66E1a16B48ca286](https://basescan.org/address/0xD00134FD8Ad9A106E984E992f66E1a16B48ca286) |
| `ERC4626VehicleMaxFunctionsIgnoredFactory` | [0x4fA4298934991f975a4Efb2AFd1d9DFe1738E5B9](https://basescan.org/address/0x4fA4298934991f975a4Efb2AFd1d9DFe1738E5B9) |
| `ERC7540VehicleFactory` | [0x708F06B8D98075E6Feeb8E5A4DbFF1bB045D1F6d](https://basescan.org/address/0x708F06B8D98075E6Feeb8E5A4DbFF1bB045D1F6d) |
| `MorphoBlueVehicleFactory` | [0x9eE4AA99858cE24a54fceF8508f0aE3728c2C9e7](https://basescan.org/address/0x9eE4AA99858cE24a54fceF8508f0aE3728c2C9e7) |
| `MultiVehicleFactory` | [0x704F7701688c2cAe5D9735396494C75ce217dA8e](https://basescan.org/address/0x704F7701688c2cAe5D9735396494C75ce217dA8e) |
| `WrapperVehicleFactory` | [0x9943d82bD6d9619BB22be62595Db5ae2906A6d6C](https://basescan.org/address/0x9943d82bD6d9619BB22be62595Db5ae2906A6d6C) |
| `ConduitFactory` | [0xe32C8c7dAd1fCf776dfC7f5897A7FA64Bee0B927](https://basescan.org/address/0xe32C8c7dAd1fCf776dfC7f5897A7FA64Bee0B927) |
| `AccessControlFactory` | [0xc4D6d9d3ae5140e0182CFD790Ad2Fc8e558993f2](https://basescan.org/address/0xc4D6d9d3ae5140e0182CFD790Ad2Fc8e558993f2) |
| `AccountListFactory` | [0x9A103cf026824Af04395e09516e68D96fcE6DC7a](https://basescan.org/address/0x9A103cf026824Af04395e09516e68D96fcE6DC7a) |
| `FeeManagerFactory` | [0xdCF574FB2198764F9d96c83b06E137358768FdF2](https://basescan.org/address/0xdCF574FB2198764F9d96c83b06E137358768FdF2) |
| `ModulesManagerFactory` | [0xA6534a2E7CfEd3857A550bfCDbc39d01DA111a12](https://basescan.org/address/0xA6534a2E7CfEd3857A550bfCDbc39d01DA111a12) |
| `OwnerRegistryFactory` | [0xD0ab5E1C64ce534A6000Fc331ec2D0688d025bFd](https://basescan.org/address/0xD0ab5E1C64ce534A6000Fc331ec2D0688d025bFd) |
| `AssetRegistry` | [0x296B410D82ff467Fe60fd2137784517be701Ab77](https://basescan.org/address/0x296B410D82ff467Fe60fd2137784517be701Ab77) |
| `CoreFactory` | [0x19568D46f3cA6CF265bD865dcCE027EF2f2F99dF](https://basescan.org/address/0x19568D46f3cA6CF265bD865dcCE027EF2f2F99dF) |
| `QueryRegistry` | [0x7A6C0948373d96F9000D3DF6287aeFaA92AA0d24](https://basescan.org/address/0x7A6C0948373d96F9000D3DF6287aeFaA92AA0d24) |
| `Keeper` | [0x0b7B73c37dBEE61471432d023389039167880F00](https://basescan.org/address/0x0b7B73c37dBEE61471432d023389039167880F00) |
| `MultiVehicleJobListing` | [0xF9CC395c594B92B8B9aa35A6FcAdC7EDbaBfa22c](https://basescan.org/address/0xF9CC395c594B92B8B9aa35A6FcAdC7EDbaBfa22c) |
| `AdminExternalAccessControl` | [0xA7d48267F8245c25B682a22F31C6B8335C4944D8](https://basescan.org/address/0xA7d48267F8245c25B682a22F31C6B8335C4944D8) |

## Next steps

<Cards>
  <Card title="Quick start" description="Deploy your first Conduit on top of a yield source." icon="rocket" to="/conduits/quick-start" />

  <Card title="Yield sources" description="Browse the protocols Railnet connects and their live Vehicles." icon="layers" to="/yield-sources" />

  <Card title="Integrate a Conduit" description="Wire deposits and withdrawals into your application." icon="plug" to="/developers/integrate-conduit" />
</Cards>
