> 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/nachalo-raboty/quickstart.md).

# Быстрый старт

Разверните свой первый контракт Solidity в Rome менее чем за 5 минут.

Разверните свой первый контракт Solidity в Rome менее чем за 5 минут. Это руководство предназначено для [**Hadrian**](/ru/seti/hadrian.md), публичной тестовой сети. [Rubicon](/ru/seti/rubicon.md) это основная сеть, где газ — это реальные USDC; сначала попробуйте всё в тестовой сети.

## Требования

* [Node.js](https://nodejs.org/) v22.13+
* [MetaMask](https://metamask.io/) расширение браузера
* Кошелек Solana, настроенный на **Devnet**, только если вы пополняете из Solana (шаг 2). Вызов контрактов из кошелька Solana требует кошелек, который подписывает транзакции Solana v1, что рассматривается в [Откройте свой контракт для пользователей Solana](/ru/rukovodstva-dlya-razrabotchikov/open-to-solana-users.md).

## 1. Добавьте Hadrian в MetaMask

Добавьте его вручную (Настройки → Сети → Добавить сеть):

| Поле                | Значение                                        |
| ------------------- | ----------------------------------------------- |
| Имя сети            | Rome Hadrian                                    |
| URL RPC             | `https://hadrian.testnet.romeprotocol.xyz/`     |
| ID цепочки          | `200010`                                        |
| Символ валюты       | `USDC`                                          |
| Обозреватель блоков | `https://via-hadrian.testnet.romeprotocol.xyz/` |

## 2. Пополните свой кошелек

Газ оплачивается газовым токеном сети, которым на Hadrian является USDC. На Hadrian он обеспечен Solana Devnet USDC от Circle (mint `4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU`), поэтому devnet SOL — это не газ. Фаусета Rome нет. Есть два способа получить USDC в Hadrian:

**Из Solana** — получите Solana Devnet USDC из [кран Circle](https://faucet.circle.com/) (выберите Solana Devnet) и немного devnet SOL для комиссий Solana из [крана Solana](https://faucet.solana.com/), при этом ваш кошелек Solana должен быть настроен на Devnet. Затем используйте [моста Rome](/ru/prilozheniya-v-rome/bridge-api.md) с Hadrian в качестве пункта назначения и его маршрутом Solana, указав адрес вашего EVM-кошелька в качестве получателя; мост просит этот EVM-кошелек подписать транзакцию claim в Hadrian, что превращает USDC в газ.

**Через мост из EVM-цепочки** — отчеканьте тестовые USDC в Ethereum Sepolia из [кран Circle](https://faucet.circle.com/), затем перенесите их в Rome с помощью [моста Rome](/ru/prilozheniya-v-rome/bridge-api.md) (CCTP). Вам понадобится немного Sepolia ETH для исходной транзакции — см. [Краны](/ru/resursy/faucets.md) для каждого фаусета.

**Сколько?** Запись в Rome стоит дороже, чем подсказывает интуиция Ethereum, потому что большая часть газа идет на создание аккаунтов Solana: получателя, который еще никогда не использовался, новой учетной записи токена, развернутого контракта. Используйте `eth_estimateGas`, что и делают стандартные инструменты, и никогда не жестко задавайте 21 000. Оценка включает создание аккаунта, Rome взимает газ, который транзакция фактически использует (по измерениям на Hadrian это никогда не превышало оценку), а SDK `submitRomeTx` увеличивает оценку в 1,3 раза как запас, что ничего не стоит, потому что взимается только использованный газ. Пополняйте как минимум **0,5 USDC газа**; 1 USDC оставляет комфортный запас. Числа в [Поддержка JSON-RPC](/ru/spravochnik/json-rpc.md) показывают, сколько стоят отдельные записи.

Если депозит на стороне Solana завершается с предупреждением "insufficient SOL", несмотря на пополненный кошелек, установите для вашего кошелька Solana Testnet Mode / Devnet (см. [Часто задаваемые вопросы](/ru/resursy/faq.md)).

## 3. Создайте проект Hardhat

```bash
mkdir rome-hello && cd rome-hello
npx hardhat --init
```

Примите значения по умолчанию при появлении запроса — Hardhat 3, текущий каталог и шаблон TypeScript + Node Test Runner + viem — и дайте ему установить зависимости. В шаблоне поставляется пример `Counter` контракт с тестами; они не мешают этому руководству.

## 4. Настройте Hardhat для Rome

Отредактируйте сгенерированный `hardhat.config.ts` и добавьте сети Rome внутри `defineConfig({ ... })`:

```typescript
  networks: {
    hadrian: {
      type: "http",
      chainType: "l1",
      chainId: 200010,
      url: "https://hadrian.testnet.romeprotocol.xyz/",
      accounts: [configVariable("PRIVATE_KEY")],
    },
  },
```

`configVariable("PRIVATE_KEY")` подхватывается из окружения, поэтому экспортируйте свой приватный ключ MetaMask:

```bash
export PRIVATE_KEY="0xYOUR_PRIVATE_KEY"
```

(Для чего-либо, кроме одноразового ключа, предпочтите зашифрованное хранилище, которое входит в комплект инструментов: `npx hardhat keystore set PRIVATE_KEY`.)

## 5. Напишите контракт

Создайте `contracts/HelloRome.sol`:

```solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;

contract HelloRome {
    string public greeting = "Hello from Solana!";
    uint256 public counter;

    event Greeted(address indexed sender, uint256 count);

    function greet() external returns (string memory) {
        counter++;
        emit Greeted(msg.sender, counter);
        return greeting;
    }

    function setGreeting(string calldata _greeting) external {
        greeting = _greeting;
    }
}
```

## 6. Разверните

Создайте `scripts/deploy.ts`:

```typescript
import hardhat from "hardhat";

async function main() {
  const { viem } = await hardhat.network.connect();
  const publicClient = await viem.getPublicClient();

  const hello = await viem.deployContract("HelloRome");
  console.log("HelloRome deployed to:", hello.address);

  const hash = await hello.write.greet();
  await publicClient.waitForTransactionReceipt({ hash });

  console.log("Counter:", (await hello.read.counter()).toString());
  console.log("Greeting:", await hello.read.greeting());
}

main().catch((error) => {
  console.error(error);
  process.exitCode = 1;
});
```

Разверните в Hadrian:

```bash
npx hardhat run scripts/deploy.ts --network hadrian
```

Ожидаемый вывод (ваш адрес будет отличаться):

```
HelloRome deployed to: 0x09c437e305eeb698e1776cff23ca16c1bb25aabd
Counter: 1
Greeting: Hello from Solana!
```

Откройте развернутый адрес в [обозревателе](https://via-hadrian.testnet.romeprotocol.xyz/) чтобы увидеть инструкции Solana за вашей транзакцией. Теперь ваш контракт Solidity работает в Solana.

## Что дальше

* [Разверните Solidity](/ru/rukovodstva-dlya-razrabotchikov/deploy-solidity.md) — развертывание Hardhat и Foundry в деталях
* [Вызов Solana из EVM](/ru/rukovodstva-dlya-razrabotchikov/call-solana-from-evm.md) — вызывайте программы Solana из Solidity через CPI
* [Архитектура](/ru/nachalo-raboty/architecture.md) — как Rome выполняет EVM внутри Solana

## Распространенные ошибки

| Ошибка                 | Причина                                                                | Исправление                                                                                                   |
| ---------------------- | ---------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| `недостаточно средств` | Недостаточно газового токена для лимита газа, умноженного на цену газа | Пополните как минимум 0,5 USDC газа (см. шаг 2) с помощью [моста Rome](/ru/prilozheniya-v-rome/bridge-api.md) |
| `слишком низкий nonce` | Несоответствие nonce транзакции                                        | Сбросьте аккаунт (MetaMask → Настройки → Дополнительно → Очистить активность)                                 |
| `выполнение отменено`  | Выполнение контракта не удалось                                        | Проверьте логику контракта; используйте `eth_call` для отладки                                                |
| Тайм-аут соединения    | RPC недоступен                                                         | Проверьте URL RPC                                                                                             |


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.rome.builders/ru/nachalo-raboty/quickstart.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
