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

# Верификация контрактов через Dashboard

> Узнайте, как публично и приватно верифицировать смарт-контракты в браузере через Tenderly Dashboard.

<Info>
  **Работает на:** публичных сетях (mainnet и testnet). Чтобы верифицировать контракт в Virtual Environment, см. [Деплой и верификация контрактов](/virtual-environments/develop/deploy-contracts).
</Info>

Верифицируйте смарт-контракты прямо из браузера в Tenderly Dashboard. Это самый быстрый путь, если вы не используете Hardhat или Foundry; если используете, то соответствующие рабочие процессы [Hardhat](/contract-verification/hardhat) или [Foundry](/contract-verification/foundry) автоматизируют этот процесс.

## Предварительные требования

Для верификации контракта необходимо предоставить:

* **Исходный код**
* **Точные настройки компилятора**, использованные при компиляции развёрнутой версии

Загрузить исходный код через Dashboard можно несколькими способами:

* Загрузив JSON-файл с [метаданными контракта](https://docs.soliditylang.org/en/latest/metadata.html), сгенерированными компилятором
* Вставив исходный код напрямую
* Загрузив файл исходного кода с вашей файловой системы
* Загрузив всю директорию со всеми смарт-контрактами. Это упрощает верификацию контрактов, которые импортируют другие файлы.

## Публичная и приватная верификация

При верификации смарт-контрактов необходимо выбрать один из двух режимов: **приватный** или **публичный.**

* **Публичный (в Tenderly)**: верифицированный контракт и его исходный код доступны всем пользователям Tenderly. Вам комфортно делиться контрактом с пользователями за пределами вашего проекта. Вы хотите разрешить вызывающим ваш контракт использовать инструменты мониторинга.
* **Приватный (в Tenderly)**: верифицированный контракт виден только команде/соавторам. Подходит на этапе разработки контракта.

<br />

Столбец **Verification** во вкладке Contracts показывает, верифицирован ли ваш контракт вообще, и если да — приватно или публично.

<Frame caption="Статус верификации добавленных контрактов">
  <img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/screenshotr_2022-9-19T16-58-0%202.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=1b7c4bb5cc17d7b8e424f408ce1137a1" alt="Статус верификации добавленных контрактов" width="1000" height="625" data-path="images/screenshotr_2022-9-19T16-58-0 2.webp" />
</Frame>

## Руководство по верификации контрактов через Dashboard

После того как вы [добавили неверифицированный контракт](/developer-explorer/contracts) в проект Tenderly, вот шаги для его верификации через Dashboard.

<Steps>
  ### Найдите неверифицированный контракт

  В Dashboard найдите свой неверифицированный контракт в списке Contracts и нажмите кнопку **Verify** рядом со статусом верификации.

  <img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/image6.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=005d863e2ef32f46672aa735376c6770" alt="Начало верификации контракта" width="1000" height="625" data-path="images/image6.webp" />

  ### Выберите способ загрузки

  Выберите один из вариантов:

  * **JSON Upload**: вставьте JSON-метаданные, сгенерированные компилятором Solidity.
  * **ABI Upload**: вставьте ABI контракта.
  * **Contract Source Upload**: вставьте исходный код напрямую, загрузите один файл исходного кода или загрузите всю директорию проекта. Вариант с директорией лучше всего подходит для контрактов, которые импортируют другие контракты проекта.

      <img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/image2.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=f906995ad39e27831da42bf3100cba05" alt="Варианты загрузки файлов" width="1000" height="625" data-path="images/image2.webp" />

  ### Выберите контракт и видимость

  Если загрузка содержит несколько контрактов, выберите тот, который соответствует адресу, показанному на предыдущем шаге. Переключите **Make Private** для [приватной верификации](#public-and-private-verification).

  <img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/image8.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=b88ad85cb84f9ca32751e73a82588e07" alt="Выбор режима (переключатель &#x22;Make Private&#x22;) и контракта для верификации" width="1000" height="625" data-path="images/image8.webp" />

  Если каких-то импортов не хватает, Dashboard предложит добавить их перед продолжением.

  ### Задайте настройки компилятора

  Заполните версию компилятора, настройки оптимизатора (включён / runs), версию EVM и пары адресов библиотек, если ваш контракт использует связанные библиотеки. Любое несоответствие с развёрнутым байткодом приведёт к сбою верификации.

  <img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/image5.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=4f7f7741f903205cf6ced4fdf193683a" alt="Введите точные настройки компилятора. Любое несоответствие приведёт к сбою валидации." width="1000" height="625" data-path="images/image5.webp" />

  ### Завершение

  Нажмите **Finish** для отправки. Статус верификации контракта обновится в списке Contracts.
</Steps>

## Как верифицировать смарт-контракты пакетно

Если вы добавили в проект несколько неверифицированных контрактов, их можно верифицировать пакетно. Выполните следующие шаги:

<Steps>
  ### Найдите все неверифицированные контракты

  Нажмите **Verify All Contracts** в разделе Contract.
  Откроется модальное окно со списком всех неверифицированных контрактов вашего проекта.

  <img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/image9.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=c0c7f5a7f6f081c97191b7eedaf0e855" alt="" width="1000" height="625" data-path="images/image9.webp" />

  ### Добавьте исходный код для каждого контракта

  Нажмите **Add Source** рядом с каждым контрактом и укажите загрузку, настройки компилятора и переключатель видимости так же, как в [сценарии с одним контрактом](#dashboard-contract-verification-guide) выше.

  <img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/image3.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=d01f3ab8ba5bd33282ecf389709ff44f" alt="" width="1000" height="625" data-path="images/image3.webp" />

  ### Завершение

  Нажмите **Finish** для отправки. После верификации всех контрактов выберите, отображать ли их в списке транзакций проекта.
</Steps>
