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

# FAQ: Верификация контрактов

> Приватная верификация контрактов в публичных сетях с помощью Hardhat или Foundry, отмена публичной верификации и верификация прокси и деплоев hardhat-ignition.

<div className="flex flex-col gap-4 mt-8">
  <Card>
    <div className="flex flex-col gap-2">
      <h2 id="i-verified-my-contract-publicly-but-want-it-to-be" className="text-xl font-semibold">Я верифицировал свой контракт публично, но хочу, чтобы он был приватным. Можно ли убрать публичную верификацию контракта?</h2>

      <hr className="dark:border-neutral-800" />

      <div>
        Чтобы вернуть контракт в приватное состояние и сделать его видимым только в рамках вашего проекта, [обратитесь в нашу службу поддержки](https://tenderly.co/contact-us) или напишите на [support@tenderly.co](mailto:support@tenderly.co). Обязательно предоставьте своё имя пользователя, проект и адрес контракта. Наша команда удалит публичную верификацию для указанного контракта.
      </div>
    </div>
  </Card>

  <Card>
    <div className="flex flex-col gap-2">
      <h2 id="how-do-i-privately-verify-contracts-from-public-ne" className="text-xl font-semibold">Как приватно верифицировать контракты из публичных сетей (Mainnet, Holesky и т. д.) в Tenderly?</h2>

      <hr className="dark:border-neutral-800" />

      <div>
        Приватная верификация означает, что контракты будут видны только пользователям Tenderly, имеющим доступ к вашему проекту.

        * При верификации через Hardhat необходимо [установить флаг `config.tenderly.private`](/contract-verification/hardhat#configure) в `hardhat.config.ts`. Контракты будут верифицированы публично, если вы не укажете этот флаг.
        * При верификации через Foundry [Verifier URL](/contract-verification/foundry#verifier-url) должен заканчиваться на **`/public`**:
          ```bash theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
          ## private verification URL
          https://api.tenderly.co/api/v1/account/me/project/project/etherscan/verify/network/8253

          ## public verification URL
          https://api.tenderly.co/api/v1/account/me/project/project/etherscan/verify/network/8253/public
          ```
      </div>
    </div>
  </Card>

  <Card>
    <div className="flex flex-col gap-2">
      <h2 id="if-i-publicly-verify-a-contract-on-tenderly-will-i" className="text-xl font-semibold">Если я публично верифицирую контракт в Tenderly, будет ли он оставаться видимым после того, как я удалю его из своих контрактов?</h2>

      <hr className="dark:border-neutral-800" />

      <div>
        Да, публично верифицированные контракты остаются видимыми даже после удаления их из вашего списка контрактов. Чтобы
        ваши контракты были видны только в рамках вашего проекта, используйте вместо этого приватную верификацию. Узнайте больше
        о [различных типах верификации и процессе
        верификации](/contract-verification/overview).
      </div>
    </div>
  </Card>

  <Card>
    <div className="flex flex-col gap-2">
      <h2 id="how-can-i-verify-contracts-with-hardhat-ignition" className="text-xl font-semibold">Как верифицировать контракты с помощью hardhat-ignition?</h2>

      <hr className="dark:border-neutral-800" />

      <div>
        Разверните с помощью `hardhat ignition deploy` и обязательно добавьте **`--deployment-id`** с конкретным значением при запуске команды.

        ```bash lines={4} theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
        TENDERLY_AUTOMATIC_VERIFICATION=true \
        npx hardhat ignition deploy ./ignition/modules/Lock.ts \
            --network virtual_base \
            --deployment-id deploy-to-virtual-base
        ```
      </div>
    </div>
  </Card>

  <Card>
    <div className="flex flex-col gap-2">
      <h2 id="how-do-i-verify-contracts-automatically-with-harhd" className="text-xl font-semibold">Как автоматически верифицировать контракты с помощью плагина hardhat-tenderly?</h2>

      <hr className="dark:border-neutral-800" />

      <div>
        * **Для версий `>= 2.4.0 и >=1.10.0`** плагин распознаёт переменную окружения **`TENDERLY_AUTOMATIC_VERIFICATION`**. Используйте её, чтобы включать или отключать автоматическую верификацию.
          Пример:

          ```bash filename="bash.sh" theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
          TENDERLY_AUTOMATIC_VERIFICATION=true npx hardhat deploy
          ```

          * **Для версий `< 2.4.0 и < 1.10.0`** необходимо вызвать `tenderly.setup` в `hardhat.config.ts` следующим образом, чтобы управлять автоматической верификацией.

            ```js filename="hardhat.config.js" theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
            tenderly.setup({ automaticVerifications: !!process.env.TENDERLY_AUTOMATIC_VERIFICATION })
            ```
      </div>
    </div>
  </Card>

  <Card>
    <div className="flex flex-col gap-2">
      <h2 id="do-i-need-to-call-tenderly-setup-in-hardhat-config" className="text-xl font-semibold">Нужно ли вызывать tenderly.setup() в hardhat.config.ts?</h2>

      <hr className="dark:border-neutral-800" />

      <div>
        Начиная с версий 2.4.0 и 1.10.0, вам не нужно вызывать метод `tenderly.setup`.
      </div>
    </div>
  </Card>

  <Card>
    <div className="flex flex-col gap-2">
      <h2 id="how-should-i-name-networks-in-hardhat-config-ts" className="text-xl font-semibold">Как называть сети в hardhat.config.ts?</h2>

      <hr className="dark:border-neutral-800" />

      <div>
        * Публичные сети могут иметь любое имя.

          Для виртуальных окружений, в зависимости от версии `@tenderly/hardhat-tenderly`:

          * имя сети **должно быть `tenderly`** в **версиях `< 2.4.0` и `< 1.10.0`**.
          * имя сети может быть любым в **версиях `>= 2.4.0` и `>= 1.10.0`**.
      </div>
    </div>
  </Card>

  <Card>
    <div className="flex flex-col gap-2">
      <h2 id="how-do-i-verify-proxy-contracts-in-hardhat" className="text-xl font-semibold">Как верифицировать прокси-контракты в Hardhat?</h2>

      <hr className="dark:border-neutral-800" />

      <div>
        * Автоматическая верификация прокси-контрактов работает «из коробки» в **версиях `>= 2.1.0` и `>= 1.10.0`**.

          * Для версий **`< 2.4.0` и `< 1.10.0`** следуйте [обходному решению для автоматической верификации прокси](/contract-verification/hardhat-proxy).
          * Чтобы избежать обходного решения:

          ```bash filename="upgrade.sh" theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
          npm update @tenderly/hardhat-tenderly
          ```
      </div>
    </div>
  </Card>
</div>
