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
- 01Le 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.
- 02L'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.
- 03L'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.
- 04La preuve de paiement est vérifiée par rapport à l'intention : montant, devise, destinataire, horodatage, méthode de paiement et contraintes de route.
- 05Le 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.