Mecánica del protocolo

Cómo ZKP2P convierte un pago en fiat en una liberación de USDC onchain.

ZKP2P es el protocolo que está debajo de USDCtoFiat. Los vendedores bloquean USDC en un contrato inteligente de Base, los compradores pagan fiat a través de una app de pagos normal, y una attestation de pago firmada desbloquea el USDC después de que el pago coincide con la orden.

01

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.

02

El ciclo de vida del fill

  1. 1El vendedor deposita USDC nativo en Base en EscrowV2 y declara los métodos de pago aceptados, las divisas y los datos del beneficiario.
  2. 2El 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.
  3. 3El comprador paga al vendedor directamente en la app de fiat seleccionada. USDCtoFiat nunca recibe ni retiene la transferencia en fiat.
  4. 4La evidencia del pago se verifica frente al intent: importe, divisa, destinatario, marca de tiempo, método de pago y restricciones de la ruta.
  5. 5El 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.
03

Por qué el contrato puede liberar con seguridad

PrimitivaQué hacePor qué importa
EscrowV2Retiene el USDC del vendedor en BaseNi USDCtoFiat ni el comprador pueden moverlo fuera de las reglas del contrato
Hash del intentIdentifica una orden de compradorVincula la prueba del pago en fiat al fill exacto
PaymentAttestationResultado de verificación firmado con EIP-712Permite que un solo contrato verificador gestione múltiples métodos de pago
NullifierMarcador único para un pagoImpide que el mismo pago se reclame dos veces
Hash de los datos del beneficiarioHash del identificador de cobro del vendedorVincula el pago al vendedor sin publicar el handle onchain
04

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.

Ruta de producción V3

Escrow no custodio más attestation de pago offchain.

ZKP2P V3 lleva el parseo del pago offchain y mantiene las reglas finales de liberación onchain, por eso la UX del vendedor puede soportar más métodos de pago sin un contrato verificador a medida para cada rail.

El flujo exacto de la app de pagos puede variar según el método. La configuración de vendedor de Wise y PayPal requiere un registro único de la extensión.

EscrowV20x777777779d229cdF3110e9de47943791c26300Efcontrato de custodia del vendedor
OrchestratorV20x888888359E981B5225CA48fbCdCeff702FC3b888ciclo de vida del intent
USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913token nativo de Base
VerifierUnifiedPaymentVerifierV2comprueba las attestations de pago

Common questions

¿Qué es USDCtoFiat?

USDCtoFiat te permite vender USDC en Base por dinero en Venmo, Cash App, Chime, Revolut, Wise, Zelle, PayPal y Monzo. Mantienes el control de tu wallet, y las operaciones se liquidan a través de contratos inteligentes ZKP2P no custodios en Base.

¿USDCtoFiat retiene mis fondos?

No. Firmas cada transacción desde tu propia wallet. Tu USDC queda bloqueado en un contrato público de Base y se libera al comprador solo después de que se prueba su pago. Puedes retirar en cualquier momento cualquier depósito sin llenar.

¿Cuánto cuesta vender?

Crear y gestionar un depósito de vendedor es gratis, aunque el gas de Base aplica a las acciones onchain. El SDK de off-ramp es gratuito de integrar. En los fills delegados, la comisión de gestión del 0.10% de Delegate sale del USDC liberado al comprador, no de tu producto en fiat ni de tu tarifa cotizada. La analítica, los webhooks y los créditos de API de Peerlytics se cobran por separado.

¿Necesito una cuenta de exchange centralizado?

No se requiere ninguna cuenta de exchange para usar USDCtoFiat. Necesitas una wallet con USDC en Base y una cuenta en la app de pagos en la que quieres cobrar. Las reglas y los límites de la propia app de pagos siguen aplicando.

¿Tengo que completar KYC?

USDCtoFiat no recopila documentos de identidad, no retiene tu fiat ni tus claves. La app de pagos que uses sigue controlando su propia verificación, límites y reglas de cuenta. La liquidación de USDC ocurre a través de contratos inteligentes de Base, y no podemos cambiar lo que requieren Venmo, PayPal, Wise, Zelle o tu banco.

¿ZKP2P es lo mismo que USDCtoFiat?

No. ZKP2P es el protocolo y el sistema de contratos subyacente. USDCtoFiat es un producto orientado al vendedor construido sobre él para convertir USDC de Base en fiat a través de apps de pago soportadas.

¿Puede el mismo pago en fiat liberar USDC dos veces?

No. Las attestations de pago incluyen un nullifier, un marcador único que el verificador comprueba para evitar reproducir el mismo pago contra múltiples intents.

¿Qué pasa si el comprador inicia un intent pero nunca paga?

Esa parte del depósito del vendedor queda temporalmente ligada al intent abierto hasta que caduca o se cancela. La liquidez sin llenar sigue siendo retirable por el vendedor.