Skip to main content
Virtual Environments are private blockchain environments that fork a live network and behave like a mainnet you control. They give you the realism of a production chain (oracle prices, live pools, governance state) with none of the cost or risk. You interact with them through the same JSON-RPC your tools already speak, plus an enriched Admin RPC for cheatcodes, and a visual dashboard with a block explorer.
Virtual Environment Home view showing the Integrate Virtual RPC section with Admin RPC and Public RPC endpoints, setup steps, Network Mirror, Bridge, and Contracts cards, and the attached network with chain IDs and block numbers

What you can build with them

  • A local node replacement. Code, test, and debug every part of your dapp (smart contracts, dapp UI, backend, indexing layer) against a network that mirrors mainnet state.
  • CI/CD infrastructure. Provision a fresh Virtual Environment per pull request, deploy your contracts, run your tests, and tear it down. The GitHub Actions guides cover the pattern.
  • Staging and demo environments. Run the full dapp against a forked mainnet for manual QA, community testing, contract audits, or sales demos. Reviewers see a real block explorer; you don’t move real funds.
  • Cross-chain testing. Attach multiple networks to one Virtual Environment and exercise bridge flows end-to-end. The Multichain Quickstart walks through the setup.

Start here

Quickstart

Launch your first Virtual Environment, fund an account, and send a transaction.

Multichain Quickstart

Set up a Virtual Environment that spans multiple networks and run a cross-chain transaction with automatic bridge relay.

Network sync modes

Every Virtual Environment has a network sync mode that controls how it relates to its parent network after creation:
  • Static (default): The Virtual Environment stays at the forked block head with no live updates from the parent network. State changes only through your own transactions and cheatcodes.
  • State Only Sync: Storage slots keep tracking live parent-network values until your Virtual Environment writes to them. See State Sync.
  • Network Mirror: A full block-by-block replay of the parent network onto your Virtual Environment, with a visible mempool and time controls. See Network Mirror Mode.
The sync mode is set when you create a Virtual Environment and cannot be changed afterwards. To use a different mode, create a new Virtual Environment.

The building blocks

These pages explain what each piece of a Virtual Environment does and how it relates to the others. Read them before you need to debug something.

Explorer

Inspect transactions, contracts, wallets, and RPC calls on your Virtual Environment through a familiar block-explorer UI.

Unlimited Faucet

Top up native currency or ERC-20 balances on any account, with no real funds required.

State Sync

Keep storage slots tracking live mainnet values until your Virtual Environment writes to them.

Network Mirror Mode

Stay block-for-block aligned with the parent network, with a visible mempool and time controls.

Multichain Virtual Environments

One Virtual Environment, multiple networks, shared identity, unified timeline.

Bridges

Automatic relay for LayerZero, Chainlink CCIP, and Across between networks in a Multichain Virtual Environment.

How you interact with a Virtual Environment

You drive a Virtual Environment through four surfaces:
  • The Tenderly Dashboard, where you create the Virtual Environment, browse transactions, fund accounts, simulate transactions against the environment’s current state, and configure settings.
  • The Public RPC, a standard JSON-RPC endpoint that supports the methods any dapp or library already calls. Use this for your dapp UI, backend, and anything you would expose to external testers.
  • The Admin RPC, an enriched JSON-RPC endpoint that adds cheatcodes for setting balances, overriding storage, fast-forwarding time, deploying arbitrary bytecode, and synchronising with the live network. Use this from your dev tooling and tests, not from anything externally accessible. The full set of cheatcodes is documented in the Admin RPC reference.
  • The REST API, for creating, forking, and deleting Virtual Environments from scripts and CI pipelines. See the REST API reference; the GitHub Actions guides wrap it for pull-request workflows.
When you share a Virtual Environment with external testers or expose it through a dapp UI, hand out the Public RPC, not the Admin RPC. The Admin RPC lets the caller mutate balances, storage, time, and other network state in ways that can break your tests.

Common tasks

Add to a wallet

Connect MetaMask or another wallet to your Virtual Environment.

Connect your tooling

Point Foundry, Hardhat, ethers, viem, or your dapp UI at your Virtual Environment RPC.

Deploy and verify contracts

Deploy with Foundry or Hardhat, with automatic contract verification.

Simulate transactions

Dry-run transactions against the Virtual Environment’s current state before sending them.

Fork a Virtual Environment

Branch an existing Virtual Environment into a new one at its current state.

Revert state

Take snapshots and roll the Virtual Environment back to them.

Supported networks

Virtual Environments work on 100+ EVM networks. See supported networks for the full list.

See also