简短版本
卖家在 Base 上的 EscrowV2 中锁定 USDC,并列出法币支付方式、货币、收款标识和汇率,从而创建一笔存款。买家选择该流动性,发起一个链上意图,在所选支付应用中付款给卖家,并提交付款凭据。
协议不要求任何一方信任一张聊天截图。付款凭据由证明服务在链下检查,由此生成的 EIP-712 PaymentAttestation 在链上验证后,合约才释放 USDC。
成交生命周期
- 1卖家把 Base 上的原生 USDC 存入 EscrowV2,并声明接受的支付方式、货币和收款人信息。
- 2买家选择该存款,并通过 OrchestratorV2 发出一个意图。该意图在买家付款期间锁定具体金额。
- 3买家在所选法币应用中直接付款给卖家。USDCtoFiat 从不接收或持有该法币转账。
- 4付款凭据与意图进行核对:金额、货币、收款人、时间戳、支付方式和路线约束。
- 5证明服务签发一份 PaymentAttestation。链上验证器检查签名、快照值和 nullifier,随后 OrchestratorV2 释放 USDC。
为什么合约能安全释放
| 原语 | 作用 | 为什么重要 |
|---|---|---|
| EscrowV2 | 在 Base 上持有卖方 USDC | USDCtoFiat 和买家都无法在合约规则之外移动它 |
| Intent hash | 标识一笔买家订单 | 把法币付款证明绑定到确切的成交 |
| PaymentAttestation | EIP-712 签名的验证结果 | 让一个验证器合约处理多种支付方式 |
| Nullifier | 一笔付款的一次性标记 | 阻止同一笔付款被领取两次 |
| Payee details hash | 卖家收款标识的哈希 | 在不把收款标识发布上链的前提下把付款绑定到卖家 |
什么不上链
你的 Venmo 用户名、Revtag、Wisetag、PayPal.me 标识、Zelle 邮箱、账户会话和详细付款数据都不会发布到 Base。链上看到的是合约状态、哈希、签名、金额和释放事件,而非完整的私有付款账户历史。
你的收款标识对需要付款给你的对手方仍然可见。这在任何支付应用结算流程中都无法避免:买家没有目的地就无法发送法币。
非托管托管加链下付款证明。
ZKP2P V3 把付款解析移到链下,并把最终释放规则保留在链上,这正是为什么卖方体验可以支持更多支付方式,而无需为每条通道定制专门的验证器合约。
具体的支付应用流程因方式而异。Wise 和 PayPal 卖方设置需要一次性的扩展注册。
Keep exploring
Common questions
USDCtoFiat 是什么?
USDCtoFiat 让你在 Base 上把 USDC 卖成 Venmo、Cash App、Chime、Revolut、Wise、Zelle、PayPal 和 Monzo 里的钱。你始终掌控自己的钱包,交易通过 Base 上的非托管 ZKP2P 智能合约结算。
USDCtoFiat 会托管我的资金吗?
不会。每一笔交易都由你自己的钱包签名。你的 USDC 锁定在一个公开的 Base 合约里,只有在买家付款被证明后才会释放给买家。你可以随时提取任何未成交的存款。
出售要花多少钱?
创建和管理卖方存款是免费的,但链上操作需支付 Base gas。offramp SDK 可免费集成。在委托成交中,Delegate 的 0.10% 管理费来自释放给买家的 USDC,而非你的法币收益或你的报价。Peerlytics 分析、webhook 和 API 额度单独定价。
我需要中心化交易所账户吗?
使用 USDCtoFiat 无需交易所账户。你需要一个在 Base 上持有 USDC 的钱包,以及你想收款的那款支付应用的账户。该支付应用自身的账户规则和限额仍然适用。
我需要完成 KYC 吗?
USDCtoFiat 不收集身份证件,不持有你的法币,也不持有你的私钥。你使用的支付应用仍然掌控自己的验证、限额和账户规则。USDC 结算通过 Base 智能合约完成,我们无法改变 Venmo、PayPal、Wise、Zelle 或你的银行的要求。
ZKP2P 和 USDCtoFiat 是一回事吗?
不是。ZKP2P 是底层协议和合约系统。USDCtoFiat 是在其之上构建的、面向卖家的产品,用于把 Base USDC 通过受支持的支付应用转成法币。
同一笔法币付款能释放两次 USDC 吗?
不能。付款证明包含一个 nullifier,这是验证器检查的一次性标记,用于阻止把同一笔付款重放到多个意图上。
如果买家发起了意图却从不付款会怎样?
卖方存款的那一部分会被暂时绑定到这个未完成的意图上,直到它过期或被取消。未成交的流动性仍可由卖家提取。