> 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/de/erste-schritte/quickstart.md).

# Schnellstart

Stelle deinen ersten Solidity-Contract auf Rome in unter 5 Minuten bereit. Dieser Leitfaden richtet sich an **Martius**, die öffentliche Testnet-Chain; die gleichen Schritte funktionieren auf [Hadrian](/de/netzwerke/hadrian.md) (Devnet), indem du die Netzwerkwerte austauschst.

## Voraussetzungen

* [Node.js](https://nodejs.org/) v22.13+
* [MetaMask](https://metamask.io/) Browser-Erweiterung
* Eine Solana-Wallet (z. B. Phantom) eingestellt auf **Devnet**

## 1. Füge Martius zu MetaMask hinzu

Füge es manuell hinzu (Einstellungen → Netzwerke → Netzwerk hinzufügen):

| Feld           | Wert                                            |
| -------------- | ----------------------------------------------- |
| Netzwerkname   | Rome Martius                                    |
| RPC-URL        | `https://martius.testnet.romeprotocol.xyz/`     |
| Chain-ID       | `121214`                                        |
| Währungssymbol | `USDC`                                          |
| Block-Explorer | `https://via-martius.testnet.romeprotocol.xyz/` |

## 2. Lade deine Wallet auf

Gas wird im SPL-Gas-Token der Chain bezahlt (USDC auf Martius). Zwei Möglichkeiten, ihn zu erhalten:

**Von Solana** — hole dir Devnet-SOL über den [Solana-Faucet](https://faucet.solana.com/) (stelle deine Solana-Wallet auf Devnet ein), dann öffne die [Rome App](https://app.testnet.romeprotocol.xyz), verbinde beide Wallets und wandle es in den Gas-Token um.

**Per Bridging** — präge Test-USDC auf Ethereum Sepolia über das [Circle-Faucet](https://faucet.circle.com/), dann bringe es mit dem [Rome Bridge](/de/apps-auf-rome/bridge-api.md) (CCTP). Du benötigst etwas Sepolia-ETH für die Transaktion auf der Quellseite — siehe [Faucets](/de/ressourcen/faucets.md) für jedes Faucet.

**Wie viel?** Contract-Deployments auf Rome verursachen Solana-seitige Kontokosten, daher liegen die Gas-Schätzungen deutlich über der Ethereum-Intuition — der Quickstart-Contract schätzt \~20 Mio. Gas und kostet etwa **0.2 USDC** für die Bereitstellung, und Wallets prüfen im Voraus ungefähr das Doppelte der Schätzung. Lade mindestens **0,5 USDC Gas**; 1 USDC lässt komfortablen Spielraum.

Wenn eine Einzahlung auf der Solana-Seite trotz aufgeladener Wallet mit der Warnung „insufficient SOL“ fehlschlägt, stelle deine Solana-Wallet auf Testnet-Modus / Devnet ein (siehe die [FAQ](/de/ressourcen/faq.md)).

## 3. Erstelle ein Hardhat-Projekt

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

Akzeptiere bei der Eingabeaufforderung die Standardwerte — Hardhat 3, das aktuelle Verzeichnis und die TypeScript + Node Test Runner + viem-Vorlage — und lass die Abhängigkeiten installieren. Die Vorlage liefert einen Beispiel- `Counter` -Contract mit Tests; sie stören diesen Leitfaden nicht.

## 4. Konfiguriere Hardhat für Rome

Bearbeite die generierte `hardhat.config.ts` und füge die Rome-Netzwerke in `defineConfig({ ... })`:

```typescript
  networks: {
    martius: {
      type: "http",
      chainType: "l1",
      chainId: 121214,
      url: "https://martius.testnet.romeprotocol.xyz/",
      accounts: [configVariable("PRIVATE_KEY")],
    },
    rome_local: {
      type: "http",
      chainType: "l1",
      chainId: 1001,
      url: "http://localhost:9090",
      accounts: [configVariable("PRIVATE_KEY")],
    },
  },
```

`configVariable("PRIVATE_KEY")` wird aus der Umgebung aufgelöst, also exportiere deinen MetaMask-Privatkey:

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

(Für alles, was über einen Wegwerf-Schlüssel hinausgeht, verwende besser den verschlüsselten Keystore, der mit dem Toolbox-Paket geliefert wird: `npx hardhat keystore set PRIVATE_KEY`.)

## 5. Schreibe einen Contract

Erstelle `contracts/HelloRome.sol`:

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

contract HelloRome {
    string public greeting = "Hallo von 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. Bereitstellen

Erstelle `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 bereitgestellt unter:", hello.address);

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

  console.log("Zähler:", (await hello.read.counter()).toString());
  console.log("Begrüßung:", await hello.read.greeting());
}

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

Bereitstellung auf Martius:

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

Erwartete Ausgabe (deine Adresse wird abweichen):

```
HelloRome bereitgestellt unter: 0x09c437e305eeb698e1776cff23ca16c1bb25aabd
Zähler: 1
Begrüßung: Hallo von Solana!
```

Öffne die bereitgestellte Adresse im [Explorer](https://via-martius.testnet.romeprotocol.xyz/) um die Solana-Instruktionen hinter deiner Transaktion zu sehen. Dein Solidity-Contract läuft jetzt auf Solana.

## Wie geht es weiter

* [Solidity bereitstellen](/de/entwicklerleitfaden/deploy-solidity.md) — Hardhat- und Foundry-Deployment im Detail
* [Solana aus der EVM aufrufen](/de/entwicklerleitfaden/call-solana-from-evm.md) — Solana-Programme aus Solidity per CPI aufrufen
* [Architektur](/de/erste-schritte/architecture.md) — wie Rome die EVM innerhalb von Solana ausführt

## Häufige Fehler

| Fehler                    | Ursache                                                                             | Lösung                                                                                                                   |
| ------------------------- | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| `Unzureichendes Guthaben` | Nicht genug Gas-Token — Wallets prüfen im Voraus etwa das 2-Fache der Gas-Schätzung | Lade mindestens 0,5 USDC Gas auf (siehe Schritt 2) über das [Rome App](https://app.testnet.romeprotocol.xyz) oder Bridge |
| `Nonce zu niedrig`        | Nonce der Transaktion stimmt nicht überein                                          | Setze das Konto zurück (MetaMask → Einstellungen → Erweitert → Aktivität löschen)                                        |
| `execution reverted`      | Contract-Ausführung fehlgeschlagen                                                  | Überprüfe die Contract-Logik; verwende `eth_call` zum Debuggen                                                           |
| Verbindungs-Timeout       | RPC nicht erreichbar                                                                | Überprüfe die RPC-URL                                                                                                    |


---

# 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/de/erste-schritte/quickstart.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.
