Authentication
All requests require anX-Access-Key header. Generate a key from Account Settings → Authorization in the Tenderly Dashboard. See API tokens.
Create a single-network Virtual Environment
Request body
| Field | Type | Description |
|---|---|---|
slug | string | Unique identifier for the Virtual Environment. Used in the RPC URL. |
display_name | string | Human-readable name shown in the dashboard. |
fork_config.network_id | integer | Network to fork (chain ID of the parent network). |
fork_config.block_number | string | "latest" or a specific block number in hex. |
virtual_network_config.chain_config.chain_id | integer | Chain ID assigned to the Virtual Environment itself. |
sync_state_config.enabled | boolean | Whether to enable State Sync. |
sync_state_config.commitment_level | string | Commitment level for State Sync ("latest" is typical). |
explorer_page_config.enabled | boolean | Whether to expose a public explorer page. |
explorer_page_config.verification_visibility | string | "bytecode", "source", or "abi". Controls what the public explorer reveals about verified contracts. |
Example request
request.json
Response
Returns the created Virtual Environment, including its RPC URLs:response.json
rpcs array contains both the Admin RPC (full cheatcode access) and the Public RPC (standard JSON-RPC), plus their WebSocket variants.
Create a Multichain Virtual Environment
stack_id. This grouping is what enables cross-chain bridging.
Request body
The body has one top-level field,vnets, which is an array. Each entry creates one network inside the Multichain Virtual Environment:
| Field (per entry) | Type | Description |
|---|---|---|
slug | string | Unique identifier for this network. Used in the RPC URL. |
fork_config.network_id | integer | Network to fork. 1 Ethereum, 42161 Arbitrum, 10 Optimism, 8453 Base, 137 Polygon. |
fork_config.block_number | string | "latest" or a specific block number in hex. |
virtual_network_config.chain_config.chain_id | integer | Chain ID for the Virtual Environment. Use the real chain ID or a custom one. By default the dashboard assigns a Virtual Chain ID. |
Example request
request.json
Response
Returns astack_id (the Multichain Virtual Environment identifier) and an array of Virtual Environment objects, each with its own RPC endpoints:
response.json
See also
- Create Virtual Environments via API for the how-to walkthrough.
- Admin RPC reference for cheatcodes available once the Virtual Environment is running.
- Full API Reference for every Tenderly API endpoint, not just Virtual Environments.