USDC'yi tek bir fonksiyon çağrısında satın.
Bir borsaya dönüşmeden nakit çıkışı ekleyin. Tek bir SDK çağrısı Base mevduatını oluşturur, fiyatlandırmayı devreder ve uygulamanızın ihtiyaç duyduğu tanımlayıcıları döndürür. Yol seçimi, gezgin bağlamı, webhook'lar veya agent tarafından işletilen altyapıya ihtiyaç duyduğunuzda Peerlytics'i daha sonra ekleyin.
Base mainnetimport { useOfframp } from "@usdctofiat/offramp/react";
import { CURRENCIES, PLATFORMS } from "@usdctofiat/offramp";
function SellButton({ walletClient }) {
const { offramp, isLoading } = useOfframp();
return (
<button
disabled={isLoading}
onClick={() =>
offramp(walletClient, {
amount: "100",
platform: PLATFORMS.VENMO,
currency: CURRENCIES.USD,
identifier: "alice",
})
}
>
Sell 100 USDC
</button>
);
}import { CURRENCIES, PLATFORMS, offramp } from "@usdctofiat/offramp";
const result = await offramp(walletClient, {
amount: "100",
platform: PLATFORMS.REVOLUT,
currency: CURRENCIES.EUR,
identifier: "alice",
integratorId: "your-app",
referralId: "partner-123",
});
console.log(result.depositId, result.txHash, result.resumed);- depositId
- Escrow deposit ID. Reconcile and close against it.
- txHash
- Base transaction hash for the deposit creation.
- resumed
- true when an existing undelegated deposit was reused.
- otcLink
- Buyer link for private deposits; null when public.
SDK yüzeyi
Ürün kodunu gerçek eylemlere yakın tutun: oluştur, listele, kapat, kısıtla, gözlemle.
offramp()USDC satış mevduatı oluşturun veya sürdürün, fiyatlandırmayı devredin ve depositId + txHash döndürün.
deposits()Uygulamanın dar bir sahip durumu mutabakatına ihtiyaç duyduğunda bir adresin mevduatlarını listeleyin.
close()İmzalayan cüzdanla mevcut bir mevduattaki gerçekleşmemiş USDC'yi çekin.
Bir emri tek bir taker cüzdanıyla sınırlandırın, bir paylaşım bağlantısı oluşturun veya kısıtlamayı kaldırın.
Cüzdan uygulaması ön yüzleri için useOfframp() ve usePeerExtensionRegistration().
PLATFORMS, CURRENCIES, doğrulama yardımcıları ve OfframpError kodları.
Geliştirme yolları
Mevduat yaşam döngüsüyle başlayın, ardından yalnızca gerektiğinde veri ve operasyon ekleyin.
Maliyeti nedir
Geliştirici yüzeyi; paket, başlangıç şablonları ve tipli SDK sözleşmesidir.
@usdctofiat/offramp, core ve React giriş noktalarına sahip MIT lisanslı TypeScript'tir.
Bir cüzdan imzası Base mevduatını oluşturur. Uygulamanız yalnızca normal Base gas'ı öder.
Yol planlama, orderbook okumaları, gezgin bağlamı, x402, API kredileri ve webhook'lar orada bulunur.
Üretim akışı
Önce en kısa yolu kurun, ardından özel emirler ve gözlemlenebilirlik ekleyin.
- 01offramp() ile kullanıcı cüzdanından veya bot cüzdanından devredilmiş bir mevduat oluşturun.
- 02Yenilemeler, yeniden denemeler veya bot yeniden başlatmalarından sonra yerel durumu mutabık kılmak için deposits() kullanın.
- 03Alıcı bilindiğinde ve emir herkese açık şekilde gerçekleştirilebilir olmaması gerektiğinde otcTaker geçirin.
- 04Yol planlama, herkese açık alma bağlantıları, gezgin bağlamı veya webhook'lara ihtiyaç duyduğunuzda @peerlytics/sdk ekleyin.
Geliştirici soruları
SDK anahtarları saklıyor mu?
Hayır. SDK, geçirdiğiniz viem WalletClient ile imzalar: kullanıcınızın cüzdanı, bir sunucu cüzdanı veya bir bot cüzdanı. Asla özel anahtarları tutmaz.
SDK fiat hareketi yapıyor mu?
Hayır. Fiat, seçilen ödeme uygulamasında doğrudan alıcı ile satıcı arasında hareket eder. SDK yalnızca onchain USDC'yi ve mevduat yaşam döngüsünü yönetir.
Mevduat oluşturmak için bir API anahtarına ihtiyacım var mı?
Hayır. Cüzdanınız imzaladığı için mevduat oluşturmak izinsizdir. API anahtarı yalnızca webhook'ları kaydetmek ve Peerlytics API'sini kullanmak için gerekir.
Bir entegrasyonu nasıl test ederim?
Herkese açık bir sandbox yoktur; SDK Base mainnet'i hedefler, bu yüzden bir test mevduatı gerçektir ve açık orderbook'ta keşfedilebilir. 1 USDC minimumunu kullanın ve ya onu bir OTC mevduatı olarak kısıtlayın (yalnızca kendi cüzdanınızın doldurabilmesi için otcTaker geçirin) ya da close() çağrısı yapmadan önce bir alıcının onu alabileceğini kabul edin. Onu onchain ve deposits() üzerinden onaylayın, ardından close() ile kapatın.
Webhook'lar nasıl doğrulanır?
Her teslimat, timestamp.rawBody üzerinde bir HMAC-SHA256 olan X-Usdctofiat-Signature: t=<unix>,v1=<hex> taşır. Başlangıç şablonları deposundaki referans doğrulayıcı, tekrarlara karşı koruma için 5 dakikadan eski zaman damgalarını bayat olarak değerlendirir; bu pencereyi kendi doğrulayıcınızda siz belirlersiniz, gönderici dayatmaz.