@usdctofiat/offramp добавляет вывод USDC одним вызовом функции.
SDK — это быстрый путь к продаже USDC из вашего собственного приложения. Один вызов проверяет ввод, выдаёт approve на USDC, регистрирует продавца, создаёт депозит на Base и делегирует ценообразование. Он работает с мейннетом Base и не требует разрешений для создания депозитов.
Установка и создание депозита
- 1Установите пакет: bun add @usdctofiat/offramp (npm и pnpm тоже подходят).
- 2Передайте viem WalletClient: кошелёк пользователя, серверный кошелёк или кошелёк бота.
- 3Вызовите offramp(walletClient, { amount, platform, currency, identifier }).
- 4Прочитайте возвращённые depositId и txHash или развернёте проект через npx create-offramp-app@latest.
Поверхность SDK
| Экспорт | Что делает |
|---|---|
| offramp(walletClient, params) | Поток продажи USDC одним вызовом, возвращает { depositId, txHash, resumed, otcLink? } |
| deposits(address) | Список депозитов для адреса без индексации состояния протокола |
| close(walletClient, depositId) | Вывод незаполненного USDC из существующего депозита |
| enableOtc / disableOtc / getOtcLink | Управление приватным ограничением «один покупатель» на депозите |
| useOfframp() / usePeerExtensionRegistration() | React-хуки из @usdctofiat/offramp/react |
| PLATFORMS, CURRENCIES | Типизированные const-карты с идентификаторами, валидацией и списками валют |
Возобновляемость заложена в архитектуру
Создание депозита проходит через несколько ончейн-шагов. Если предыдущий вызов оставил депозит на полпути, повторный вызов offramp() продолжает с того места, где остановился, вместо создания дубликата. Флаг resumed в результате равен true, когда был подхвачен существующий неделегированный депозит, а не создан новый.
Это делает SDK безопасным для повторных вызовов с сервера или бота: дружественная к идемпотентности точка входа, которая сверяется с ончейн-состоянием вместо того, чтобы предполагать чистый лист.
Обработка ошибок
| Аспект | Как SDK его сигнализирует |
|---|---|
| Типизированные ошибки | OfframpError несёт код из OFFRAMP_ERROR_CODES |
| Настройка PayPal или Wise | EXTENSION_REGISTRATION_REQUIRED, когда handle ещё не зарегистрирован |
| Валидация | PLATFORMS и CURRENCIES предоставляют валидацию идентификатора и валюты |
| Без хранения ключей | SDK подписывает вашим WalletClient и никогда не хранит приватные ключи |
Куда двигаться дальше
Keep exploring
Common questions
Бесплатен ли @usdctofiat/offramp?
Да. SDK бесплатен для установки и интеграции, а создание депозитов не требует API-ключа, потому что подписывает ваш кошелёк. Аналитика Peerlytics, API-кредиты и управление подписанными вебхуками доступны отдельно через Peerlytics.
Хранит ли SDK ключи или перемещает фиат?
Нет на оба вопроса. Он подписывает предоставленным вами viem WalletClient и никогда не хранит приватные ключи. Фиат перемещается напрямую между покупателем и продавцом в выбранном платёжном приложении; SDK управляет только ончейн-USDC и жизненным циклом депозита.
Как протестировать интеграцию?
Публичного песочницы нет; SDK работает с мейннетом Base, поэтому тестовый депозит реален и виден в открытом ордербуке. Используйте минимум 1 USDC и либо ограничьте его как OTC-депозит (передайте otcTaker, чтобы только ваш кошелёк мог его заполнить), либо быстро вызовите close(). Подтвердите ончейн и через deposits().