> 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/rome-zk-evm/zk-evm.md).

# Overview

Run an EVM rollup whose transaction data and proved state roots settle on Solana.

Rome ZK EVM lets you run your own EVM rollup on Solana. Your sequencer executes transactions, and your batcher posts them to Solana in batches. A prover runs the chain's batch guest with ZisK. Solana checks the proof and records the new state root. A proved root is final in the transaction that posts it.

Solana holds the transaction data, verifies the proofs and settles the roots. The chain does not depend on a separate data availability committee or another settlement chain. You run the node, batcher and prover for your chain. Rome's shared programs handle settlement on Solana devnet.

This section covers **v0.3.0**. The code and the full operator documentation are public in [solana-zk-evm](https://github.com/rome-protocol/solana-zk-evm/tree/v0.3.0). The batch guest is in [rome-zk-guest](https://github.com/rome-protocol/rome-zk-guest/tree/v0.3.0). Start with [Run a rollup](/rome-zk-evm/run-a-rollup.md) if you want to bring up a chain.

## What works on devnet

Anyone can register a chain on Solana devnet. Registration locks a 5 SOL deposit and creates the chain's settlement accounts. To post a proved root, the chain needs a guest built for its genesis and a verification key registered by Rome. Each proved root costs a 0.001 SOL settlement fee, plus Solana fees and account rent.

The deposit becomes refundable to the chain authority after the chain's first final root or ten posted roots. If the chain posts no root within about 30 days of registration, anyone can reclaim it and the deposit goes to the treasury.

Rome completed the v0.3.0 devnet guide on a chain of its own, from registration to the deposit refund. These are transactions from that run:

| Step                                        | Solana devnet transaction                                                                                                                                   |
| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| A proved root, final when posted            | [`64uUhxFu…MpDGFr`](https://explorer.solana.com/tx/64uUhxFu9C48mqYd9rZTcfbEwvTB7C4PmSFWkY6feB8qsqJZNMh3gM8ZKM6woSsyjRgntqujSsHuCB2TGYMpDGFr?cluster=devnet) |
| Exit configuration activated                | [`2yyQrpv9…h1aSds`](https://explorer.solana.com/tx/2yyQrpv9CHQg7n5exxwERNYMEPDcm9gaPZje4jAv2Y2HHQ9DsPjbCDRbeLWoCZMwVv5UA6rohtJeQ1KZXRh1aSds?cluster=devnet) |
| Deposit queue opened                        | [`4tpfJKTV…XJbb9F`](https://explorer.solana.com/tx/4tpfJKTVmhvUnhH822JficbJrDJZHknBJ9rwmux5R17HLj6WGniuRCXd9wQ8jSzjVa9uTDm4g3f369QQnkXJbb9F?cluster=devnet) |
| 0.1 SOL deposited and credited in block 191 | [`5jKNqid8…VjYy67`](https://explorer.solana.com/tx/5jKNqid8XsqMedKBgm6dM5cSnszA7yFxa9xgm4MyGE45RcxthTkEZ9k1yGpzaPzqKGhN7CDz7iLAMMNFrfVjYy67?cluster=devnet) |
| A 0.03 SOL withdrawal proved                | [`3p8RhJJU…3rNDNz`](https://explorer.solana.com/tx/3p8RhJJUrvTxKrmtCJM1uZe2K6oLMw7cASoNQTm4RrMw6s1SrFeXWvws1D74UhnnRVPoevfhHmyNvkPGca3rNDNz?cluster=devnet) |
| That withdrawal paid to its recipient       | [`3dMpiQRX…nSVAz9`](https://explorer.solana.com/tx/3dMpiQRXgLBoNbBmKmz6qBVXfdX7EC9YwajQ35uGg1fzSb9HryH3awqrqx1fAEpsGfQPEDQrwUepgGtEkrnSVAz9?cluster=devnet) |
| Registration deposit refunded               | [`3YgyfLL2…zQk7wp`](https://explorer.solana.com/tx/3YgyfLL2bze6uefnUx3x76etTAu9WxQ3L2S8oNkKdSc3bBY7aHfWTZtrs1qDKxiJTMwA6i3LxRYTBC9n3RzQk7wp?cluster=devnet) |

The withdrawal started on the chain in block 192 and was paid out on Solana about four minutes later. Most of that time was spent closing and proving its batch. The exit prover then proved the withdrawal and sent its payout from the chain's vault. [Deposits and withdrawals](/rome-zk-evm/deposits-and-withdrawals.md) explains the limits and when a small payout needs a manual release.

## Limits of this release

This is a devnet release. Rome holds the upgrade authority for the shared programs and can upgrade them without notice. Check the [trust model](/rome-zk-evm/trust-model.md) before you put funds in a chain's vault.

The default setup does not close old inbox batches, their chunks or pending-root accounts. Their rent stays locked. A pending-account close setting exists, but it is off by default because older final roots may be needed for exits. Nothing in v0.3.0 sends the inbox's `CloseBatch` instruction. That also keeps deposit-record rent locked until the batch authority closes the crediting batch. Rome has not decided how long old batch data must remain on Solana.

Users rely on the operator to keep the sequencer running, post batches and send proofs. A valid proof does not post itself; the chain authority must sign the transaction that posts it. A chain without a prover has no final root, including at genesis, and cannot complete withdrawals. Read [How it works](/rome-zk-evm/how-it-works.md) for the path from a block to a final root.

## Code and help

The [v0.3.0 repository README](https://github.com/rome-protocol/solana-zk-evm/blob/v0.3.0/README.md) links the component docs, operator runbook and release notes. For questions, use [GitHub Discussions](https://github.com/rome-protocol/solana-zk-evm/discussions). For bugs or a verification-key request, use the [issue forms](https://github.com/rome-protocol/solana-zk-evm/issues/new/choose). For a security problem, follow [SECURITY.md](https://github.com/rome-protocol/solana-zk-evm/blob/v0.3.0/SECURITY.md) instead of opening a public issue.


---

# 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/rome-zk-evm/zk-evm.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.
