Разработчикам · Приватный OTC

Ограничьте депозит USDC одним кошельком покупателя в коде.

Приватный OTC превращает публичный депозит в маршрут на одного покупателя. Это нужный инструмент, когда ваш продукт уже знает контрагента: выплата в стиле зарплаты, согласованная сделка или расчёт с известным покупателем.

01

Создание ограниченного депозита

  1. 1Вызовите offramp(walletClient, { amount, platform, currency, identifier, otcTaker }).
  2. 2SDK создаёт депозит, затем прикрепляет хук whitelist для кошелька otcTaker.
  3. 3Прочитайте otcLink из результата и отправьте его одобренному покупателю.
  4. 4Любой кошелёк, кроме otcTaker, отклоняется ончейн, прежде чем сможет начать заполнение.
02

Управление ограничением на существующих депозитах

ХелперЧто делает
enableOtc(walletClient, depositId, taker)Ограничить существующий депозит одним кошельком покупателя
disableOtc(walletClient, depositId)Снять ограничение и вернуть депозит в публичный доступ
getOtcLink(depositId)Сформировать ссылку для покупателя по ограниченному депозиту
03

Почему требуется больше одной транзакции

createDeposit в EscrowV2 не принимает параметр whitelist, поэтому SDK прикрепляет хук отдельной транзакцией после того, как депозит уже существует. Ограничение обеспечивает контракт Base, а не интерфейс или ссылка, поэтому неодобренный кошелёк отклоняется ончейн, даже если у него есть ссылка.

Ончейн-обеспечение

Хук whitelist охраняет депозит, а не ссылку.

OTC-ссылка — это удобство. Реальную защиту даёт pre-intent-хук, прикреплённый к депозиту на Base.

createDeposit не принимает параметр whitelist, поэтому хук прикрепляется отдельной транзакцией.

EscrowV20x777777779d229cdF3110e9de47943791c26300Efдепозит и прикрепление хука
Хук whitelist0xda023Ea0d789A41BcF5866F7B6BBd2CaDF9b79B8блокирует неодобренные кошельки
Ссылка покупателяotc.usdctofiat.xyz/d/<escrow>/<depositId>один покупатель, один URL

Common questions

Как сделать депозит приватным в коде?

Передайте otcTaker в offramp() при создании депозита либо вызовите enableOtc на существующем депозите. SDK прикрепляет ончейн-хук whitelist, чтобы заполнить мог только этот кошелёк покупателя, и возвращает otcLink для отправки.

Можно ли позже сменить одобренного покупателя?

Да. Используйте disableOtc, чтобы снять ограничение, или повторно вызовите enableOtc с новым taker. Каждое изменение — это ончейн-обновление, и новый покупатель должен использовать получившуюся ссылку на депозит.

Устраняет ли приватный OTC риск платёжного приложения?

Нет. Он ограничивает, кто может заполнить депозит. Фиатная часть по-прежнему проходит через выбранное платёжное приложение с его лимитами, проверками и поведением при возвратах.