Перейти к основному содержанию
REST API Tenderly предоставляет эндпоинты для создания, получения списка и управления Virtual Environments. Пошаговое руководство по их вызову из скрипта см. в Создание Virtual Environments через API. Полную поверхность API см. в API Reference. Все эндпоинты окружений используют базовый URL:
https://api.tenderly.co/api/public/v1/account/{accountSlug}/project/{projectSlug}

Аутентификация

Все запросы требуют заголовок X-Access-Key. Сгенерируйте ключ в Account Settings → Authorization в Tenderly Dashboard. См. API-токены.
X-Access-Key: <your-access-key>

Создание окружения

POST /environments
Создаёт новое окружение с одной или несколькими сетями. Как одиночные, так и мультисетевые окружения используют этот эндпоинт — передайте одну запись в network_configs для одиночного окружения или несколько записей для мультисетевого.

Тело запроса

ПолеТипОбязательноеОписание
display_namestringдаЧитаемое имя, отображаемое в панели.
slugstringнетURL-безопасный идентификатор. Автогенерируется из display_name, если опущено.
network_configsarrayдаОдна запись на каждую сеть в окружении.
network_configs[].network_idstringдаChain ID сети для форка (например, "1" для Ethereum).
network_configs[].block_numberstringнетТочка форка в hex. По умолчанию — последний блок.
network_configs[].chain_config_overrides.chain_idstringнетПереопределяет chain ID, назначаемый этой Virtual Environment.
network_configs[].explorer_config.enabledbooleanнетОткрыть страницу публичного обозревателя.
network_configs[].explorer_config.verification_visibilitystringнет"bytecode", "abi" или "source".
network_configs[].accountsarrayнетЗаранее пополненные аккаунты. Каждая запись содержит address и balance (Wei, hex-кодированный).
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
Симулирует транзакцию без сохранения состояния. Поддерживает переопределения блока, переопределения состояния и произвольный номер блока. Возвращает подробный результат симуляции, включая call trace, изменения состояния и эмитируемые события.

См. также