> 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/ja/rome-zk-evm/deposits-and-withdrawals.md).

# デポジットと出金

SOLをRome ZK EVMチェーンに移し、そのネイティブコインをSolanaウォレットへ出金します。

v0.3.0 devnet のセットアップでは、チェーンのネイティブコインは Solana の vault 内の wrapped SOL によって裏付けられています。入金すると wrapped SOL がロックされ、指定した EVM アドレスに残高が付与されます。出金するとそのコインはチェーン上でバーンされ、vault から Solana の受取人へ wrapped SOL が支払われます。チェーン上の 1 gwei は wrapped SOL の 1 lamport に対応します。

その [完全な出金ガイド](https://github.com/rome-protocol/solana-zk-evm/blob/v0.3.0/docs/WITHDRAWALS.md) には、正確な呼び出し、チェック、拒否名が記載されています。その [devnet ガイド](https://github.com/rome-protocol/solana-zk-evm/blob/v0.3.0/docs/RUN-ON-DEVNET.md) では、入金の設定と入金者コマンドを説明しています。

## SOL を入金

オペレーターはまず、証明済みルート、wrapped SOL の vault、ブリッジを指定した有効な exit 設定、そして入金キューが必要です。これらがなければ、新しいチェーンは入金を受け付けられません。チェーンのジェネシスは、オペレーターが 1 つの残高を宣言して裏付けない限り、残高ゼロで始まります。

入金者は `./rollup deposit` lamport 単位の金額、EVM の受取人、自分の Solana 署名者、および `--wrap-sol`。このオプションは、入金と同じ Solana トランザクション内で SOL を wrapped SOL に変換します。このコマンドは、 `--confirm` が追加されるまで dry run のままです。デフォルトの最小額は 1,000,000 lamport、つまり 0.001 SOL です。デフォルトのキュー手数料は 100,000 lamport、つまり 0.0001 SOL で、チェーン当局に支払われます。入金者はトランザクション手数料と入金レコードの rent も支払います。

ブリッジはそのチェーンの vault に wrapped SOL をロックし、番号付きレコードを追加します。シーケンサーは確定済みの Solana 入金を読み取り、新しい EVM ブロックで順番に残高を付与します。残高は、そのブロックが確定するとチェーン RPC に表示されます。付与が最終確定するのは、それを含むバッチが証明され、そのルートが Solana に載ったときだけです。

デフォルトのキュー取り込み期限は 12 時間で、1 バッチあたり最大 256 件、1 ブロックあたり 4 件の入金です。inbox はバッチが確定したときに期限を確認します。このルールは、オペレーターにバッチの生成や証明を強制するものではありません。オペレーターは、チェーンを停止することで入金を遅らせることができます。

入金レコードの rent は、残高付与バッチのルートが最終確定し、バッチ権限者が `CloseBatch`。その後、誰でも `CloseDeposit`。入金は裏付けとして vault 内に残ります。v0.3.0 の runner は `CloseBatch`を送信しないため、レコードは自動的に閉じられず、rent はロックされたままです。

## Solana へ出金

出金はチェーンのネイティブコインにのみ対応しています。支払い可能な `initiateExit(bytes32 solRecipient)` 呼び出しを次の exit portal に送ります： `0x4200000000000000000000000000000000000016`。value が出金額です。受取人は **32 バイトでエンコードされた Solana ウォレットアドレスです**。そのトークンアカウントのアドレスではありません。送信前にそのアドレスを確認してください。トランザクションが着地するとすぐにコインはバーンされ、portal からそれを取り戻すことはできません。メッセージハッシュを保持してください。その `ExitInitiated` イベント。

そのトランザクションを含む証明済みルートを待ちます。exit prover は verifier ノードを使って、その最終ルートに対する portal のメッセージのストレージ証明を作成します。Solana 側の精算は、証明、有効な exit 設定、portal、出金上限をチェックします。次に exit prover が release を送信します。ブリッジはチェーンの vault からその金額を取り出し、受取人の wrapped SOL の associated token account に支払います。必要に応じてその token account を作成できます。

支払いは、別の待機期間なしで証明に従って行われます。release トランザクションは証明済みレコードから受取人を読み取るため、オペレーターや他の送信者が転送先を変更することはできません。プログラムはレコードを消費し、原子的に支払いを行うため、同じ出金に対する二重支払いは防がれます。

待ち時間の大半は、バッチを閉じ、投稿し、証明するのにかかる時間です。exit prover は 2 秒ごとにポーリングし、最終ルートが利用可能になるとすぐに支払います。Rome の devnet 実行では、ブロック 192 で開始された出金が約 4 分後に Solana で支払われました。これは 1 回の計測であり、固定の出金時間ではありません。

exit cap は、各 172,800 スロットのチャレンジウィンドウで外に出せる量を制限します。現在のウィンドウに収まらない exit は次のウィンドウを待ちます。上限全体を超える 1 件の exit には、チェーン当局が cap を引き上げる必要があります。exit 設定の変更が有効になるまでには、少なくとも 1 つのチャレンジウィンドウが必要です。

受取人に wrapped SOL の token account がなく、金額がデフォルトの 0.01 SOL のしきい値を下回る場合、証明後でも支払いは待機することがあります。exit prover は、そのアカウントを作成するために支払うのではなく、手動 release 用に残します。ユーザーまたはオペレーターは `./rollup release-exit --message-hash` メッセージハッシュと `--confirm`。有効な exit は誰でも release できます。

## オペレーターが実行する内容

登録後に wrapped SOL の vault を作成して資金を入れます。裏付けのあるジェネシス残高を作るには、検証鍵を要求する前に同じ額をロックします。最初の証明済みルートの後で、exit portal、ブリッジ、cap を次で設定します： `./rollup exit-config propose`。少なくとも 1 つのチャレンジウィンドウを待ってから、次を実行します： `./rollup exit-config activate --confirm`。チェーン当局は次で入金キューを開きます： `./rollup deposit-queue init --confirm`.

設定して `EXITS=on`、次に実行します： `./rollup init` および `./rollup up` で exit prover を起動します。必要なのは **自分専用の資金提供済み payer**です。batcher の payer とは別である必要があります。各 exit 証明ごとに、その payer には Solana の手数料とレコード rent が発生します。runner は、exit payer がない場合や共有されている場合は拒否します。自動支払いはデフォルトで有効です。exit prover は、再起動後に開いたまま残っている証明済みレコードも再試行します。

実行します： `./rollup check`。vault の裏付け、入金上限とバックログ、有効なブリッジと exit 設定、exit prover、停止した exit、ログスキャン、そして payer 残高をチェックします。デフォルトの exit-payer 下限は 0.1 SOL です。次を使います： `./rollup vault show` および `./rollup deposit-queue show` で資金とキューの状態を確認します。上記の完全なガイドには、vault への資金投入とキュー設定の変更コマンドが記載されています。


---

# 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/ja/rome-zk-evm/deposits-and-withdrawals.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.
