跳转到主要内容
Tenderly REST API 暴露了用于创建、列出和管理 Virtual Environments 的端点。有关如何从脚本调用它们的分步说明,请参见通过 API 创建 Virtual Environments。有关完整的 API 表面,请参见 API Reference 所有环境端点都使用以下基础 URL:
https://api.tenderly.co/api/public/v1/account/{accountSlug}/project/{projectSlug}

身份验证

所有请求都需要 X-Access-Key 标头。从 Tenderly Dashboard 中的 Account Settings → Authorization 生成密钥。参见 API 令牌
X-Access-Key: <your-access-key>

创建环境

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

请求体

字段类型必填描述
display_namestring在仪表板中显示的人类可读名称。
slugstringURL 安全的标识符。如果省略,则根据 display_name 自动生成。
network_configsarray环境中每个网络对应一个条目。
network_configs[].network_idstring要 fork 的网络的链 ID(例如 Ethereum 为 "1")。
network_configs[].block_numberstring以十六进制表示的 fork 起点。默认为最新区块。
network_configs[].chain_config_overrides.chain_idstring覆盖分配给此 Virtual Environment 的链 ID。
network_configs[].explorer_config.enabledboolean暴露公共浏览器页面
network_configs[].explorer_config.verification_visibilitystring"bytecode""abi""source"
network_configs[].accountsarray预先注资的账户。每个条目具有 addressbalance(Wei,十六进制编码)。
bridge_config.enabledboolean在此环境中启用网络之间的跨链桥接。
bridge_config.relay_modestring"autoRelay"(默认)或 "delayedRelay"
bridge_config.delay_secondsinteger使用 "delayedRelay" 时的中继延迟秒数。

单网络示例

request.json
{
  "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" }
    }
  ]
}

多网络示例

request.json
{
  "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 端点。
response.json
{
  "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(完整作弊码访问权限)和 Public RPC(标准 JSON-RPC)。

列出环境

GET /environments
返回该项目的所有环境。

获取环境

GET /environments/{environmentId}
按 ID 返回单个环境,包括其 active_instance 和 RPC 端点。

删除环境

DELETE /environments/{environmentId}
永久删除单个环境。返回 204 No Content

批量删除环境

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

列出交易

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

获取交易

GET /environments/{environmentId}/instance/{instanceId}/transactions/{txHash}
按交易哈希从环境实例返回单笔交易。

发送交易

POST /environments/{environmentId}/instance/{instanceId}/vnet/{vnetId}/transactions
在环境实例内的特定 Virtual Environment 上执行一笔交易。状态会被保留。

模拟交易

POST /environments/{environmentId}/instance/{instanceId}/vnet/{vnetId}/transactions/simulate
在不保留状态的情况下模拟一笔交易。支持区块覆盖、状态覆盖和自定义区块号。返回详细的模拟结果,包括调用跟踪、状态变化和发出的事件。

另请参阅