Entwickler · Privates OTC

Eine USDC-Einzahlung im Code auf eine Käufer-Wallet beschränken.

Privates OTC verwandelt eine öffentliche Einzahlung in eine Route für einen einzigen Käufer. Es ist das richtige Werkzeug, wenn Ihr Produkt die Gegenpartei bereits kennt: eine Auszahlung nach Gehaltsabrechnungsart, ein ausgehandelter Handel oder eine Abrechnung mit einem bekannten Käufer.

01

Eine beschränkte Einzahlung erstellen

  1. 1Rufen Sie offramp(walletClient, { amount, platform, currency, identifier, otcTaker }) auf.
  2. 2Das SDK erstellt die Einzahlung und hängt dann einen Whitelist-Hook für die otcTaker-Wallet an.
  3. 3Lesen Sie otcLink aus dem Ergebnis und senden Sie ihn an den genehmigten Käufer.
  4. 4Jede andere Wallet als otcTaker wird onchain abgelehnt, bevor sie eine Füllung starten kann.
02

Beschränkung für bestehende Einzahlungen verwalten

HilfsfunktionFunktion
enableOtc(walletClient, depositId, taker)Eine bestehende Einzahlung auf eine Käufer-Wallet beschränken
disableOtc(walletClient, depositId)Die Beschränkung aufheben und die Einzahlung wieder öffentlich machen
getOtcLink(depositId)Den teilbaren Käufer-Link für eine beschränkte Einzahlung erstellen
03

Warum mehr als eine Transaktion erforderlich ist

EscrowV2's createDeposit akzeptiert keinen Whitelist-Parameter, daher hängt das SDK den Hook in einer nachfolgenden Transaktion an, nachdem die Einzahlung existiert. Die Beschränkung wird durch den Base-Vertrag durchgesetzt, nicht durch die UI oder den Link – deshalb wird eine nicht genehmigte Wallet onchain abgelehnt, selbst wenn sie den Link hat.

Onchain-Durchsetzung

Der Whitelist-Hook sichert die Einzahlung, nicht der Link.

Der OTC-Link ist eine Erleichterung. Der eigentliche Schutz ist der Pre-Intent-Hook, der an die Base-Einzahlung angehängt ist.

createDeposit akzeptiert keinen Whitelist-Parameter, daher wird der Hook in einer nachfolgenden Transaktion angehängt.

EscrowV20x777777779d229cdF3110e9de47943791c26300EfEinzahlung und Hook-Anhang
Whitelist-Hook0xda023Ea0d789A41BcF5866F7B6BBd2CaDF9b79B8blockiert nicht genehmigte Wallets
Käufer-Linkotc.usdctofiat.xyz/d/<escrow>/<depositId>ein Käufer, eine URL

Common questions

Wie mache ich eine Einzahlung im Code privat?

Übergeben Sie otcTaker an offramp() beim Erstellen der Einzahlung, oder rufen Sie enableOtc für eine bestehende Einzahlung auf. Das SDK hängt einen Onchain-Whitelist-Hook an, sodass nur diese Käufer-Wallet füllen kann, und gibt einen otcLink zum Teilen zurück.

Kann der genehmigte Käufer später geändert werden?

Ja. Verwenden Sie disableOtc, um die Beschränkung aufzuheben, oder führen Sie enableOtc erneut mit einem neuen Taker aus. Jede Änderung ist ein Onchain-Update, und der neue Käufer muss den resultierenden Einzahlungslink verwenden.

Entfällt durch privates OTC das Risiko der Zahlungs-App?

Nein. Es beschränkt, wer die Einzahlung füllen kann. Das Fiat-Leg läuft weiterhin über die gewählte Zahlungs-App, mit deren Limits, Prüfungen und Stornierungsverhalten.