> 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/referenz/json-rpc.md).

# JSON-RPC-Unterstützung

Rome-EVM-Endpunkte sprechen standardmäßiges Ethereum-JSON-RPC. Foundry, Hardhat, ethers, viem und MetaMask funktionieren mit Rome genauso wie auf jeder anderen EVM-Chain. Diese Seite listet auf, was unterstützt wird, und die wenigen Rome-spezifischen Verhaltensweisen, die man kennen sollte.

## Unterstützte Methoden

**Kern (Zustand & Ausführung):** `eth_chainId`, `eth_blockNumber`, `eth_getBalance`, `eth_getCode`, `eth_getStorageAt`, `eth_getTransactionCount`, `eth_call`, `eth_estimateGas`, `eth_gasPrice`, `eth_maxPriorityFeePerGas`, `eth_feeHistory`.

**Blöcke & Transaktionen:** `eth_getBlockByNumber`, `eth_getBlockByHash`, `eth_getBlockReceipts`, `eth_getTransactionByHash`, `eth_getTransactionReceipt`, `eth_sendRawTransaction`, Block-nach-Index/-Anzahl-Varianten.

**Logs & Filter:** `eth_getLogs`, `eth_newFilter`, `eth_newBlockFilter`, `eth_getFilterChanges`, `eth_getFilterLogs`, `eth_uninstallFilter`.

**WebSocket-Abonnements:** `eth_subscribe` / `eth_unsubscribe` (`newHeads`, `logs`). Siehe [WebSocket-Abonnements](/de/entwicklerleitfaden/websocket-subscriptions.md).

**Netzwerk / web3:** `net_version`, `net_listening`, `net_peerCount`, `web3_clientVersion`.

### Nicht unterstützt

`debug_traceTransaction` / `trace_*` (Transaktions-Tracing), `eth_getProof`, `eth_createAccessList`, `eth_blobBaseFee` (keine Blob-Transaktionen), `txpool_*` (kein öffentlicher Mempool). `newPendingTransactions` Abonnements werden akzeptiert, geben aber nie Ereignisse aus.

## Rome-Erweiterungsmethoden

Über das standardmäßige Ethereum-RPC hinaus stellt der Proxy `rome_*` Methoden bereit:

| Methode                        | Zweck                                                                           |
| ------------------------------ | ------------------------------------------------------------------------------- |
| `rome_emulateTx`               | Eine Transaktion offline emulieren (gibt das Solana-Ausführungsergebnis zurück) |
| `rome_emulateTxWithPayer`      | Gegen einen bestimmten Zahler emulieren                                         |
| `rome_emulateCallAccounts`     | Emulieren und die Solana-Konten zurückgeben, die ein Call berührt               |
| `rome_emulateRegRollup`        | Eine Rollup-Registrierung emulieren                                             |
| `rome_getResources`            | Status des Proxy-Ressourcenpools melden (Zahler, Inhaber)                       |
| `rome_mintId`                  | Das SPL-Mint hinter einem ERC-20-Wrapping auflösen                              |
| `rome_buildInfo`               | Proxy-Build- und On-Chain-Programminfo                                          |
| `rome_isCompatible`            | Proxy-/Programmkombatibilität prüfen                                            |
| `rome_solanaTxForEvmTx`        | Die Solana-Transaktion(en) für einen EVM-Tx-Hash abrufen                        |
| `rome_sendUnsignedTransaction` | Eine signaturlose Transaktion einreichen (synthetische-Absender-Flows)          |

## Rome-spezifische Verhaltensweisen

### Gas wird aus Solana abgeleitet — schätzen, nicht fest codieren

Rome misst die Ausführung in Solana-Compute-Units, die als EVM-Gas angezeigt werden. Praktische Folgen:

* **Lass dein Tooling den Gasbedarf immer schätzen.** `forge create`, `cast`und Hardhat-Aufrufe `eth_estimateGas` direkt auf der Chain und erhalten automatisch den richtigen Wert.
* **Nicht fest codieren `21000` für native Transfers.** Eine Überweisung an eine Adresse, die noch nicht existiert, kostet mehr als 21000 (sie erstellt das Empfängerkonto). Die Schätzung berücksichtigt das; ein fest codiertes `21000` Gaslimit schlägt für neue Empfänger fehl.

### `forge script --broadcast` benötigt `--skip-simulation`

`forge script` setzt sein Broadcast-Gaslimit anhand einer **lokalen** Simulation fest, was im Vergleich zu Roms Gasmodell zu knapp bemessen ist. Füge `--skip-simulation` also hinzu, damit Foundry das der Chain `eth_estimateGas` stattdessen verwendet:

```bash
forge script script/Deploy.s.sol:Deploy \
  --rpc-url <RPC> --private-key $PRIVATE_KEY --broadcast --skip-simulation
```

`forge create`, `cast send`und Hardhat sind nicht betroffen — sie schätzen bereits direkt auf der Chain.

### `eth_getLogs` ist bereichsbegrenzt (\~12.000 Blöcke)

Wie Infura, Alchemy und andere produktive RPCs, `eth_getLogs` weist zu weite Blockbereiche zurück (Fehler `-32005`). Begrenze deine Abfragen:

```javascript
const latest = await provider.getBlockNumber();
const logs = await contract.queryFilter(filter, latest - 5000, latest);
```

Ein `queryFilter` ohne Bereich durchsucht den gesamten Verlauf und überschreitet das Limit — gib ein explizites `fromBlock`/`toBlock`. Ereignisprüfungen auf Basis von Receipts (z. B. auf eine Tx warten und ihre Logs lesen) sind nicht betroffen.

### Gebühren

`eth_gasPrice` gibt den echten, von einem Orakel abgeleiteten Preis zurück; Wallets (einschließlich MetaMask) verwenden ihn und zeigen die korrekten Gebühren an. Übermittelte Gebührenfelder werden großzügig akzeptiert — sowohl Legacy- als auch EIP-1559-Transaktionen landen mit den Standard-Tooling-Defaults.


---

# 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/referenz/json-rpc.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.
