Comment ZKP2P transforme un paiement en fiat en une libération d'USDC onchain.
ZKP2P est le protocole sous-jacent à USDCtoFiat. Les vendeurs verrouillent leurs USDC dans un smart contract Base, les acheteurs paient du fiat via une application de paiement classique, et une attestation de paiement signée débloque les USDC une fois que le paiement correspond à l'ordre.
La version courte
Un vendeur crée un dépôt en verrouillant ses USDC dans EscrowV2 sur Base et en listant la méthode de paiement en fiat, la devise, l'identifiant de versement et le taux. Un acheteur choisit cette liquidité, lance une intention onchain, paie le vendeur dans l'application de paiement sélectionnée, et soumet une preuve de paiement.
Le protocole ne demande à aucune des deux parties de faire confiance à une capture d'écran de chat. La preuve de paiement est vérifiée offchain par le service d'attestation, et le PaymentAttestation EIP-712 résultant est vérifié onchain avant que le contrat ne libère les USDC.
Le cycle de vie d'un remplissage
- 1Le vendeur dépose des USDC natifs sur Base dans EscrowV2 et déclare les méthodes de paiement, devises et coordonnées de bénéficiaire acceptées.
- 2L'acheteur sélectionne le dépôt et signale une intention via OrchestratorV2. Cette intention réserve le montant précis pendant que l'acheteur paie.
- 3L'acheteur paie le vendeur directement dans l'application fiat sélectionnée. USDCtoFiat ne reçoit ni ne détient jamais le transfert en fiat.
- 4La preuve de paiement est vérifiée par rapport à l'intention : montant, devise, destinataire, horodatage, méthode de paiement et contraintes de route.
- 5Le service d'attestation signe un PaymentAttestation. Le vérificateur onchain contrôle la signature, les valeurs de l'instantané et le nullifier, puis OrchestratorV2 libère les USDC.
Pourquoi le contrat peut libérer en toute sécurité
| Primitive | Ce qu'elle fait | Pourquoi c'est important |
|---|---|---|
| EscrowV2 | Détient les USDC du vendeur sur Base | Ni USDCtoFiat ni l'acheteur ne peuvent les déplacer en dehors des règles du contrat |
| Hash d'intention | Identifie un ordre acheteur | Lie la preuve de paiement en fiat au remplissage exact |
| PaymentAttestation | Résultat de vérification signé EIP-712 | Permet à un seul contrat vérificateur de gérer plusieurs méthodes de paiement |
| Nullifier | Marqueur à usage unique pour un paiement | Empêche que le même paiement soit réclamé deux fois |
| Hash des coordonnées du bénéficiaire | Hash de l'identifiant de versement du vendeur | Lie le paiement au vendeur sans publier l'identifiant onchain |
Ce qui n'est pas onchain
Votre nom d'utilisateur Venmo, votre Revtag, votre Wisetag, votre identifiant PayPal.me, votre e-mail Zelle, votre session de compte et vos données de paiement détaillées ne sont pas publiés sur Base. La chaîne voit l'état du contrat, des hashes, des signatures, des montants et des événements de libération, pas l'historique complet et privé de votre compte de paiement.
Votre identifiant de versement reste visible pour la contrepartie qui doit vous payer. C'est inévitable dans tout flux de règlement sur application de paiement : l'acheteur ne peut pas envoyer de fiat sans destination.
Séquestre non custodial plus attestation de paiement offchain.
ZKP2P V3 déplace l'analyse du paiement offchain et garde les règles de libération finale onchain, ce qui explique pourquoi l'UX vendeur peut prendre en charge plus de méthodes de paiement sans contrat vérificateur sur mesure pour chaque rail.
Le flux exact de l'application de paiement peut varier selon la méthode. La configuration vendeur Wise et PayPal nécessite un enregistrement ponctuel de l'extension.
Keep exploring
Common questions
Qu'est-ce que USDCtoFiat ?
USDCtoFiat vous permet de vendre des USDC sur Base contre de l'argent sur Venmo, Cash App, Chime, Revolut, Wise, Zelle, PayPal et Monzo. Vous gardez le contrôle de votre wallet, et les transactions se règlent via des smart contracts ZKP2P non custodial sur Base.
USDCtoFiat détient-il mes fonds ?
Non. Vous signez chaque transaction depuis votre propre wallet. Vos USDC sont verrouillés dans un contrat Base public et ne sont libérés à l'acheteur qu'une fois son paiement prouvé. Vous pouvez retirer à tout moment tout dépôt non rempli.
Combien coûte la vente ?
La création et la gestion d'un dépôt vendeur sont gratuites, même si le gas Base s'applique aux actions onchain. Le SDK offramp est gratuit à intégrer. Sur les remplissages délégués, les frais de manager de 0.10% de Delegate proviennent des USDC libérés à l'acheteur, et non de vos recettes en fiat ni de votre taux annoncé. Les analytics, webhooks et crédits API de Peerlytics sont tarifés séparément.
Ai-je besoin d'un compte sur une plateforme d'échange centralisée ?
Aucun compte de plateforme d'échange n'est requis pour utiliser USDCtoFiat. Il vous faut un wallet détenant des USDC sur Base et un compte sur l'application de paiement sur laquelle vous voulez être payé. Les règles et limites de compte propres à l'application de paiement s'appliquent toujours.
Dois-je effectuer un KYC ?
USDCtoFiat ne collecte pas de documents d'identité, ne détient pas votre fiat et ne détient pas vos clés. L'application de paiement que vous utilisez contrôle toujours sa propre vérification, ses limites et ses règles de compte. Le règlement des USDC se fait via des smart contracts Base, et nous ne pouvons pas modifier ce qu'exigent Venmo, PayPal, Wise, Zelle ou votre banque.
ZKP2P est-il la même chose que USDCtoFiat ?
Non. ZKP2P est le protocole et le système de contrats sous-jacents. USDCtoFiat est un produit centré sur le vendeur construit par-dessus pour transformer des USDC Base en fiat via des applications de paiement prises en charge.
Le même paiement en fiat peut-il libérer des USDC deux fois ?
Non. Les attestations de paiement incluent un nullifier, un marqueur à usage unique vérifié par le vérificateur pour empêcher de rejouer le même paiement contre plusieurs intentions.
Que se passe-t-il si l'acheteur lance une intention mais ne paie jamais ?
Cette portion du dépôt vendeur est temporairement liée à l'intention ouverte jusqu'à ce qu'elle expire ou soit annulée. La liquidité non remplie reste retirable par le vendeur.