开发者 · 应用

构建用户真正能走完的出售 USDC 流程。

好的兑法币应用大多是枯燥的状态管理:收集路径,让钱包签名,恢复受扩展限制的支付方式,展示存款链接,并在标签页关闭后对账生命周期事件。

01

前端路径

  1. 01收集金额、支付平台、法币币种和收款标识符。
  2. 02显示提供商当前的政策边界,并要求用户确认账户、区域和交易资格。
  3. 03将已连接的 viem WalletClient 传入 useOfframp() 或 createOfframp({ walletClient })。
  4. 04呈现进度状态:授权中、注册中、存款中、确认中、委托中、限定中、恢复中、完成。
  5. 05对于符合条件的扩展门控路由,捕获 EXTENSION_REGISTRATION_REQUIRED 并驱动 usePeerExtensionRegistration(platform)。
  6. 06在页面加载时调用 deposits(address),以免刷新让进行中的卖家陷入孤立状态。
02

你应该存储的状态

字段原因
depositId用于 close()、OTC 链接和客服的主要标识
txHash证明用户已签名并广播了存款交易
platform + currency用于路径展示、客服和分析分段
identifier label人类可读的收款参考;不要存储秘密信息
integratorId用于产品遥测和客服的稳定归因
03

UX 约束

  • SDK 面向 Base 主网;没有公开沙盒。用 1 USDC 的最小金额测试。
  • 每一笔 SDK 创建的存款都会将定价委托给 Delegate 金库。在此路径下不要呈现手动汇率控件。
  • 法币留在 SDK 之外。买卖双方在所选支付应用中直接结算。
  • Reconcile narrow owner state with deposits(); use Peerlytics API for broader market data, deposits, intents, and analytics.

常见问题

钱包应用应该用独立函数还是 React hook?

当你想要内置的加载、进度、错误和结果状态时,用 React hook。当你的应用有自己的状态机时,用 createOfframp({ walletClient })。

当 PayPal 或 Wise 注册失败时我该展示什么?

首先显示策略边界:Wise 禁止 P2P 加密销售收据,而 PayPal 可能需要预先批准。仅对于符合条件的提供程序流程,您才应捕获 EXTENSION_REGISTRATION_REQUIRED、连接扩展、完成 usePeerExtensionRegistration(),然后重试。