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

# REST API

> Tenderly REST API 端点参考，用于创建和管理 Virtual Environments，包括单网络和多网络环境。

Tenderly REST API 暴露了用于创建、列出和管理 Virtual Environments 的端点。有关如何从脚本调用它们的分步说明，请参见[通过 API 创建 Virtual Environments](/virtual-environments/develop/create-virtual-environment-via-api)。有关完整的 API 表面，请参见 [API Reference](/api-reference)。

所有环境端点都使用以下基础 URL：

```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
https://api.tenderly.co/api/public/v1/account/{accountSlug}/project/{projectSlug}
```

## 身份验证

所有请求都需要 `X-Access-Key` 标头。从 Tenderly Dashboard 中的 **Account Settings → Authorization** 生成密钥。参见 [API 令牌](/platform/account/projects/api-tokens)。

```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
X-Access-Key: <your-access-key>
```

## 创建环境

```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
POST /environments
```

创建一个包含一个或多个网络的新环境。单网络和多网络环境都使用此端点，为单网络环境在 `network_configs` 中传入一个条目，为多网络环境传入多个条目。

### 请求体

| 字段                                                          | 类型      | 必填 | 描述                                                           |
| ----------------------------------------------------------- | ------- | -- | ------------------------------------------------------------ |
| `display_name`                                              | string  | 是  | 在仪表板中显示的人类可读名称。                                              |
| `slug`                                                      | string  | 否  | URL 安全的标识符。如果省略，则根据 `display_name` 自动生成。                     |
| `network_configs`                                           | array   | 是  | 环境中每个网络对应一个条目。                                               |
| `network_configs[].network_id`                              | string  | 是  | 要 fork 的网络的链 ID（例如 Ethereum 为 `"1"`）。                        |
| `network_configs[].block_number`                            | string  | 否  | 以十六进制表示的 fork 起点。默认为最新区块。                                    |
| `network_configs[].chain_config_overrides.chain_id`         | string  | 否  | 覆盖分配给此 Virtual Environment 的链 ID。                            |
| `network_configs[].explorer_config.enabled`                 | boolean | 否  | 暴露[公共浏览器页面](/virtual-environments/explorer#public-explorer)。 |
| `network_configs[].explorer_config.verification_visibility` | string  | 否  | `"bytecode"`、`"abi"` 或 `"source"`。                           |
| `network_configs[].accounts`                                | array   | 否  | 预先注资的账户。每个条目具有 `address` 和 `balance`（Wei，十六进制编码）。            |
| `bridge_config.enabled`                                     | boolean | 否  | 在此环境中启用网络之间的跨链桥接。                                            |
| `bridge_config.relay_mode`                                  | string  | 否  | `"autoRelay"`（默认）或 `"delayedRelay"`。                         |
| `bridge_config.delay_seconds`                               | integer | 否  | 使用 `"delayedRelay"` 时的中继延迟秒数。                                |

### 单网络示例

```json title="request.json" theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "display_name": "Staging Mainnet",
  "slug": "staging-mainnet",
  "network_configs": [
    {
      "network_id": "1",
      "block_number": "latest",
      "chain_config_overrides": { "chain_id": "73571" },
      "explorer_config": { "enabled": false, "verification_visibility": "bytecode" }
    }
  ]
}
```

### 多网络示例

```json title="request.json" theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "display_name": "Cross-chain Staging",
  "network_configs": [
    {
      "network_id": "1",
      "block_number": "latest",
      "chain_config_overrides": { "chain_id": "1" }
    },
    {
      "network_id": "42161",
      "block_number": "latest",
      "chain_config_overrides": { "chain_id": "42161" }
    },
    {
      "network_id": "8453",
      "block_number": "latest",
      "chain_config_overrides": { "chain_id": "8453" }
    }
  ],
  "bridge_config": { "enabled": true, "relay_mode": "autoRelay" }
}
```

### 响应

返回创建的环境对象。`active_instance.vnets` 数组每个网络包含一个条目，每个条目都有其 RPC 端点。

```json title="response.json" theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "id": "d998eea3-139d-4477-9de2-42f7739362f0",
  "display_name": "Staging Mainnet",
  "slug": "staging-mainnet",
  "created_at": "2026-06-08T10:00:00.000Z",
  "networks": [
    {
      "id": "a1b2c3d4-...",
      "network_id": "1",
      "network_name": "Ethereum Mainnet",
      "block_number": "0x168a5c6"
    }
  ],
  "active_instance": {
    "id": "e5f6a7b8-...",
    "vnets": [
      {
        "id": "f9e8d7c6-...",
        "display_name": "Staging Mainnet",
        "slug": "staging-mainnet",
        "status": "running",
        "rpcs": [
          { "name": "Admin RPC", "url": "https://virtual.mainnet.rpc.tenderly.co/..." },
          { "name": "Public RPC", "url": "https://virtual.mainnet.rpc.tenderly.co/..." }
        ],
        "fork_config": { "network_id": 1, "block_number": "0x168a5c6" }
      }
    ]
  }
}
```

每个条目上的 `rpcs` 数组包含 Admin RPC（完整[作弊码](/virtual-environments/admin-rpc)访问权限）和 Public RPC（标准 JSON-RPC）。

## 列出环境

```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
GET /environments
```

返回该项目的所有环境。

## 获取环境

```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
GET /environments/{environmentId}
```

按 ID 返回单个环境，包括其 `active_instance` 和 RPC 端点。

## 删除环境

```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
DELETE /environments/{environmentId}
```

永久删除单个环境。返回 `204 No Content`。

## 批量删除环境

```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
DELETE /environments
```

在一次调用中永久删除多个环境。在请求体中传入 ID。

## 列出交易

```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
GET /environments/{environmentId}/instance/{instanceId}/transactions
```

返回环境实例中所有 Virtual Environments 的交易。支持分页以及按状态、类别、类型和 from/to 地址进行的可选过滤。

## 获取交易

```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
GET /environments/{environmentId}/instance/{instanceId}/transactions/{txHash}
```

按交易哈希从环境实例返回单笔交易。

## 发送交易

```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
POST /environments/{environmentId}/instance/{instanceId}/vnet/{vnetId}/transactions
```

在环境实例内的特定 Virtual Environment 上执行一笔交易。状态会被保留。

## 模拟交易

```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
POST /environments/{environmentId}/instance/{instanceId}/vnet/{vnetId}/transactions/simulate
```

在不保留状态的情况下模拟一笔交易。支持区块覆盖、状态覆盖和自定义区块号。返回详细的模拟结果，包括调用跟踪、状态变化和发出的事件。

## 另请参阅

* [通过 API 创建 Virtual Environments](/virtual-environments/develop/create-virtual-environment-via-api)，完整的脚本演练
* [Admin RPC 参考](/virtual-environments/admin-rpc)，Admin RPC 上可用的作弊码
* [API Reference](/api-reference)，完整的 Tenderly API 表面
