Geliştiriciler

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.

@usdctofiat/offramp v4.xBase mainnetMIT · ESM + CJS
Tek çağrılı off-rampBase mainnet
import { 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>
  );
}
Bir mevduat oluşturun ve sonucu okuyun
create-deposit.ts
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);
OfframpResult
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.

OTC yardımcıları

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.

React hook'ları

Cüzdan uygulaması ön yüzleri için useOfframp() ve usePeerExtensionRegistration().

Tipli haritalar

PLATFORMS, CURRENCIES, doğrulama yardımcıları ve OfframpError kodları.

Maliyeti nedir

Geliştirici yüzeyi; paket, başlangıç şablonları ve tipli SDK sözleşmesidir.

Paket
$0

@usdctofiat/offramp, core ve React giriş noktalarına sahip MIT lisanslı TypeScript'tir.

Mevduat oluşturma
Anahtar yok

Bir cüzdan imzası Base mevduatını oluşturur. Uygulamanız yalnızca normal Base gas'ı öder.

Veri düzlemi
Peerlytics

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.

  1. 01offramp() ile kullanıcı cüzdanından veya bot cüzdanından devredilmiş bir mevduat oluşturun.
  2. 02Yenilemeler, yeniden denemeler veya bot yeniden başlatmalarından sonra yerel durumu mutabık kılmak için deposits() kullanın.
  3. 03Alıcı bilindiğinde ve emir herkese açık şekilde gerçekleştirilebilir olmaması gerektiğinde otcTaker geçirin.
  4. 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.