इंस्टॉल करें और deposit बनाएँ
- 01पैकेज इंस्टॉल करें: bun add @usdctofiat/offramp (npm और pnpm भी काम करते हैं)।
- 02एक viem WalletClient पास करें: यूज़र का wallet, एक server wallet, या एक bot wallet।
- 03offramp(walletClient, { amount, platform, currency, identifier }) कॉल करें।
- 04लौटाई गई depositId और txHash पढ़ें, या npx create-offramp-app@latest से एक प्रोजेक्ट scaffold करें।
SDK सरफेस
| Export | यह क्या करता है |
|---|---|
| offramp(walletClient, params) | एक-कॉल sell-USDC फ्लो जो { depositId, txHash, resumed, otcLink? } लौटाता है |
| deposits(address) | protocol state को index किए बिना किसी address के deposits लिस्ट करें |
| close(walletClient, depositId) | किसी मौजूदा deposit से अनफिल्ड USDC withdraw करें |
| enableOtc / disableOtc / getOtcLink | किसी deposit पर private एक-buyer प्रतिबंध मैनेज करें |
| useOfframp() / usePeerExtensionRegistration() | @usdctofiat/offramp/react से React hooks |
| PLATFORMS, CURRENCIES | identifiers, validation, और currency लिस्ट के साथ typed const maps |
डिज़ाइन से ही resumable
deposit बनाना कई onchain स्टेप्स में फैला होता है। अगर किसी पिछली कॉल ने deposit बीच में अधूरा छोड़ दिया, तो offramp() दोबारा कॉल करने पर वह डुप्लीकेट बनाने के बजाय वहीं से आगे बढ़ता है जहाँ छोड़ा था। result का resumed फ्लैग तब true होता है जब बनाने के बजाय किसी मौजूदा undelegated deposit को अपनाया गया।
इससे SDK को server या bot से retry करना सुरक्षित होता है: एक idempotency-friendly एंट्री पॉइंट जो साफ़ शुरुआत मानने के बजाय onchain state से reconcile करता है।
Error हैंडलिंग
| चिंता | SDK इसका संकेत कैसे देता है |
|---|---|
| Typed errors | OfframpError में OFFRAMP_ERROR_CODES से एक code होता है |
| PayPal या Wise सेटअप | EXTENSION_REGISTRATION_REQUIRED केवल तकनीकी सेटअप का संकेत देता है; प्रदाता नीति को अलग से लागू करें |
| Validation | PLATFORMS और CURRENCIES identifier और currency validation देते हैं |
| कोई key custody नहीं | SDK आपके WalletClient से साइन करता है और private keys कभी स्टोर नहीं करता |