Eine Zahlungsanforderungs-URI ist ein Link, der mit zcash: beginnt und die Details einer Zahlung enthält: die Adresse, den Betrag und ein optionales Memo.
Als QR-Code oder anklickbarer Link geteilt, lässt sie deine wallet die Zahlung für dich ausfüllen. Du prüfst die Details und bestätigst.
ZIP 321 definiert das Format. Es entstand aus Bitcoins BIP 21.
Eine Anfrage kann mehrere Empfänger in einer einzigen Transaktion bezahlen.
ZecHub hostet ein Zahlungs-Widget und einen Generator, damit ein Shop eine Zcash-Zahlungsschaltfläche hinzufügen kann, ohne die URI von Hand zu schreiben.
Grundlegende Erklärung
Eine Zahlungsanforderungs-URI ist ein zcash:-Link, der durch ZIP 321 definiert wird. Kompatible wallets lesen Adresse, Betrag und optionales Memo aus dem Link oder QR-Code und füllen eine Transaktion vorab aus. Keine zusätzlichen Konten, kein Zahlungsabwickler dazwischen.
Die Widget-Demo ist ein Live-ZIP-321-Modal: QR-Code, Adresse/URI kopieren, Kurzlink und In Wallet öffnen. Die Tools-Seite enthält den Generator, falls du zuerst deine eigene Adresse und deinen eigenen Betrag festlegen möchtest.
Dezimaler ZEC mit . als Trennzeichen und höchstens 8 Nachkommastellen (0.5, nicht 0,5)
memo
nein
Nur Shielded-Adressen. Die UTF-8-Bytes des Memos (höchstens 512), base64url-kodiert ohne =-Padding: Thanks! wird zu VGhhbmtzIQ, nicht zum Klartext
label
nein
Für Menschen lesbarer Name, der von einigen wallets angezeigt wird. Leerzeichen und reservierte Zeichen prozentkodieren (Coffee%20shop); ein + ist ein wörtliches Pluszeichen, kein Leerzeichen
Ein Zcash-Spenden-Widget zu deiner Website hinzufügen:
Visualisierung / Analogie
Stell dir ein Banküberweisungsformular mit Feldern für die Kontonummer, den Betrag und eine Notiz vor, wofür die Zahlung bestimmt ist. Es von Hand auszufüllen ist langsam, und eine falsche Ziffer schickt das Geld an die falsche Stelle.
Eine Zahlungsanforderungs-URI ist dieses vom Shop ausgefüllte Formular. Der QR-Code ist ein Foto des Formulars. Deine Handykamera liest das Foto, die wallet übernimmt jedes Feld, und du prüfst die Zahlen und signierst.
Ein Link auf einer Webseite erfüllt dieselbe Aufgabe. Ein Klick darauf übergibt das ausgefüllte Formular an deine wallet.
Vertiefung
Ein echtes Beispiel
Hier ist ein Beispiel aus ZIP 321, geschrieben für testnet:
Es fordert 1 ZEC an eine Shielded-Sapling-Adresse. Das Memo wird zu „This is a simple memo.“ dekodiert. Die Nachricht „Thank you for your purchase“ ist der Text, den die wallet auf dem Bildschirm anzeigt.
Regeln, die eine wallet prüft
Das Betragsformat ist strikt. amount=0.5 und amount=50 sind gültig. amount=50,000.00, amount=.5 und amount=0.123456789 sind ungültig: Ein Punkt ist das einzige Dezimaltrennzeichen, und nach ihm dürfen höchstens 8 Ziffern stehen. Kein Betrag darf 21.000.000 ZEC überschreiten.
In der Roh-URI wird das Memo in base64url kodiert und kann nach dem Dekodieren bis zu 512 Bytes enthalten. Ein Memo an einer transparenten Adresse macht die gesamte Anfrage ungültig, weil transparente Adressen keine Memos enthalten können. Sprout-Adressen sind überhaupt nicht erlaubt, und eine Anfrage, die nicht der ZIP-321-Grammatik folgt, muss abgelehnt werden.
Über die Tabelle oben hinaus gibt es zwei weitere Felder. message ist eine Beschreibung der Zahlung, die die wallet anzeigen soll. req-asset ist für Custom Assets reserviert, wie in ZIP 227 definiert.
Mehrere Personen gleichzeitig bezahlen
Jede zusätzliche Zahlung erhält eine Indexnummer in ihren Parameternamen, zum Beispiel address.1, amount.1 und memo.1. Die wallet erstellt eine Transaktion, die alle auf der Liste bezahlt. Das ist nützlich für einen Checkout, der eine Zahlung aufteilt, oder für eine Gruppe gemeinsam versendeter Spenden.
Woher das Format stammt
Bitcoin hat zwei ältere Standards für Zahlungsanforderungen: BIP 21, einen einfachen Link für einen Empfänger, und BIP 70, ein umfangreicheres Protokoll für komplexe Zahlungen. ZIP 321 wählt einen Mittelweg: ein Linkformat mit Platz für mehrere Empfänger. Die Diskussion begann 2018 im Zcash-ZIPs-Repository, wo die Nummer 321 als Anspielung auf BIP 21 gewählt wurde, und das ZIP selbst wurde im August 2020 erstellt.
Verwandte Seiten
Memos: Wofür das Memofeld in einer Zahlungsanforderung dient.