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

# Depósitos e saques

Transfira SOL para uma chain Rome ZK EVM e saque sua moeda nativa para uma carteira Solana.

Na configuração da devnet v0.3.0, a moeda nativa da cadeia é lastreada por wrapped SOL em seu cofre da Solana. Um depósito trava wrapped SOL e credita o endereço EVM nomeado. Um saque queima essa moeda na cadeia e paga wrapped SOL do cofre para um destinatário na Solana. Um gwei na cadeia corresponde a um lamport de wrapped SOL.

O [guia completo de saque](https://github.com/rome-protocol/solana-zk-evm/blob/v0.3.0/docs/WITHDRAWALS.md) tem a chamada exata, as verificações e os nomes de recusa. O [guia da devnet](https://github.com/rome-protocol/solana-zk-evm/blob/v0.3.0/docs/RUN-ON-DEVNET.md) cobre a configuração de depósitos e o comando do depositante.

## Depositar SOL

O operador primeiro precisa de uma raiz comprovada, um cofre de wrapped SOL, uma configuração de saída ativa que nomeie a ponte e uma fila de depósitos. Sem isso, uma nova cadeia não pode aceitar depósitos. A gênese da cadeia começa sem saldo, a menos que seu operador tenha declarado e lastreado um saldo.

Um depositante usa `./rollup deposit` com um valor em lamports, um destinatário EVM, seu próprio assinante da Solana e `--wrap-sol`. Essa opção embrulha o SOL na mesma transação da Solana que o depósito. O comando é apenas uma simulação até `--confirm` ser adicionado. O mínimo padrão é 1.000.000 de lamports, ou 0,001 SOL. A taxa padrão da fila é de 100.000 lamports, ou 0,0001 SOL, paga à autoridade da cadeia. O depositante também paga a taxa da transação e o aluguel pelo registro do depósito.

A ponte bloqueia o wrapped SOL no cofre dessa cadeia e acrescenta um registro numerado. O sequenciador lê depósitos finalizados na Solana e os credita em ordem em novos blocos EVM. O saldo aparece na RPC da cadeia quando o bloco é selado. O crédito só é final quando o lote que o contém é comprovado e sua raiz chega à Solana.

O prazo padrão de inclusão na fila é de 12 horas, com no máximo 256 depósitos por lote e 4 por bloco. A caixa de entrada verifica o prazo quando um lote é finalizado. Essa regra não obriga o operador a produzir ou comprovar um lote. O operador ainda pode atrasar um depósito ao parar a cadeia.

O aluguel do registro de depósito pode retornar ao depositante depois que a raiz do lote de crédito for final e a autoridade do lote enviar `CloseBatch`. Então qualquer pessoa pode enviar `CloseDeposit`. O depósito permanece no cofre como lastro. O executor v0.3.0 não envia `CloseBatch`, então os registros não são fechados automaticamente e seu aluguel permanece bloqueado.

## Sacar para a Solana

Os saques são apenas para a moeda nativa da cadeia. Envie uma chamada pagável `initiateExit(bytes32 solRecipient)` para o portal de saída em `0x4200000000000000000000000000000000000016`. O valor é o montante a sacar. O destinatário é um **endereço de carteira Solana codificado em 32 bytes**, não o endereço da conta de token dele. Verifique esse endereço antes de enviar. As moedas são queimadas assim que a transação é incluída, e nada no portal pode devolvê-las. Guarde o hash da mensagem do `ExitInitiated` evento.

Aguarde uma raiz comprovada que cubra essa transação. O provador de saídas usa o nó verificador para fazer uma prova de armazenamento da mensagem do portal contra essa raiz final. A liquidação na Solana verifica a prova, a configuração de saída ativa, o portal e o limite de saque. O provador de saídas então envia uma liberação. A ponte retira o valor do cofre da cadeia e paga a conta de token associada de wrapped SOL do destinatário. Ela pode criar essa conta de token quando necessário.

O pagamento segue a prova sem um período de espera separado. A transação de liberação lê o destinatário do registro comprovado, então o operador ou qualquer outro remetente não pode redirecioná-lo. O programa consome o registro e paga de forma atômica, evitando um segundo pagamento para o mesmo saque.

A maior parte da espera é o tempo para fechar, postar e comprovar o lote. O provador de saídas faz sondagens a cada dois segundos e paga logo após uma raiz final ficar disponível. Na execução da devnet de Roma, um saque iniciado no bloco 192 foi pago na Solana cerca de quatro minutos depois. Esta é uma medição, não um tempo fixo de saque.

Um limite de saída restringe quanto pode sair em cada janela de desafio de 172.800 slots. Uma saída que não cabe na janela atual espera pela próxima. Uma única saída maior que o limite total precisa que a autoridade da cadeia aumente o limite. Alterações na configuração de saída levam pelo menos uma janela de desafio para entrarem em vigor.

Um pagamento ainda pode esperar após a prova se o destinatário não tiver uma conta de token wrapped SOL e o valor estiver abaixo do limite padrão de 0,01 SOL. O provador de saídas o deixa para uma liberação manual em vez de pagar para criar essa conta. O usuário ou operador pode usar `./rollup release-exit --message-hash` com o hash da mensagem e `--confirm`. Qualquer pessoa pode liberar uma saída válida.

## O que o operador executa

Crie e financie o cofre de wrapped SOL após o registro. Para um saldo de gênese lastreado, bloqueie esse mesmo valor antes de solicitar a chave de verificação. Após a primeira raiz comprovada, defina um portal de saída, ponte e limite com `./rollup exit-config propose`. Aguarde pelo menos uma janela de desafio e então execute `./rollup exit-config activate --confirm`. A autoridade da cadeia abre a fila de depósitos com `./rollup deposit-queue init --confirm`.

Defina `EXITS=on`, depois execute `./rollup init` e `./rollup up` para iniciar o provador de saídas. Ele precisa de seu **próprio pagador financiado**, separado do pagador do agregador de lotes. Cada prova de saída custa ao seu pagador uma taxa da Solana e aluguel de registro. O executor rejeita um pagador de saída ausente ou compartilhado. O pagamento automático está ativado por padrão; o provador de saídas também tenta novamente registros comprovados deixados abertos após uma reinicialização.

Execute `./rollup check`. Ele verifica o lastro do cofre, os limites de depósito e o acúmulo, a ponte ativa e a configuração de saída, o provador de saídas, saídas travadas, a varredura de logs e o saldo do pagador. O piso padrão do pagador de saídas é 0,1 SOL. Use `./rollup vault show` e `./rollup deposit-queue show` para inspecionar os fundos e o estado da fila. Os guias completos acima fornecem os comandos para financiar um cofre e alterar as configurações da fila.


---

# 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/pt-br/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.
