> ## 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.

# Named RPC URLs

> Присвойте RPC URL Virtual Environment фиксированное человекочитаемое имя, чтобы CI/CD и локальные конфигурации никогда не менялись при повторных форках.

По умолчанию RPC URL Virtual Environment содержит случайно сгенерированный идентификатор, который меняется каждый раз, когда вы создаёте или пересоздаёте (re-fork) окружение. Named RPC URL заменяет этот идентификатор выбранным вами именем, так что URL остаётся неизменным при повторных форках. Это устраняет необходимость обновлять CI-секреты, `.env`-файлы или зашитые RPC URL каждый раз, когда вы разворачиваете свежее окружение под pull request, локальный dev-цикл или стейджинговый деплой.

## Формат RPC URL

<Frame caption="Раздел Advanced диалога Create Virtual Environment: Named RPC URL включён, а поле Add named endpoint открыто, показывая опцию создания нового имени.">
  <img src="https://mintcdn.com/tenderly/t9EqhphGfQpnmZbq/images/testnets/named-rpc-url-create.webp?fit=max&auto=format&n=t9EqhphGfQpnmZbq&q=85&s=93bd08cd0b82aeab6aad808aa0e7f9d6" alt="Advanced section of the Create Virtual Environment dialog with the Named RPC URL toggle enabled and the Add named endpoint combobox open showing a Create option for a new name" width="600" height="382" data-path="images/testnets/named-rpc-url-create.webp" />
</Frame>

Без имени идентификатор в RPC URL генерируется автоматически, например `https://virtual.mainnet.eu.rpc.tenderly.co/tenderly/demo/89e9b3-4bcd00`, и новый генерируется каждый раз, когда вы делаете повторный форк.

С привязанным именем Public и Admin RPC URL принимают следующий вид:

| Эндпоинт   | Формат URL                                                                                   | Заметки                                                                                                                                                                    |
| ---------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Public RPC | `https://virtual.[NETWORK].[REGION].rpc.tenderly.co/[ACCOUNT]/[PROJECT]/[RPC_NAME]`          | Только стандартный JSON-RPC, безопасно делиться с внешними тестировщиками или встраивать в UI dapp.                                                                        |
| Admin RPC  | `https://virtual.[NETWORK].[REGION].rpc.tenderly.co/[ACCOUNT]/[PROJECT]/[RPC_NAME]-[SUFFIX]` | `[SUFFIX]` — случайная строка, которую Tenderly добавляет, чтобы [эндпоинт с чит-кодами](/virtual-environments/admin-rpc) оставался неугадываемым, даже если имя публично. |

`[REGION]` — это `eu` или `us-east`, в зависимости от того, что вы выбрали при назначении имени. `[RPC_NAME]` должно быть уникальным в рамках вашего проекта. После того как имя привязано, именно оно, а не автосгенерированный идентификатор, остаётся неизменным при повторных форках.

## Назначение имени при создании Virtual Environment

1. Начните [создание Virtual Environment](/virtual-environments/quickstart) и разверните раздел **Advanced**.
2. Включите **Named RPC URL**.
3. В **Add named endpoint** введите новое имя и выберите **Create `<name>`** или выберите существующее имя из списка.
4. Нажмите **Create Virtual Environment**.

Admin и Public RPC URL для нового окружения доступны на его странице **Home** в разделе **Integrate Virtual RPC**.

<Frame caption="Панель Integrate Virtual RPC на странице Home Virtual Environment, показывающая разрешённые Admin RPC и Public RPC URL после привязки имени.">
  <img src="https://mintcdn.com/tenderly/t9EqhphGfQpnmZbq/images/testnets/named-rpc-url-home.webp?fit=max&auto=format&n=t9EqhphGfQpnmZbq&q=85&s=22d65050416dff69c60dfda9055f5b41" alt="Integrate Virtual RPC panel showing the resolved Admin RPC URL ending in the name plus a random suffix, the Public RPC URL ending in just the name, and the chain id" width="1198" height="140" data-path="images/testnets/named-rpc-url-home.webp" />
</Frame>

## Изменение или удаление имени после создания

Откройте страницу **Settings** Virtual Environment. Раздел **Named RPC URL** там повторяет тот, что в диалоге создания:

* Чтобы переназначить окружение на другое имя, откройте селектор имён и выберите другую запись или введите новое имя и выберите **Create `<name>`**.
* Чтобы отвязать имя от этого окружения, отключите **Named RPC URL** и сохраните. Само имя не удаляется, оно просто становится свободным для привязки в другом месте.

## Имя соответствует одному окружению за раз

Привязка имени к Virtual Environment — это отношение «один к одному». В селекторе имён существующие имена, которые уже назначены в другом месте проекта, помечены как **In use on another environment**. Выбор одного из них привязывает его к текущему окружению и отвязывает от окружения, которому оно принадлежало ранее, — так что named RPC URL того окружения перестаёт там разрешаться и вместо этого маршрутизируется к текущему окружению.

Это делает переключение цели фиксированного RPC URL одним действием: создайте окружение-замену, назначьте ему то же имя, которое было у выводимого из эксплуатации, — и каждый скрипт, CI-пайплайн или конфигурация dapp, указывающие на этот URL, теперь разрешаются в новое окружение без каких-либо изменений с их стороны.

## Задание имени через REST API

Передайте `rpcName` при создании окружения через эндпоинт создания окружения:

```bash title="environment-create-named.sh" theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
curl --request POST \
  --url https://api.tenderly.co/api/v1/account/me/project/project/environments \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header "X-Access-Key: ${TENDERLY_ACCESS_KEY}" \
  --data '{
    "displayName": "My Staging Environment",
    "rpcName": "my-staging-rpc",
    "networkConfigs": [
      {
        "networkId": "1",
        "chainConfigOverrides": { "chainId": "1" },
        "blockNumber": "latest",
        "region": "eu",
        "explorerConfig": { "enabled": false, "contractVerificationVisibility": "bytecode" }
      }
    ]
  }'
```

Прочитайте окружение обратно через [справочник REST API](/virtual-environments/rest-api#get-an-environment), чтобы получить разрешённые RPC URL:

```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
curl --request GET \
  --url https://api.tenderly.co/api/public/v1/account/me/project/project/environments/{environmentId} \
  --header "X-Access-Key: ${TENDERLY_ACCESS_KEY}"
```

Массив `active_instance.vnets[].rpcs` содержит именованные Admin и Public RPC URL:

```json theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
{
  "rpcs": [
    { "name": "Admin RPC", "url": "https://virtual.mainnet.eu.rpc.tenderly.co/tenderly/project/my-staging-rpc-800896" },
    { "name": "Public RPC", "url": "https://virtual.mainnet.eu.rpc.tenderly.co/tenderly/project/my-staging-rpc" }
  ]
}
```

## См. также

* [Quickstart](/virtual-environments/quickstart) — полный процесс создания Virtual Environment.
* [Admin RPC](/virtual-environments/admin-rpc) — чит-коды, доступные в Admin RPC.
* [CI/CD с GitHub Actions](/virtual-environments/ci-cd/github-actions-foundry) — пайплайны, создающие и удаляющие окружения для каждого pull request.
