Перейти к основному содержанию
Используйте REST API для создания Virtual Environments из скриптов, CI/CD задач или любого бэкенда. Те же эндпоинты обслуживают панель управления. Полные схемы запросов и ответов см. в справочнике REST API.

Прежде чем начать

  • Access key от Tenderly. Экспортируйте его как TENDERLY_ACCESS_KEY в вашем шелле.
  • Слаги вашего аккаунта и проекта, доступные в URL Tenderly Dashboard.
export TENDERLY_ACCESS_KEY=# the key you copied

Создание одиночной Virtual Environment

1
Вызовите API
2
Отправьте POST на эндпоинт vnets с вашей конфигурацией форка и цепочки:
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.

Дальнейшие шаги