Developers · Private OTC

コードでUSDC入金を1つの買い手ウォレットに限定する。

プライベートOTCは、公開された入金を一買い手限定の経路に変えます。給与支払い型のペイアウト、交渉済みの取引、相手が分かっている決済など、プロダクトがすでに取引相手を把握している場合に適したツールです。

01

限定された入金を作成する

  1. 1offramp(walletClient, { amount, platform, currency, identifier, otcTaker }) を呼び出す。
  2. 2SDKが入金を作成し、その後 otcTaker ウォレット向けのホワイトリストフックを付与する。
  3. 3結果から otcLink を読み取り、承認済みの買い手に送る。
  4. 4otcTaker 以外のウォレットは、約定を開始する前にオンチェーンで拒否される。
02

既存の入金で制限を管理する

ヘルパー機能
enableOtc(walletClient, depositId, taker)既存の入金を1つの買い手ウォレットに限定
disableOtc(walletClient, depositId)制限を解除し、入金を公開状態に戻す
getOtcLink(depositId)限定された入金の共有可能な買い手リンクを生成
03

なぜ複数のトランザクションを要するのか

EscrowV2の createDeposit はホワイトリストパラメータを取らないため、SDKは入金が存在した後に続くトランザクションでフックを付与します。この制限はUIやリンクではなくBaseのコントラクトによって強制されるため、リンクを持っていても承認されていないウォレットはオンチェーンで拒否されます。

オンチェーンでの強制

ホワイトリストフックが制御するのはリンクではなく入金そのものです。

OTCリンクは利便性のためのものです。実際の保護は、Baseの入金に付与されたプリインテントフックです。

createDeposit はホワイトリストパラメータを取らないため、フックは続くトランザクションで付与されます。

EscrowV20x777777779d229cdF3110e9de47943791c26300Ef入金とフックの付与
ホワイトリストフック0xda023Ea0d789A41BcF5866F7B6BBd2CaDF9b79B8承認されていないウォレットをブロック
買い手リンクotc.usdctofiat.xyz/d/<escrow>/<depositId>一買い手、一URL

Common questions

コードで入金をプライベートにするにはどうすればよいですか?

入金作成時に otcTaker を offramp() に渡すか、既存の入金に enableOtc を呼び出します。SDKはオンチェーンのホワイトリストフックを付与し、その買い手ウォレットだけが約定できるようにし、共有用の otcLink を返します。

承認済みの買い手を後から変更できますか?

はい。disableOtc で制限を解除するか、新しい taker で enableOtc を再実行してください。各変更はオンチェーンの更新であり、新しい買い手は生成された入金リンクを使う必要があります。

プライベートOTCは決済アプリのリスクを取り除きますか?

いいえ。誰が入金を約定できるかを制限するだけです。法定通貨のレッグは依然として選択した決済アプリを通じて行われ、そのアプリの上限、審査、取消の挙動が適用されます。