跳转到主要内容
使用 REST API 从脚本、CI/CD 作业或任何后端创建 Virtual Environments。仪表板背后使用的是相同的端点。 有关完整的请求和响应架构,请参见 REST API 参考

开始之前

  • 一个 Tenderly access key。在您的 shell 中将其导出为 TENDERLY_ACCESS_KEY
  • 您的账户和项目 slug,可在 Tenderly Dashboard 的 URL 中查看。
export TENDERLY_ACCESS_KEY=# the key you copied

创建单网络 Virtual Environment

1
调用 API
2
使用您的 fork 和链配置向 vnets 端点发送 POST 请求:
3
RESPONSE=$(curl --request POST \
  --url https://api.tenderly.co/api/v1/account/me/project/project/vnets \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header "X-Access-Key: ${TENDERLY_ACCESS_KEY}" \
  --data '{
    "slug": "my-staging-testnet-25",
    "display_name": "My Staging TestNet",
    "fork_config":            { "network_id": 1, "block_number": "latest" },
    "virtual_network_config": { "chain_config": { "chain_id": 73571 } },
    "sync_state_config":      { "enabled": false, "commitment_level": "latest" },
    "explorer_page_config":   { "enabled": false, "verification_visibility": "bytecode" }
  }')
4
提取 Admin RPC URL
5
响应中的 rpcs 数组包含 Admin 和 Public RPC URL。将 Admin RPC 提取出来供脚本的其余部分使用:
6
ADMIN_RPC=$(echo $RESPONSE | jq -r '.rpcs[] | select(.name == "Admin RPC") | .url')

创建 Multichain Virtual Environment

Multichain Virtual Environment 通过 multivnets 端点在一次调用中创建。调用中的所有网络都归入同一个 stack_id,这正是使它们之间的跨链桥接成为可能的原因。
multivnet-create.sh
curl --location 'https://api.tenderly.co/api/v1/account/me/project/project/multivnets' \
  --header 'accept: application/json, text/plain, */*' \
  --header "X-Access-Key: ${TENDERLY_ACCESS_KEY}" \
  --header 'content-type: application/json' \
  --data '{
    "vnets": [
      {
        "slug": "mainnet-staging",
        "fork_config":            { "network_id": 1,     "block_number": "latest" },
        "virtual_network_config": { "chain_config": { "chain_id": 1 } }
      },
      {
        "slug": "arbitrum-staging",
        "fork_config":            { "network_id": 42161, "block_number": "latest" },
        "virtual_network_config": { "chain_config": { "chain_id": 42161 } }
      },
      {
        "slug": "base-staging",
        "fork_config":            { "network_id": 8453,  "block_number": "latest" },
        "virtual_network_config": { "chain_config": { "chain_id": 8453 } }
      }
    ]
  }'
vnets 数组中的每个条目在 Multichain Virtual Environment 内创建一个网络。响应返回一个 stack_id 和一个 Virtual Environment 对象数组,每个对象都有自己的 RPC 端点。 按字段划分的架构请参见 REST API 参考

后续步骤