La versión corta
Un vendedor crea un depósito bloqueando USDC en EscrowV2 en Base y listando el método de pago en fiat, la divisa, el identificador de cobro y la tarifa. Un comprador elige esa liquidez, inicia un intent onchain, paga al vendedor en la app de pagos seleccionada y envía la evidencia del pago.
El protocolo no pide a ninguna de las partes que confíe en una captura de pantalla de un chat. La evidencia del pago se comprueba offchain en el servicio de attestation, y la PaymentAttestation EIP-712 resultante se verifica onchain antes de que el contrato libere el USDC.
El ciclo de vida del fill
- 01El vendedor deposita USDC nativo en Base en EscrowV2 y declara los métodos de pago aceptados, las divisas y los datos del beneficiario.
- 02El comprador selecciona el depósito y señala un intent a través de OrchestratorV2. Ese intent reserva el importe concreto mientras el comprador paga.
- 03El comprador paga al vendedor directamente en la app de fiat seleccionada. USDCtoFiat nunca recibe ni retiene la transferencia en fiat.
- 04La evidencia del pago se verifica frente al intent: importe, divisa, destinatario, marca de tiempo, método de pago y restricciones de la ruta.
- 05El servicio de attestation firma una PaymentAttestation. El verificador onchain comprueba la firma, los valores del snapshot y el nullifier, y luego OrchestratorV2 libera el USDC.
Por qué el contrato puede liberar con seguridad
| Primitiva | Qué hace | Por qué importa |
|---|---|---|
| EscrowV2 | Retiene el USDC del vendedor en Base | Ni USDCtoFiat ni el comprador pueden moverlo fuera de las reglas del contrato |
| Hash del intent | Identifica una orden de comprador | Vincula la prueba del pago en fiat al fill exacto |
| PaymentAttestation | Resultado de verificación firmado con EIP-712 | Permite que un solo contrato verificador gestione múltiples métodos de pago |
| Nullifier | Marcador único para un pago | Impide que el mismo pago se reclame dos veces |
| Hash de los datos del beneficiario | Hash del identificador de cobro del vendedor | Vincula el pago al vendedor sin publicar el handle onchain |
Qué no está onchain
Tu usuario de Venmo, Revtag, Wisetag, handle de PayPal.me, email de Zelle, sesión de cuenta y datos detallados del pago no se publican en Base. La cadena ve el estado del contrato, hashes, firmas, importes y eventos de liberación, no el historial completo y privado de tu cuenta de pagos.
Tu identificador de cobro sigue siendo visible para la contraparte que necesita pagarte. Eso es inevitable en cualquier flujo de liquidación con apps de pago: el comprador no puede enviar fiat sin un destino.