> For the complete documentation index, see [llms.txt](https://docs.rome.builders/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rome.builders/ru/rukovodstva-dlya-razrabotchikov/verify-contracts.md).

# Проверка контрактов

Rome использует размещённый [Sourcify](https://sourcify.dev) сервис верификации. После проверки контракта его исходный код и ABI становятся общедоступными и отображаются со **✓ Исходный код подтверждён** значком в обозревателе блоков Rome (Via).

Верификация работает со стандартными `forge verify-contract` и `hardhat-verify` потоками — вам нужно лишь указать в них верификатор Rome.

## Конечная точка верификатора

| Среда            | URL верификатора                          |
| ---------------- | ----------------------------------------- |
| Testnet и Devnet | `https://verify.testnet.romeprotocol.xyz` |

Один общий экземпляр обслуживает все сети Rome testnet/devnet — вы выбираете сеть с помощью стандартного `--chain-id` флага.

## Foundry

После развертывания (см. [Развертывание контрактов Solidity](/ru/rukovodstva-dlya-razrabotchikov/deploy-solidity.md)):

```bash
forge verify-contract <CONTRACT_ADDRESS> src/MyContract.sol:MyContract \\
  --verifier sourcify \\
  --verifier-url https://verify.testnet.romeprotocol.xyz/ \\
  --chain-id <YOUR_CHAIN_ID> \\
  --compiler-version 0.8.20
```

Если конструктор принимал аргументы, передайте их, чтобы байткод совпадал:

```bash
  --constructor-args $(cast abi-encode "constructor(uint256)" 42)
```

Вы также можете выполнить верификацию во время развертывания с помощью `forge create … --verify` или `forge script … --verify` (Foundry определяет идентификатор сети из `--rpc-url`).

## Hardhat

`hardhat-verify` поставляется вместе с toolbox Hardhat 3. Укажите в его провайдере Sourcify верификатор Rome в `hardhat.config.ts` и выполните `hardhat verify`:

```typescript
export default defineConfig({
  // …плагины, Solidity, сети…
  verify: {
    etherscan: { enabled: false },
    blockscout: { enabled: false },
    sourcify: {
      enabled: true,
      apiUrl: "https://verify.testnet.romeprotocol.xyz",
    },
  },
});
```

```bash
npx hardhat verify --network <your-network> <CONTRACT_ADDRESS> [constructor args…]
```

При успешной верификации верификатор размещает ссылку на опубликованный исходный код, например `https://verify.testnet.romeprotocol.xyz/repo-ui/<CHAIN_ID>/<ADDRESS>`.

## Проверка статуса верификации

Обозреватель читает статус верификации из API верификатора. Вы можете запросить его напрямую:

```bash
curl https://verify.testnet.romeprotocol.xyz/v2/contract/<CHAIN_ID>/<ADDRESS>
```

Для верифицированного контракта возвращается поле `match` ::

* **`exact_match`** — байткод *и* совпадает по хэшу метаданных (идеальное, «полное» совпадение).
* **`match`** — байткод совпадает; метаданные немного отличаются (тем не менее это подлинное, подтверждённое совпадение).
* `404` / `null` — не верифицировано.

## Примечания

* Для верификации нужны только развёрнутый байткод вашего контракта, исходный код и настройки компилятора, которые вы отправляете — те же входные данные, что и в любой EVM-сети.
* Новые сети Rome автоматически подключаются к верификатору; если вы развернули контракт в новой сети, а верификация пока не находит его, подождите немного или свяжитесь с нами.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.rome.builders/ru/rukovodstva-dlya-razrabotchikov/verify-contracts.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
