> 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/canton-zk-evm/deposits-withdrawals-payments.md).

# Einzahlungen, Auszahlungen und Zahlungen

Wie das Gateway EVM-Einzahlungen, -Auszahlungen und -Zahlungen mit ihren Canton-Teilen verknüpft.

Das Gateway ist ein EVM-Vertrag, der im Genesis-Block der Chain enthalten ist. Es protokolliert, was ein Block Canton zum Tun veranlassen muss. Jede Anfrage ist ein Leg. Der Beweis des Blocks bindet den Zustand des Gateways, einschließlich des Hashes der Legs in der Reihenfolge, in der sie protokolliert wurden.

Auf dieser Seite wird der Commit beschrieben `a84e84e439a5cc669c0ae61facf7c8c995d9d564`. Lesen Sie das vollständige [Gateway-README](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/gateway/README.md) und [Daml-Schnittstelle](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/daml/README.md).

| Leg        | Gateway-Aufruf                   | EVM-Aktion                                                  | Canton-Aktion in `Vorschuss`                                                       |
| ---------- | -------------------------------- | ----------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| Einzahlung | `claim(id, token, amount)`       | Präge verpackte Token für den Aufrufer.                     | Führt die Zuteilung des Einzahlers in das Gateway aus.                             |
| Auszahlung | `withdraw(token, amount, party)` | Verbrennt die verpackten Token des Aufrufers.               | Zahlt den Canton-Token aus der Verwahrung des Gateways an die benannte Partei aus. |
| Zahlung    | `pay(id, token, to, amount)`     | Überträgt einen ERC-20 vom Zahler an den Zahlungsempfänger. | Führt die durch die vereinbarten Zahlungsbedingungen benannte Zuteilung aus.       |

## Einen Canton-Token einzahlen

Der Einzahler weist dem Gateway einen Canton-Token zu, wobei der Betreiber als Ausführer fungiert. Der Einzahler unterzeichnet eine `DepositRequest` mit der Benennung der Einzahlungs-ID, der EVM-Adresse, die zum Einfordern berechtigt ist, und der Zuteilung.

Diese EVM-Adresse ruft `claim`. Das Gateway prägt an seinen Aufrufer und protokolliert den Einzahlungs-Leg. Der Empfänger benötigt tROME für Gas. Der Builder gleicht den Leg mit der Anfrage, dem registrierten Token und der Zuteilung ab.

`Vorschuss` führt die Zuteilung in die Verwahrung des Gateways aus und bindet den Block, der die verpackten Token geprägt hat. Ein verpackter Token hat 10 Dezimalstellen, entsprechend den Canton-Beträgen. Die Umrechnung zwischen den beiden Beträgen ist exakt, ohne Rundung.

## An eine Canton-Partei auszahlen

Der Inhaber ruft `withdraw` mit dem verpackten Token, dem Betrag und der vollständigen Canton-Parteien-ID auf. Das Gateway verbrennt die verpackten Token und protokolliert den Empfänger im Leg.

Der Empfänger muss eine `WithdrawalAcceptance`. Sie bleibt aktiv, bis sie archiviert wird. Der Builder benötigt außerdem genügend freigegebene Gateway-Bestände des registrierten Instruments. Er lässt die Transaktion weg, wenn diese Bedingungen nicht erfüllt sind.

`Vorschuss` zahlt den Empfänger über die Transfer-Factory der Token-Registrierung aus. Die Canton-Übertragung und der Block, der den Burn enthält, werden gemeinsam gebunden. Der Builder nimmt pro Block höchstens eine Auszahlung eines Instruments auf, wie im [Builder-README](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/builder/README.md).

## Eine Zahlung an eine Zuteilung binden

U weist V einen Canton-Token zu. U und V unterzeichnen `DvpTerms` mit der Benennung der Zuteilung, der Zahlungs-ID, dem EVM-Token, dem EVM-Zahlungsempfänger und dem Betrag. Die Zahlungs-ID ist der SHA-256-Hash des UTF-8-Textes `<U's party id>,<V's party id>,<label>`, in Kleinbuchstaben in Hex geschrieben. Die Bedingungen lehnen jede andere ID ab.

V genehmigt das Gateway und ruft `pay` mit dieser ID auf. Das Gateway verschiebt den ERC-20 von V zum Zahlungsempfänger und protokolliert den Zahlungs-Leg. `Vorschuss` verwendet die unterzeichneten Bedingungen, um die Zuteilung von U an V auszuführen.

Ein bloßer ERC-20-Transfer protokolliert kein Leg. Selbst ein Transfer desselben Tokens an denselben Zahlungsempfänger im selben Block kann nicht als Ersatz für `pay`. Die [Zahlungsablauf des Entwurfs](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/docs/DESIGN.md#the-flows) erklärt diese Bindung.

## Was der Beweis festlegt

Jeder Leg protokolliert gegebenenfalls seine Art, ID, Token, Konto, Betrag und Canton-Partei. Das Gateway hasht die Legs in Reihenfolge. `Vorschuss` prüft, dass die angehängten Legs den Hash im bewiesenen Gateway-Zustand erzeugen. Ein fehlendes, zusätzliches, neu geordnetes oder verändertes Leg führt dazu, dass die Transaktion fehlschlägt. Die Prüfung umfasst auch Blöcke ohne Legs.

Der Beweis des Blocks reserviert seine Canton-Zuteilung nicht. Der Sender kann die Zuteilung vor der Abwicklung weiterhin zurücknehmen. Wenn das nach dem Beweis geschieht, verweigert Canton `Vorschuss` und reth kehrt zum zuletzt bestätigten Block zurück. Derselbe bewiesene Block kann nicht mit entferntem Leg erneut eingereicht werden. Der nächste Build lässt die Zahlung weg, wie in [Run 4](https://github.com/rome-protocol/canton-zk-evm/blob/a84e84e439a5cc669c0ae61facf7c8c995d9d564/demo/README.md#results).

## Token- und Verwahrungsgrenzen

Die Canton-Token werden von der Gateway-Partei auf dem Teilnehmer des Betreibers gehalten. Wer auch immer diesen Teilnehmer betreibt, kann sie verschieben. Die Registrierung eines Tokens bedeutet außerdem, dem Daml-Code seines Registers zu vertrauen, der mit der Autorität des Gateways ausgeführt wird.

Tokens, die direkt an die EVM-Adresse des Gateways gesendet werden, können nicht wiederhergestellt werden. Wenn ein Token eine Transfergebühr erhebt oder anderweitig einen anderen Betrag überträgt, protokolliert der Zahlungs-Leg dennoch den angeforderten Betrag statt des tatsächlich übertragenen Betrags. Lesen Sie [Vertrauensmodell und Grenzen](/de/canton-zk-evm/trust-model.md).


---

# 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/de/canton-zk-evm/deposits-withdrawals-payments.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.
